@codingame/monaco-vscode-chat-service-override 34.1.3 → 35.0.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 (427) hide show
  1. package/index.js +38 -0
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/browser/agentHost.config.contribution.d.ts +1 -0
  4. package/vscode/src/vs/platform/agentHost/browser/agentHost.config.contribution.js +40 -0
  5. package/vscode/src/vs/platform/agentHost/browser/agentHostConnectionsService.d.ts +27 -0
  6. package/vscode/src/vs/platform/agentHost/browser/agentHostConnectionsService.js +91 -0
  7. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +20 -4
  8. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +148 -15
  9. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +1 -0
  10. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +9 -1
  11. package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.js +57 -3
  12. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +10 -14
  13. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +29 -8
  14. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +109 -2
  15. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +207 -21
  16. package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.js +362 -37
  17. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +698 -91
  18. package/vscode/src/vs/platform/agentHost/common/agentService.js +46 -3
  19. package/vscode/src/vs/platform/agentHost/common/customAgents.js +1 -0
  20. package/vscode/src/vs/platform/agentHost/common/resourceReadLogging.d.ts +1 -0
  21. package/vscode/src/vs/platform/agentHost/common/resourceReadLogging.js +26 -0
  22. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.d.ts +5 -5
  23. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.js +17 -17
  24. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +96 -12
  25. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +226 -19
  26. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-annotations/reducer.d.ts +18 -0
  27. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-annotations/reducer.js +89 -0
  28. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.js +10 -0
  29. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/reducer.d.ts +6 -0
  30. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/reducer.js +400 -0
  31. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/reducer.js +129 -446
  32. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.d.ts +2 -2
  33. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +1 -1
  34. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +1 -1
  35. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +35 -25
  36. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +7 -1
  37. package/vscode/src/vs/{workbench/contrib → platform}/browserView/common/browserChatToolReferenceNames.d.ts +4 -0
  38. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +1 -1
  39. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +1 -0
  40. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.d.ts +0 -6
  41. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.js +5 -18
  42. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.d.ts +52 -3
  43. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.js +212 -34
  44. package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.js +3 -4
  45. package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.js +11 -10
  46. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +13 -6
  47. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +6 -1
  48. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoice.contribution.d.ts +2 -0
  49. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoice.contribution.js +399 -0
  50. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceSessionsPicker.d.ts +20 -0
  51. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceSessionsPicker.js +85 -0
  52. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidget.d.ts +177 -0
  53. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidget.js +898 -0
  54. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidgetBinding.d.ts +24 -0
  55. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidgetBinding.js +204 -0
  56. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWindowService.d.ts +61 -0
  57. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWindowService.js +338 -0
  58. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/confirmationComponent.d.ts +10 -0
  59. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/confirmationComponent.js +57 -0
  60. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/feedbackDialog.d.ts +33 -0
  61. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/feedbackDialog.js +98 -0
  62. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/headerComponent.d.ts +30 -0
  63. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/headerComponent.js +149 -0
  64. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/onboardingComponent.d.ts +12 -0
  65. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/onboardingComponent.js +116 -0
  66. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/sessionListComponent.d.ts +32 -0
  67. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/sessionListComponent.js +226 -0
  68. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/statusRowsComponent.d.ts +18 -0
  69. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/statusRowsComponent.js +138 -0
  70. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/tokens.d.ts +26 -0
  71. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/tokens.js +25 -0
  72. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/transcriptComponent.d.ts +13 -0
  73. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/transcriptComponent.js +108 -0
  74. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/voiceBarComponent.d.ts +13 -0
  75. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/voiceBarComponent.js +63 -0
  76. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscripts.contribution.d.ts +1 -0
  77. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscripts.contribution.js +178 -0
  78. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscriptsView.d.ts +47 -0
  79. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscriptsView.js +322 -0
  80. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.d.ts +15 -0
  81. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.js +15 -0
  82. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoiceColors.d.ts +2 -0
  83. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoiceColors.js +26 -0
  84. package/vscode/src/vs/workbench/contrib/agentsVoice/common/voiceTranscriptStore.d.ts +132 -0
  85. package/vscode/src/vs/workbench/contrib/agentsVoice/common/voiceTranscriptStore.js +237 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  87. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +2 -2
  88. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +32 -16
  89. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  90. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.d.ts +1 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +71 -60
  92. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  93. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClear.js +6 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +15 -15
  95. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  96. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +7 -7
  97. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +19 -24
  98. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +9 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +14 -5
  101. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  102. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  103. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  104. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +14 -14
  105. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +13 -13
  106. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +66 -52
  107. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  108. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +15 -36
  109. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  110. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
  111. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +20 -20
  112. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +1 -1
  113. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +128 -13
  114. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +6 -6
  115. package/vscode/src/vs/workbench/contrib/chat/browser/actions/reviewEdits.js +1 -1
  116. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +10 -10
  117. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
  118. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  119. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +1 -0
  120. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +58 -9
  121. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
  122. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.d.ts +15 -3
  123. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.js +64 -17
  124. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.d.ts +45 -1
  125. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.js +15 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.d.ts +25 -5
  127. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.js +143 -20
  128. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.js +7 -31
  129. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.d.ts +23 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.js +52 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
  132. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolSetEnablementService.d.ts +47 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolSetEnablementService.js +163 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +26 -3
  135. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +106 -8
  136. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.d.ts +16 -3
  137. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.js +44 -14
  138. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  139. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -59
  140. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  141. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  144. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  145. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  146. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +22 -22
  147. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  148. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  149. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentDisabledInputTipContribution.d.ts +27 -0
  150. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentDisabledInputTipContribution.js +152 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +11 -5
  152. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +1 -1
  153. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +9 -36
  154. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +8 -0
  155. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +17 -15
  156. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +143 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.js +30 -0
  158. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +6 -3
  159. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +3 -1
  160. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +1 -3
  161. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +107 -126
  162. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +46 -46
  163. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +19 -22
  164. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +244 -190
  165. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +2 -0
  166. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +13 -1
  167. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.d.ts +3 -1
  168. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.js +7 -2
  169. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.d.ts +5 -1
  170. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +47 -28
  171. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +2 -5
  172. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +4 -8
  173. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/automationsListWidget.d.ts +87 -0
  174. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/automationsListWidget.js +772 -0
  175. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +24 -8
  176. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +3 -8
  177. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +1 -7
  178. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +2 -2
  179. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.d.ts +42 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.js +130 -0
  181. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +3 -3
  182. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.d.ts +46 -0
  183. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.js +94 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +9 -1
  185. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +421 -201
  186. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +1426 -97
  187. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +1 -1
  188. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +1 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +107 -127
  190. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.d.ts +29 -0
  191. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +331 -0
  192. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.d.ts +120 -0
  193. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.js +898 -0
  194. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +581 -336
  196. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostChatDebugProvider.d.ts +123 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostChatDebugProvider.js +567 -0
  198. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  199. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheDiff.js +168 -84
  200. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.d.ts +183 -2
  201. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +897 -251
  202. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheInsights.d.ts +213 -0
  203. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheInsights.js +720 -0
  204. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  205. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  206. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
  207. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  208. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  209. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  210. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
  211. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  212. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  213. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
  214. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  215. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  216. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
  217. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  218. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +354 -1
  219. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +9 -2
  220. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  221. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +1 -1
  222. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  223. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  224. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  225. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  226. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +11 -4
  227. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  228. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  229. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +4 -4
  230. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +1 -1
  232. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  233. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.d.ts +9 -3
  234. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +55 -8
  235. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
  236. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  237. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +18 -1
  238. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +192 -87
  239. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +37 -3
  240. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  241. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  242. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.d.ts +40 -1
  243. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.js +230 -41
  244. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  245. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseFileChangesService.d.ts +30 -0
  246. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseFileChangesService.js +29 -0
  247. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -25
  248. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  249. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  250. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +35 -32
  251. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +26 -2
  252. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +56 -32
  253. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
  254. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +0 -1
  255. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +109 -68
  256. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +38 -5
  257. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +175 -50
  258. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +4 -0
  259. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
  260. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
  261. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  262. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  263. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +5 -5
  264. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +5 -5
  265. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  266. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  267. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
  268. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
  269. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
  270. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +4 -5
  271. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +1 -1
  272. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
  273. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +32 -3
  274. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +183 -84
  275. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
  276. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +3 -1
  277. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +20 -9
  278. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  279. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
  280. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  281. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  282. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolSetsCodeLensProvider.d.ts +1 -0
  283. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolSetsCodeLensProvider.js +109 -0
  284. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  285. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  286. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  287. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  288. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  289. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  290. package/vscode/src/vs/workbench/contrib/chat/browser/tools/clientToolSetsContribution.d.ts +17 -0
  291. package/vscode/src/vs/workbench/contrib/chat/browser/tools/clientToolSetsContribution.js +117 -0
  292. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  293. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +40 -4
  294. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +169 -34
  295. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +7 -7
  296. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +5 -1
  297. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +2 -2
  298. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +8 -8
  299. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +2 -2
  300. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  301. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.d.ts +125 -0
  302. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.js +399 -0
  303. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/ttsPlaybackService.d.ts +34 -0
  304. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/ttsPlaybackService.js +198 -0
  305. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceClientService.d.ts +85 -0
  306. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceClientService.js +504 -0
  307. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceSessionController.d.ts +321 -0
  308. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceSessionController.js +2117 -0
  309. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceToolDispatchService.d.ts +57 -0
  310. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceToolDispatchService.js +367 -0
  311. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +16 -12
  312. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.d.ts +2 -0
  313. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +68 -18
  314. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +11 -10
  315. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +2 -2
  316. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  317. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  318. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.d.ts +7 -0
  319. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +13 -2
  320. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +23 -5
  321. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +320 -40
  322. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  323. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +80 -4
  324. package/vscode/src/vs/workbench/contrib/chat/common/automations/automation.d.ts +78 -0
  325. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.d.ts +13 -0
  326. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.service.d.ts +11 -0
  327. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.service.js +6 -0
  328. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationRunner.service.d.ts +16 -0
  329. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationRunner.service.js +6 -0
  330. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.d.ts +46 -0
  331. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.service.d.ts +36 -0
  332. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.service.js +6 -0
  333. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationsEnabled.d.ts +12 -0
  334. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationsEnabled.js +6 -0
  335. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +9 -0
  336. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +6 -0
  337. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +2 -0
  338. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +7 -1
  339. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +28 -0
  340. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +226 -88
  341. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +6 -0
  342. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +8 -3
  343. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +13 -2
  344. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +12 -8
  345. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +5 -0
  346. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +5 -2
  347. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.d.ts +15 -0
  348. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.js +177 -0
  349. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +2 -18
  350. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +78 -136
  351. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +1 -16
  352. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +1 -17
  353. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +2 -0
  354. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +16 -5
  355. package/vscode/src/vs/workbench/contrib/chat/common/plugins/strictKnownMarketplaces.d.ts +31 -0
  356. package/vscode/src/vs/workbench/contrib/chat/common/plugins/strictKnownMarketplaces.js +122 -0
  357. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +24 -18
  358. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +3 -0
  359. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +113 -10
  360. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  361. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  362. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +10 -0
  363. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +227 -152
  364. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  365. package/vscode/src/vs/workbench/contrib/chat/common/voicePlaybackService.d.ts +26 -0
  366. package/vscode/src/vs/workbench/contrib/chat/common/voicePlaybackService.js +98 -0
  367. package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.d.ts +5 -0
  368. package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.js +7 -6
  369. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +11 -12
  370. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +10 -10
  371. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.d.ts +2 -0
  372. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.js +7 -0
  373. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
  374. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  375. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
  376. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  377. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  378. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  379. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  380. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  381. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  382. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  383. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +32 -20
  384. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  385. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.d.ts +23 -5
  386. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.js +37 -30
  387. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +7 -0
  388. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +7 -0
  389. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +7 -0
  390. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/largeOutputFileWriter.d.ts +33 -0
  391. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/largeOutputFileWriter.js +71 -0
  392. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +19 -0
  393. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +29 -9
  394. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +7 -20
  395. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +4 -4
  396. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +2 -1
  397. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  398. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  399. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +10 -8
  400. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  401. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +4 -4
  402. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  403. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  404. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +3 -3
  405. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +26 -2
  406. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +32 -3
  407. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +416 -252
  408. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +1 -1
  409. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +3 -2
  410. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +10 -10
  411. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  412. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  413. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  414. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  415. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.d.ts +2 -3
  416. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.js +5 -5
  417. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +6 -2
  418. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +25 -8
  419. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.d.ts +8 -3
  420. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.js +15 -0
  421. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +0 -20
  422. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +0 -77
  423. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.d.ts +0 -52
  424. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +0 -82
  425. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.d.ts +0 -38
  426. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.js +0 -47
  427. /package/vscode/src/vs/{workbench/contrib → platform}/browserView/common/browserChatToolReferenceNames.js +0 -0
@@ -11,13 +11,14 @@ import { WorkbenchList } from '@codingame/monaco-vscode-api/vscode/vs/platform/l
11
11
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
12
12
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
13
13
  import { Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
14
- import { defaultButtonStyles, defaultInputBoxStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
14
+ import { defaultInputBoxStyles, defaultButtonStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
15
15
  import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
16
16
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
17
17
  import { mcpAccessConfig, McpAccessValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/mcp/common/mcpManagement';
18
18
  import { McpConnectionState, McpServerInstallState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes';
19
- import { IMcpService, IMcpWorkbenchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
19
+ import { IMcpWorkbenchService, IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
20
20
  import { IMcpRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpRegistryTypes.service';
21
+ import { MCP_PLUGIN_COLLECTION_ID_PREFIX } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/discovery/pluginMcpDiscovery';
21
22
  import { ExtensionIdentifier } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
22
23
  import { isContributionDisabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
23
24
  import { McpCommandIds } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpCommandIds';
@@ -40,13 +41,22 @@ import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/h
40
41
  import { IAICustomizationWorkspaceService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.service';
41
42
  import { CUSTOMIZATION_GROUP_HEADER_HEIGHT, CUSTOMIZATION_GROUP_HEADER_HEIGHT_WITH_SEPARATOR, CustomizationGroupHeaderRenderer } from './customizationGroupHeaderRenderer.js';
42
43
  import { AgentPluginItemKind } from '../agentPluginEditor/agentPluginItems.js';
44
+ import { ICustomizationHarnessService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/customizationHarnessService.service';
45
+ import { IAgentHostCustomizationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.service';
46
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-root/state';
47
+ import { McpServerStatus } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-session/state';
48
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-chat/state';
49
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-terminal/state';
50
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-changeset/state';
51
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-resource-watch/state';
52
+ import { GalleryItemInstallState, GalleryItemRenderer } from './galleryItemRenderer.js';
43
53
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
44
54
  import { truncateToFirstLine } from './aiCustomizationListWidgetUtils.js';
45
55
 
46
56
  registerCss(aiCustomizationManagement);
47
57
  const $ = $$1;
48
58
  const MCP_ITEM_HEIGHT = 36;
49
- const PLUGIN_COLLECTION_PREFIX = "plugin.";
59
+ const PLUGIN_COLLECTION_PREFIX = MCP_PLUGIN_COLLECTION_ID_PREFIX;
50
60
  const COPILOT_EXTENSION_IDS = ["github.copilot", "github.copilot-chat"];
51
61
  function isCopilotExtension(id) {
52
62
  return ( COPILOT_EXTENSION_IDS.some(copilotId => ExtensionIdentifier.equals(id, copilotId)));
@@ -59,7 +69,7 @@ class McpServerItemDelegate {
59
69
  if (element.type === "group-header") {
60
70
  return element.isFirst ? CUSTOMIZATION_GROUP_HEADER_HEIGHT : CUSTOMIZATION_GROUP_HEADER_HEIGHT_WITH_SEPARATOR;
61
71
  }
62
- if (element.type === "server-item" && element.server.gallery && !element.server.local) {
72
+ if (element.type === "server-item" && element.server.gallery && (element.marketplace || !element.server.local)) {
63
73
  return 62;
64
74
  }
65
75
  return MCP_ITEM_HEIGHT;
@@ -71,13 +81,15 @@ class McpServerItemDelegate {
71
81
  if (element.type === "builtin-item") {
72
82
  return "mcpServerItem";
73
83
  }
84
+ if (element.type === "session-server-item") {
85
+ return "mcpServerItem";
86
+ }
74
87
  const server = element.server;
75
- return server.gallery && !server.local ? "mcpGalleryItem" : "mcpServerItem";
88
+ return server.gallery && (element.marketplace || !server.local) ? MCP_GALLERY_ITEM_TEMPLATE_ID : "mcpServerItem";
76
89
  }
77
90
  }
78
91
  let McpServerItemRenderer = class McpServerItemRenderer {
79
- constructor(mcpService, workspaceService, agentPluginService, hoverService) {
80
- this.mcpService = mcpService;
92
+ constructor(workspaceService, agentPluginService, hoverService) {
81
93
  this.workspaceService = workspaceService;
82
94
  this.agentPluginService = agentPluginService;
83
95
  this.hoverService = hoverService;
@@ -105,6 +117,7 @@ let McpServerItemRenderer = class McpServerItemRenderer {
105
117
  templateData.disposables.clear();
106
118
  if (element.type === "builtin-item") {
107
119
  templateData.container.classList.add("builtin");
120
+ templateData.container.classList.toggle("has-detail", false);
108
121
  templateData.name.textContent = formatDisplayName(element.label);
109
122
  if (element.description) {
110
123
  templateData.description.textContent = truncateToFirstLine(element.description);
@@ -112,14 +125,14 @@ let McpServerItemRenderer = class McpServerItemRenderer {
112
125
  } else {
113
126
  templateData.description.style.display = "none";
114
127
  }
115
- templateData.status.style.display = "none";
128
+ this.updateKnownServerStatus(templateData, element.localServer, element.activeSessionServer);
116
129
  const pluginUriStr = getPluginUriFromCollectionId(element.collectionId);
117
130
  if (pluginUriStr) {
118
131
  templateData.disposables.add(this.hoverService.setupDelayedHover(templateData.container, () => {
119
132
  const plugin = this.agentPluginService.plugins.get().find(p => ( p.uri.toString()) === pluginUriStr);
120
133
  if (plugin) {
121
134
  return {
122
- content: `${element.label}\n${( localize(5709, "Plugin: {0}", plugin.label))}`,
135
+ content: `${element.label}\n${( localize(6023, "Plugin: {0}", plugin.label))}`,
123
136
  appearance: {
124
137
  compact: true,
125
138
  skipFadeInAnimation: true
@@ -137,6 +150,14 @@ let McpServerItemRenderer = class McpServerItemRenderer {
137
150
  }
138
151
  return;
139
152
  }
153
+ if (element.type === "session-server-item") {
154
+ templateData.container.classList.remove("builtin");
155
+ templateData.container.classList.toggle("has-detail", false);
156
+ templateData.name.textContent = formatDisplayName(element.server.name);
157
+ templateData.description.style.display = "none";
158
+ this.updateActiveSessionStatus(templateData, element.server);
159
+ return;
160
+ }
140
161
  templateData.container.classList.remove("builtin");
141
162
  templateData.name.textContent = formatDisplayName(element.server.label);
142
163
  const description = element.server.description?.trim();
@@ -149,122 +170,256 @@ let McpServerItemRenderer = class McpServerItemRenderer {
149
170
  } else {
150
171
  templateData.description.style.display = "none";
151
172
  }
152
- const server = this.mcpService.servers.get().find(s => s.definition.id === element.server.id);
173
+ if (element.activeSessionServer) {
174
+ this.updateKnownServerStatus(templateData, element.localServer, element.activeSessionServer);
175
+ } else if (this.workspaceService.isSessionsWindow) {
176
+ this.updateKnownServerStatus(templateData, element.localServer, undefined);
177
+ } else {
178
+ templateData.disposables.add(autorun(reader => {
179
+ const disabled = element.localServer ? isContributionDisabled(element.localServer.enablement.read(reader)) : false;
180
+ const connectionState = element.localServer?.connectionState.read(reader);
181
+ templateData.container.classList.toggle("disabled", disabled);
182
+ this.updateStatus(templateData.status, disabled ? "disabled" : connectionState?.state);
183
+ }));
184
+ }
185
+ }
186
+ updateKnownServerStatus(templateData, localServer, activeSessionServer) {
153
187
  templateData.disposables.add(autorun(reader => {
154
- const disabled = server ? isContributionDisabled(server.enablement.read(reader)) : false;
155
- const connectionState = server?.connectionState.read(reader);
156
- templateData.container.classList.toggle("disabled", disabled);
157
- this.updateStatus(templateData.status, disabled ? "disabled" : connectionState?.state);
188
+ const localDisabled = localServer ? isContributionDisabled(localServer.enablement.read(reader)) : false;
189
+ templateData.container.classList.toggle("disabled", localDisabled || activeSessionServer?.enabled === false);
190
+ this.updateStatus(
191
+ templateData.status,
192
+ localDisabled ? "disabled" : activeSessionServer ? (activeSessionServer.enabled ? activeSessionServer.status : "disabled") : undefined
193
+ );
158
194
  }));
159
195
  }
196
+ updateActiveSessionStatus(templateData, server) {
197
+ const disabled = server?.enabled === false;
198
+ templateData.container.classList.toggle("disabled", disabled);
199
+ this.updateStatus(templateData.status, disabled ? "disabled" : server?.status);
200
+ }
160
201
  updateStatus(statusElement, state) {
161
202
  statusElement.className = "mcp-server-status";
162
- if (this.workspaceService.isSessionsWindow) {
203
+ const presentation = getMcpStatusPresentation(state);
204
+ if (!presentation) {
163
205
  statusElement.style.display = "none";
164
206
  return;
165
207
  }
166
208
  statusElement.style.display = "";
167
- if (state === "disabled") {
168
- statusElement.textContent = ( localize(5710, "Disabled"));
169
- statusElement.classList.add("disabled");
170
- return;
171
- }
172
- switch (state) {
173
- case McpConnectionState.Kind.Running:
174
- statusElement.textContent = ( localize(5711, "Running"));
175
- statusElement.classList.add("running");
176
- break;
177
- case McpConnectionState.Kind.Starting:
178
- statusElement.textContent = ( localize(5712, "Starting"));
179
- statusElement.classList.add("starting");
180
- break;
181
- case McpConnectionState.Kind.Error:
182
- statusElement.textContent = ( localize(5713, "Error"));
183
- statusElement.classList.add("error");
184
- break;
185
- case McpConnectionState.Kind.Stopped:
186
- default:
187
- statusElement.textContent = ( localize(5714, "Stopped"));
188
- statusElement.classList.add("stopped");
189
- break;
190
- }
209
+ statusElement.textContent = presentation.label;
210
+ statusElement.classList.add(presentation.className);
191
211
  }
192
212
  disposeTemplate(templateData) {
193
213
  templateData.disposables.dispose();
194
214
  }
195
215
  };
196
- McpServerItemRenderer = ( __decorate([( __param(0, IMcpService)), ( __param(1, IAICustomizationWorkspaceService)), ( __param(2, IAgentPluginService)), ( __param(3, IHoverService))], McpServerItemRenderer));
197
- class McpGalleryItemRenderer {
198
- constructor(mcpWorkbenchService) {
199
- this.mcpWorkbenchService = mcpWorkbenchService;
200
- this.templateId = "mcpGalleryItem";
216
+ McpServerItemRenderer = ( __decorate([( __param(0, IAICustomizationWorkspaceService)), ( __param(1, IAgentPluginService)), ( __param(2, IHoverService))], McpServerItemRenderer));
217
+ function getMcpStatusPresentation(state) {
218
+ if (state === undefined) {
219
+ return undefined;
201
220
  }
202
- renderTemplate(container) {
203
- container.classList.add("mcp-server-item", "mcp-gallery-item", "extension-list-item");
204
- const details = append(container, $(".details"));
205
- const headerContainer = append(details, $(".header-container"));
206
- const header = append(headerContainer, $(".header"));
207
- const name = append(header, $("span.name"));
208
- const description = append(details, $(".description.ellipsis"));
209
- const publisherContainer = append(details, $(".publisher-container"));
210
- const publisher = append(publisherContainer, $("span.publisher-name.mcp-gallery-publisher"));
211
- const actionContainer = append(container, $(".mcp-gallery-action"));
212
- const installButton = ( new Button(actionContainer, {
213
- ...defaultButtonStyles,
214
- supportIcons: true
215
- }));
216
- installButton.element.classList.add("mcp-gallery-install-button");
217
- const templateDisposables = ( new DisposableStore());
218
- templateDisposables.add(installButton);
221
+ if (state === "disabled") {
219
222
  return {
220
- container,
221
- name,
222
- publisher,
223
- description,
224
- installButton,
225
- elementDisposables: ( new DisposableStore()),
226
- templateDisposables
223
+ label: ( localize(6024, "Disabled")),
224
+ className: "disabled"
225
+ };
226
+ }
227
+ switch (state) {
228
+ case McpConnectionState.Kind.Running:
229
+ case McpServerStatus.Ready:
230
+ return {
231
+ label: ( localize(6025, "Running")),
232
+ className: "running"
233
+ };
234
+ case McpConnectionState.Kind.Starting:
235
+ case McpServerStatus.Starting:
236
+ return {
237
+ label: ( localize(6026, "Starting")),
238
+ className: "starting"
239
+ };
240
+ case McpServerStatus.AuthRequired:
241
+ return {
242
+ label: ( localize(6027, "Authentication required")),
243
+ className: "auth-required"
244
+ };
245
+ case McpConnectionState.Kind.Error:
246
+ case McpServerStatus.Error:
247
+ return {
248
+ label: ( localize(6028, "Error")),
249
+ className: "error"
250
+ };
251
+ case McpConnectionState.Kind.Stopped:
252
+ case McpServerStatus.Stopped:
253
+ default:
254
+ return {
255
+ label: ( localize(6029, "Stopped")),
256
+ className: "stopped"
227
257
  };
228
258
  }
229
- renderElement(element, _index, templateData) {
230
- templateData.elementDisposables.clear();
231
- templateData.name.textContent = element.server.label;
232
- templateData.publisher.textContent = element.server.publisherDisplayName ? `by ${element.server.publisherDisplayName}` : "";
233
- templateData.description.textContent = element.server.description || "";
234
- this.updateInstallButton(templateData.installButton, element.server);
235
- templateData.elementDisposables.add(templateData.installButton.onDidClick(async () => {
236
- const canInstall = this.mcpWorkbenchService.canInstall(element.server);
237
- if (canInstall === true) {
238
- templateData.installButton.label = ( localize(5715, "Installing..."));
239
- templateData.installButton.enabled = false;
240
- await this.mcpWorkbenchService.install(element.server);
259
+ }
260
+ function getMcpStatusKind(entry, isSessionsWindow) {
261
+ if (entry.type === "session-server-item") {
262
+ return entry.server.enabled ? entry.server.status : "disabled";
263
+ }
264
+ if (entry.localServer && isContributionDisabled(entry.localServer.enablement.get())) {
265
+ return "disabled";
266
+ }
267
+ if (entry.activeSessionServer) {
268
+ return entry.activeSessionServer.enabled ? entry.activeSessionServer.status : "disabled";
269
+ }
270
+ if (entry.type === "server-item" && !isSessionsWindow) {
271
+ return entry.localServer?.connectionState.get().state;
272
+ }
273
+ return undefined;
274
+ }
275
+ function getMcpEntryAriaLabel(element, isSessionsWindow) {
276
+ if (element.type === "group-header") {
277
+ return localize(
278
+ 6030,
279
+ "{0}, {1} items, {2}",
280
+ element.label,
281
+ element.count,
282
+ element.collapsed ? ( localize(6031, "collapsed")) : ( localize(6032, "expanded"))
283
+ );
284
+ }
285
+ const label = element.type === "session-server-item" ? element.server.name : element.type === "builtin-item" ? element.label : element.server.label;
286
+ const status = getMcpStatusPresentation(getMcpStatusKind(element, isSessionsWindow));
287
+ return status ? ( localize(6033, "{0}, {1}", label, status.label)) : label;
288
+ }
289
+ function normalizeMcpMatchKey(value) {
290
+ const key = value?.trim().toLowerCase();
291
+ return key || undefined;
292
+ }
293
+ function getUniqueMcpMatchKeys(values) {
294
+ const keys = ( new Set());
295
+ for (const value of values) {
296
+ const key = normalizeMcpMatchKey(value);
297
+ if (key) {
298
+ keys.add(key);
299
+ }
300
+ }
301
+ return [...keys];
302
+ }
303
+ class ActiveSessionMcpServerMatcher {
304
+ constructor(servers) {
305
+ this.servers = servers;
306
+ this.byKey = ( new Map());
307
+ this.matchedIds = ( new Set());
308
+ for (const server of servers) {
309
+ for (const key of getUniqueMcpMatchKeys([server.id, server.name])) {
310
+ let bucket = this.byKey.get(key);
311
+ if (!bucket) {
312
+ bucket = [];
313
+ this.byKey.set(key, bucket);
314
+ }
315
+ bucket.push(server);
241
316
  }
242
- }));
243
- templateData.elementDisposables.add(this.mcpWorkbenchService.onChange(changed => {
244
- if (!changed || changed.id === element.server.id) {
245
- this.updateInstallButton(templateData.installButton, element.server);
317
+ }
318
+ }
319
+ take(keys) {
320
+ for (const key of getUniqueMcpMatchKeys(keys)) {
321
+ const matches = this.byKey.get(key);
322
+ const match = matches?.find(server => !( this.matchedIds.has(server.id)));
323
+ if (match) {
324
+ this.matchedIds.add(match.id);
325
+ return match;
246
326
  }
247
- }));
327
+ }
328
+ return undefined;
329
+ }
330
+ unmatched(query) {
331
+ return this.servers.filter(server => !( this.matchedIds.has(server.id)) && matchesActiveSessionServerQuery(server, query));
332
+ }
333
+ }
334
+ class LocalMcpServerMatcher {
335
+ constructor(servers) {
336
+ this.byKey = ( new Map());
337
+ for (const server of servers) {
338
+ for (const key of getRuntimeServerMatchKeys(server)) {
339
+ this.byKey.set(key, server);
340
+ }
341
+ }
342
+ }
343
+ find(keys) {
344
+ for (const key of getUniqueMcpMatchKeys(keys)) {
345
+ const server = this.byKey.get(key);
346
+ if (server) {
347
+ return server;
348
+ }
349
+ }
350
+ return undefined;
351
+ }
352
+ }
353
+ function matchesActiveSessionServerQuery(server, query) {
354
+ if (!query) {
355
+ return true;
356
+ }
357
+ return server.name.toLowerCase().includes(query);
358
+ }
359
+ function getWorkbenchServerMatchKeys(server) {
360
+ return getUniqueMcpMatchKeys([server.id, server.name, server.label]);
361
+ }
362
+ function getRuntimeServerMatchKeys(server) {
363
+ return getUniqueMcpMatchKeys([server.definition.id, server.definition.label]);
364
+ }
365
+ function getActiveSessionServerOptionsAction(commandService, sessionResource, server) {
366
+ return (new Action(
367
+ "mcpServer.activeSession.options",
368
+ localize(6034, "Server Options"),
369
+ undefined,
370
+ true,
371
+ async () => {
372
+ await commandService.executeCommand(McpCommandIds.AgentHostServerOptions, sessionResource, server.id);
373
+ }
374
+ ));
375
+ }
376
+ function createBuiltinEntry(server, activeSessionServer) {
377
+ return {
378
+ type: "builtin-item",
379
+ id: `builtin-${server.definition.id}`,
380
+ label: server.definition.label,
381
+ description: "",
382
+ collectionId: server.collection.id,
383
+ activeSessionServer,
384
+ localServer: server
385
+ };
386
+ }
387
+ const MCP_GALLERY_ITEM_TEMPLATE_ID = "mcpGalleryItem";
388
+ class McpGalleryItemProvider {
389
+ constructor(mcpWorkbenchService) {
390
+ this.mcpWorkbenchService = mcpWorkbenchService;
391
+ }
392
+ getLabel(element) {
393
+ return element.server.label;
394
+ }
395
+ getPublisherDisplayName(element) {
396
+ return element.server.publisherDisplayName;
248
397
  }
249
- updateInstallButton(button, server) {
250
- switch (server.installState) {
398
+ getDescription(element) {
399
+ return element.server.description;
400
+ }
401
+ getInstallState(element) {
402
+ switch (element.server.installState) {
251
403
  case McpServerInstallState.Installed:
252
- button.label = ( localize(5716, "Installed"));
253
- button.enabled = false;
254
- break;
404
+ return GalleryItemInstallState.Installed;
255
405
  case McpServerInstallState.Installing:
256
- button.label = ( localize(5715, "Installing..."));
257
- button.enabled = false;
258
- break;
406
+ return GalleryItemInstallState.Installing;
259
407
  default:
260
- button.label = ( localize(5717, "Install"));
261
- button.enabled = true;
262
- break;
408
+ return GalleryItemInstallState.Uninstalled;
263
409
  }
264
410
  }
265
- disposeTemplate(templateData) {
266
- templateData.elementDisposables.dispose();
267
- templateData.templateDisposables.dispose();
411
+ canInstall(element) {
412
+ return this.mcpWorkbenchService.canInstall(element.server) === true;
413
+ }
414
+ async install(element) {
415
+ await this.mcpWorkbenchService.install(element.server);
416
+ }
417
+ onDidChangeInstallState(element, listener) {
418
+ return this.mcpWorkbenchService.onChange(changed => {
419
+ if (!changed || changed.id === element.server.id) {
420
+ listener();
421
+ }
422
+ });
268
423
  }
269
424
  }
270
425
  let McpListWidget = class McpListWidget extends Disposable {
@@ -280,7 +435,10 @@ let McpListWidget = class McpListWidget extends Disposable {
280
435
  hoverService,
281
436
  agentPluginService,
282
437
  dialogService,
283
- configurationService
438
+ configurationService,
439
+ customizationHarnessService,
440
+ agentHostCustomizationService,
441
+ workspaceService
284
442
  ) {
285
443
  super();
286
444
  this.instantiationService = instantiationService;
@@ -295,6 +453,9 @@ let McpListWidget = class McpListWidget extends Disposable {
295
453
  this.agentPluginService = agentPluginService;
296
454
  this.dialogService = dialogService;
297
455
  this.configurationService = configurationService;
456
+ this.customizationHarnessService = customizationHarnessService;
457
+ this.agentHostCustomizationService = agentHostCustomizationService;
458
+ this.workspaceService = workspaceService;
298
459
  this._onDidSelectServer = this._register(( new Emitter()));
299
460
  this.onDidSelectServer = this._onDidSelectServer.event;
300
461
  this._onDidChangeItemCount = this._register(( new Emitter()));
@@ -304,6 +465,7 @@ let McpListWidget = class McpListWidget extends Disposable {
304
465
  this.disabledLinkListener = this._register(( new MutableDisposable()));
305
466
  this.filteredServers = [];
306
467
  this.filteredBuiltinCount = 0;
468
+ this.filteredActiveSessionCount = 0;
307
469
  this.displayEntries = [];
308
470
  this.galleryServers = [];
309
471
  this.searchQuery = "";
@@ -333,17 +495,17 @@ let McpListWidget = class McpListWidget extends Disposable {
333
495
  this.sectionTitleHeader = append(this.element, $(".section-title-header"));
334
496
  const titleRow = append(this.sectionTitleHeader, $(".section-title-row"));
335
497
  const sectionTitle = append(titleRow, $("h2.section-title"));
336
- sectionTitle.textContent = ( localize(5718, "MCP Servers"));
498
+ sectionTitle.textContent = ( localize(6035, "MCP Servers"));
337
499
  const sectionTitleDescription = append(this.sectionTitleHeader, $("p.section-title-description"));
338
500
  const sectionTitleDescriptionText = append(sectionTitleDescription, $("span.section-title-description-text"));
339
501
  sectionTitleDescriptionText.textContent = ( localize(
340
- 5719,
502
+ 6036,
341
503
  "An open standard that lets AI use external tools and services. MCP servers provide tools for file operations, databases, APIs, and more."
342
504
  ));
343
505
  sectionTitleDescription.appendChild(createTextNode(" "));
344
506
  this.sectionLink = append(sectionTitleDescription, $("a.section-title-link"));
345
- this.sectionLink.textContent = ( localize(5720, "Learn more about MCP servers"));
346
- this.sectionLink.href = "https://code.visualstudio.com/docs/copilot/chat/mcp-servers";
507
+ this.sectionLink.textContent = ( localize(6037, "Learn more about MCP servers"));
508
+ this.sectionLink.href = "https://code.visualstudio.com/docs/agent-customization/mcp-servers?referrer=in-product";
347
509
  this._register(addDisposableListener(this.sectionLink, "click", e => {
348
510
  e.preventDefault();
349
511
  const href = this.sectionLink.href;
@@ -368,7 +530,7 @@ let McpListWidget = class McpListWidget extends Disposable {
368
530
  this.searchAndButtonContainer = append(this.element, $(".list-search-and-button-container"));
369
531
  const searchContainer = append(this.searchAndButtonContainer, $(".list-search-container"));
370
532
  this.searchInput = this._register(( new InputBox(searchContainer, this.contextViewService, {
371
- placeholder: ( localize(5721, "Type to search...")),
533
+ placeholder: ( localize(6038, "Type to search...")),
372
534
  inputBoxStyles: defaultInputBoxStyles
373
535
  })));
374
536
  this._register(this.searchInput.onDidChange(() => {
@@ -385,10 +547,10 @@ let McpListWidget = class McpListWidget extends Disposable {
385
547
  ...defaultButtonStyles,
386
548
  secondary: true,
387
549
  supportIcons: true,
388
- title: ( localize(5722, "Back to installed servers")),
389
- ariaLabel: ( localize(5722, "Back to installed servers"))
550
+ title: ( localize(6039, "Back to installed servers")),
551
+ ariaLabel: ( localize(6039, "Back to installed servers"))
390
552
  })));
391
- this.backButton.label = `$(${Codicon.arrowLeft.id}) ${( localize(5723, "Back"))}`;
553
+ this.backButton.label = `$(${Codicon.arrowLeft.id}) ${( localize(6040, "Back"))}`;
392
554
  this.backButton.element.classList.add("list-add-button");
393
555
  backButtonContainer.style.display = "none";
394
556
  this._register(this.backButton.onDidClick(() => {
@@ -400,7 +562,7 @@ let McpListWidget = class McpListWidget extends Disposable {
400
562
  secondary: true,
401
563
  supportIcons: true
402
564
  })));
403
- this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5724, "Browse Marketplace"))}`;
565
+ this.browseButton.label = `$(${Codicon.library.id}) ${( localize(6041, "Browse Marketplace"))}`;
404
566
  this.browseButton.element.classList.add("list-add-button");
405
567
  this._register(this.browseButton.onDidClick(() => {
406
568
  this.toggleBrowseMode(!this.browseMode);
@@ -409,34 +571,32 @@ let McpListWidget = class McpListWidget extends Disposable {
409
571
  ...defaultButtonStyles,
410
572
  secondary: true,
411
573
  supportIcons: true,
412
- title: ( localize(5725, "Add Server")),
413
- ariaLabel: ( localize(5725, "Add Server"))
574
+ title: ( localize(6042, "Add Server")),
575
+ ariaLabel: ( localize(6042, "Add Server"))
414
576
  })));
415
577
  this.addButton.label = `$(${Codicon.add.id})`;
416
578
  this.addButton.element.classList.add("list-icon-button");
417
579
  this._register(
418
- this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), this.addButton.element, ( localize(5726, "Add Server")))
580
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), this.addButton.element, ( localize(6043, "Add Server")))
419
581
  );
420
582
  this._register(this.addButton.onDidClick(() => {
421
583
  this.commandService.executeCommand(McpCommandIds.AddConfiguration);
422
584
  }));
423
585
  this.emptyContainer = append(this.element, $(".mcp-empty-state"));
424
586
  const emptyHeader = append(this.emptyContainer, $(".empty-state-header"));
425
- const emptyIcon = append(emptyHeader, $(".empty-icon"));
426
- emptyIcon.classList.add(...ThemeIcon.asClassNameArray(Codicon.server));
427
587
  this.emptyText = append(emptyHeader, $(".empty-text"));
428
588
  this.emptySubtext = append(this.emptyContainer, $(".empty-subtext"));
429
589
  this.disabledContainer = append(this.element, $(".mcp-disabled-state"));
430
590
  const disabledHeader = append(this.disabledContainer, $(".empty-state-header"));
431
591
  this.disabledIcon = append(disabledHeader, $(".empty-icon"));
432
592
  const disabledText = append(disabledHeader, $(".empty-text"));
433
- disabledText.textContent = ( localize(5727, "MCP servers are disabled"));
593
+ disabledText.textContent = ( localize(6044, "MCP servers are disabled"));
434
594
  this.disabledMessage = append(this.disabledContainer, $(".empty-subtext"));
435
595
  this.listContainer = append(this.element, $(".mcp-list-container"));
436
596
  const delegate = ( new McpServerItemDelegate());
437
597
  const groupHeaderRenderer = ( new CustomizationGroupHeaderRenderer("mcpGroupHeader", this.hoverService));
438
598
  const localRenderer = this.instantiationService.createInstance(McpServerItemRenderer);
439
- const galleryRenderer = ( new McpGalleryItemRenderer(this.mcpWorkbenchService));
599
+ const galleryRenderer = ( new GalleryItemRenderer(MCP_GALLERY_ITEM_TEMPLATE_ID, ( new McpGalleryItemProvider(this.mcpWorkbenchService))));
440
600
  this.list = this._register(this.instantiationService.createInstance(
441
601
  WorkbenchList,
442
602
  "McpManagementList",
@@ -449,19 +609,10 @@ let McpListWidget = class McpListWidget extends Disposable {
449
609
  horizontalScrolling: false,
450
610
  accessibilityProvider: {
451
611
  getAriaLabel: element => {
452
- if (element.type === "group-header") {
453
- return localize(
454
- 5728,
455
- "{0}, {1} items, {2}",
456
- element.label,
457
- element.count,
458
- element.collapsed ? ( localize(5729, "collapsed")) : ( localize(5730, "expanded"))
459
- );
460
- }
461
- return element.type === "builtin-item" ? element.label : element.server.label;
612
+ return getMcpEntryAriaLabel(element, this.workspaceService.isSessionsWindow);
462
613
  },
463
614
  getWidgetAriaLabel() {
464
- return localize(5731, "MCP Servers");
615
+ return localize(6045, "MCP Servers");
465
616
  }
466
617
  },
467
618
  openOnSingleClick: true,
@@ -484,10 +635,12 @@ let McpListWidget = class McpListWidget extends Disposable {
484
635
  this.toggleGroup(e.element);
485
636
  } else if (e.element.type === "server-item") {
486
637
  const server = e.element.server;
487
- const isGallery = !server.local;
638
+ const isGallery = e.element.marketplace || !server.local;
488
639
  if (isGallery || server.description) {
489
640
  this._onDidSelectServer.fire(server);
490
641
  }
642
+ } else if (e.element.type === "session-server-item") {
643
+ this.openActiveSessionServerOptions(e.element.server);
491
644
  }
492
645
  }
493
646
  }));
@@ -503,6 +656,17 @@ let McpListWidget = class McpListWidget extends Disposable {
503
656
  this.refresh();
504
657
  }
505
658
  }));
659
+ this._register(autorun(reader => {
660
+ this.customizationHarnessService.activeSessionResource.read(reader);
661
+ if (!this.browseMode) {
662
+ this.refresh();
663
+ }
664
+ }));
665
+ this._register(this.agentHostCustomizationService.onDidChangeCustomizations(() => {
666
+ if (!this.browseMode) {
667
+ this.refresh();
668
+ }
669
+ }));
506
670
  void this.refresh();
507
671
  }
508
672
  async refresh() {
@@ -527,13 +691,13 @@ let McpListWidget = class McpListWidget extends Disposable {
527
691
  this.disabledLinkListener.clear();
528
692
  if (policyLocked) {
529
693
  this.disabledMessage.textContent = ( localize(
530
- 5732,
694
+ 6046,
531
695
  "Access to MCP servers is disabled by your organization. Contact your organization administrator for more information."
532
696
  ));
533
697
  } else {
534
- this.disabledMessage.appendChild(createTextNode(( localize(5733, "MCP servers are disabled in settings. "))));
698
+ this.disabledMessage.appendChild(createTextNode(( localize(6047, "MCP servers are disabled in settings. "))));
535
699
  const link = append(this.disabledMessage, $("a.mcp-disabled-settings-link"));
536
- link.textContent = ( localize(5734, "Configure in settings."));
700
+ link.textContent = ( localize(6048, "Configure in settings."));
537
701
  link.href = "#";
538
702
  link.setAttribute("role", "button");
539
703
  this.disabledLinkListener.value = addDisposableListener(link, "click", e => {
@@ -555,7 +719,7 @@ let McpListWidget = class McpListWidget extends Disposable {
555
719
  this.addButton.element.style.display = browse ? "none" : "";
556
720
  this.browseButton.element.parentElement.style.display = browse ? "none" : "";
557
721
  this.backButton.element.parentElement.style.display = browse ? "" : "none";
558
- this.searchInput.setPlaceHolder(browse ? ( localize(5735, "Search MCP marketplace...")) : ( localize(5721, "Type to search...")));
722
+ this.searchInput.setPlaceHolder(browse ? ( localize(6049, "Search MCP marketplace...")) : ( localize(6038, "Type to search...")));
559
723
  if (browse) {
560
724
  void this.queryGallery();
561
725
  } else {
@@ -572,7 +736,7 @@ let McpListWidget = class McpListWidget extends Disposable {
572
736
  const cts = this.galleryCts = ( new CancellationTokenSource());
573
737
  this.emptyContainer.style.display = "flex";
574
738
  this.listContainer.style.display = "none";
575
- this.emptyText.textContent = ( localize(5736, "Loading marketplace..."));
739
+ this.emptyText.textContent = ( localize(6050, "Loading marketplace..."));
576
740
  this.emptySubtext.textContent = "";
577
741
  try {
578
742
  const pager = await this.mcpWorkbenchService.queryGallery({
@@ -588,8 +752,8 @@ let McpListWidget = class McpListWidget extends Disposable {
588
752
  this.galleryServers = [];
589
753
  this.emptyContainer.style.display = "flex";
590
754
  this.listContainer.style.display = "none";
591
- this.emptyText.textContent = ( localize(5737, "Unable to load marketplace"));
592
- this.emptySubtext.textContent = ( localize(5738, "Check your connection and try again"));
755
+ this.emptyText.textContent = ( localize(6051, "Unable to load marketplace"));
756
+ this.emptySubtext.textContent = ( localize(6052, "Check your connection and try again"));
593
757
  }
594
758
  }
595
759
  }
@@ -598,10 +762,10 @@ let McpListWidget = class McpListWidget extends Disposable {
598
762
  this.emptyContainer.style.display = "flex";
599
763
  this.listContainer.style.display = "none";
600
764
  if (this.searchQuery.trim()) {
601
- this.emptyText.textContent = ( localize(5739, "No servers match '{0}'", this.searchQuery));
602
- this.emptySubtext.textContent = ( localize(5740, "Try a different search term"));
765
+ this.emptyText.textContent = ( localize(6053, "No servers match '{0}'", this.searchQuery));
766
+ this.emptySubtext.textContent = ( localize(6054, "Try a different search term"));
603
767
  } else {
604
- this.emptyText.textContent = ( localize(5741, "No MCP servers available"));
768
+ this.emptyText.textContent = ( localize(6055, "No MCP servers available"));
605
769
  this.emptySubtext.textContent = "";
606
770
  }
607
771
  } else {
@@ -610,12 +774,16 @@ let McpListWidget = class McpListWidget extends Disposable {
610
774
  }
611
775
  const entries = ( this.galleryServers.map(server => ({
612
776
  type: "server-item",
613
- server
777
+ server,
778
+ marketplace: true
614
779
  })));
615
780
  this.list.splice(0, this.list.length, entries);
616
781
  }
617
782
  filterServers() {
618
783
  const query = this.searchQuery.toLowerCase().trim();
784
+ const activeSessionResource = this.customizationHarnessService.activeSessionResource.get();
785
+ const activeSessionMatcher = ( new ActiveSessionMcpServerMatcher(this.agentHostCustomizationService.getMcpServers(activeSessionResource)));
786
+ const localServerMatcher = ( new LocalMcpServerMatcher(this.mcpService.servers.get()));
619
787
  if (query) {
620
788
  this.filteredServers = this.mcpWorkbenchService.local.filter(
621
789
  server => server.label.toLowerCase().includes(query) || (server.description?.toLowerCase().includes(query))
@@ -625,45 +793,36 @@ let McpListWidget = class McpListWidget extends Disposable {
625
793
  }
626
794
  const localIds = ( new Set(( this.filteredServers.map(s => s.id))));
627
795
  const builtinServers = this.mcpService.servers.get().filter(s => !( localIds.has(s.definition.id))).filter(s => !query || s.definition.label.toLowerCase().includes(query));
628
- if (this.filteredServers.length === 0 && builtinServers.length === 0) {
629
- this.emptyContainer.style.display = "flex";
630
- this.listContainer.style.display = "none";
631
- if (this.searchQuery.trim()) {
632
- this.emptyText.textContent = ( localize(5742, "No servers match '{0}'", this.searchQuery));
633
- this.emptySubtext.textContent = ( localize(5740, "Try a different search term"));
634
- } else {
635
- this.emptyText.textContent = ( localize(5743, "No MCP servers configured"));
636
- this.emptySubtext.textContent = ( localize(5744, "Add an MCP server configuration to get started"));
637
- }
638
- } else {
639
- this.emptyContainer.style.display = "none";
640
- this.listContainer.style.display = "";
641
- }
642
796
  const groups = [{
643
797
  scope: LocalMcpServerScope.Workspace,
644
- label: ( localize(5745, "Workspace")),
798
+ label: ( localize(6056, "Workspace")),
645
799
  icon: workspaceIcon,
646
800
  description: ( localize(
647
- 5746,
801
+ 6057,
648
802
  "MCP servers configured in your workspace settings, shared with your team via version control."
649
803
  )),
650
804
  servers: []
651
805
  }, {
652
806
  scope: LocalMcpServerScope.User,
653
- label: ( localize(5747, "User")),
807
+ label: ( localize(6058, "User")),
654
808
  icon: userIcon,
655
809
  description: ( localize(
656
- 5748,
810
+ 6059,
657
811
  "MCP servers configured in your user settings. Private to you and available across all projects."
658
812
  )),
659
813
  servers: []
660
814
  }];
661
815
  for (const server of this.filteredServers) {
816
+ const entry = {
817
+ server,
818
+ activeSessionServer: activeSessionMatcher.take(getWorkbenchServerMatchKeys(server)),
819
+ localServer: localServerMatcher.find(getWorkbenchServerMatchKeys(server))
820
+ };
662
821
  const scope = server.local?.scope;
663
822
  if (scope === LocalMcpServerScope.Workspace) {
664
- groups[0].servers.push(server);
823
+ groups[0].servers.push(entry);
665
824
  } else {
666
- groups[1].servers.push(server);
825
+ groups[1].servers.push(entry);
667
826
  }
668
827
  }
669
828
  const entries = [];
@@ -685,10 +844,16 @@ let McpListWidget = class McpListWidget extends Disposable {
685
844
  collapsed
686
845
  });
687
846
  if (!collapsed) {
688
- for (const server of group.servers) {
847
+ for (const {
848
+ server,
849
+ activeSessionServer,
850
+ localServer
851
+ } of group.servers) {
689
852
  entries.push({
690
853
  type: "server-item",
691
- server
854
+ server,
855
+ activeSessionServer,
856
+ localServer
692
857
  });
693
858
  }
694
859
  }
@@ -699,37 +864,76 @@ let McpListWidget = class McpListWidget extends Disposable {
699
864
  const extensionServers = [];
700
865
  const otherBuiltinServers = [];
701
866
  for (const server of builtinServers) {
867
+ const entry = {
868
+ server,
869
+ activeSessionServer: activeSessionMatcher.take(getRuntimeServerMatchKeys(server))
870
+ };
702
871
  const source = collectionSources.get(server.collection.id);
703
872
  if (server.collection.id.startsWith(PLUGIN_COLLECTION_PREFIX)) {
704
- pluginServers.push(server);
873
+ pluginServers.push(entry);
705
874
  } else if (source instanceof ExtensionIdentifier && !isCopilotExtension(source)) {
706
- extensionServers.push(server);
875
+ extensionServers.push(entry);
707
876
  } else {
708
- otherBuiltinServers.push(server);
877
+ otherBuiltinServers.push(entry);
709
878
  }
710
879
  }
880
+ const activeSessionOnlyServers = activeSessionMatcher.unmatched(query);
881
+ if (this.filteredServers.length === 0 && builtinServers.length === 0 && activeSessionOnlyServers.length === 0) {
882
+ this.emptyContainer.style.display = "flex";
883
+ this.listContainer.style.display = "none";
884
+ if (this.searchQuery.trim()) {
885
+ this.emptyText.textContent = ( localize(6060, "No servers match '{0}'", this.searchQuery));
886
+ this.emptySubtext.textContent = ( localize(6054, "Try a different search term"));
887
+ } else {
888
+ this.emptyText.textContent = ( localize(6061, "No MCP servers configured"));
889
+ this.emptySubtext.textContent = ( localize(6062, "Add an MCP server configuration to get started"));
890
+ }
891
+ } else {
892
+ this.emptyContainer.style.display = "none";
893
+ this.listContainer.style.display = "";
894
+ }
895
+ if (activeSessionOnlyServers.length > 0) {
896
+ const collapsed = ( this.collapsedGroups.has("active-session"));
897
+ entries.push({
898
+ type: "group-header",
899
+ id: "mcp-group-active-session",
900
+ scope: "active-session",
901
+ label: ( localize(6063, "Active Session")),
902
+ icon: mcpServerIcon,
903
+ count: activeSessionOnlyServers.length,
904
+ isFirst,
905
+ description: ( localize(6064, "MCP servers reported by the active session.")),
906
+ collapsed
907
+ });
908
+ if (!collapsed) {
909
+ for (const server of activeSessionOnlyServers) {
910
+ entries.push({
911
+ type: "session-server-item",
912
+ server
913
+ });
914
+ }
915
+ }
916
+ isFirst = false;
917
+ }
711
918
  if (pluginServers.length > 0) {
712
919
  const collapsed = ( this.collapsedGroups.has("plugin"));
713
920
  entries.push({
714
921
  type: "group-header",
715
922
  id: "mcp-group-plugin",
716
923
  scope: "plugin",
717
- label: ( localize(5749, "Plugins")),
924
+ label: ( localize(6065, "Plugins")),
718
925
  icon: pluginIcon,
719
926
  count: pluginServers.length,
720
927
  isFirst,
721
- description: ( localize(5750, "MCP servers provided by installed plugins.")),
928
+ description: ( localize(6066, "MCP servers provided by installed plugins.")),
722
929
  collapsed
723
930
  });
724
931
  if (!collapsed) {
725
- for (const server of pluginServers) {
726
- entries.push({
727
- type: "builtin-item",
728
- id: `builtin-${server.definition.id}`,
729
- label: server.definition.label,
730
- description: "",
731
- collectionId: server.collection.id
732
- });
932
+ for (const {
933
+ server,
934
+ activeSessionServer
935
+ } of pluginServers) {
936
+ entries.push(createBuiltinEntry(server, activeSessionServer));
733
937
  }
734
938
  }
735
939
  isFirst = false;
@@ -740,22 +944,19 @@ let McpListWidget = class McpListWidget extends Disposable {
740
944
  type: "group-header",
741
945
  id: "mcp-group-extension",
742
946
  scope: "extension",
743
- label: ( localize(5751, "Extensions")),
947
+ label: ( localize(6067, "Extensions")),
744
948
  icon: extensionIcon,
745
949
  count: extensionServers.length,
746
950
  isFirst,
747
- description: ( localize(5752, "MCP servers contributed by installed VS Code extensions.")),
951
+ description: ( localize(6068, "MCP servers contributed by installed VS Code extensions.")),
748
952
  collapsed
749
953
  });
750
954
  if (!collapsed) {
751
- for (const server of extensionServers) {
752
- entries.push({
753
- type: "builtin-item",
754
- id: `builtin-${server.definition.id}`,
755
- label: server.definition.label,
756
- description: "",
757
- collectionId: server.collection.id
758
- });
955
+ for (const {
956
+ server,
957
+ activeSessionServer
958
+ } of extensionServers) {
959
+ entries.push(createBuiltinEntry(server, activeSessionServer));
759
960
  }
760
961
  }
761
962
  isFirst = false;
@@ -766,22 +967,19 @@ let McpListWidget = class McpListWidget extends Disposable {
766
967
  type: "group-header",
767
968
  id: "mcp-group-builtin",
768
969
  scope: "builtin",
769
- label: ( localize(5753, "Built-in")),
970
+ label: ( localize(6069, "Built-in")),
770
971
  icon: builtinIcon,
771
972
  count: otherBuiltinServers.length,
772
973
  isFirst,
773
- description: ( localize(5754, "MCP servers built into VS Code. These are available automatically.")),
974
+ description: ( localize(6070, "MCP servers built into VS Code. These are available automatically.")),
774
975
  collapsed
775
976
  });
776
977
  if (!collapsed) {
777
- for (const server of otherBuiltinServers) {
778
- entries.push({
779
- type: "builtin-item",
780
- id: `builtin-${server.definition.id}`,
781
- label: server.definition.label,
782
- description: "",
783
- collectionId: server.collection.id
784
- });
978
+ for (const {
979
+ server,
980
+ activeSessionServer
981
+ } of otherBuiltinServers) {
982
+ entries.push(createBuiltinEntry(server, activeSessionServer));
785
983
  }
786
984
  }
787
985
  isFirst = false;
@@ -789,10 +987,11 @@ let McpListWidget = class McpListWidget extends Disposable {
789
987
  this.displayEntries = entries;
790
988
  this.list.splice(0, this.list.length, this.displayEntries);
791
989
  this.filteredBuiltinCount = builtinServers.length;
990
+ this.filteredActiveSessionCount = activeSessionOnlyServers.length;
792
991
  this._onDidChangeItemCount.fire(this.itemCount);
793
992
  }
794
993
  get itemCount() {
795
- return this.filteredServers.length + this.filteredBuiltinCount;
994
+ return this.filteredServers.length + this.filteredBuiltinCount + this.filteredActiveSessionCount;
796
995
  }
797
996
  fireItemCount() {
798
997
  this._onDidChangeItemCount.fire(this.itemCount);
@@ -850,10 +1049,31 @@ let McpListWidget = class McpListWidget extends Disposable {
850
1049
  this.list.setFocus([0]);
851
1050
  }
852
1051
  }
1052
+ openActiveSessionServerOptions(server) {
1053
+ void this.commandService.executeCommand(
1054
+ McpCommandIds.AgentHostServerOptions,
1055
+ this.customizationHarnessService.activeSessionResource.get(),
1056
+ server.id
1057
+ );
1058
+ }
853
1059
  onContextMenu(e) {
854
1060
  if (!e.element) {
855
1061
  return;
856
1062
  }
1063
+ if (e.element.type === "session-server-item") {
1064
+ const disposables = ( new DisposableStore());
1065
+ const optionsAction = disposables.add(getActiveSessionServerOptionsAction(
1066
+ this.commandService,
1067
+ this.customizationHarnessService.activeSessionResource.get(),
1068
+ e.element.server
1069
+ ));
1070
+ this.contextMenuService.showContextMenu({
1071
+ getAnchor: () => e.anchor,
1072
+ getActions: () => [optionsAction],
1073
+ onHide: () => disposables.dispose()
1074
+ });
1075
+ return;
1076
+ }
857
1077
  if (e.element.type === "builtin-item") {
858
1078
  const collectionId = e.element.collectionId;
859
1079
  const pluginUriStr = getPluginUriFromCollectionId(collectionId);
@@ -865,7 +1085,7 @@ let McpListWidget = class McpListWidget extends Disposable {
865
1085
  return;
866
1086
  }
867
1087
  const disposables = ( new DisposableStore());
868
- const showPluginAction = disposables.add(( new Action("mcpServer.showPlugin", ( localize(5755, "Show Plugin")), undefined, true, async () => {
1088
+ const showPluginAction = disposables.add(( new Action("mcpServer.showPlugin", ( localize(6071, "Show Plugin")), undefined, true, async () => {
869
1089
  const item = {
870
1090
  kind: AgentPluginItemKind.Installed,
871
1091
  name: plugin.label,
@@ -875,14 +1095,14 @@ let McpListWidget = class McpListWidget extends Disposable {
875
1095
  };
876
1096
  this._onDidRequestShowPlugin.fire(item);
877
1097
  })));
878
- const uninstallAction = disposables.add(( new Action("mcpServer.uninstallPlugin", ( localize(5756, "Uninstall Plugin")), undefined, true, async () => {
1098
+ const uninstallAction = disposables.add(( new Action("mcpServer.uninstallPlugin", ( localize(6072, "Uninstall Plugin")), undefined, true, async () => {
879
1099
  const result = await this.dialogService.confirm({
880
- message: ( localize(5757, "This MCP server is provided by the plugin '{0}'", plugin.label)),
1100
+ message: ( localize(6073, "This MCP server is provided by the plugin '{0}'", plugin.label)),
881
1101
  detail: ( localize(
882
- 5758,
1102
+ 6074,
883
1103
  "Individual MCP servers from a plugin cannot be removed separately. Would you like to uninstall the entire plugin?"
884
1104
  )),
885
- primaryButton: ( localize(5759, "Uninstall Plugin")),
1105
+ primaryButton: ( localize(6075, "Uninstall Plugin")),
886
1106
  type: "question"
887
1107
  });
888
1108
  if (result.confirmed) {
@@ -923,6 +1143,6 @@ let McpListWidget = class McpListWidget extends Disposable {
923
1143
  });
924
1144
  }
925
1145
  };
926
- McpListWidget = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IMcpWorkbenchService)), ( __param(2, IMcpService)), ( __param(3, IMcpRegistry)), ( __param(4, ICommandService)), ( __param(5, IOpenerService)), ( __param(6, IContextViewService)), ( __param(7, IContextMenuService)), ( __param(8, IHoverService)), ( __param(9, IAgentPluginService)), ( __param(10, IDialogService)), ( __param(11, IConfigurationService))], McpListWidget));
1146
+ McpListWidget = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IMcpWorkbenchService)), ( __param(2, IMcpService)), ( __param(3, IMcpRegistry)), ( __param(4, ICommandService)), ( __param(5, IOpenerService)), ( __param(6, IContextViewService)), ( __param(7, IContextMenuService)), ( __param(8, IHoverService)), ( __param(9, IAgentPluginService)), ( __param(10, IDialogService)), ( __param(11, IConfigurationService)), ( __param(12, ICustomizationHarnessService)), ( __param(13, IAgentHostCustomizationService)), ( __param(14, IAICustomizationWorkspaceService))], McpListWidget));
927
1147
 
928
1148
  export { McpListWidget };