@codingame/monaco-vscode-api 37.6.0 → 38.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 (2562) hide show
  1. package/lifecycle.d.ts +1 -0
  2. package/lifecycle.js +29 -15
  3. package/missing-services.js +704 -98
  4. package/package.json +8 -8
  5. package/services.d.ts +34 -4
  6. package/services.js +37 -7
  7. package/vscode/product.json.js +1 -1
  8. package/vscode/src/vs/base/browser/browser.js +2 -1
  9. package/vscode/src/vs/base/browser/dom.d.ts +10 -0
  10. package/vscode/src/vs/base/browser/dom.js +32 -6
  11. package/vscode/src/vs/base/browser/dompurify/dompurify.d.ts +3 -3
  12. package/vscode/src/vs/base/browser/markdownRenderer.js +78 -4
  13. package/vscode/src/vs/base/browser/pixelRatio.js +3 -2
  14. package/vscode/src/vs/base/browser/ui/animations/animations.d.ts +31 -9
  15. package/vscode/src/vs/base/browser/ui/animations/animations.js +49 -32
  16. package/vscode/src/vs/base/browser/ui/button/button.js +1 -1
  17. package/vscode/src/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  18. package/vscode/src/vs/base/browser/ui/contextview/contextview.d.ts +12 -3
  19. package/vscode/src/vs/base/browser/ui/contextview/contextview.js +32 -21
  20. package/vscode/src/vs/base/browser/ui/grid/gridview.d.ts +1 -0
  21. package/vscode/src/vs/base/browser/ui/grid/gridview.js +27 -8
  22. package/vscode/src/vs/base/browser/ui/hover/hover.d.ts +3 -1
  23. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.css +13 -8
  24. package/vscode/src/vs/base/browser/ui/iconLabel/iconlabel.css +3 -0
  25. package/vscode/src/vs/base/browser/ui/inputbox/inputBox.js +6 -5
  26. package/vscode/src/vs/base/browser/ui/list/listView.js +16 -5
  27. package/vscode/src/vs/base/browser/ui/list/listWidget.js +9 -8
  28. package/vscode/src/vs/base/browser/ui/menu/menu.js +94 -2
  29. package/vscode/src/vs/base/browser/ui/pixelSpinner/pixelSpinner.css +2 -1
  30. package/vscode/src/vs/base/browser/ui/radio/radio.css +11 -0
  31. package/vscode/src/vs/base/browser/ui/radio/radio.d.ts +2 -0
  32. package/vscode/src/vs/base/browser/ui/radio/radio.js +9 -1
  33. package/vscode/src/vs/base/browser/ui/selectBox/selectBox.d.ts +7 -1
  34. package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +17 -5
  35. package/vscode/src/vs/base/browser/ui/toggle/switch.css +16 -7
  36. package/vscode/src/vs/base/browser/ui/toggle/toggle.css +9 -1
  37. package/vscode/src/vs/base/browser/ui/toggle/toggle.js +5 -1
  38. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.d.ts +5 -0
  39. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +18 -8
  40. package/vscode/src/vs/base/browser/ui/tree/abstractTree.d.ts +3 -0
  41. package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +20 -6
  42. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.d.ts +8 -0
  43. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +8 -1
  44. package/vscode/src/vs/base/browser/ui/tree/objectTree.d.ts +1 -0
  45. package/vscode/src/vs/base/browser/ui/tree/objectTree.js +3 -0
  46. package/vscode/src/vs/base/common/async.js +89 -10
  47. package/vscode/src/vs/base/common/codicons.d.ts +3 -0
  48. package/vscode/src/vs/base/common/codiconsLibrary.d.ts +3 -0
  49. package/vscode/src/vs/base/common/codiconsLibrary.js +3 -0
  50. package/vscode/src/vs/base/common/date.js +5 -1
  51. package/vscode/src/vs/base/common/event.js +1 -1
  52. package/vscode/src/vs/base/common/fuzzyScorer.js +26 -13
  53. package/vscode/src/vs/base/common/hash.d.ts +12 -0
  54. package/vscode/src/vs/base/common/hash.js +18 -3
  55. package/vscode/src/vs/base/common/json.d.ts +6 -0
  56. package/vscode/src/vs/base/common/json.js +14 -2
  57. package/vscode/src/vs/base/common/jsonEdit.js +7 -1
  58. package/vscode/src/vs/base/common/lifecycle.d.ts +3 -2
  59. package/vscode/src/vs/base/common/lifecycle.js +3 -3
  60. package/vscode/src/vs/base/common/network.d.ts +5 -0
  61. package/vscode/src/vs/base/common/network.js +3 -0
  62. package/vscode/src/vs/base/common/objects.js +11 -8
  63. package/vscode/src/vs/base/common/product.d.ts +4 -0
  64. package/vscode/src/vs/base/common/resources.d.ts +5 -3
  65. package/vscode/src/vs/base/common/resources.js +14 -3
  66. package/vscode/src/vs/base/common/strings.js +4 -1
  67. package/vscode/src/vs/base/common/uri.js +21 -11
  68. package/vscode/src/vs/base/common/validation.js +29 -1
  69. package/vscode/src/vs/base/parts/request/common/request.d.ts +12 -0
  70. package/vscode/src/vs/editor/browser/config/fontMeasurements.d.ts +1 -0
  71. package/vscode/src/vs/editor/browser/config/fontMeasurements.js +13 -3
  72. package/vscode/src/vs/editor/browser/controller/editContext/clipboardUtils.d.ts +2 -0
  73. package/vscode/src/vs/editor/browser/controller/editContext/clipboardUtils.js +3 -0
  74. package/vscode/src/vs/editor/browser/controller/editContext/native/nativeEditContext.js +3 -1
  75. package/vscode/src/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js +2 -2
  76. package/vscode/src/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js +3 -1
  77. package/vscode/src/vs/editor/browser/editorBrowser.d.ts +1 -0
  78. package/vscode/src/vs/editor/browser/services/openerService.js +3 -2
  79. package/vscode/src/vs/editor/browser/view/viewController.d.ts +2 -2
  80. package/vscode/src/vs/editor/browser/view/viewController.js +2 -2
  81. package/vscode/src/vs/editor/browser/view.js +2 -0
  82. package/vscode/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +7 -0
  83. package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +6 -0
  84. package/vscode/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js +6 -0
  85. package/vscode/src/vs/editor/browser/viewParts/whitespace/whitespace.d.ts +1 -0
  86. package/vscode/src/vs/editor/browser/viewParts/whitespace/whitespace.js +10 -3
  87. package/vscode/src/vs/editor/browser/viewParts/wordWrapIndicator/wordWrapIndicator.css +10 -0
  88. package/vscode/src/vs/editor/browser/viewParts/wordWrapIndicator/wordWrapIndicator.d.ts +33 -0
  89. package/vscode/src/vs/editor/browser/viewParts/wordWrapIndicator/wordWrapIndicator.js +102 -0
  90. package/vscode/src/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +21 -11
  91. package/vscode/src/vs/editor/browser/widget/diffEditor/commands.js +12 -12
  92. package/vscode/src/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js +12 -12
  93. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +1 -1
  94. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js +4 -4
  95. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js +4 -4
  96. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.d.ts +1 -0
  97. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.d.ts +3 -0
  98. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +2 -1
  99. package/vscode/src/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.d.ts +3 -2
  100. package/vscode/src/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +153 -46
  101. package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +4 -4
  102. package/vscode/src/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +1 -1
  103. package/vscode/src/vs/editor/browser/widget/diffEditor/registrations.contribution.js +5 -5
  104. package/vscode/src/vs/editor/browser/widget/diffEditor/style.css +123 -0
  105. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/colors.js +3 -3
  106. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +6 -2
  107. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorOptions.d.ts +8 -5
  108. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorOptions.js +16 -10
  109. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel.d.ts +8 -6
  110. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel.js +55 -24
  111. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget.d.ts +7 -2
  112. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget.js +60 -17
  113. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.d.ts +4 -4
  114. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +31 -2
  115. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/style.css +95 -0
  116. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/virtualizedItemManager.js +1 -0
  117. package/vscode/src/vs/editor/common/commands/columnSelectionPasteCommand.d.ts +13 -0
  118. package/vscode/src/vs/editor/common/commands/columnSelectionPasteCommand.js +68 -0
  119. package/vscode/src/vs/editor/common/config/editorConfigurationSchema.js +60 -52
  120. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +90 -84
  121. package/vscode/src/vs/editor/common/config/editorOptions.js +503 -460
  122. package/vscode/src/vs/editor/common/core/editorColorRegistry.d.ts +1 -0
  123. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +78 -74
  124. package/vscode/src/vs/editor/common/cursor/cursor.d.ts +1 -1
  125. package/vscode/src/vs/editor/common/cursor/cursor.js +26 -10
  126. package/vscode/src/vs/editor/common/cursor/cursorTypeEditOperations.d.ts +14 -2
  127. package/vscode/src/vs/editor/common/cursor/cursorTypeEditOperations.js +78 -14
  128. package/vscode/src/vs/editor/common/cursor/cursorTypeOperations.d.ts +1 -1
  129. package/vscode/src/vs/editor/common/cursor/cursorTypeOperations.js +10 -2
  130. package/vscode/src/vs/editor/common/cursorCommon.d.ts +7 -0
  131. package/vscode/src/vs/editor/common/cursorCommon.js +1 -0
  132. package/vscode/src/vs/editor/common/editorContextKeys.js +53 -53
  133. package/vscode/src/vs/editor/common/languages/modesRegistry.js +1 -1
  134. package/vscode/src/vs/editor/common/languages.js +56 -56
  135. package/vscode/src/vs/editor/common/model/editStack.js +1 -1
  136. package/vscode/src/vs/editor/common/multiDiffEditor.d.ts +6 -0
  137. package/vscode/src/vs/editor/common/services/inMemoryTextModelService.d.ts +17 -0
  138. package/vscode/src/vs/editor/common/services/inMemoryTextModelService.js +101 -0
  139. package/vscode/src/vs/editor/common/services/languageService.d.ts +1 -0
  140. package/vscode/src/vs/editor/common/services/languageService.js +6 -5
  141. package/vscode/src/vs/editor/common/services/resolverService.service.d.ts +8 -0
  142. package/vscode/src/vs/editor/common/standalone/standaloneEnums.d.ts +87 -84
  143. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +87 -84
  144. package/vscode/src/vs/editor/common/standaloneStrings.js +51 -51
  145. package/vscode/src/vs/editor/common/textModelEditSource.d.ts +18 -0
  146. package/vscode/src/vs/editor/common/textModelEditSource.js +13 -0
  147. package/vscode/src/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
  148. package/vscode/src/vs/editor/common/viewLayout/viewLinesViewportData.d.ts +1 -0
  149. package/vscode/src/vs/editor/common/viewLayout/viewLinesViewportData.js +3 -0
  150. package/vscode/src/vs/editor/common/viewModel/modelLineProjection.d.ts +1 -0
  151. package/vscode/src/vs/editor/common/viewModel/modelLineProjection.js +10 -1
  152. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.d.ts +2 -1
  153. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +5 -2
  154. package/vscode/src/vs/editor/common/viewModel/viewModelLines.d.ts +3 -0
  155. package/vscode/src/vs/editor/common/viewModel/viewModelLines.js +7 -0
  156. package/vscode/src/vs/editor/common/viewModel.d.ts +1 -0
  157. package/vscode/src/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
  158. package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
  159. package/vscode/src/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
  160. package/vscode/src/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
  161. package/vscode/src/vs/editor/contrib/clipboard/browser/clipboard.js +20 -17
  162. package/vscode/src/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
  163. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionCommands.js +18 -18
  164. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
  165. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
  166. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
  167. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
  168. package/vscode/src/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
  169. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
  170. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
  171. package/vscode/src/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
  172. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  173. package/vscode/src/vs/editor/contrib/comment/browser/comment.js +6 -6
  174. package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +13 -13
  175. package/vscode/src/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  176. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
  177. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +36 -35
  178. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +5 -5
  179. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  180. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/pasteEditSession.d.ts +10 -0
  181. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/pasteEditSession.js +16 -0
  182. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.d.ts +3 -2
  183. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +26 -18
  184. package/vscode/src/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  185. package/vscode/src/vs/editor/contrib/find/browser/findController.js +17 -17
  186. package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +28 -28
  187. package/vscode/src/vs/editor/contrib/folding/browser/folding.js +20 -20
  188. package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  189. package/vscode/src/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  190. package/vscode/src/vs/editor/contrib/format/browser/formatActions.js +2 -2
  191. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  192. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +13 -13
  193. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +33 -33
  194. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  195. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
  196. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  197. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  198. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  199. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  200. package/vscode/src/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  201. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +3 -3
  202. package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +2 -2
  203. package/vscode/src/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  204. package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +22 -22
  205. package/vscode/src/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
  206. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +7 -7
  207. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
  208. package/vscode/src/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  209. package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +18 -18
  210. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +5 -5
  211. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +21 -21
  212. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -13
  213. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +6 -6
  214. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  215. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +4 -4
  216. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +2 -2
  217. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  218. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +1 -1
  219. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +2 -2
  220. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
  221. package/vscode/src/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  222. package/vscode/src/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  223. package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
  224. package/vscode/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  225. package/vscode/src/vs/editor/contrib/links/browser/links.js +6 -6
  226. package/vscode/src/vs/editor/contrib/message/browser/messageController.js +13 -14
  227. package/vscode/src/vs/editor/contrib/multicursor/browser/multicursor.d.ts +3 -1
  228. package/vscode/src/vs/editor/contrib/multicursor/browser/multicursor.js +78 -32
  229. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  230. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  231. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  232. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  233. package/vscode/src/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +1 -1
  234. package/vscode/src/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +11 -11
  235. package/vscode/src/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  236. package/vscode/src/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  237. package/vscode/src/vs/editor/contrib/rename/browser/rename.js +11 -11
  238. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  239. package/vscode/src/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js +18 -11
  240. package/vscode/src/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  241. package/vscode/src/vs/editor/contrib/snippet/browser/snippetController2.js +5 -5
  242. package/vscode/src/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  243. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  244. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +2 -1
  245. package/vscode/src/vs/editor/contrib/suggest/browser/suggest.js +9 -9
  246. package/vscode/src/vs/editor/contrib/suggest/browser/suggestController.js +11 -11
  247. package/vscode/src/vs/editor/contrib/suggest/browser/suggestModel.js +5 -3
  248. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +18 -18
  249. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +3 -3
  250. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  251. package/vscode/src/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  252. package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  253. package/vscode/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  254. package/vscode/src/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  255. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  256. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  257. package/vscode/src/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  258. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  259. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider.d.ts +11 -0
  260. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider.js +1 -1
  261. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.d.ts +2 -1
  262. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +64 -11
  263. package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +3 -3
  264. package/vscode/src/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.d.ts +3 -2
  265. package/vscode/src/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js +3 -0
  266. package/vscode/src/vs/editor/standalone/browser/standaloneServices.js +7 -59
  267. package/vscode/src/vs/platform/accessibility/browser/accessibleView.d.ts +14 -3
  268. package/vscode/src/vs/platform/accessibility/browser/accessibleView.js +10 -1
  269. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.d.ts +2 -0
  270. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +83 -68
  271. package/vscode/src/vs/platform/action/common/actionCommonCategories.js +6 -6
  272. package/vscode/src/vs/platform/actionWidget/browser/actionList.d.ts +122 -8
  273. package/vscode/src/vs/platform/actionWidget/browser/actionList.js +871 -196
  274. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.css +70 -12
  275. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.d.ts +5 -4
  276. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +57 -34
  277. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.service.d.ts +8 -3
  278. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +3 -2
  279. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +2 -2
  280. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetMotion.d.ts +5 -0
  281. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetMotion.js +15 -0
  282. package/vscode/src/vs/platform/actionWidget/browser/tabbedActionListWidget.css +57 -4
  283. package/vscode/src/vs/platform/actionWidget/browser/tabbedActionListWidget.d.ts +44 -1
  284. package/vscode/src/vs/platform/actionWidget/browser/tabbedActionListWidget.js +358 -33
  285. package/vscode/src/vs/platform/actions/browser/buttonbar.js +3 -3
  286. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.d.ts +1 -0
  287. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +24 -13
  288. package/vscode/src/vs/platform/actions/browser/toolbar.js +3 -3
  289. package/vscode/src/vs/platform/actions/common/actions.service.d.ts +1 -1
  290. package/vscode/src/vs/platform/actions/common/menuResetAction.js +1 -1
  291. package/vscode/src/vs/platform/actions/common/menuService.js +106 -67
  292. package/vscode/src/vs/platform/agentHost/browser/agentHostProtocolClient.d.ts +72 -37
  293. package/vscode/src/vs/platform/agentHost/browser/agentHostProtocolClient.js +680 -100
  294. package/vscode/src/vs/platform/agentHost/browser/agentHostSandboxToggle.d.ts +4 -1
  295. package/vscode/src/vs/platform/agentHost/browser/agentHostSandboxToggle.js +28 -11
  296. package/vscode/src/vs/platform/agentHost/browser/nullAgentHostService.d.ts +4 -0
  297. package/vscode/src/vs/platform/agentHost/browser/nullAgentHostService.js +9 -0
  298. package/vscode/src/vs/platform/agentHost/common/agent.d.ts +370 -38
  299. package/vscode/src/vs/platform/agentHost/common/agent.js +3 -2
  300. package/vscode/src/vs/platform/agentHost/common/agentHostByokLm.d.ts +27 -0
  301. package/vscode/src/vs/platform/agentHost/common/agentHostChangesetOperationService.d.ts +5 -1
  302. package/vscode/src/vs/platform/agentHost/common/agentHostChatIdentity.d.ts +3 -0
  303. package/vscode/src/vs/platform/agentHost/common/agentHostChatIdentity.js +8 -0
  304. package/vscode/src/vs/platform/agentHost/common/agentHostConfigurationSync.d.ts +5 -0
  305. package/vscode/src/vs/platform/agentHost/common/agentHostConfigurationSync.js +15 -4
  306. package/vscode/src/vs/platform/agentHost/common/agentHostConnectionsService.d.ts +5 -0
  307. package/vscode/src/vs/platform/agentHost/common/agentHostConnectionsService.service.d.ts +9 -0
  308. package/vscode/src/vs/platform/agentHost/common/agentHostEnablementService.js +40 -9
  309. package/vscode/src/vs/platform/agentHost/common/agentHostEnablementService.service.d.ts +3 -6
  310. package/vscode/src/vs/platform/agentHost/common/agentHostExtensionProtocol.d.ts +150 -1
  311. package/vscode/src/vs/platform/agentHost/common/agentHostExtensionProtocol.js +37 -2
  312. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +5 -0
  313. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +106 -41
  314. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.d.ts +8 -0
  315. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.js +19 -0
  316. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.service.d.ts +17 -0
  317. package/vscode/src/vs/platform/agentHost/common/agentHostManagedSettings.d.ts +5 -6
  318. package/vscode/src/vs/platform/agentHost/common/agentHostManagedSettings.js +10 -26
  319. package/vscode/src/vs/platform/agentHost/common/agentHostMcpServer.d.ts +37 -0
  320. package/vscode/src/vs/platform/agentHost/common/agentHostPolicyReadiness.d.ts +11 -0
  321. package/vscode/src/vs/platform/agentHost/common/agentHostPolicyReadiness.js +161 -0
  322. package/vscode/src/vs/platform/agentHost/common/agentHostPolicySupport.d.ts +36 -0
  323. package/vscode/src/vs/platform/agentHost/common/agentHostPolicySupport.js +64 -0
  324. package/vscode/src/vs/platform/agentHost/common/agentHostProtocolCompatibility.d.ts +2 -0
  325. package/vscode/src/vs/platform/agentHost/common/agentHostProtocolCompatibility.js +15 -0
  326. package/vscode/src/vs/platform/agentHost/common/agentHostProviderTiming.d.ts +110 -0
  327. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +74 -2
  328. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +269 -107
  329. package/vscode/src/vs/platform/agentHost/common/agentHostSessionIdentity.d.ts +5 -0
  330. package/vscode/src/vs/platform/agentHost/common/agentHostSessionIdentity.js +10 -0
  331. package/vscode/src/vs/platform/agentHost/common/agentHostSessionType.d.ts +8 -0
  332. package/vscode/src/vs/platform/agentHost/common/agentHostSessionType.js +16 -1
  333. package/vscode/src/vs/platform/agentHost/common/agentHostTelemetry.d.ts +94 -0
  334. package/vscode/src/vs/platform/agentHost/common/agentHostTelemetry.js +4 -1
  335. package/vscode/src/vs/platform/agentHost/common/agentHostUri.d.ts +7 -11
  336. package/vscode/src/vs/platform/agentHost/common/agentHostUri.js +12 -5
  337. package/vscode/src/vs/platform/agentHost/common/agentHostWorkingDirectories.d.ts +4 -0
  338. package/vscode/src/vs/platform/agentHost/common/agentHostWorkingDirectories.js +14 -1
  339. package/vscode/src/vs/platform/agentHost/common/agentHostWorkspaceTrust.d.ts +5 -0
  340. package/vscode/src/vs/platform/agentHost/common/agentHostWorkspaceTrust.js +38 -0
  341. package/vscode/src/vs/platform/agentHost/common/agentMerge.d.ts +61 -2
  342. package/vscode/src/vs/platform/agentHost/common/agentMerge.js +111 -10
  343. package/vscode/src/vs/platform/agentHost/common/agentMergePrompt.d.ts +1 -0
  344. package/vscode/src/vs/platform/agentHost/common/agentModelByokMeta.d.ts +24 -0
  345. package/vscode/src/vs/platform/agentHost/common/agentModelByokMeta.js +13 -0
  346. package/vscode/src/vs/platform/agentHost/common/agentSdkSetup.d.ts +53 -0
  347. package/vscode/src/vs/platform/agentHost/common/agentSdkSetup.js +45 -0
  348. package/vscode/src/vs/platform/agentHost/common/agentServerTools.d.ts +7 -3
  349. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +121 -33
  350. package/vscode/src/vs/platform/agentHost/common/agentService.js +13 -15
  351. package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +51 -5
  352. package/vscode/src/vs/platform/agentHost/common/agentTelemetryCorrelation.d.ts +7 -0
  353. package/vscode/src/vs/platform/agentHost/common/agentTelemetryCorrelation.js +28 -0
  354. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.d.ts +19 -0
  355. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.js +61 -8
  356. package/vscode/src/vs/platform/agentHost/common/autoModeTiers.d.ts +34 -0
  357. package/vscode/src/vs/platform/agentHost/common/autoModeTiers.js +56 -0
  358. package/vscode/src/vs/platform/agentHost/common/{automationMigration.d.ts → automationConfig.d.ts} +5 -10
  359. package/vscode/src/vs/platform/agentHost/common/{automationMigration.js → automationConfig.js} +18 -18
  360. package/vscode/src/vs/platform/agentHost/common/canvasUri.d.ts +6 -0
  361. package/vscode/src/vs/platform/agentHost/common/canvasUri.js +13 -0
  362. package/vscode/src/vs/platform/agentHost/common/changesetUri.d.ts +41 -12
  363. package/vscode/src/vs/platform/agentHost/common/changesetUri.js +51 -12
  364. package/vscode/src/vs/platform/agentHost/common/cloudSandboxAgentHost.service.d.ts +37 -13
  365. package/vscode/src/vs/platform/agentHost/common/codexModelSelection.d.ts +9 -0
  366. package/vscode/src/vs/platform/agentHost/common/codexModelSelection.js +27 -0
  367. package/vscode/src/vs/platform/agentHost/common/connectionDiagnostics.d.ts +48 -0
  368. package/vscode/src/vs/platform/agentHost/common/connectionDiagnostics.js +141 -0
  369. package/vscode/src/vs/platform/agentHost/common/copilotCliConfig.d.ts +65 -18
  370. package/vscode/src/vs/platform/agentHost/common/copilotCliConfig.js +184 -65
  371. package/vscode/src/vs/platform/agentHost/common/devContainerAgentHost.d.ts +37 -0
  372. package/vscode/src/vs/platform/agentHost/common/devContainerAgentHost.service.d.ts +19 -0
  373. package/vscode/src/vs/platform/agentHost/common/devContainerAgentHostProtocolClient.d.ts +35 -0
  374. package/vscode/src/vs/platform/agentHost/common/devContainerAgentHostProtocolClient.js +150 -0
  375. package/vscode/src/vs/platform/agentHost/common/devContainerSamples.d.ts +42 -0
  376. package/vscode/src/vs/platform/agentHost/common/devContainerSamples.js +40 -0
  377. package/vscode/src/vs/platform/agentHost/common/meta/agentAuthenticationAccount.d.ts +2 -0
  378. package/vscode/src/vs/platform/agentHost/common/meta/agentChangesetFileMeta.d.ts +1 -6
  379. package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +1 -0
  380. package/vscode/src/vs/platform/agentHost/common/meta/agentCompletionAttachmentMeta.d.ts +2 -110
  381. package/vscode/src/vs/platform/agentHost/common/meta/agentDevContainerWorktreeMeta.d.ts +2 -9
  382. package/vscode/src/vs/platform/agentHost/common/meta/agentElementAttachments.d.ts +2 -9
  383. package/vscode/src/vs/platform/agentHost/common/meta/agentFeedbackAnnotations.d.ts +2 -128
  384. package/vscode/src/vs/platform/agentHost/common/meta/agentFeedbackAttachments.d.ts +2 -30
  385. package/vscode/src/vs/platform/agentHost/common/meta/agentHostArtifactRemovalMeta.d.ts +1 -4
  386. package/vscode/src/vs/platform/agentHost/common/meta/agentHostAutomationsMeta.d.ts +1 -0
  387. package/vscode/src/vs/platform/agentHost/common/meta/agentHostBackgroundWorkStopMeta.d.ts +1 -0
  388. package/vscode/src/vs/platform/agentHost/common/meta/agentHostDebugLogsMeta.d.ts +1 -0
  389. package/vscode/src/vs/platform/agentHost/common/meta/agentHostDevContainersMeta.d.ts +1 -0
  390. package/vscode/src/vs/platform/agentHost/common/meta/agentHostResources.d.ts +2 -0
  391. package/vscode/src/vs/platform/agentHost/common/meta/agentHostSessionImportMeta.d.ts +1 -0
  392. package/vscode/src/vs/platform/agentHost/common/meta/agentHostSessionUrisMeta.d.ts +1 -0
  393. package/vscode/src/vs/platform/agentHost/common/meta/agentHostTimingMeta.d.ts +1 -0
  394. package/vscode/src/vs/platform/agentHost/common/meta/agentImageGenerationMeta.d.ts +1 -0
  395. package/vscode/src/vs/platform/agentHost/common/meta/agentMergeMessageMeta.d.ts +1 -15
  396. package/vscode/src/vs/platform/agentHost/common/meta/agentMessageDelegationMeta.d.ts +2 -19
  397. package/vscode/src/vs/platform/agentHost/common/meta/agentMessageMeta.d.ts +14 -0
  398. package/vscode/src/vs/platform/agentHost/common/meta/agentMessageMeta.js +26 -0
  399. package/vscode/src/vs/platform/agentHost/common/meta/agentModelCallMeta.d.ts +12 -0
  400. package/vscode/src/vs/platform/agentHost/common/meta/agentModelCallMeta.js +21 -0
  401. package/vscode/src/vs/platform/agentHost/common/meta/agentModelConfigurationMeta.d.ts +2 -0
  402. package/vscode/src/vs/platform/agentHost/common/meta/agentPermissionRequestMeta.d.ts +6 -41
  403. package/vscode/src/vs/platform/agentHost/common/meta/agentPermissionRequestMeta.js +5 -29
  404. package/vscode/src/vs/platform/agentHost/common/meta/agentPermissionResponseMeta.d.ts +2 -0
  405. package/vscode/src/vs/platform/agentHost/common/meta/agentPullRequestOperationMeta.d.ts +2 -45
  406. package/vscode/src/vs/platform/agentHost/common/meta/agentRemoteSessionMeta.d.ts +2 -0
  407. package/vscode/src/vs/platform/agentHost/common/meta/agentSandboxPolicyMeta.d.ts +2 -0
  408. package/vscode/src/vs/platform/agentHost/common/meta/agentSandboxStateMeta.d.ts +2 -0
  409. package/vscode/src/vs/platform/agentHost/common/meta/agentSessionInitiatorMeta.d.ts +9 -0
  410. package/vscode/src/vs/platform/agentHost/common/meta/agentSessionInitiatorMeta.js +40 -0
  411. package/vscode/src/vs/platform/agentHost/common/meta/agentSlashCommandOutputMeta.d.ts +2 -0
  412. package/vscode/src/vs/platform/agentHost/common/meta/agentSystemNotificationMeta.d.ts +2 -49
  413. package/vscode/src/vs/platform/agentHost/common/meta/agentToolCallMeta.d.ts +22 -78
  414. package/vscode/src/vs/platform/agentHost/common/meta/agentToolCallMeta.js +37 -84
  415. package/vscode/src/vs/platform/agentHost/common/meta/agentUsageMeta.d.ts +36 -0
  416. package/vscode/src/vs/platform/agentHost/common/meta/agentUsageMeta.js +18 -0
  417. package/vscode/src/vs/platform/agentHost/common/meta/agentWorkspaceContinuationMeta.d.ts +1 -8
  418. package/vscode/src/vs/platform/agentHost/common/meta/attachmentMeta.d.ts +9 -0
  419. package/vscode/src/vs/platform/agentHost/common/meta/attachmentMeta.js +11 -0
  420. package/vscode/src/vs/platform/agentHost/common/meta/browserViewAttachments.d.ts +2 -9
  421. package/vscode/src/vs/platform/agentHost/common/meta/codexAccount.d.ts +2 -28
  422. package/vscode/src/vs/platform/agentHost/common/meta/codexSessionModel.d.ts +16 -0
  423. package/vscode/src/vs/platform/agentHost/common/meta/codexSessionModel.js +22 -0
  424. package/vscode/src/vs/platform/agentHost/common/meta/copilotBackgroundWorkMeta.d.ts +1 -0
  425. package/vscode/src/vs/platform/agentHost/common/meta/copilotd/agentPermissionRequestMeta.d.ts +46 -0
  426. package/vscode/src/vs/platform/agentHost/common/meta/copilotd/agentPermissionRequestMeta.js +44 -0
  427. package/vscode/src/vs/platform/agentHost/common/meta/copilotd/copilotdMetadataReader.d.ts +55 -0
  428. package/vscode/src/vs/platform/agentHost/common/meta/copilotd/copilotdMetadataReader.js +191 -0
  429. package/vscode/src/vs/platform/agentHost/common/meta/copilotd/generated/copilotdMetadata.d.ts +293 -0
  430. package/vscode/src/vs/platform/agentHost/common/meta/copilotd/toolPresentation.d.ts +12 -0
  431. package/vscode/src/vs/platform/agentHost/common/meta/copilotd/toolPresentation.js +539 -0
  432. package/vscode/src/vs/platform/agentHost/common/meta/errorMeta.d.ts +19 -0
  433. package/vscode/src/vs/platform/agentHost/common/meta/errorMeta.js +14 -0
  434. package/vscode/src/vs/platform/agentHost/common/meta/mcpCustomizationMeta.d.ts +2 -0
  435. package/vscode/src/vs/platform/agentHost/common/meta/metadata.d.ts +5 -0
  436. package/vscode/src/vs/platform/agentHost/common/meta/metadata.js +8 -0
  437. package/vscode/src/vs/platform/agentHost/common/meta/relayConnectionMeta.d.ts +8 -0
  438. package/vscode/src/vs/platform/agentHost/common/meta/relayConnectionMeta.js +11 -0
  439. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentAuthenticationAccount.d.ts +11 -0
  440. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentAuthenticationAccount.js +12 -0
  441. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentChangesetFileMeta.d.ts +6 -0
  442. package/vscode/src/vs/platform/agentHost/common/meta/{agentChangesetFileMeta.js → vscode/agentChangesetFileMeta.js} +2 -2
  443. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentCheckoutOperationMeta.d.ts +18 -0
  444. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentCheckoutOperationMeta.js +27 -0
  445. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentCompletionAttachmentMeta.d.ts +114 -0
  446. package/vscode/src/vs/platform/agentHost/common/meta/{agentCompletionAttachmentMeta.js → vscode/agentCompletionAttachmentMeta.js} +25 -19
  447. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentDevContainerWorktreeMeta.d.ts +9 -0
  448. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentElementAttachments.d.ts +9 -0
  449. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentErrorMeta.d.ts +7 -0
  450. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentErrorMeta.js +16 -0
  451. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentFeedbackAnnotations.d.ts +128 -0
  452. package/vscode/src/vs/platform/agentHost/common/meta/{agentFeedbackAnnotations.js → vscode/agentFeedbackAnnotations.js} +15 -15
  453. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentFeedbackAttachments.d.ts +30 -0
  454. package/vscode/src/vs/platform/agentHost/common/meta/{agentFeedbackAttachments.js → vscode/agentFeedbackAttachments.js} +9 -9
  455. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostArtifactRemovalMeta.d.ts +4 -0
  456. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostAutomationsMeta.d.ts +5 -0
  457. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostAutomationsMeta.js +8 -0
  458. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostBackgroundWorkStopMeta.d.ts +6 -0
  459. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostBackgroundWorkStopMeta.js +8 -0
  460. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostDebugLogsMeta.d.ts +16 -0
  461. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostDebugLogsMeta.js +13 -0
  462. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostDevContainersMeta.d.ts +4 -0
  463. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostDevContainersMeta.js +8 -0
  464. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostResources.d.ts +13 -0
  465. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostResources.js +47 -0
  466. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostSessionImportMeta.d.ts +4 -0
  467. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostSessionImportMeta.js +8 -0
  468. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostSessionUrisMeta.d.ts +8 -0
  469. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostSessionUrisMeta.js +26 -0
  470. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostTimingMeta.d.ts +6 -0
  471. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentHostTimingMeta.js +12 -0
  472. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentImageGenerationMeta.d.ts +11 -0
  473. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentImageGenerationMeta.js +25 -0
  474. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentMergeMessageMeta.d.ts +15 -0
  475. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentMessageDelegationMeta.d.ts +23 -0
  476. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentMessageDelegationMeta.js +54 -0
  477. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentMessageMeta.d.ts +10 -0
  478. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentMessageMeta.js +30 -0
  479. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentModelCallMeta.d.ts +21 -0
  480. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentModelCallMeta.js +36 -0
  481. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentPullRequestOperationMeta.d.ts +58 -0
  482. package/vscode/src/vs/platform/agentHost/common/meta/{agentPullRequestOperationMeta.js → vscode/agentPullRequestOperationMeta.js} +49 -20
  483. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentRemoteSessionMeta.d.ts +24 -0
  484. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentRemoteSessionMeta.js +73 -0
  485. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentSandboxPolicyMeta.d.ts +24 -0
  486. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentSandboxPolicyMeta.js +31 -0
  487. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentSandboxStateMeta.d.ts +13 -0
  488. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentSandboxStateMeta.js +27 -0
  489. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentSlashCommandOutputMeta.d.ts +10 -0
  490. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentSlashCommandOutputMeta.js +28 -0
  491. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentSystemNotificationMeta.d.ts +62 -0
  492. package/vscode/src/vs/platform/agentHost/common/meta/{agentSystemNotificationMeta.js → vscode/agentSystemNotificationMeta.js} +26 -5
  493. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentToolCallMeta.d.ts +114 -0
  494. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentToolCallMeta.js +149 -0
  495. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentUsageMeta.d.ts +76 -0
  496. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentUsageMeta.js +203 -0
  497. package/vscode/src/vs/platform/agentHost/common/meta/vscode/agentWorkspaceContinuationMeta.d.ts +8 -0
  498. package/vscode/src/vs/platform/agentHost/common/meta/vscode/browserViewAttachments.d.ts +9 -0
  499. package/vscode/src/vs/platform/agentHost/common/meta/{browserViewAttachments.js → vscode/browserViewAttachments.js} +9 -9
  500. package/vscode/src/vs/platform/agentHost/common/meta/vscode/codexAccount.d.ts +33 -0
  501. package/vscode/src/vs/platform/agentHost/common/meta/{codexAccount.js → vscode/codexAccount.js} +20 -9
  502. package/vscode/src/vs/platform/agentHost/common/meta/vscode/copilotBackgroundWorkMeta.d.ts +10 -0
  503. package/vscode/src/vs/platform/agentHost/common/meta/vscode/copilotBackgroundWorkMeta.js +14 -0
  504. package/vscode/src/vs/platform/agentHost/common/meta/vscode/mcpCustomizationMeta.d.ts +34 -0
  505. package/vscode/src/vs/platform/agentHost/common/meta/vscode/mcpCustomizationMeta.js +42 -0
  506. package/vscode/src/vs/platform/agentHost/common/missionControlEnvironment.d.ts +9 -0
  507. package/vscode/src/vs/platform/agentHost/common/missionControlEnvironment.js +9 -0
  508. package/vscode/src/vs/platform/agentHost/common/missionControlEnvironment.service.d.ts +26 -0
  509. package/vscode/src/vs/platform/agentHost/common/missionControlEnvironment.service.js +7 -0
  510. package/vscode/src/vs/platform/agentHost/common/openSessionLink.d.ts +3 -2
  511. package/vscode/src/vs/platform/agentHost/common/openSessionLink.js +38 -14
  512. package/vscode/src/vs/platform/agentHost/common/otel/agentHostTiming.d.ts +59 -0
  513. package/vscode/src/vs/platform/agentHost/common/partialToolInput.d.ts +3 -0
  514. package/vscode/src/vs/platform/agentHost/common/partialToolInput.js +4 -1
  515. package/vscode/src/vs/platform/agentHost/common/reasoningEffort.d.ts +1 -0
  516. package/vscode/src/vs/platform/agentHost/common/reasoningEffort.js +21 -17
  517. package/vscode/src/vs/platform/agentHost/common/reconnectPolicy.d.ts +5 -1
  518. package/vscode/src/vs/platform/agentHost/common/reconnectPolicy.js +3 -2
  519. package/vscode/src/vs/platform/agentHost/common/reconnectingTransport.d.ts +5 -1
  520. package/vscode/src/vs/platform/agentHost/common/reconnectingTransport.js +14 -0
  521. package/vscode/src/vs/platform/agentHost/common/relayActivity.d.ts +13 -0
  522. package/vscode/src/vs/platform/agentHost/common/relayActivity.js +20 -0
  523. package/vscode/src/vs/platform/agentHost/common/relayTransport.d.ts +6 -2
  524. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostLocationPreferenceDialog.js +8 -8
  525. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostService.d.ts +41 -3
  526. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostService.js +16 -0
  527. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostService.service.d.ts +19 -2
  528. package/vscode/src/vs/platform/agentHost/common/serverToolNames.d.ts +9 -2
  529. package/vscode/src/vs/platform/agentHost/common/serverToolNames.js +2 -1
  530. package/vscode/src/vs/platform/agentHost/common/sessionArtifacts.d.ts +11 -10
  531. package/vscode/src/vs/platform/agentHost/common/sessionArtifacts.js +3 -0
  532. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.d.ts +23 -8
  533. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.js +14 -6
  534. package/vscode/src/vs/platform/agentHost/common/sessionConfigProperties.d.ts +30 -0
  535. package/vscode/src/vs/platform/agentHost/common/sessionConfigProperties.js +100 -0
  536. package/vscode/src/vs/platform/agentHost/common/sshRemoteAgentHost.d.ts +10 -5
  537. package/vscode/src/vs/platform/agentHost/common/sshRemoteAgentHost.js +6 -1
  538. package/vscode/src/vs/platform/agentHost/common/sshRemoteAgentHost.service.d.ts +10 -2
  539. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +14 -0
  540. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +118 -9
  541. package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +13 -7
  542. package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +1 -0
  543. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-automation/actions.d.ts +16 -3
  544. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-automation/state.d.ts +118 -1
  545. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-automation/state.js +6 -1
  546. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-canvas/actions.d.ts +17 -0
  547. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-canvas/reducer.d.ts +10 -0
  548. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-canvas/reducer.js +12 -0
  549. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-canvas/state.d.ts +45 -0
  550. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/actions.d.ts +3 -2
  551. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/state.d.ts +15 -9
  552. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/state.js +1 -0
  553. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/actions.d.ts +115 -6
  554. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/commands.d.ts +86 -0
  555. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/commands.js +6 -1
  556. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/reducer.js +66 -0
  557. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/state.d.ts +149 -9
  558. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/state.js +6 -1
  559. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/notifications.d.ts +1 -0
  560. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/state.d.ts +2 -1
  561. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/actions.d.ts +49 -0
  562. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/reducer.js +37 -0
  563. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/state.d.ts +75 -12
  564. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/actions.d.ts +14 -3
  565. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/actions.js +10 -0
  566. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/commands.d.ts +19 -1
  567. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/errors.js +14 -2
  568. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/messages.d.ts +5 -1
  569. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/state.d.ts +35 -20
  570. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +1 -0
  571. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +1 -0
  572. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +10 -5
  573. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +20 -6
  574. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +1 -1
  575. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.js +2 -1
  576. package/vscode/src/vs/platform/agentHost/common/state/sessionReducers.js +2 -1
  577. package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +162 -129
  578. package/vscode/src/vs/platform/agentHost/common/state/sessionState.js +231 -283
  579. package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.d.ts +28 -0
  580. package/vscode/src/vs/platform/agentHost/common/terminalConstants.d.ts +5 -0
  581. package/vscode/src/vs/platform/agentHost/common/terminalConstants.js +5 -0
  582. package/vscode/src/vs/platform/agentHost/common/tunnelAgentHost.d.ts +11 -0
  583. package/vscode/src/vs/platform/agentHost/common/tunnelAgentHost.service.d.ts +13 -7
  584. package/vscode/src/vs/platform/agentHost/common/tunnelAgentHostConnector.d.ts +8 -3
  585. package/vscode/src/vs/platform/agentHost/common/tunnelAgentHostConnector.js +87 -33
  586. package/vscode/src/vs/platform/agentHost/common/tunnelMessageSocket.d.ts +2 -0
  587. package/vscode/src/vs/platform/agentHost/common/webSocketOverDuplex.js +9 -4
  588. package/vscode/src/vs/platform/agentHost/common/worktreePaths.d.ts +8 -0
  589. package/vscode/src/vs/platform/agentHost/common/worktreePaths.js +12 -2
  590. package/vscode/src/vs/platform/agentHost/common/wslRemoteAgentHost.service.d.ts +4 -1
  591. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +14 -4
  592. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +412 -60
  593. package/vscode/src/vs/platform/browserView/common/browserPermissions.d.ts +3 -9
  594. package/vscode/src/vs/platform/browserView/common/browserPermissions.js +20 -17
  595. package/vscode/src/vs/platform/browserView/common/browserView.d.ts +81 -28
  596. package/vscode/src/vs/platform/browserView/common/browserView.js +6 -1
  597. package/vscode/src/vs/platform/browserView/common/browserViewTelemetry.d.ts +3 -1
  598. package/vscode/src/vs/platform/chat/common/agentsWindowInvitation.d.ts +83 -0
  599. package/vscode/src/vs/platform/chat/common/agentsWindowInvitation.js +24 -0
  600. package/vscode/src/vs/platform/chat/common/chatSessionHistory.d.ts +9 -0
  601. package/vscode/src/vs/platform/chat/common/chatSettings.d.ts +27 -4
  602. package/vscode/src/vs/platform/chat/common/chatSettings.js +96 -27
  603. package/vscode/src/vs/platform/chat/common/sessionArchiveActions.d.ts +1 -1
  604. package/vscode/src/vs/platform/chat/common/sessionArchiveActions.js +11 -11
  605. package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +5 -1
  606. package/vscode/src/vs/platform/configuration/common/configuration.js +3 -1
  607. package/vscode/src/vs/platform/configuration/common/configurationModels.js +17 -13
  608. package/vscode/src/vs/platform/configuration/common/configurationRegistry.d.ts +26 -2
  609. package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +42 -29
  610. package/vscode/src/vs/platform/configuration/common/configurationVariables.d.ts +17 -0
  611. package/vscode/src/vs/platform/configuration/common/configurationVariables.js +50 -0
  612. package/vscode/src/vs/platform/configuration/common/configurations.d.ts +1 -0
  613. package/vscode/src/vs/platform/configuration/common/configurations.js +17 -5
  614. package/vscode/src/vs/platform/contextkey/browser/contextKeyService.js +2 -2
  615. package/vscode/src/vs/platform/contextkey/common/contextkey.js +10 -10
  616. package/vscode/src/vs/platform/contextkey/common/contextkeys.js +10 -10
  617. package/vscode/src/vs/platform/contextkey/common/scanner.js +5 -5
  618. package/vscode/src/vs/platform/copilotConnectors/common/copilotConnectorsRequestService.d.ts +25 -0
  619. package/vscode/src/vs/platform/copilotConnectors/common/copilotConnectorsRequestService.js +141 -0
  620. package/vscode/src/vs/platform/copilotConnectors/common/copilotConnectorsRequestService.service.d.ts +7 -0
  621. package/vscode/src/vs/platform/copilotConnectors/common/copilotConnectorsRequestService.service.js +6 -0
  622. package/vscode/src/vs/platform/customizationMarketplace/common/customizationMarketplaceService.d.ts +172 -0
  623. package/vscode/src/vs/platform/customizationMarketplace/common/customizationMarketplaceService.js +247 -0
  624. package/vscode/src/vs/platform/customizationMarketplace/common/customizationMarketplaceService.service.d.ts +15 -0
  625. package/vscode/src/vs/platform/customizationMarketplace/common/customizationMarketplaceService.service.js +6 -0
  626. package/vscode/src/vs/platform/customizationMarketplace/common/customizationMarketplaceSources.d.ts +39 -0
  627. package/vscode/src/vs/platform/customizationMarketplace/common/customizationMarketplaceSources.js +83 -0
  628. package/vscode/src/vs/platform/customizationMarketplace/common/platformCustomizationMarketplaceService.service.d.ts +2 -0
  629. package/vscode/src/vs/platform/customizationMarketplace/common/platformCustomizationMarketplaceService.service.js +6 -0
  630. package/vscode/src/vs/platform/defaultAccount/common/defaultAccount.d.ts +3 -6
  631. package/vscode/src/vs/platform/defaultAccount/common/defaultAccount.service.d.ts +3 -6
  632. package/vscode/src/vs/platform/dialogs/common/dialogs.js +9 -9
  633. package/vscode/src/vs/platform/dnd/browser/dnd.js +1 -1
  634. package/vscode/src/vs/platform/editor/common/editor.d.ts +21 -0
  635. package/vscode/src/vs/platform/editor/common/editor.js +18 -1
  636. package/vscode/src/vs/platform/{agentHost → environment}/common/copilotHome.d.ts +1 -0
  637. package/vscode/src/vs/platform/{agentHost → environment}/common/copilotHome.js +1 -1
  638. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +14 -14
  639. package/vscode/src/vs/platform/extensionManagement/common/extensionNls.js +1 -1
  640. package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +21 -21
  641. package/vscode/src/vs/platform/extensions/common/extensionValidator.js +19 -19
  642. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +14 -2
  643. package/vscode/src/vs/platform/extensions/common/extensions.js +15 -3
  644. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.d.ts +3 -0
  645. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +3 -0
  646. package/vscode/src/vs/platform/files/browser/htmlFileSystemProvider.d.ts +1 -1
  647. package/vscode/src/vs/platform/files/browser/htmlFileSystemProvider.js +3 -3
  648. package/vscode/src/vs/platform/files/common/files.js +6 -6
  649. package/vscode/src/vs/platform/github/common/backoff.d.ts +59 -0
  650. package/vscode/src/vs/platform/github/common/backoff.js +89 -0
  651. package/vscode/src/vs/platform/github/common/cancellation.d.ts +5 -0
  652. package/vscode/src/vs/platform/github/common/cancellation.js +18 -0
  653. package/vscode/src/vs/platform/github/common/client/schema.d.ts +59 -0
  654. package/vscode/src/vs/platform/github/common/client/schema.js +209 -0
  655. package/vscode/src/vs/platform/github/common/githubCredentialService.d.ts +60 -0
  656. package/vscode/src/vs/platform/github/common/githubCredentialService.js +347 -0
  657. package/vscode/src/vs/platform/github/common/githubEndpoints.d.ts +33 -0
  658. package/vscode/src/vs/platform/{agentHost → github}/common/githubEndpoints.js +18 -1
  659. package/vscode/src/vs/platform/github/common/githubPullRequestMutationService.d.ts +16 -11
  660. package/vscode/src/vs/platform/github/common/githubPullRequestService.d.ts +7 -4
  661. package/vscode/src/vs/platform/github/common/githubQueryService.d.ts +70 -5
  662. package/vscode/src/vs/platform/github/common/githubResponse.d.ts +18 -0
  663. package/vscode/src/vs/platform/github/common/githubResponse.js +110 -0
  664. package/vscode/src/vs/platform/github/common/githubService.service.d.ts +8 -14
  665. package/vscode/src/vs/platform/github/common/githubTypes.d.ts +91 -9
  666. package/vscode/src/vs/platform/github/common/githubTypes.js +25 -0
  667. package/vscode/src/vs/platform/github/common/githubUrls.d.ts +53 -0
  668. package/vscode/src/vs/platform/github/common/githubUrls.js +91 -0
  669. package/vscode/src/vs/platform/github/common/missionControl/automations.d.ts +337 -0
  670. package/vscode/src/vs/platform/github/common/missionControl/environments.d.ts +187 -0
  671. package/vscode/src/vs/platform/github/common/missionControl/missionControl.d.ts +73 -0
  672. package/vscode/src/vs/platform/github/common/missionControl/missionControlClient.d.ts +112 -0
  673. package/vscode/src/vs/platform/github/common/missionControl/missionControlClient.js +246 -0
  674. package/vscode/src/vs/platform/github/common/missionControl/models.d.ts +54 -0
  675. package/vscode/src/vs/platform/github/common/missionControl/tasks.d.ts +523 -0
  676. package/vscode/src/vs/platform/github/common/responseReader.d.ts +19 -0
  677. package/vscode/src/vs/platform/github/common/responseReader.js +87 -0
  678. package/vscode/src/vs/platform/github/common/scheduler.d.ts +10 -0
  679. package/vscode/src/vs/platform/github/common/scheduler.js +38 -0
  680. package/vscode/src/vs/platform/github/common/types.d.ts +78 -0
  681. package/vscode/src/vs/platform/github/common/types.js +32 -0
  682. package/vscode/src/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  683. package/vscode/src/vs/platform/hover/browser/hover.css +8 -8
  684. package/vscode/src/vs/platform/hover/browser/hover.service.d.ts +5 -1
  685. package/vscode/src/vs/platform/hover/browser/hoverService.d.ts +1 -0
  686. package/vscode/src/vs/platform/hover/browser/hoverService.js +8 -2
  687. package/vscode/src/vs/platform/hover/browser/hoverWidget.js +3 -3
  688. package/vscode/src/vs/platform/hover/browser/updatableHoverWidget.d.ts +1 -0
  689. package/vscode/src/vs/platform/hover/browser/updatableHoverWidget.js +32 -8
  690. package/vscode/src/vs/platform/keybinding/common/abstractKeybindingService.js +5 -5
  691. package/vscode/src/vs/platform/languagePacks/common/languagePacks.js +1 -1
  692. package/vscode/src/vs/platform/languagePacks/common/localizedStrings.js +3 -3
  693. package/vscode/src/vs/platform/list/browser/listService.js +25 -25
  694. package/vscode/src/vs/platform/localTranscription/common/localTranscription.service.d.ts +8 -7
  695. package/vscode/src/vs/platform/log/common/log.d.ts +6 -2
  696. package/vscode/src/vs/platform/log/common/log.js +24 -7
  697. package/vscode/src/vs/platform/markers/common/markerService.js +2 -2
  698. package/vscode/src/vs/platform/markers/common/markers.js +6 -6
  699. package/vscode/src/vs/platform/mcp/common/envVarResolution.d.ts +61 -0
  700. package/vscode/src/vs/platform/mcp/common/envVarResolution.js +198 -0
  701. package/vscode/src/vs/platform/mcp/common/mcpCopilotConfiguration.d.ts +21 -0
  702. package/vscode/src/vs/platform/mcp/common/mcpCopilotConfiguration.js +34 -0
  703. package/vscode/src/vs/platform/mcp/common/mcpCopilotGlobalConfiguration.d.ts +9 -0
  704. package/vscode/src/vs/platform/mcp/common/mcpCopilotGlobalConfiguration.js +83 -0
  705. package/vscode/src/vs/platform/mcp/common/mcpGalleryManifest.service.d.ts +1 -0
  706. package/vscode/src/vs/platform/mcp/common/mcpManagement.d.ts +16 -1
  707. package/vscode/src/vs/platform/mcp/common/mcpManagement.js +26 -14
  708. package/vscode/src/vs/platform/mcp/common/mcpManagement.service.d.ts +12 -8
  709. package/vscode/src/vs/platform/mcp/common/mcpManagementService.d.ts +5 -2
  710. package/vscode/src/vs/platform/mcp/common/mcpManagementService.js +45 -29
  711. package/vscode/src/vs/platform/mcp/common/mcpPlatformTypes.d.ts +2 -0
  712. package/vscode/src/vs/platform/mcp/common/mcpResourceScannerService.d.ts +50 -0
  713. package/vscode/src/vs/platform/mcp/common/mcpResourceScannerService.js +513 -0
  714. package/vscode/src/vs/platform/mcp/common/mcpResourceScannerService.service.d.ts +13 -5
  715. package/vscode/src/vs/platform/mcp/common/mcpWorkspaceConfiguration.d.ts +16 -0
  716. package/vscode/src/vs/platform/mcp/common/mcpWorkspaceConfiguration.js +111 -0
  717. package/vscode/src/vs/platform/native/common/native.d.ts +27 -2
  718. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.d.ts +1 -1
  719. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.js +2 -1
  720. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.service.d.ts +5 -4
  721. package/vscode/src/vs/platform/networkFilter/common/settings.d.ts +2 -2
  722. package/vscode/src/vs/platform/networkFilter/common/settings.js +2 -2
  723. package/vscode/src/vs/platform/notification/common/notification.d.ts +17 -3
  724. package/vscode/src/vs/platform/notification/common/notification.js +3 -3
  725. package/vscode/src/vs/platform/notification/common/notification.service.d.ts +1 -1
  726. package/vscode/src/vs/platform/notification/common/notificationLegacy.d.ts +4 -0
  727. package/vscode/src/vs/platform/notification/common/notificationLegacy.js +8 -0
  728. package/vscode/src/vs/platform/notification/common/notificationMessage.d.ts +14 -0
  729. package/vscode/src/vs/platform/notification/common/notificationMessage.js +51 -0
  730. package/vscode/src/vs/platform/notification/common/notificationTelemetry.d.ts +71 -0
  731. package/vscode/src/vs/platform/notification/common/notificationTelemetry.js +103 -0
  732. package/vscode/src/vs/platform/observable/common/platformObservableUtils.js +10 -2
  733. package/vscode/src/vs/platform/opener/common/opener.d.ts +2 -1
  734. package/vscode/src/vs/platform/path/common/pathService.d.ts +5 -0
  735. package/vscode/src/vs/platform/path/common/pathService.service.d.ts +54 -0
  736. package/vscode/src/vs/platform/path/common/pathService.service.js +6 -0
  737. package/vscode/src/vs/platform/policy/common/copilotManagedSettings.d.ts +57 -6
  738. package/vscode/src/vs/platform/policy/common/copilotManagedSettings.js +98 -4
  739. package/vscode/src/vs/platform/policy/common/copilotManagedSettings.service.d.ts +3 -2
  740. package/vscode/src/vs/platform/product/common/product.js +3 -3
  741. package/vscode/src/vs/platform/progress/common/progress.d.ts +9 -2
  742. package/vscode/src/vs/platform/quickinput/browser/quickAccess.js +2 -0
  743. package/vscode/src/vs/platform/quickinput/browser/quickInput.js +10 -10
  744. package/vscode/src/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  745. package/vscode/src/vs/platform/quickinput/browser/quickInputController.d.ts +3 -0
  746. package/vscode/src/vs/platform/quickinput/browser/quickInputController.js +55 -13
  747. package/vscode/src/vs/platform/quickinput/browser/quickInputList.js +1 -1
  748. package/vscode/src/vs/platform/quickinput/browser/quickInputService.d.ts +3 -2
  749. package/vscode/src/vs/platform/quickinput/browser/quickInputService.js +3 -0
  750. package/vscode/src/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  751. package/vscode/src/vs/platform/quickinput/browser/quickPickPin.js +2 -2
  752. package/vscode/src/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  753. package/vscode/src/vs/platform/quickinput/browser/tree/quickTree.js +1 -1
  754. package/vscode/src/vs/platform/quickinput/common/quickAccess.d.ts +11 -0
  755. package/vscode/src/vs/platform/quickinput/common/quickInput.d.ts +15 -2
  756. package/vscode/src/vs/platform/quickinput/common/quickInput.service.d.ts +5 -1
  757. package/vscode/src/vs/platform/remote/common/remoteAgentConnection.d.ts +4 -0
  758. package/vscode/src/vs/platform/remote/common/remoteAgentConnection.js +20 -9
  759. package/vscode/src/vs/platform/remoteTunnel/common/tunnelServiceHeaders.d.ts +10 -0
  760. package/vscode/src/vs/platform/remoteTunnel/common/tunnelServiceHeaders.js +23 -0
  761. package/vscode/src/vs/platform/request/common/request.d.ts +2 -0
  762. package/vscode/src/vs/platform/request/common/request.js +42 -22
  763. package/vscode/src/vs/platform/sandbox/common/sandboxHelperService.d.ts +0 -86
  764. package/vscode/src/vs/platform/sandbox/common/sandboxHelperService.service.d.ts +1 -4
  765. package/vscode/src/vs/platform/sandbox/common/sandboxSettingsResolutionHelper.d.ts +34 -0
  766. package/vscode/src/vs/platform/sandbox/common/sandboxSettingsResolutionHelper.js +51 -0
  767. package/vscode/src/vs/platform/sandbox/common/settings.d.ts +25 -5
  768. package/vscode/src/vs/platform/sandbox/common/settings.js +13 -6
  769. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +109 -0
  770. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +20 -0
  771. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.service.d.ts +2 -1
  772. package/vscode/src/vs/platform/storage/common/storage.d.ts +6 -1
  773. package/vscode/src/vs/platform/storage/common/storage.js +17 -0
  774. package/vscode/src/vs/platform/storage/common/storage.service.d.ts +7 -0
  775. package/vscode/src/vs/platform/telemetry/common/experimentTrigger.d.ts +21 -0
  776. package/vscode/src/vs/platform/telemetry/common/experimentTrigger.js +28 -0
  777. package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +1 -1
  778. package/vscode/src/vs/platform/terminal/common/autoApprove/gitAutoApproveRules.d.ts +1 -0
  779. package/vscode/src/vs/platform/terminal/common/autoApprove/gitAutoApproveRules.js +13 -10
  780. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +2 -0
  781. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetectionCapability.d.ts +1 -0
  782. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetectionCapability.js +5 -0
  783. package/vscode/src/vs/platform/terminal/common/capabilities/partialCommandDetectionCapability.d.ts +1 -0
  784. package/vscode/src/vs/platform/terminal/common/capabilities/partialCommandDetectionCapability.js +3 -0
  785. package/vscode/src/vs/platform/terminal/common/terminal.d.ts +1 -0
  786. package/vscode/src/vs/platform/terminal/common/terminal.js +1 -0
  787. package/vscode/src/vs/platform/terminal/common/terminalEnvironment.js +2 -2
  788. package/vscode/src/vs/platform/terminal/common/terminalPlatformConfiguration.js +34 -34
  789. package/vscode/src/vs/platform/terminal/common/terminalProfiles.js +1 -1
  790. package/vscode/src/vs/platform/theme/common/colorUtils.js +2 -2
  791. package/vscode/src/vs/platform/theme/common/colors/baseColors.js +19 -19
  792. package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +8 -8
  793. package/vscode/src/vs/platform/theme/common/colors/editorColors.js +96 -96
  794. package/vscode/src/vs/platform/theme/common/colors/inputColors.js +53 -48
  795. package/vscode/src/vs/platform/theme/common/colors/listColors.js +36 -36
  796. package/vscode/src/vs/platform/theme/common/colors/menuColors.js +8 -8
  797. package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +11 -11
  798. package/vscode/src/vs/platform/theme/common/colors/miscColors.js +16 -16
  799. package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +12 -12
  800. package/vscode/src/vs/platform/theme/common/colors/searchColors.js +3 -3
  801. package/vscode/src/vs/platform/theme/common/iconRegistry.js +6 -6
  802. package/vscode/src/vs/platform/theme/common/sizes/baseSizes.js +37 -37
  803. package/vscode/src/vs/platform/theme/common/tokenClassificationRegistry.js +42 -42
  804. package/vscode/src/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  805. package/vscode/src/vs/platform/url/common/trustedDomains.d.ts +9 -1
  806. package/vscode/src/vs/platform/url/common/trustedDomains.js +43 -22
  807. package/vscode/src/vs/platform/url/common/urlGlob.d.ts +8 -5
  808. package/vscode/src/vs/platform/url/common/urlGlob.js +170 -85
  809. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +1 -1
  810. package/vscode/src/vs/platform/userDataSync/common/abstractSynchronizer.js +2 -2
  811. package/vscode/src/vs/platform/userDataSync/common/keybindingsSync.js +2 -2
  812. package/vscode/src/vs/platform/userDataSync/common/settingsSync.js +1 -1
  813. package/vscode/src/vs/platform/userDataSync/common/userDataSync.js +5 -5
  814. package/vscode/src/vs/platform/userDataSync/common/userDataSyncMachines.js +1 -1
  815. package/vscode/src/vs/platform/window/common/window.d.ts +22 -2
  816. package/vscode/src/vs/platform/window/common/window.js +37 -19
  817. package/vscode/src/vs/platform/workspace/common/workspace.js +1 -1
  818. package/vscode/src/vs/platform/workspace/common/workspaceTrust.service.d.ts +2 -0
  819. package/vscode/src/vs/sessions/browser/accountTitleBarState.js +18 -18
  820. package/vscode/src/vs/sessions/browser/layoutPolicy.d.ts +7 -8
  821. package/vscode/src/vs/sessions/browser/layoutPolicy.js +5 -5
  822. package/vscode/src/vs/sessions/browser/media/style.css +20 -11
  823. package/vscode/src/vs/sessions/browser/media/workbench.css +176 -35
  824. package/vscode/src/vs/sessions/browser/menus.d.ts +21 -0
  825. package/vscode/src/vs/sessions/browser/menus.js +21 -1
  826. package/vscode/src/vs/sessions/browser/openInVSCodeUtils.d.ts +26 -0
  827. package/vscode/src/vs/sessions/browser/openInVSCodeUtils.js +78 -0
  828. package/vscode/src/vs/sessions/browser/parts/agentsPartCard.d.ts +12 -5
  829. package/vscode/src/vs/sessions/browser/parts/agentsPartCard.js +50 -7
  830. package/vscode/src/vs/sessions/browser/parts/auxiliaryBarPart.d.ts +1 -1
  831. package/vscode/src/vs/sessions/browser/parts/auxiliaryBarPart.js +7 -5
  832. package/vscode/src/vs/sessions/browser/parts/chatView.d.ts +22 -5
  833. package/vscode/src/vs/sessions/browser/parts/chatView.js +12 -3
  834. package/vscode/src/vs/sessions/browser/parts/editorPartSizing.d.ts +2 -2
  835. package/vscode/src/vs/sessions/browser/parts/media/titlebarpart.css +8 -0
  836. package/vscode/src/vs/sessions/browser/parts/mobile/contributions/mobileChangesView.d.ts +1 -1
  837. package/vscode/src/vs/sessions/browser/parts/mobile/contributions/mobileDiffColors.js +3 -3
  838. package/vscode/src/vs/sessions/browser/parts/mobile/media/mobilePickerSheet.css +92 -0
  839. package/vscode/src/vs/sessions/browser/parts/mobile/mobileChatShell.css +37 -9
  840. package/vscode/src/vs/sessions/browser/parts/mobile/mobilePickerSheet.d.ts +17 -2
  841. package/vscode/src/vs/sessions/browser/parts/mobile/mobilePickerSheet.js +120 -12
  842. package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionFilterChips.d.ts +3 -46
  843. package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionFilterChips.js +5 -97
  844. package/vscode/src/vs/sessions/browser/parts/mobile/mobileSortGroupSheet.js +1 -1
  845. package/vscode/src/vs/sessions/browser/parts/mobile/mobileTitlebarPart.d.ts +2 -0
  846. package/vscode/src/vs/sessions/browser/parts/mobile/mobileTitlebarPart.js +23 -15
  847. package/vscode/src/vs/sessions/browser/parts/sidebarPart.js +1 -1
  848. package/vscode/src/vs/sessions/browser/parts/titlebarPart.js +20 -8
  849. package/vscode/src/vs/sessions/browser/sessionActionViewItem.d.ts +16 -1
  850. package/vscode/src/vs/sessions/browser/sessionActionViewItem.js +50 -6
  851. package/vscode/src/vs/sessions/browser/sessionAgentMerge.d.ts +10 -5
  852. package/vscode/src/vs/sessions/browser/sessionAgentMerge.js +25 -8
  853. package/vscode/src/vs/sessions/browser/sessionConversationGroups.d.ts +1 -3
  854. package/vscode/src/vs/sessions/browser/sessionConversationGroups.js +8 -11
  855. package/vscode/src/vs/sessions/browser/sessionStatusIcon.d.ts +3 -3
  856. package/vscode/src/vs/sessions/browser/sessionStatusIcon.js +5 -8
  857. package/vscode/src/vs/sessions/browser/sessionsAuthGate.d.ts +1 -1
  858. package/vscode/src/vs/sessions/browser/sessionsAuthGate.js +8 -1
  859. package/vscode/src/vs/sessions/browser/workbench.d.ts +38 -30
  860. package/vscode/src/vs/sessions/browser/workbench.js +312 -116
  861. package/vscode/src/vs/sessions/browser/workbench.service.d.ts +8 -8
  862. package/vscode/src/vs/sessions/common/agentHostSessionWorkspace.d.ts +11 -0
  863. package/vscode/src/vs/sessions/common/agentHostSessionWorkspace.js +81 -4
  864. package/vscode/src/vs/sessions/common/agentHostSessionsProvider.d.ts +58 -12
  865. package/vscode/src/vs/sessions/common/agentHostSessionsProvider.js +4 -1
  866. package/vscode/src/vs/sessions/common/categories.js +1 -1
  867. package/vscode/src/vs/sessions/common/chatLayout.d.ts +41 -0
  868. package/vscode/src/vs/sessions/common/chatLayout.js +81 -0
  869. package/vscode/src/vs/sessions/common/contextkeys.d.ts +24 -8
  870. package/vscode/src/vs/sessions/common/contextkeys.js +123 -80
  871. package/vscode/src/vs/sessions/common/devContainerAgentHostService.d.ts +23 -2
  872. package/vscode/src/vs/sessions/common/devContainerAgentHostService.js +10 -1
  873. package/vscode/src/vs/sessions/common/devContainerAgentHostService.service.d.ts +7 -2
  874. package/vscode/src/vs/sessions/common/dockedEditorInput.d.ts +2 -2
  875. package/vscode/src/vs/sessions/common/layoutConstants.d.ts +1 -1
  876. package/vscode/src/vs/sessions/common/layoutConstants.js +2 -2
  877. package/vscode/src/vs/sessions/common/sessionApplication.d.ts +2 -0
  878. package/vscode/src/vs/sessions/common/sessionApplication.js +58 -0
  879. package/vscode/src/vs/sessions/common/sessionCommands.d.ts +16 -0
  880. package/vscode/src/vs/sessions/common/sessionCommands.js +15 -1
  881. package/vscode/src/vs/sessions/common/sessionConfig.d.ts +16 -7
  882. package/vscode/src/vs/sessions/common/sessionConfig.js +19 -2
  883. package/vscode/src/vs/sessions/common/sessionsTelemetry.d.ts +38 -4
  884. package/vscode/src/vs/sessions/common/sessionsTelemetry.js +41 -4
  885. package/vscode/src/vs/sessions/common/theme.d.ts +1 -29
  886. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorUtils.d.ts +2 -2
  887. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackItemsBackend.d.ts +4 -5
  888. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackItemsBackend.js +71 -52
  889. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +10 -2
  890. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.service.d.ts +5 -1
  891. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/feedbackInputWidget.d.ts +9 -0
  892. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/feedbackInputWidget.js +24 -3
  893. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/sessionEditorComments.d.ts +2 -1
  894. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.js +1 -1
  895. package/vscode/src/vs/sessions/contrib/automations/browser/automationModelConfiguration.d.ts +1 -1
  896. package/vscode/src/vs/sessions/contrib/automations/browser/automationModelConfiguration.js +15 -4
  897. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +52 -0
  898. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +132 -0
  899. package/vscode/src/vs/sessions/contrib/canvases/browser/sessionCanvasesControl.d.ts +15 -0
  900. package/vscode/src/vs/sessions/contrib/canvases/browser/sessionCanvasesControl.js +67 -0
  901. package/vscode/src/vs/sessions/contrib/canvases/common/sessionCanvas.d.ts +7 -0
  902. package/vscode/src/vs/sessions/contrib/canvases/common/sessionCanvas.js +58 -0
  903. package/vscode/src/vs/sessions/contrib/changes/browser/changesEditorLabels.d.ts +11 -0
  904. package/vscode/src/vs/sessions/contrib/changes/browser/changesEditorLabels.js +9 -3
  905. package/vscode/src/vs/sessions/contrib/changes/browser/changesSummaryWidget.js +15 -46
  906. package/vscode/src/vs/sessions/contrib/changes/browser/changesView.d.ts +63 -11
  907. package/vscode/src/vs/sessions/contrib/changes/browser/changesView.js +250 -89
  908. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewRenderer.d.ts +1 -0
  909. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewRenderer.js +1 -1
  910. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewService.d.ts +9 -3
  911. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewService.js +251 -51
  912. package/vscode/src/vs/sessions/contrib/changes/browser/checksActions.js +5 -5
  913. package/vscode/src/vs/sessions/contrib/changes/browser/checksWidget.js +7 -7
  914. package/vscode/src/vs/sessions/contrib/changes/browser/createPullRequestChatRequest.d.ts +8 -4
  915. package/vscode/src/vs/sessions/contrib/changes/browser/createPullRequestChatRequest.js +13 -21
  916. package/vscode/src/vs/sessions/contrib/changes/browser/createPullRequestContextView.d.ts +2 -1
  917. package/vscode/src/vs/sessions/contrib/changes/browser/createPullRequestContextView.js +35 -1
  918. package/vscode/src/vs/sessions/contrib/changes/browser/createPullRequestWidget.d.ts +17 -2
  919. package/vscode/src/vs/sessions/contrib/changes/browser/createPullRequestWidget.js +149 -83
  920. package/vscode/src/vs/sessions/contrib/changes/browser/media/changesSummaryWidget.css +1 -9
  921. package/vscode/src/vs/sessions/contrib/changes/browser/media/sessionChangesEditor.css +9 -10
  922. package/vscode/src/vs/sessions/contrib/changes/browser/sessionChangesEditor.d.ts +10 -3
  923. package/vscode/src/vs/sessions/contrib/changes/browser/sessionChangesEditor.js +79 -25
  924. package/vscode/src/vs/sessions/contrib/changes/browser/sessionChangesEditorInput.js +2 -2
  925. package/vscode/src/vs/sessions/contrib/changes/browser/sessionChangesService.js +5 -4
  926. package/vscode/src/vs/sessions/contrib/changes/common/changes.d.ts +0 -1
  927. package/vscode/src/vs/sessions/contrib/changes/common/changes.js +1 -2
  928. package/vscode/src/vs/sessions/contrib/changes/common/changesViewService.d.ts +7 -0
  929. package/vscode/src/vs/sessions/contrib/changes/common/changesViewService.js +8 -0
  930. package/vscode/src/vs/sessions/contrib/changes/common/changesViewService.service.d.ts +2 -1
  931. package/vscode/src/vs/sessions/contrib/changes/common/pullRequestCreation.d.ts +10 -5
  932. package/vscode/src/vs/sessions/contrib/chat/browser/agentHostInputCompletions.d.ts +5 -1
  933. package/vscode/src/vs/sessions/contrib/chat/browser/agentHostInputCompletions.js +43 -13
  934. package/vscode/src/vs/sessions/contrib/chat/browser/branchPicker.d.ts +2 -0
  935. package/vscode/src/vs/sessions/contrib/chat/browser/branchPicker.js +12 -11
  936. package/vscode/src/vs/sessions/contrib/chat/browser/externalSessionBanner.d.ts +1 -0
  937. package/vscode/src/vs/sessions/contrib/chat/browser/externalSessionBanner.js +67 -34
  938. package/vscode/src/vs/sessions/contrib/chat/browser/media/chatInput.css +63 -1
  939. package/vscode/src/vs/sessions/contrib/chat/browser/media/chatInputMobile.css +0 -1
  940. package/vscode/src/vs/sessions/contrib/chat/browser/media/chatView.css +31 -25
  941. package/vscode/src/vs/sessions/contrib/chat/browser/media/chatWidget.css +409 -24
  942. package/vscode/src/vs/sessions/contrib/chat/browser/media/externalSessionBanner.css +1 -1
  943. package/vscode/src/vs/sessions/contrib/chat/browser/media/newChatInSession.css +1 -5
  944. package/vscode/src/vs/sessions/contrib/chat/browser/media/newChatMigrationNotice.css +27 -0
  945. package/vscode/src/vs/sessions/contrib/chat/browser/media/sessionComparisonResult.css +229 -0
  946. package/vscode/src/vs/sessions/contrib/chat/browser/mobile/mobileSessionTypePicker.d.ts +5 -3
  947. package/vscode/src/vs/sessions/contrib/chat/browser/mobile/mobileSessionTypePicker.js +34 -17
  948. package/vscode/src/vs/sessions/contrib/chat/browser/mobile/mobileWorkspacePickerSheet.d.ts +2 -1
  949. package/vscode/src/vs/sessions/contrib/chat/browser/mobile/mobileWorkspacePickerSheet.js +14 -8
  950. package/vscode/src/vs/sessions/contrib/chat/browser/modelPicker.d.ts +10 -4
  951. package/vscode/src/vs/sessions/contrib/chat/browser/modelPicker.js +70 -12
  952. package/vscode/src/vs/sessions/contrib/chat/browser/newChatContextAttachments.d.ts +2 -1
  953. package/vscode/src/vs/sessions/contrib/chat/browser/newChatContextAttachments.js +48 -30
  954. package/vscode/src/vs/sessions/contrib/chat/browser/newChatInSessionWidget.d.ts +10 -1
  955. package/vscode/src/vs/sessions/contrib/chat/browser/newChatInSessionWidget.js +38 -10
  956. package/vscode/src/vs/sessions/contrib/chat/browser/newChatInput.d.ts +46 -4
  957. package/vscode/src/vs/sessions/contrib/chat/browser/newChatInput.js +348 -104
  958. package/vscode/src/vs/sessions/contrib/chat/browser/newChatMigrationNotice.d.ts +8 -0
  959. package/vscode/src/vs/sessions/contrib/chat/browser/newChatMigrationNotice.js +46 -0
  960. package/vscode/src/vs/sessions/contrib/chat/browser/newChatModelPicker.d.ts +2 -1
  961. package/vscode/src/vs/sessions/contrib/chat/browser/newChatModelPicker.js +3 -3
  962. package/vscode/src/vs/sessions/contrib/chat/browser/newChatModelPicker.service.d.ts +1 -0
  963. package/vscode/src/vs/sessions/contrib/chat/browser/newChatPickerKeybinding.d.ts +12 -0
  964. package/vscode/src/vs/sessions/contrib/chat/browser/newChatPickerKeybinding.js +73 -0
  965. package/vscode/src/vs/sessions/contrib/chat/browser/newChatUserInteraction.d.ts +43 -0
  966. package/vscode/src/vs/sessions/contrib/chat/browser/newChatUserInteraction.js +172 -0
  967. package/vscode/src/vs/sessions/contrib/chat/browser/newChatVoice.js +5 -5
  968. package/vscode/src/vs/sessions/contrib/chat/browser/newChatWidget.d.ts +63 -10
  969. package/vscode/src/vs/sessions/contrib/chat/browser/newChatWidget.js +908 -84
  970. package/vscode/src/vs/sessions/contrib/chat/browser/newSessionComposerService.d.ts +16 -0
  971. package/vscode/src/vs/sessions/contrib/chat/browser/newSessionComposerService.js +37 -3
  972. package/vscode/src/vs/sessions/contrib/chat/browser/newSessionComposerService.service.d.ts +6 -1
  973. package/vscode/src/vs/sessions/contrib/chat/browser/newSessionPromptOptions.js +3 -3
  974. package/vscode/src/vs/sessions/contrib/chat/browser/noAgentHostEmptyState.js +4 -4
  975. package/vscode/src/vs/sessions/contrib/chat/browser/promptTemplatePlaceholder.js +2 -2
  976. package/vscode/src/vs/sessions/contrib/chat/browser/responseSelectionResolver.d.ts +9 -2
  977. package/vscode/src/vs/sessions/contrib/chat/browser/responseSelectionResolver.js +90 -11
  978. package/vscode/src/vs/sessions/contrib/chat/browser/responseSelectionSideChatController.d.ts +31 -7
  979. package/vscode/src/vs/sessions/contrib/chat/browser/responseSelectionSideChatController.js +252 -53
  980. package/vscode/src/vs/sessions/contrib/chat/browser/sessionArchiveNudge.d.ts +17 -3
  981. package/vscode/src/vs/sessions/contrib/chat/browser/sessionArchiveNudge.js +126 -26
  982. package/vscode/src/vs/sessions/contrib/chat/browser/sessionArchiveNudge.service.d.ts +13 -3
  983. package/vscode/src/vs/sessions/contrib/chat/browser/sessionArtifacts.d.ts +37 -9
  984. package/vscode/src/vs/sessions/contrib/chat/browser/sessionArtifacts.js +429 -114
  985. package/vscode/src/vs/sessions/contrib/chat/browser/sessionBackgroundActivitiesControl.d.ts +7 -11
  986. package/vscode/src/vs/sessions/contrib/chat/browser/sessionBackgroundActivitiesControl.js +36 -32
  987. package/vscode/src/vs/sessions/contrib/chat/browser/sessionBrowsersControl.js +2 -2
  988. package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbar.d.ts +21 -10
  989. package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbar.js +433 -131
  990. package/vscode/src/vs/sessions/contrib/chat/browser/sessionComparisonModelSelection.d.ts +28 -0
  991. package/vscode/src/vs/sessions/contrib/chat/browser/sessionComparisonModelSelection.js +201 -0
  992. package/vscode/src/vs/sessions/contrib/chat/browser/sessionComparisonResult.d.ts +47 -0
  993. package/vscode/src/vs/sessions/contrib/chat/browser/sessionComparisonResult.js +592 -0
  994. package/vscode/src/vs/sessions/contrib/chat/browser/sessionModelPickerState.js +0 -2
  995. package/vscode/src/vs/sessions/contrib/chat/browser/sessionModelSelection.d.ts +4 -1
  996. package/vscode/src/vs/sessions/contrib/chat/browser/sessionModelSelection.js +26 -10
  997. package/vscode/src/vs/sessions/contrib/chat/browser/sessionModelSelection.service.d.ts +3 -1
  998. package/vscode/src/vs/sessions/contrib/chat/browser/sessionReferenceCompletions.js +3 -3
  999. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.service.d.ts +2 -2
  1000. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTypePicker.d.ts +45 -12
  1001. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTypePicker.js +142 -31
  1002. package/vscode/src/vs/sessions/contrib/chat/browser/sessionWorkspaceFallback.d.ts +7 -1
  1003. package/vscode/src/vs/sessions/contrib/chat/browser/sessionWorkspaceFallback.js +51 -8
  1004. package/vscode/src/vs/sessions/contrib/chat/browser/sessionWorkspacePicker.d.ts +41 -7
  1005. package/vscode/src/vs/sessions/contrib/chat/browser/sessionWorkspacePicker.js +425 -157
  1006. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsTasksService.d.ts +10 -10
  1007. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsTasksService.js +3 -3
  1008. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsTasksService.service.d.ts +19 -19
  1009. package/vscode/src/vs/sessions/contrib/chat/browser/slashCommands.d.ts +5 -2
  1010. package/vscode/src/vs/sessions/contrib/chat/browser/slashCommands.js +40 -10
  1011. package/vscode/src/vs/sessions/contrib/chat/browser/variableCompletions.d.ts +2 -2
  1012. package/vscode/src/vs/sessions/contrib/chat/browser/variableCompletions.js +3 -3
  1013. package/vscode/src/vs/sessions/contrib/chat/browser/webWorkspacePicker.d.ts +7 -1
  1014. package/vscode/src/vs/sessions/contrib/chat/browser/webWorkspacePicker.js +54 -15
  1015. package/vscode/src/vs/sessions/contrib/chat/common/constants.d.ts +10 -0
  1016. package/vscode/src/vs/sessions/contrib/chat/common/constants.js +10 -1
  1017. package/vscode/src/vs/sessions/contrib/chat/common/newChatDraftState.d.ts +4 -0
  1018. package/vscode/src/vs/sessions/contrib/chat/common/newChatDraftState.js +29 -0
  1019. package/vscode/src/vs/sessions/contrib/chat/common/welcomePhrases.d.ts +19 -0
  1020. package/vscode/src/vs/sessions/contrib/chat/common/welcomePhrases.js +35 -0
  1021. package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReviewService.d.ts +18 -0
  1022. package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReviewService.js +185 -6
  1023. package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReviewService.service.d.ts +5 -1
  1024. package/vscode/src/vs/sessions/contrib/editor/browser/diffEditor.sessions.contribution.js +6 -6
  1025. package/vscode/src/vs/sessions/contrib/editor/common/diffEditorOptionsService.js +1 -1
  1026. package/vscode/src/vs/sessions/contrib/github/browser/fetchers/githubChangesFetcher.js +1 -0
  1027. package/vscode/src/vs/sessions/contrib/github/browser/fetchers/githubPRFetcher.d.ts +4 -1
  1028. package/vscode/src/vs/sessions/contrib/github/browser/fetchers/githubPRFetcher.js +110 -6
  1029. package/vscode/src/vs/sessions/contrib/github/browser/fetchers/githubRepositoryFetcher.d.ts +2 -0
  1030. package/vscode/src/vs/sessions/contrib/github/browser/fetchers/githubRepositoryFetcher.js +58 -11
  1031. package/vscode/src/vs/sessions/contrib/github/browser/githubApiClient.d.ts +3 -0
  1032. package/vscode/src/vs/sessions/contrib/github/browser/githubApiClient.js +68 -13
  1033. package/vscode/src/vs/sessions/contrib/github/browser/githubService.d.ts +9 -1
  1034. package/vscode/src/vs/sessions/contrib/github/browser/githubService.js +44 -0
  1035. package/vscode/src/vs/sessions/contrib/github/browser/githubService.service.d.ts +9 -1
  1036. package/vscode/src/vs/sessions/contrib/github/browser/issueHover.d.ts +12 -1
  1037. package/vscode/src/vs/sessions/contrib/github/browser/issueHover.js +19 -52
  1038. package/vscode/src/vs/sessions/contrib/github/browser/models/githubPullRequestModel.d.ts +4 -0
  1039. package/vscode/src/vs/sessions/contrib/github/browser/models/githubPullRequestModel.js +13 -0
  1040. package/vscode/src/vs/sessions/contrib/github/browser/pullRequestHover.d.ts +12 -1
  1041. package/vscode/src/vs/sessions/contrib/github/browser/pullRequestHover.js +23 -55
  1042. package/vscode/src/vs/sessions/contrib/github/browser/pullRequestIconStatus.d.ts +5 -3
  1043. package/vscode/src/vs/sessions/contrib/github/browser/pullRequestIconStatus.js +20 -7
  1044. package/vscode/src/vs/sessions/contrib/github/common/sessionGitHubReferences.d.ts +13 -0
  1045. package/vscode/src/vs/sessions/contrib/github/common/sessionGitHubReferences.js +115 -0
  1046. package/vscode/src/vs/sessions/contrib/github/common/sessionLifecycleSettings.d.ts +2 -2
  1047. package/vscode/src/vs/sessions/contrib/github/common/types.d.ts +6 -14
  1048. package/vscode/src/vs/sessions/contrib/github/common/types.js +23 -53
  1049. package/vscode/src/vs/sessions/contrib/github/common/utils.d.ts +4 -6
  1050. package/vscode/src/vs/sessions/contrib/github/common/utils.js +15 -10
  1051. package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.service.d.ts +33 -0
  1052. package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.service.js +6 -0
  1053. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/sessionArchiveTour.js +11 -5
  1054. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostAutomationStore.d.ts +27 -37
  1055. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostAutomationStore.js +315 -686
  1056. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.d.ts +26 -0
  1057. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +98 -0
  1058. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +33 -0
  1059. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +98 -0
  1060. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostDiffs.d.ts +2 -2
  1061. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostDiffs.js +10 -8
  1062. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +2 -0
  1063. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +13 -0
  1064. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +122 -0
  1065. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +474 -0
  1066. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +35 -0
  1067. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +90 -0
  1068. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +68 -0
  1069. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +371 -0
  1070. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPullRequestCreation.d.ts +8 -5
  1071. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPullRequestCreation.js +20 -7
  1072. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionArtifacts.d.ts +24 -13
  1073. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionArtifacts.js +28 -37
  1074. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionChangesets.d.ts +13 -2
  1075. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionChangesets.js +233 -69
  1076. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +227 -0
  1077. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +1816 -0
  1078. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionFiles.d.ts +4 -11
  1079. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionFiles.js +40 -13
  1080. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionPermissions.d.ts +8 -0
  1081. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionPermissions.js +183 -0
  1082. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSkillButtons.js +4 -4
  1083. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/baseAgentHostSessionsProvider.d.ts +258 -109
  1084. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/baseAgentHostSessionsProvider.js +2671 -618
  1085. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/devContainerAgentHostSessionsProvider.d.ts +45 -0
  1086. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/devContainerAgentHostSessionsProvider.js +485 -0
  1087. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +48 -0
  1088. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +30 -0
  1089. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +78 -0
  1090. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +11 -0
  1091. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +26 -0
  1092. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/reconnectableAgentHostAutomationStore.d.ts +29 -37
  1093. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/reconnectableAgentHostAutomationStore.js +109 -233
  1094. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/worktreeDiskUsage.d.ts +5 -0
  1095. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/worktreeDiskUsage.js +64 -0
  1096. package/vscode/src/vs/sessions/contrib/providers/copilotChatSessions/browser/mobilePermissionPicker.d.ts +25 -0
  1097. package/vscode/src/vs/sessions/contrib/providers/copilotChatSessions/browser/mobilePermissionPicker.js +99 -0
  1098. package/vscode/src/vs/sessions/contrib/providers/copilotChatSessions/browser/permissionPicker.d.ts +123 -0
  1099. package/vscode/src/vs/sessions/contrib/providers/copilotChatSessions/browser/permissionPicker.js +505 -0
  1100. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/browserTunnelAgentHostService.d.ts +35 -10
  1101. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/browserTunnelAgentHostService.js +136 -58
  1102. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.d.ts +35 -0
  1103. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.js +5 -0
  1104. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.service.d.ts +17 -0
  1105. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.service.js +6 -0
  1106. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devTunnelsModule.js +644 -175
  1107. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostSessionsProvider.d.ts +102 -24
  1108. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostSessionsProvider.js +565 -79
  1109. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteHostOptions.d.ts +5 -7
  1110. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteHostOptions.js +115 -46
  1111. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/tunnelAgentHostStorage.d.ts +2 -1
  1112. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/tunnelAgentHostStorage.js +6 -0
  1113. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/webTunnelAgentHostService.contribution.d.ts +6 -6
  1114. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/webTunnelAgentHostService.contribution.js +11 -5
  1115. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/webTunnelAgentHostService.d.ts +3 -4
  1116. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/webTunnelAgentHostService.js +60 -10
  1117. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.service.d.ts +8 -0
  1118. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.service.js +6 -0
  1119. package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessions.d.ts +77 -0
  1120. package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessions.js +198 -0
  1121. package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessions.service.d.ts +9 -0
  1122. package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessions.service.js +6 -0
  1123. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.service.d.ts +5 -0
  1124. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.service.js +6 -0
  1125. package/vscode/src/vs/sessions/contrib/sessionComparison/common/sessionComparison.d.ts +2 -0
  1126. package/vscode/src/vs/sessions/contrib/sessionComparison/common/sessionComparison.js +6 -0
  1127. package/vscode/src/vs/sessions/contrib/sessionInputBanners/browser/sessionInputBannerWidget.d.ts +1 -1
  1128. package/vscode/src/vs/sessions/contrib/sessionInputBanners/browser/sessionInputBannerWidget.js +16 -5
  1129. package/vscode/src/vs/sessions/contrib/sessionInputBanners/browser/sessionInputBanners.js +56 -36
  1130. package/vscode/src/vs/sessions/contrib/sessionInputBanners/browser/sessionWorktreeCleanupService.d.ts +80 -0
  1131. package/vscode/src/vs/sessions/contrib/sessionInputBanners/browser/sessionWorktreeCleanupService.js +417 -0
  1132. package/vscode/src/vs/sessions/contrib/sessionInputBanners/browser/sessionWorktreeCleanupService.service.d.ts +12 -0
  1133. package/vscode/src/vs/sessions/contrib/sessionInputBanners/browser/sessionWorktreeCleanupService.service.js +6 -0
  1134. package/vscode/src/vs/sessions/contrib/sessions/browser/aiCustomizationShortcutsWidget.d.ts +8 -3
  1135. package/vscode/src/vs/sessions/contrib/sessions/browser/aiCustomizationShortcutsWidget.js +25 -27
  1136. package/vscode/src/vs/sessions/contrib/sessions/browser/customizationMcpServerCount.service.d.ts +6 -0
  1137. package/vscode/src/vs/sessions/contrib/sessions/browser/customizationMcpServerCount.service.js +6 -0
  1138. package/vscode/src/vs/sessions/contrib/sessions/browser/customizationsConstants.d.ts +1 -0
  1139. package/vscode/src/vs/sessions/contrib/sessions/browser/customizationsConstants.js +5 -0
  1140. package/vscode/src/vs/sessions/contrib/sessions/browser/customizationsNavigationState.d.ts +19 -0
  1141. package/vscode/src/vs/sessions/contrib/sessions/browser/customizationsNavigationState.js +98 -0
  1142. package/vscode/src/vs/sessions/contrib/sessions/browser/customizationsToolbar.contribution.d.ts +12 -6
  1143. package/vscode/src/vs/sessions/contrib/sessions/browser/customizationsToolbar.contribution.js +101 -37
  1144. package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsList.css +673 -141
  1145. package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsListNotice.css +42 -0
  1146. package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsListNotification.css +76 -0
  1147. package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsViewPane.css +72 -0
  1148. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionHoverContent.d.ts +10 -3
  1149. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionHoverContent.js +163 -30
  1150. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionStorageCleanupNotice.d.ts +16 -0
  1151. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionStorageCleanupNotice.js +102 -0
  1152. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsList.d.ts +175 -62
  1153. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsList.js +2469 -485
  1154. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsListFilters.d.ts +32 -0
  1155. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsListFilters.js +154 -0
  1156. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsListNotice.d.ts +36 -0
  1157. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsListNotice.js +17 -0
  1158. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsListNotification.d.ts +23 -0
  1159. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsListNotification.js +196 -0
  1160. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsView.d.ts +34 -15
  1161. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsView.js +369 -192
  1162. package/vscode/src/vs/sessions/services/agentHostFilter/common/agentHostFilter.d.ts +3 -0
  1163. package/vscode/src/vs/sessions/services/agentHostFilter/common/agentHostFilter.service.d.ts +6 -6
  1164. package/vscode/src/vs/sessions/services/chatBackground/browser/chatBackgroundRenderer.d.ts +22 -1
  1165. package/vscode/src/vs/sessions/services/chatBackground/browser/chatBackgroundRenderer.js +294 -38
  1166. package/vscode/src/vs/sessions/services/chatBackground/browser/media/chatBackground.css +63 -1
  1167. package/vscode/src/vs/sessions/services/customView/browser/customViewService.service.d.ts +8 -3
  1168. package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.service.d.ts +2 -0
  1169. package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.service.d.ts +4 -4
  1170. package/vscode/src/vs/sessions/services/sessions/browser/sessionsPartService.d.ts +15 -0
  1171. package/vscode/src/vs/sessions/services/sessions/browser/sessionsPartService.service.d.ts +15 -6
  1172. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecentWorkspacesService.d.ts +5 -0
  1173. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecentWorkspacesService.js +57 -2
  1174. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecentWorkspacesService.service.d.ts +5 -0
  1175. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.service.d.ts +17 -6
  1176. package/vscode/src/vs/sessions/services/sessions/common/session.d.ts +113 -44
  1177. package/vscode/src/vs/sessions/services/sessions/common/session.js +20 -33
  1178. package/vscode/src/vs/sessions/services/sessions/common/sessionChangesStatsCache.d.ts +6 -5
  1179. package/vscode/src/vs/sessions/services/sessions/common/sessionChangesStatsCache.js +24 -5
  1180. package/vscode/src/vs/sessions/services/sessions/common/sessionComparison.d.ts +134 -0
  1181. package/vscode/src/vs/sessions/services/sessions/common/sessionComparison.js +95 -0
  1182. package/vscode/src/vs/sessions/services/sessions/common/sessionComparison.service.d.ts +22 -0
  1183. package/vscode/src/vs/sessions/services/sessions/common/sessionComparison.service.js +6 -0
  1184. package/vscode/src/vs/sessions/services/sessions/common/sessionPickerVisibility.d.ts +26 -0
  1185. package/vscode/src/vs/sessions/services/sessions/common/sessionPickerVisibility.js +43 -0
  1186. package/vscode/src/vs/sessions/services/sessions/common/sessionPickerVisibility.service.d.ts +9 -0
  1187. package/vscode/src/vs/sessions/services/sessions/common/sessionPickerVisibility.service.js +6 -0
  1188. package/vscode/src/vs/sessions/services/sessions/common/sessionsManagement.d.ts +30 -12
  1189. package/vscode/src/vs/sessions/services/sessions/common/sessionsManagement.service.d.ts +31 -15
  1190. package/vscode/src/vs/sessions/services/sessions/common/sessionsProvider.d.ts +124 -63
  1191. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.d.ts +1 -1
  1192. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +2 -1
  1193. package/vscode/src/vs/workbench/api/browser/statusBarExtensionPoint.js +12 -12
  1194. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +7 -2
  1195. package/vscode/src/vs/workbench/api/common/extHost.protocol.d.ts +30 -8
  1196. package/vscode/src/vs/workbench/api/common/extHostAuthentication.d.ts +11 -1
  1197. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +115 -64
  1198. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.d.ts +1 -1
  1199. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +38 -19
  1200. package/vscode/src/vs/workbench/api/common/extHostChatSessions.d.ts +0 -1
  1201. package/vscode/src/vs/workbench/api/common/extHostChatSessions.js +1 -14
  1202. package/vscode/src/vs/workbench/api/common/extHostCodeMapper.js +11 -2
  1203. package/vscode/src/vs/workbench/api/common/extHostComments.js +13 -3
  1204. package/vscode/src/vs/workbench/api/common/extHostCustomEditors.d.ts +11 -0
  1205. package/vscode/src/vs/workbench/api/common/extHostCustomEditors.js +109 -11
  1206. package/vscode/src/vs/workbench/api/common/extHostDebugService.js +38 -15
  1207. package/vscode/src/vs/workbench/api/common/extHostDiagnostics.js +1 -1
  1208. package/vscode/src/vs/workbench/api/common/extHostExtensionService.d.ts +1 -0
  1209. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +4 -2
  1210. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +11 -8
  1211. package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.d.ts +0 -1
  1212. package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +14 -14
  1213. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.d.ts +5 -0
  1214. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +42 -3
  1215. package/vscode/src/vs/workbench/api/common/extHostLogService.js +1 -1
  1216. package/vscode/src/vs/workbench/api/common/extHostMcp.d.ts +8 -1
  1217. package/vscode/src/vs/workbench/api/common/extHostMcp.js +127 -39
  1218. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +4 -2
  1219. package/vscode/src/vs/workbench/api/common/extHostProgress.d.ts +5 -4
  1220. package/vscode/src/vs/workbench/api/common/extHostProgress.js +3 -2
  1221. package/vscode/src/vs/workbench/api/common/extHostSCM.js +19 -1
  1222. package/vscode/src/vs/workbench/api/common/extHostSpeech.js +2 -2
  1223. package/vscode/src/vs/workbench/api/common/extHostStatusBar.d.ts +1 -0
  1224. package/vscode/src/vs/workbench/api/common/extHostStatusBar.js +10 -3
  1225. package/vscode/src/vs/workbench/api/common/extHostTelemetry.d.ts +3 -1
  1226. package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +38 -15
  1227. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +1 -1
  1228. package/vscode/src/vs/workbench/api/common/extHostTesting.js +6 -2
  1229. package/vscode/src/vs/workbench/api/common/extHostTimeline.js +4 -7
  1230. package/vscode/src/vs/workbench/api/common/extHostTreeViews.js +4 -2
  1231. package/vscode/src/vs/workbench/api/common/extHostTunnelService.js +2 -2
  1232. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +13 -3
  1233. package/vscode/src/vs/workbench/api/common/extHostTypes.d.ts +10 -14
  1234. package/vscode/src/vs/workbench/api/common/extHostTypes.js +11 -16
  1235. package/vscode/src/vs/workbench/api/common/extHostUriOpener.d.ts +2 -0
  1236. package/vscode/src/vs/workbench/api/common/extHostUriOpener.js +2 -1
  1237. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
  1238. package/vscode/src/vs/workbench/api/common/extensionHostMain.js +1 -1
  1239. package/vscode/src/vs/workbench/api/common/jsonValidationExtensionPoint.js +18 -18
  1240. package/vscode/src/vs/workbench/browser/actions/developerActions.js +90 -58
  1241. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +132 -132
  1242. package/vscode/src/vs/workbench/browser/actions/layoutDensityActions.d.ts +2 -0
  1243. package/vscode/src/vs/workbench/browser/actions/layoutDensityActions.js +46 -0
  1244. package/vscode/src/vs/workbench/browser/actions/menuMotion.d.ts +4 -1
  1245. package/vscode/src/vs/workbench/browser/actions/navigationActions.d.ts +10 -0
  1246. package/vscode/src/vs/workbench/browser/actions/navigationActions.js +334 -0
  1247. package/vscode/src/vs/workbench/browser/actions/policyDiagnosticsMarkdown.d.ts +6 -0
  1248. package/vscode/src/vs/workbench/browser/actions/policyDiagnosticsMarkdown.js +53 -1
  1249. package/vscode/src/vs/workbench/browser/actions/textInputActions.js +6 -6
  1250. package/vscode/src/vs/workbench/browser/actions/windowActions.js +29 -29
  1251. package/vscode/src/vs/workbench/browser/actions/workspaceActions.js +21 -21
  1252. package/vscode/src/vs/workbench/browser/actions/workspaceCommands.js +6 -5
  1253. package/vscode/src/vs/workbench/browser/animatedCounterWidget.js +3 -3
  1254. package/vscode/src/vs/workbench/browser/changesStatsWidget.d.ts +15 -0
  1255. package/vscode/src/vs/workbench/browser/changesStatsWidget.js +44 -0
  1256. package/vscode/src/vs/workbench/browser/chatChangesPill.d.ts +3 -7
  1257. package/vscode/src/vs/workbench/browser/chatChangesPill.js +12 -31
  1258. package/vscode/src/vs/workbench/browser/chatDropdownPill.d.ts +22 -1
  1259. package/vscode/src/vs/workbench/browser/chatDropdownPill.js +209 -29
  1260. package/vscode/src/vs/workbench/browser/chatImagePreview.d.ts +7 -0
  1261. package/vscode/src/vs/workbench/browser/chatImagePreview.js +130 -0
  1262. package/vscode/src/vs/workbench/browser/chatPillHover.d.ts +37 -0
  1263. package/vscode/src/vs/workbench/browser/chatPillHover.js +202 -0
  1264. package/vscode/src/vs/workbench/browser/chatPills.d.ts +74 -6
  1265. package/vscode/src/vs/workbench/browser/chatPills.js +198 -28
  1266. package/vscode/src/vs/workbench/browser/chatResourcePill.d.ts +7 -1
  1267. package/vscode/src/vs/workbench/browser/chatResourcePill.js +16 -5
  1268. package/vscode/src/vs/workbench/browser/dnd.js +2 -2
  1269. package/vscode/src/vs/workbench/browser/editor.js +2 -2
  1270. package/vscode/src/vs/workbench/browser/labels.js +9 -5
  1271. package/vscode/src/vs/workbench/browser/media/animatedCounterWidget.css +1 -1
  1272. package/vscode/src/vs/workbench/browser/media/changesStatsWidget.css +12 -0
  1273. package/vscode/src/vs/workbench/browser/media/chatImagePreview.css +50 -0
  1274. package/vscode/src/vs/workbench/browser/media/chatPills.css +75 -14
  1275. package/vscode/src/vs/workbench/browser/media/floatingPanels.css +88 -69
  1276. package/vscode/src/vs/workbench/browser/media/style.css +10 -4
  1277. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.d.ts +6 -1
  1278. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +39 -29
  1279. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +25 -25
  1280. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +4 -4
  1281. package/vscode/src/vs/workbench/browser/parts/compositeBar.js +1 -1
  1282. package/vscode/src/vs/workbench/browser/parts/compositeBarActions.js +9 -9
  1283. package/vscode/src/vs/workbench/browser/parts/compositePart.js +3 -3
  1284. package/vscode/src/vs/workbench/browser/parts/dialogs/dialog.js +1 -1
  1285. package/vscode/src/vs/workbench/browser/parts/editor/auxiliaryEditorPart.js +3 -3
  1286. package/vscode/src/vs/workbench/browser/parts/editor/binaryDiffEditor.js +1 -1
  1287. package/vscode/src/vs/workbench/browser/parts/editor/binaryEditor.js +3 -3
  1288. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbs.js +38 -38
  1289. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsControl.js +17 -15
  1290. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsModel.d.ts +3 -1
  1291. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsModel.js +6 -3
  1292. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.js +2 -2
  1293. package/vscode/src/vs/workbench/browser/parts/editor/connectedTabClipping.d.ts +11 -0
  1294. package/vscode/src/vs/workbench/browser/parts/editor/connectedTabClipping.js +33 -0
  1295. package/vscode/src/vs/workbench/browser/parts/editor/diffEditorCommands.js +7 -7
  1296. package/vscode/src/vs/workbench/browser/parts/editor/editor.d.ts +2 -0
  1297. package/vscode/src/vs/workbench/browser/parts/editor/editor.js +54 -58
  1298. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +136 -136
  1299. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +39 -32
  1300. package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +1 -1
  1301. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupView.js +11 -11
  1302. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupWatermark.js +12 -12
  1303. package/vscode/src/vs/workbench/browser/parts/editor/editorHeaderControl.js +3 -3
  1304. package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +2 -2
  1305. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.d.ts +1 -0
  1306. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.js +13 -6
  1307. package/vscode/src/vs/workbench/browser/parts/editor/editorParts.js +1 -1
  1308. package/vscode/src/vs/workbench/browser/parts/editor/editorPlaceholder.js +10 -10
  1309. package/vscode/src/vs/workbench/browser/parts/editor/editorQuickAccess.js +5 -5
  1310. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +66 -66
  1311. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.d.ts +1 -1
  1312. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.js +12 -6
  1313. package/vscode/src/vs/workbench/browser/parts/editor/editorTypePicker.js +6 -6
  1314. package/vscode/src/vs/workbench/browser/parts/editor/media/multieditortabscontrol.css +22 -1
  1315. package/vscode/src/vs/workbench/browser/parts/editor/modalEditorPart.d.ts +0 -1
  1316. package/vscode/src/vs/workbench/browser/parts/editor/modalEditorPart.js +10 -16
  1317. package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.d.ts +12 -1
  1318. package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.js +259 -32
  1319. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -1
  1320. package/vscode/src/vs/workbench/browser/parts/editor/textCodeEditor.js +1 -1
  1321. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +3 -3
  1322. package/vscode/src/vs/workbench/browser/parts/editor/textEditor.js +1 -1
  1323. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.d.ts +3 -0
  1324. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +49 -35
  1325. package/vscode/src/vs/workbench/browser/parts/notifications/notificationAccessibleView.js +114 -48
  1326. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsActions.js +24 -22
  1327. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsAlerts.js +3 -3
  1328. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCenter.d.ts +3 -1
  1329. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCenter.js +19 -9
  1330. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.d.ts +5 -2
  1331. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +155 -93
  1332. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsList.d.ts +11 -1
  1333. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsList.js +86 -12
  1334. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsStatus.js +13 -13
  1335. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +19 -4
  1336. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.d.ts +5 -1
  1337. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +40 -15
  1338. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.d.ts +1 -0
  1339. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.js +8 -5
  1340. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.d.ts +1 -0
  1341. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.js +13 -7
  1342. package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +27 -27
  1343. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +13 -14
  1344. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarActions.js +2 -2
  1345. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.js +2 -2
  1346. package/vscode/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css +13 -9
  1347. package/vscode/src/vs/workbench/browser/parts/titlebar/menubar.contribution.js +8 -8
  1348. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +11 -11
  1349. package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarActions.js +15 -15
  1350. package/vscode/src/vs/workbench/browser/parts/titlebar/windowTitle.js +2 -2
  1351. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +1 -1
  1352. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +10 -10
  1353. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +4 -4
  1354. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +5 -5
  1355. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +6 -6
  1356. package/vscode/src/vs/workbench/browser/quickaccess.js +1 -1
  1357. package/vscode/src/vs/workbench/browser/window.d.ts +1 -0
  1358. package/vscode/src/vs/workbench/browser/window.js +26 -15
  1359. package/vscode/src/vs/workbench/browser/workbench.contribution.js +309 -239
  1360. package/vscode/src/vs/workbench/browser/workbench.zenMode.contribution.js +15 -15
  1361. package/vscode/src/vs/workbench/common/activity.d.ts +1 -0
  1362. package/vscode/src/vs/workbench/common/activity.js +2 -1
  1363. package/vscode/src/vs/workbench/common/agentsColors.d.ts +30 -0
  1364. package/vscode/src/vs/{sessions/common/theme.js → workbench/common/agentsColors.js} +40 -36
  1365. package/vscode/src/vs/workbench/common/agentsSizes.d.ts +23 -0
  1366. package/vscode/src/vs/workbench/common/agentsSizes.js +22 -0
  1367. package/vscode/src/vs/workbench/common/chatIssue.d.ts +6 -0
  1368. package/vscode/src/vs/workbench/common/chatIssue.js +33 -0
  1369. package/vscode/src/vs/workbench/common/configuration.js +9 -9
  1370. package/vscode/src/vs/workbench/common/contextkeys.d.ts +1 -0
  1371. package/vscode/src/vs/workbench/common/contextkeys.js +89 -88
  1372. package/vscode/src/vs/workbench/common/editor/diffEditorInput.js +1 -1
  1373. package/vscode/src/vs/workbench/common/editor/sideBySideEditorInput.js +1 -1
  1374. package/vscode/src/vs/workbench/common/editor/textEditorModel.js +1 -1
  1375. package/vscode/src/vs/workbench/common/editor.js +4 -4
  1376. package/vscode/src/vs/workbench/common/notificationTelemetry.d.ts +103 -0
  1377. package/vscode/src/vs/workbench/common/notificationTelemetry.js +100 -0
  1378. package/vscode/src/vs/workbench/common/notifications.d.ts +7 -0
  1379. package/vscode/src/vs/workbench/common/notifications.js +81 -17
  1380. package/vscode/src/vs/workbench/common/theme.d.ts +2 -0
  1381. package/vscode/src/vs/workbench/common/theme.js +212 -203
  1382. package/vscode/src/vs/workbench/common/views.js +4 -4
  1383. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.d.ts +8 -0
  1384. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +241 -170
  1385. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.js +12 -12
  1386. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.d.ts +2 -0
  1387. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.js +3 -1
  1388. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoiceColors.js +2 -2
  1389. package/vscode/src/vs/workbench/contrib/browserView/common/browserEditorInput.js +1 -1
  1390. package/vscode/src/vs/workbench/contrib/browserView/common/browserView.d.ts +35 -22
  1391. package/vscode/src/vs/workbench/contrib/browserView/common/browserView.js +83 -81
  1392. package/vscode/src/vs/workbench/contrib/browserView/common/browserView.service.d.ts +4 -1
  1393. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEdit.contribution.js +18 -18
  1394. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPane.js +6 -6
  1395. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview.js +1 -1
  1396. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditTree.js +16 -16
  1397. package/vscode/src/vs/workbench/contrib/canvases/common/agentHostCanvas.d.ts +23 -0
  1398. package/vscode/src/vs/workbench/contrib/canvases/common/agentHostCanvas.js +114 -0
  1399. package/vscode/src/vs/workbench/contrib/canvases/common/canvas.d.ts +95 -0
  1400. package/vscode/src/vs/workbench/contrib/canvases/common/canvas.js +110 -0
  1401. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +34 -26
  1402. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +86 -77
  1403. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +15 -14
  1404. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +5 -0
  1405. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +177 -17
  1406. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  1407. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +63 -50
  1408. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +5 -2
  1409. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +34 -13
  1410. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatModelFeedbackSurveyActions.js +1 -1
  1411. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +16 -0
  1412. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +372 -0
  1413. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSpeechToTextActions.js +17 -15
  1414. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  1415. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +25 -13
  1416. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +18 -18
  1417. package/vscode/src/vs/workbench/contrib/chat/browser/actions/configureVoiceInstructionsAction.js +10 -9
  1418. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +27 -12
  1419. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +473 -222
  1420. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.service.d.ts +2 -2
  1421. package/vscode/src/vs/workbench/contrib/chat/browser/agentHostCompletionAction.d.ts +5 -9
  1422. package/vscode/src/vs/workbench/contrib/chat/browser/agentHostCompletionAction.js +41 -5
  1423. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +9 -6
  1424. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +57 -25
  1425. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +2 -0
  1426. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.js +6 -1
  1427. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAuth.d.ts +166 -0
  1428. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAuth.js +1014 -0
  1429. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAuthTelemetry.d.ts +19 -0
  1430. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAuthTelemetry.js +22 -0
  1431. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAutoTierScope.d.ts +24 -0
  1432. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAutoTierScope.js +99 -0
  1433. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostBackgroundShells.d.ts +23 -0
  1434. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostBackgroundShells.js +137 -0
  1435. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostBranchPicker.d.ts +19 -0
  1436. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostBranchPicker.js +17 -0
  1437. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostByokLmHandler.js +12 -3
  1438. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +5 -5
  1439. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +19 -17
  1440. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +434 -229
  1441. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.d.ts +171 -0
  1442. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.js +627 -0
  1443. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.service.d.ts +6 -6
  1444. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostDownloadProgress.js +9 -3
  1445. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostFolderPickerActionItem.js +1 -1
  1446. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostFolderPickerTip.js +2 -2
  1447. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +8 -9
  1448. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +90 -33
  1449. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLegacyMigration.d.ts +1 -1
  1450. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLegacyMigration.js +69 -22
  1451. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModePickerPresentation.d.ts +4 -0
  1452. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModePickerPresentation.js +42 -39
  1453. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSdkSetupNotification.d.ts +13 -12
  1454. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSdkSetupNotification.js +74 -25
  1455. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionConfigSubscription.d.ts +23 -0
  1456. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionConfigSubscription.js +98 -0
  1457. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionUri.d.ts +6 -1
  1458. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionUri.js +17 -17
  1459. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSnapshotController.js +2 -2
  1460. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.service.d.ts +8 -7
  1461. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/chatTerminalOutputTextModelContentProvider.d.ts +37 -0
  1462. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/chatTerminalOutputTextModelContentProvider.js +305 -0
  1463. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/chatTerminalOutputTextModelContentProvider.service.d.ts +7 -0
  1464. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/chatTerminalOutputTextModelContentProvider.service.js +6 -0
  1465. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/importLocalConversationToAgentSession.js +8 -3
  1466. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostModePicker.css +27 -47
  1467. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/stateToProgressAdapter.d.ts +36 -32
  1468. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/stateToProgressAdapter.js +569 -145
  1469. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +58 -41
  1470. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +2 -0
  1471. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +22 -17
  1472. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsBanner.d.ts +8 -12
  1473. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsBanner.js +71 -12
  1474. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +16 -14
  1475. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel.d.ts +15 -4
  1476. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel.js +113 -66
  1477. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +13 -6
  1478. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/externalSessionsFilterMenu.d.ts +1 -1
  1479. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/externalSessionsFilterMenu.js +26 -8
  1480. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +149 -8
  1481. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/sessionSummaryHover.css +5 -0
  1482. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionSummaryHover.d.ts +22 -2
  1483. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionSummaryHover.js +83 -39
  1484. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionTypeAvailability.d.ts +11 -9
  1485. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionTypeAvailability.js +29 -17
  1486. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationColors.d.ts +1 -0
  1487. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationColors.js +20 -0
  1488. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDiscoveryPage.d.ts +157 -0
  1489. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDiscoveryPage.js +2100 -0
  1490. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -15
  1491. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +11 -2
  1492. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.js +2 -2
  1493. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +6 -3
  1494. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +45 -12
  1495. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.service.d.ts +2 -2
  1496. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +26 -41
  1497. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +450 -804
  1498. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +18 -0
  1499. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +58 -4
  1500. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +9 -0
  1501. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +9 -5
  1502. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +148 -64
  1503. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +2180 -1451
  1504. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +5 -4
  1505. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementSectionRegistry.d.ts +4 -0
  1506. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationPresentation.d.ts +5 -0
  1507. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationPresentation.js +38 -7
  1508. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationQuery.d.ts +15 -0
  1509. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationQuery.js +104 -0
  1510. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.d.ts +62 -4
  1511. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.js +126 -19
  1512. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +45 -37
  1513. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceGroups.d.ts +10 -0
  1514. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceGroups.js +25 -0
  1515. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/chatCustomizationMigrationNotice.d.ts +40 -0
  1516. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/chatCustomizationMigrationNotice.js +199 -0
  1517. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/connectorPresentation.d.ts +14 -0
  1518. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/connectorPresentation.js +102 -0
  1519. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/copilotConnectorsService.service.d.ts +26 -0
  1520. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/copilotConnectorsService.service.js +6 -0
  1521. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCardList.d.ts +2 -0
  1522. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCardList.js +19 -198
  1523. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +9 -14
  1524. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +32 -23
  1525. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.d.ts +5 -1
  1526. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +18 -5
  1527. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMarketplaceConfiguration.d.ts +25 -0
  1528. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMarketplaceConfiguration.js +47 -0
  1529. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMarketplaceSourceWarnings.d.ts +33 -0
  1530. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMarketplaceSourceWarnings.js +228 -0
  1531. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMarketplaceWelcome.d.ts +16 -0
  1532. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMarketplaceWelcome.js +41 -0
  1533. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigration.d.ts +35 -2
  1534. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigration.js +160 -52
  1535. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationCategories.d.ts +14 -35
  1536. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationCategories.js +182 -415
  1537. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationDashboard.d.ts +62 -30
  1538. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationDashboard.js +542 -186
  1539. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationToggle.d.ts +26 -0
  1540. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationToggle.js +61 -0
  1541. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationTree.d.ts +17 -0
  1542. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationTree.js +25 -0
  1543. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationsTelemetryService.service.d.ts +6 -0
  1544. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationsTelemetryService.service.js +6 -0
  1545. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.d.ts +31 -3
  1546. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +216 -75
  1547. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedConnectorDetail.d.ts +44 -0
  1548. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedConnectorDetail.js +287 -0
  1549. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMarketplaceDetail.d.ts +70 -0
  1550. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMarketplaceDetail.js +639 -0
  1551. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.d.ts +95 -1
  1552. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +566 -30
  1553. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +205 -66
  1554. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +2059 -899
  1555. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpServerCount.d.ts +17 -0
  1556. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpServerCount.js +97 -0
  1557. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationDiscovery.css +532 -0
  1558. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +1275 -676
  1559. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +3 -3
  1560. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/chatCustomizationMigrationNotice.css +46 -0
  1561. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/customizationMarketplaceSourceWarnings.css +57 -0
  1562. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/customizationMarketplaceWelcome.css +52 -0
  1563. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/customizationMigrationDashboard.css +136 -224
  1564. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginCustomizationMarketplaceProvider.d.ts +22 -0
  1565. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginCustomizationMarketplaceProvider.js +204 -0
  1566. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +33 -26
  1567. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +605 -676
  1568. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.d.ts +4 -1
  1569. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +13 -7
  1570. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.d.ts +60 -68
  1571. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.js +781 -624
  1572. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +13 -4
  1573. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +219 -148
  1574. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatDynamicVariables.d.ts +1 -0
  1575. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatDynamicVariables.js +20 -2
  1576. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImageGlyphSurface.d.ts +43 -0
  1577. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImageGlyphSurface.js +497 -0
  1578. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImageReveal.css +97 -0
  1579. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImageReveal.d.ts +23 -0
  1580. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImageReveal.js +122 -0
  1581. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImageTextures.d.ts +127 -0
  1582. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImageTextures.js +328 -0
  1583. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +2 -0
  1584. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +46 -10
  1585. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatScreenshotContext.js +1 -1
  1586. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -13
  1587. package/vscode/src/vs/workbench/contrib/chat/browser/chat.d.ts +29 -0
  1588. package/vscode/src/vs/workbench/contrib/chat/browser/chat.js +8 -2
  1589. package/vscode/src/vs/workbench/contrib/chat/browser/chat.service.d.ts +3 -1
  1590. package/vscode/src/vs/workbench/contrib/chat/browser/chatArtifactPillSource.d.ts +35 -0
  1591. package/vscode/src/vs/workbench/contrib/chat/browser/chatArtifactPillSource.js +239 -0
  1592. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostLogSources.d.ts +4 -6
  1593. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostLogSources.js +35 -33
  1594. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostUsageSidecar.d.ts +8 -2
  1595. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostUsageSidecar.js +89 -8
  1596. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +37 -36
  1597. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys.js +7 -7
  1598. package/vscode/src/vs/workbench/contrib/chat/browser/chatIcons.d.ts +1 -0
  1599. package/vscode/src/vs/workbench/contrib/chat/browser/chatIcons.js +9 -1
  1600. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.service.d.ts +3 -4
  1601. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageUtils.d.ts +0 -11
  1602. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageUtils.js +1 -54
  1603. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPills.d.ts +3 -0
  1604. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPills.js +89 -29
  1605. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +15 -0
  1606. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +41 -3
  1607. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +5 -0
  1608. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +66 -63
  1609. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutline.js +2 -2
  1610. package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievementPreview.d.ts +2 -2
  1611. package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievementPreview.js +14 -10
  1612. package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievements.d.ts +5 -0
  1613. package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievements.js +86 -72
  1614. package/vscode/src/vs/workbench/contrib/chat/browser/chatPetColors.d.ts +16 -0
  1615. package/vscode/src/vs/workbench/contrib/chat/browser/chatPetColors.js +154 -0
  1616. package/vscode/src/vs/workbench/contrib/chat/browser/chatPetService.d.ts +7 -4
  1617. package/vscode/src/vs/workbench/contrib/chat/browser/chatPetService.js +53 -19
  1618. package/vscode/src/vs/workbench/contrib/chat/browser/chatPetService.service.d.ts +3 -3
  1619. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +2 -1
  1620. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +5 -4
  1621. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +96 -69
  1622. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +19 -0
  1623. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +18 -2
  1624. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupMicrosoftProbe.service.d.ts +27 -0
  1625. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupMicrosoftProbe.service.js +6 -0
  1626. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  1627. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +73 -65
  1628. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/codexStatusDashboard.d.ts +21 -0
  1629. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/codexStatusDashboard.js +170 -0
  1630. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +56 -0
  1631. package/vscode/src/vs/workbench/contrib/chat/browser/chatTerminalCommandPaste.js +3 -3
  1632. package/vscode/src/vs/workbench/contrib/chat/browser/chatUserInteractionOTel.service.d.ts +14 -0
  1633. package/vscode/src/vs/workbench/contrib/chat/browser/chatUserInteractionOTel.service.js +6 -0
  1634. package/vscode/src/vs/workbench/contrib/chat/browser/chatUserInteractionTelemetry.d.ts +66 -0
  1635. package/vscode/src/vs/workbench/contrib/chat/browser/chatUserInteractionTelemetry.js +262 -0
  1636. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +1 -1
  1637. package/vscode/src/vs/workbench/contrib/chat/browser/editorChatResponseFileChangesService.js +1 -1
  1638. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  1639. package/vscode/src/vs/workbench/contrib/chat/browser/feedbackSurvey/chatHarnessSwitchFeedbackSurveyService.service.d.ts +8 -0
  1640. package/vscode/src/vs/workbench/contrib/chat/browser/feedbackSurvey/chatHarnessSwitchFeedbackSurveyService.service.js +6 -0
  1641. package/vscode/src/vs/workbench/contrib/chat/browser/feedbackSurvey/chatModelFeedbackSurveyService.d.ts +1 -1
  1642. package/vscode/src/vs/workbench/contrib/chat/browser/feedbackSurvey/chatModelFeedbackSurveyService.js +5 -3
  1643. package/vscode/src/vs/workbench/contrib/chat/browser/feedbackSurvey/chatModelFeedbackSurveyWidget.js +6 -6
  1644. package/vscode/src/vs/workbench/contrib/chat/browser/media/sessionBackgroundShells.css +31 -0
  1645. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +6 -6
  1646. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +4 -0
  1647. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +43 -34
  1648. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  1649. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +15 -15
  1650. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +9 -9
  1651. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +25 -25
  1652. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +32 -32
  1653. package/vscode/src/vs/workbench/contrib/chat/browser/remoteAgentHost/cloudSandboxModels.service.d.ts +9 -0
  1654. package/vscode/src/vs/workbench/contrib/chat/browser/remoteAgentHost/cloudSandboxModels.service.js +6 -0
  1655. package/vscode/src/vs/{sessions/contrib/providers/remoteAgentHost/browser → workbench/contrib/chat/browser/remoteAgentHost}/cloudSandboxTelemetry.service.d.ts +6 -8
  1656. package/vscode/src/vs/workbench/contrib/chat/browser/remoteAgentHost/remoteAgentHostAuthentication.service.d.ts +8 -0
  1657. package/vscode/src/vs/workbench/contrib/chat/browser/remoteAgentHost/remoteAgentHostAuthentication.service.js +6 -0
  1658. package/vscode/src/vs/{sessions/contrib/providers/remoteAgentHost/browser → workbench/contrib/chat/browser/remoteAgentHost}/remoteAgentHostConnectionCustomization.service.d.ts +1 -1
  1659. package/vscode/src/vs/workbench/contrib/chat/browser/sessionBackgroundShellOutputView.d.ts +39 -0
  1660. package/vscode/src/vs/workbench/contrib/chat/browser/sessionBackgroundShellOutputView.js +250 -0
  1661. package/vscode/src/vs/workbench/contrib/chat/browser/sessionBackgroundShellsControl.d.ts +26 -0
  1662. package/vscode/src/vs/workbench/contrib/chat/browser/sessionBackgroundShellsControl.js +213 -0
  1663. package/vscode/src/vs/workbench/contrib/chat/browser/sessionChatPillOptions.d.ts +11 -0
  1664. package/vscode/src/vs/workbench/contrib/chat/browser/sessionChatPillOptions.js +50 -19
  1665. package/vscode/src/vs/{sessions → workbench}/contrib/chat/browser/sessionCustomizations.d.ts +10 -7
  1666. package/vscode/src/vs/{sessions → workbench}/contrib/chat/browser/sessionCustomizations.js +16 -25
  1667. package/vscode/src/vs/workbench/contrib/chat/browser/sessionPullRequestPill.d.ts +3 -6
  1668. package/vscode/src/vs/workbench/contrib/chat/browser/sessionPullRequestPill.js +10 -19
  1669. package/vscode/src/vs/workbench/contrib/chat/browser/sessionSubagentsPill.d.ts +18 -0
  1670. package/vscode/src/vs/workbench/contrib/chat/browser/sessionSubagentsPill.js +41 -0
  1671. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/chatSpeechToTextService.js +45 -27
  1672. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/dictationDownloadRing.js +7 -7
  1673. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/dictationOnboarding.js +14 -14
  1674. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/dictationSession.js +14 -13
  1675. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/micButtonHovers.js +4 -4
  1676. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/micButtonMenuActions.js +12 -12
  1677. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +3 -3
  1678. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +17 -17
  1679. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +5 -1
  1680. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +15 -3
  1681. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.js +2 -2
  1682. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceInputDecorations.js +3 -3
  1683. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceSessionController.d.ts +7 -1
  1684. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceSessionController.js +117 -83
  1685. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceTelemetry.d.ts +212 -0
  1686. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceTelemetry.js +10 -0
  1687. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceToolDispatchService.js +12 -11
  1688. package/vscode/src/vs/workbench/contrib/chat/browser/voiceInputMode/voiceInputModeActionViewItem.d.ts +1 -0
  1689. package/vscode/src/vs/workbench/contrib/chat/browser/voiceInputMode/voiceInputModeActionViewItem.js +24 -16
  1690. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  1691. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +17 -23
  1692. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatClipboard.d.ts +5 -0
  1693. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatClipboard.js +1 -1
  1694. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  1695. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentMergeContentPart.js +20 -20
  1696. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  1697. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +13 -0
  1698. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +9 -1
  1699. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAutoModeResolutionContentPart.js +1 -1
  1700. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +6 -6
  1701. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  1702. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +2 -0
  1703. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +38 -31
  1704. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  1705. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +24 -1
  1706. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
  1707. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.js +19 -7
  1708. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditStatsButton.d.ts +10 -0
  1709. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditStatsButton.js +104 -0
  1710. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  1711. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.d.ts +3 -0
  1712. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.js +22 -18
  1713. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  1714. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatImageGenerationBatchPart.d.ts +55 -0
  1715. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatImageGenerationBatchPart.js +434 -0
  1716. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +4 -0
  1717. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +83 -53
  1718. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownDecorationsRenderer.js +13 -1
  1719. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpAuthenticationContentPart.d.ts +13 -1
  1720. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpAuthenticationContentPart.js +83 -25
  1721. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +10 -9
  1722. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersStartingContentPart.d.ts +6 -5
  1723. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersStartingContentPart.js +67 -9
  1724. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  1725. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.d.ts +3 -1
  1726. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +51 -40
  1727. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +39 -4
  1728. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +330 -39
  1729. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +14 -3
  1730. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +112 -73
  1731. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +2 -2
  1732. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +24 -10
  1733. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatRequestOriginPart.js +5 -5
  1734. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +8 -2
  1735. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +65 -18
  1736. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatRichLink.js +2 -2
  1737. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentOpenChat.d.ts +171 -0
  1738. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentOpenChat.js +911 -0
  1739. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
  1740. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSystemNotificationContentPart.d.ts +2 -0
  1741. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSystemNotificationContentPart.js +33 -1
  1742. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.js +1 -0
  1743. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  1744. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +40 -22
  1745. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +541 -279
  1746. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
  1747. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  1748. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolGroupSummary.d.ts +5 -0
  1749. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolGroupSummary.js +212 -0
  1750. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  1751. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTurnPillsPart.js +8 -6
  1752. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +10 -11
  1753. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
  1754. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/fusionPhasePillActionViewItem.d.ts +36 -0
  1755. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/fusionPhasePillActionViewItem.js +159 -0
  1756. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +23 -56
  1757. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCollapsibleContentPart.css +7 -2
  1758. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +34 -2
  1759. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatEditStatsButton.css +53 -0
  1760. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatImageGenerationBatchPart.css +126 -0
  1761. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatImageGenerationProgressPart.css +8 -0
  1762. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +20 -5
  1763. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatMcpServersInteractionContent.css +1 -1
  1764. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +58 -3
  1765. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSubagentContent.css +0 -18
  1766. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSubagentOpenChat.css +392 -0
  1767. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSystemNotificationContentPart.css +26 -0
  1768. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +15 -4
  1769. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +346 -74
  1770. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatAutomationConfiguredResultSubPart.js +2 -2
  1771. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatGeneratedImageResultSubPart.d.ts +11 -2
  1772. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatGeneratedImageResultSubPart.js +74 -59
  1773. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
  1774. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  1775. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatOtherClientToolProgressPart.js +2 -2
  1776. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.d.ts +6 -2
  1777. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +28 -11
  1778. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationSubPart.d.ts +4 -0
  1779. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationSubPart.js +8 -1
  1780. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  1781. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.d.ts +26 -2
  1782. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +111 -7
  1783. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.d.ts +1 -0
  1784. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +16 -2
  1785. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.d.ts +1 -0
  1786. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.js +8 -2
  1787. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +4 -4
  1788. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +12 -12
  1789. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatForkActionViewItem.d.ts +1 -0
  1790. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatForkActionViewItem.js +20 -3
  1791. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatOptions.d.ts +4 -0
  1792. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatOptions.js +2 -1
  1793. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatPetAccessoryRenderer.d.ts +2 -1
  1794. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatPetAccessoryRenderer.js +7 -4
  1795. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatPetAccessoryRig.d.ts +1 -1
  1796. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatPetAccessoryRig.js +6 -0
  1797. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatPetWidget.d.ts +35 -3
  1798. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatPetWidget.js +402 -83
  1799. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatReadOnlyBanner.d.ts +17 -1
  1800. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatReadOnlyBanner.js +61 -8
  1801. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatRestoreCheckpointActionViewItem.js +1 -1
  1802. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatTurnPills.js +4 -4
  1803. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWorkingLogo.d.ts +41 -0
  1804. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWorkingLogo.js +301 -0
  1805. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWorkingLogoDraw.d.ts +9 -0
  1806. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWorkingLogoDraw.js +450 -0
  1807. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  1808. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatGoalBannerWidget.js +4 -4
  1809. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputModelSelectionController.d.ts +7 -15
  1810. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputModelSelectionController.js +19 -5
  1811. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNoticeWidget.js +2 -2
  1812. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +25 -2
  1813. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.js +36 -5
  1814. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.service.d.ts +2 -5
  1815. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +5 -1
  1816. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +49 -16
  1817. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +46 -3
  1818. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +496 -248
  1819. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +8 -0
  1820. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +50 -2
  1821. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerResponsiveLayout.d.ts +4 -1
  1822. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerResponsiveLayout.js +61 -29
  1823. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationStore.d.ts +25 -5
  1824. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationStore.js +184 -36
  1825. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -2
  1826. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSessionArchiveNudge.d.ts +10 -1
  1827. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSessionArchiveNudge.js +60 -26
  1828. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +6 -2
  1829. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +24 -10
  1830. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletionsBase.d.ts +1 -0
  1831. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletionsBase.js +12 -0
  1832. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.d.ts +1 -0
  1833. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.js +11 -4
  1834. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatPasteProviders.d.ts +2 -0
  1835. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatPasteProviders.js +16 -16
  1836. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +34 -2
  1837. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputPicker.css +57 -0
  1838. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatSessionArchiveNudge.css +43 -0
  1839. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +5 -5
  1840. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/media/modelPicker.css +161 -136
  1841. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerActionItem.d.ts +23 -4
  1842. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerActionItem.js +27 -8
  1843. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerBadges.d.ts +4 -6
  1844. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerBadges.js +11 -12
  1845. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerCard.d.ts +56 -7
  1846. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerCard.js +277 -67
  1847. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerConfiguration.d.ts +6 -21
  1848. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerConfiguration.js +15 -170
  1849. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerDetails.d.ts +5 -3
  1850. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerDetails.js +21 -15
  1851. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerHover.d.ts +4 -1
  1852. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerHover.js +43 -25
  1853. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerItemPrimitives.d.ts +6 -7
  1854. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerItemPrimitives.js +18 -65
  1855. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerItems.d.ts +3 -8
  1856. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerItems.js +17 -24
  1857. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerModelConfig.d.ts +35 -11
  1858. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerModelConfig.js +97 -9
  1859. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerPresentation.d.ts +17 -1
  1860. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerPresentation.js +70 -10
  1861. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerTabbedWidget.d.ts +88 -16
  1862. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerTabbedWidget.js +732 -178
  1863. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerTabs.d.ts +11 -14
  1864. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerTabs.js +18 -19
  1865. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerTelemetry.d.ts +55 -3
  1866. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerTelemetry.js +89 -18
  1867. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerWelcome.d.ts +2 -1
  1868. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerWelcome.js +1 -1
  1869. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerWidget.d.ts +40 -18
  1870. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerWidget.js +404 -255
  1871. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerWorkflow.d.ts +34 -0
  1872. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelProviderIcons.js +11 -10
  1873. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +5 -6
  1874. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +63 -41
  1875. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +15 -4
  1876. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +112 -17
  1877. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  1878. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +220 -72
  1879. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatPet.css +19 -2
  1880. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +40 -0
  1881. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatWorkingLogo.css +74 -0
  1882. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditorInput.d.ts +10 -1
  1883. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditorInput.js +65 -21
  1884. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +9 -9
  1885. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +3 -15
  1886. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +10 -14
  1887. package/vscode/src/vs/workbench/contrib/chat/common/actions/chatActions.d.ts +2 -0
  1888. package/vscode/src/vs/workbench/contrib/chat/common/actions/chatActions.js +1 -0
  1889. package/vscode/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.d.ts +8 -0
  1890. package/vscode/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.js +152 -108
  1891. package/vscode/src/vs/workbench/contrib/chat/common/agentHostConfigPolicy.d.ts +14 -3
  1892. package/vscode/src/vs/workbench/contrib/chat/common/agentHostConfigPolicy.js +54 -10
  1893. package/vscode/src/vs/{sessions/contrib/providers/agentHost/browser → workbench/contrib/chat/common}/agentHostSessionCustomizations.d.ts +6 -8
  1894. package/vscode/src/vs/{sessions/contrib/providers/agentHost/browser → workbench/contrib/chat/common}/agentHostSessionCustomizations.js +16 -11
  1895. package/vscode/src/vs/workbench/contrib/chat/common/agentsWindowUsage.d.ts +13 -0
  1896. package/vscode/src/vs/workbench/contrib/chat/common/agentsWindowUsage.js +32 -0
  1897. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +5 -0
  1898. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +1 -4
  1899. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.service.d.ts +3 -2
  1900. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatDraft.d.ts +13 -0
  1901. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatDraft.js +18 -0
  1902. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariableEntries.d.ts +3 -1
  1903. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariableEntries.js +12 -7
  1904. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariables.d.ts +1 -0
  1905. package/vscode/src/vs/workbench/contrib/chat/common/automations/automation.d.ts +26 -12
  1906. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationBlueprint.js +24 -1
  1907. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.d.ts +8 -1
  1908. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationRunner.d.ts +11 -6
  1909. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationRunner.service.d.ts +6 -7
  1910. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.d.ts +118 -42
  1911. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.js +11 -10
  1912. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.service.d.ts +13 -10
  1913. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationsEnabled.d.ts +1 -0
  1914. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationsEnabled.js +2 -1
  1915. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +19 -0
  1916. package/vscode/src/vs/workbench/contrib/chat/common/chatAutoModeExplainability.d.ts +4 -1
  1917. package/vscode/src/vs/workbench/contrib/chat/common/chatAutoModeExplainability.js +4 -1
  1918. package/vscode/src/vs/workbench/contrib/chat/common/chatErrorMessages.js +81 -63
  1919. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.d.ts +20 -1
  1920. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +89 -20
  1921. package/vscode/src/vs/workbench/contrib/chat/common/chatModeTelemetry.d.ts +1 -1
  1922. package/vscode/src/vs/workbench/contrib/chat/common/chatModeTelemetry.js +2 -1
  1923. package/vscode/src/vs/workbench/contrib/chat/common/chatModes.js +12 -13
  1924. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +13 -13
  1925. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressFormatting.d.ts +1 -0
  1926. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressFormatting.js +12 -3
  1927. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.d.ts +104 -13
  1928. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.js +33 -6
  1929. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.service.d.ts +4 -5
  1930. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +273 -0
  1931. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +280 -0
  1932. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.d.ts +54 -1
  1933. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.js +19 -2
  1934. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.service.d.ts +4 -2
  1935. package/vscode/src/vs/workbench/contrib/chat/common/cloudSandboxSessionTrace.d.ts +21 -0
  1936. package/vscode/src/vs/workbench/contrib/chat/common/cloudSandboxSessionTrace.js +49 -0
  1937. package/vscode/src/vs/workbench/contrib/chat/common/constants.d.ts +52 -16
  1938. package/vscode/src/vs/workbench/contrib/chat/common/constants.js +112 -25
  1939. package/vscode/src/vs/workbench/contrib/chat/common/customizationHarnessService.d.ts +49 -0
  1940. package/vscode/src/vs/workbench/contrib/chat/common/customizationHarnessService.js +5 -5
  1941. package/vscode/src/vs/workbench/contrib/chat/common/customizationMarketplaceInstallService.service.d.ts +20 -0
  1942. package/vscode/src/vs/workbench/contrib/chat/common/customizationMarketplaceInstallService.service.js +6 -0
  1943. package/vscode/src/vs/workbench/contrib/chat/common/customizationMarketplaceInstallTelemetry.d.ts +18 -0
  1944. package/vscode/src/vs/workbench/contrib/chat/common/customizationMarketplaceInstallTelemetry.js +55 -0
  1945. package/vscode/src/vs/workbench/contrib/chat/common/editing/chatEditingService.d.ts +4 -4
  1946. package/vscode/src/vs/workbench/contrib/chat/common/editing/chatEditingService.js +2 -2
  1947. package/vscode/src/vs/workbench/contrib/chat/common/editorChatUsage.d.ts +18 -0
  1948. package/vscode/src/vs/workbench/contrib/chat/common/editorChatUsage.js +76 -0
  1949. package/vscode/src/vs/workbench/contrib/chat/common/languageModelSourcePresentation.js +1 -1
  1950. package/vscode/src/vs/workbench/contrib/chat/common/languageModelStats.js +3 -3
  1951. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.d.ts +59 -8
  1952. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +133 -62
  1953. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.service.d.ts +5 -6
  1954. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModel.d.ts +64 -7
  1955. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModel.js +329 -64
  1956. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +12 -5
  1957. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +59 -5
  1958. package/vscode/src/vs/workbench/contrib/chat/common/model/chatViewModel.d.ts +16 -1
  1959. package/vscode/src/vs/workbench/contrib/chat/common/model/chatViewModel.js +43 -22
  1960. package/vscode/src/vs/workbench/contrib/chat/common/modelSelection.d.ts +2 -0
  1961. package/vscode/src/vs/workbench/contrib/chat/common/modelSelection.js +11 -2
  1962. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatAgents.d.ts +3 -0
  1963. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.d.ts +21 -4
  1964. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.js +94 -11
  1965. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.service.d.ts +8 -0
  1966. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.service.js +6 -0
  1967. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +28 -7
  1968. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +7 -0
  1969. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +82 -7
  1970. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginInstallService.d.ts +3 -4
  1971. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginInstallService.service.d.ts +14 -4
  1972. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +25 -1
  1973. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +154 -18
  1974. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.service.d.ts +7 -2
  1975. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginSource.d.ts +2 -0
  1976. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookSchema.d.ts +10 -3
  1977. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookSchema.js +29 -24
  1978. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookTypes.js +20 -20
  1979. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptFileAttributes.js +82 -81
  1980. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptTypes.js +10 -10
  1981. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/customizationMigrationService.d.ts +50 -12
  1982. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/customizationMigrationService.js +17 -16
  1983. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/customizationMigrationService.service.d.ts +2 -1
  1984. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/customizationMigrationTelemetryService.service.d.ts +15 -0
  1985. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/customizationMigrationTelemetryService.service.js +6 -0
  1986. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +1 -0
  1987. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +1 -1
  1988. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +23 -13
  1989. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -2
  1990. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +9 -8
  1991. package/vscode/src/vs/workbench/contrib/chat/common/requestParser/chatParserTypes.d.ts +12 -5
  1992. package/vscode/src/vs/workbench/contrib/chat/common/requestParser/chatParserTypes.js +17 -5
  1993. package/vscode/src/vs/workbench/contrib/chat/common/requestParser/chatRequestParser.js +2 -1
  1994. package/vscode/src/vs/workbench/contrib/chat/common/sessionChatCustomizations.d.ts +19 -0
  1995. package/vscode/src/vs/workbench/contrib/chat/common/sessionChatCustomizations.js +14 -0
  1996. package/vscode/src/vs/workbench/contrib/chat/common/sessionChatPills.d.ts +40 -2
  1997. package/vscode/src/vs/workbench/contrib/chat/common/sessionChatPills.js +32 -20
  1998. package/vscode/src/vs/workbench/contrib/chat/common/sessionChatPills.service.d.ts +4 -5
  1999. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/askQuestionsTool.js +8 -8
  2000. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.d.ts +14 -0
  2001. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.js +3 -3
  2002. package/vscode/src/vs/workbench/contrib/chat/common/tools/toolInvocationSummary.d.ts +24 -0
  2003. package/vscode/src/vs/workbench/contrib/chat/common/tools/toolInvocationSummary.js +161 -0
  2004. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.d.ts +1 -0
  2005. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +44 -27
  2006. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +2 -0
  2007. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +49 -31
  2008. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +11 -11
  2009. package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.js +4 -4
  2010. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorAccessibilityHelp.js +10 -7
  2011. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +3 -3
  2012. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +10 -10
  2013. package/vscode/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.js +2 -2
  2014. package/vscode/src/vs/workbench/contrib/codeEditor/browser/inspectKeybindings.js +2 -2
  2015. package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +3 -3
  2016. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +6 -6
  2017. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +4 -4
  2018. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleColumnSelection.js +2 -2
  2019. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMinimap.js +2 -2
  2020. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +3 -3
  2021. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleOvertype.js +3 -3
  2022. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderControlCharacter.js +2 -2
  2023. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderWhitespace.js +12 -12
  2024. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +5 -5
  2025. package/vscode/src/vs/workbench/contrib/codeEditor/common/languageConfigurationExtensionPoint.js +71 -71
  2026. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +7 -7
  2027. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +7 -7
  2028. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +4 -4
  2029. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +3 -3
  2030. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +3 -3
  2031. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +3 -3
  2032. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +3 -3
  2033. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +3 -3
  2034. package/vscode/src/vs/workbench/contrib/comments/browser/commentsAccessibility.js +12 -12
  2035. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +9 -8
  2036. package/vscode/src/vs/workbench/contrib/comments/browser/commentsModel.js +1 -1
  2037. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +9 -9
  2038. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.d.ts +1 -1
  2039. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +16 -15
  2040. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +16 -16
  2041. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css +5 -0
  2042. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +7 -7
  2043. package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +12 -12
  2044. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorDiffInput.js +3 -3
  2045. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInput.d.ts +9 -1
  2046. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInput.js +34 -3
  2047. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorNavigation.d.ts +14 -0
  2048. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +1 -1
  2049. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +29 -29
  2050. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +14 -14
  2051. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +75 -75
  2052. package/vscode/src/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +2 -2
  2053. package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +9 -9
  2054. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +12 -12
  2055. package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +40 -40
  2056. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +2 -2
  2057. package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +3 -3
  2058. package/vscode/src/vs/workbench/contrib/debug/browser/debugIcons.js +57 -57
  2059. package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +3 -3
  2060. package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +7 -7
  2061. package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.d.ts +14 -1
  2062. package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +13 -10
  2063. package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +18 -18
  2064. package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +5 -5
  2065. package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +9 -9
  2066. package/vscode/src/vs/workbench/contrib/debug/common/abstractDebugAdapter.js +1 -1
  2067. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +9 -0
  2068. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +78 -66
  2069. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +11 -10
  2070. package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +1 -1
  2071. package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +2 -2
  2072. package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +1 -1
  2073. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +1 -1
  2074. package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/commands.js +2 -2
  2075. package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/configurationSchema.js +4 -4
  2076. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryService.d.ts +11 -1
  2077. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +6 -0
  2078. package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +1 -1
  2079. package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +1 -1
  2080. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +41 -41
  2081. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +1 -1
  2082. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +15 -15
  2083. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +14 -14
  2084. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +164 -164
  2085. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +183 -186
  2086. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +3 -1
  2087. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +1 -1
  2088. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +5 -5
  2089. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsIcons.js +25 -25
  2090. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +4 -4
  2091. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +7 -7
  2092. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +48 -48
  2093. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +5 -5
  2094. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +30 -30
  2095. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.d.ts +33 -34
  2096. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +138 -137
  2097. package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +2 -2
  2098. package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +1 -1
  2099. package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +2 -2
  2100. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +1 -1
  2101. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsFileTemplate.js +5 -5
  2102. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.js +2 -2
  2103. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsUtils.js +3 -3
  2104. package/vscode/src/vs/workbench/contrib/extensions/common/searchExtensionsTool.js +3 -3
  2105. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/configuration.js +4 -4
  2106. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.d.ts +3 -0
  2107. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.js +3 -3
  2108. package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +1 -1
  2109. package/vscode/src/vs/workbench/contrib/files/browser/editors/fileEditorInput.d.ts +1 -1
  2110. package/vscode/src/vs/workbench/contrib/files/browser/editors/fileEditorInput.js +2 -1
  2111. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.d.ts +1 -1
  2112. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +10 -9
  2113. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +18 -18
  2114. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +15 -14
  2115. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +39 -39
  2116. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.d.ts +1 -1
  2117. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +88 -92
  2118. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands._save.js +4 -4
  2119. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +11 -8
  2120. package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +6 -6
  2121. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.d.ts +7 -1
  2122. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +28 -28
  2123. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +52 -51
  2124. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
  2125. package/vscode/src/vs/workbench/contrib/files/browser/files.service.d.ts +2 -6
  2126. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +1 -1
  2127. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.d.ts +3 -2
  2128. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +20 -17
  2129. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +17 -17
  2130. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +9 -9
  2131. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +4 -4
  2132. package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +1 -1
  2133. package/vscode/src/vs/workbench/contrib/files/common/files.d.ts +1 -0
  2134. package/vscode/src/vs/workbench/contrib/files/common/files.js +18 -17
  2135. package/vscode/src/vs/workbench/contrib/folding/browser/folding.contribution.js +3 -3
  2136. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +20 -20
  2137. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsNone.js +4 -4
  2138. package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
  2139. package/vscode/src/vs/workbench/contrib/github/browser/githubResourceDetails.d.ts +98 -0
  2140. package/vscode/src/vs/workbench/contrib/github/browser/githubResourceDetails.js +621 -0
  2141. package/vscode/src/vs/workbench/contrib/github/browser/githubResourceHover.d.ts +81 -0
  2142. package/vscode/src/vs/workbench/contrib/github/browser/githubResourceHover.js +385 -0
  2143. package/vscode/src/vs/workbench/contrib/github/browser/media/githubResourceHover.css +153 -0
  2144. package/vscode/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +4 -4
  2145. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +32 -32
  2146. package/vscode/src/vs/workbench/contrib/inlineCompletions/browser/inlineCompletionLanguageStatusBarContribution.js +6 -6
  2147. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  2148. package/vscode/src/vs/workbench/contrib/issue/common/issue.service.d.ts +2 -1
  2149. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.js +7 -7
  2150. package/vscode/src/vs/workbench/contrib/list/browser/listResizeColumnAction.js +2 -2
  2151. package/vscode/src/vs/workbench/contrib/list/browser/tableColumnResizeQuickPick.js +5 -5
  2152. package/vscode/src/vs/workbench/contrib/markdown/browser/markdownSettingRenderer.js +14 -14
  2153. package/vscode/src/vs/workbench/contrib/markdown/common/markdownColors.js +5 -5
  2154. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration.d.ts +17 -4
  2155. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration.js +312 -191
  2156. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpConfigurationDestination.d.ts +30 -0
  2157. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpConfigurationDestination.js +158 -0
  2158. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerActions.d.ts +4 -2
  2159. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerActions.js +74 -58
  2160. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerConfigurationForm.d.ts +101 -0
  2161. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerConfigurationForm.js +647 -0
  2162. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.js +1 -1
  2163. package/vscode/src/vs/workbench/contrib/mcp/browser/media/mcpServerConfigurationForm.css +92 -0
  2164. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/pluginMcpDiscovery.js +9 -1
  2165. package/vscode/src/vs/workbench/contrib/mcp/common/mcpConfiguration.d.ts +14 -0
  2166. package/vscode/src/vs/workbench/contrib/mcp/common/mcpConfiguration.js +201 -160
  2167. package/vscode/src/vs/workbench/contrib/mcp/common/mcpConfigurationGeneration.d.ts +20 -0
  2168. package/vscode/src/vs/workbench/contrib/mcp/common/mcpConfigurationGeneration.js +104 -0
  2169. package/vscode/src/vs/workbench/contrib/mcp/common/mcpCopilotGlobalConfigurationService.service.d.ts +7 -0
  2170. package/vscode/src/vs/workbench/contrib/mcp/common/mcpCopilotGlobalConfigurationService.service.js +6 -0
  2171. package/vscode/src/vs/workbench/contrib/mcp/common/mcpDevMode.js +3 -4
  2172. package/vscode/src/vs/workbench/contrib/mcp/common/mcpRegistryTypes.d.ts +5 -0
  2173. package/vscode/src/vs/workbench/contrib/mcp/common/mcpRegistryTypes.service.d.ts +1 -1
  2174. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.d.ts +3 -18
  2175. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.js +59 -39
  2176. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServerConfigurationForm.d.ts +95 -0
  2177. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServerConfigurationForm.js +277 -0
  2178. package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.d.ts +40 -1
  2179. package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.js +38 -11
  2180. package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.service.d.ts +11 -2
  2181. package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypesUtils.js +11 -7
  2182. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +4 -4
  2183. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +23 -23
  2184. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +2 -2
  2185. package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +8 -8
  2186. package/vscode/src/vs/workbench/contrib/modernUI/browser/connectedEditorTabs.d.ts +1 -0
  2187. package/vscode/src/vs/workbench/contrib/modernUI/browser/connectedEditorTabs.js +54 -0
  2188. package/vscode/src/vs/workbench/contrib/modernUI/browser/media/connectedEditorTabs.css +787 -0
  2189. package/vscode/src/vs/workbench/contrib/modernUI/browser/media/tabs.css +143 -62
  2190. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/actions.js +7 -7
  2191. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/icons.contribution.js +1 -1
  2192. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.d.ts +5 -2
  2193. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.js +38 -13
  2194. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +12 -4
  2195. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +3 -2
  2196. package/vscode/src/vs/workbench/contrib/multiDiffEditor/common/multiDiffEditor.d.ts +8 -0
  2197. package/vscode/src/vs/workbench/contrib/multiDiffEditor/common/multiDiffEditor.js +39 -0
  2198. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  2199. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +17 -17
  2200. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  2201. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
  2202. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +6 -6
  2203. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +4 -4
  2204. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +3 -3
  2205. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
  2206. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
  2207. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
  2208. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
  2209. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
  2210. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
  2211. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +3 -3
  2212. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +13 -13
  2213. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +24 -24
  2214. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +29 -29
  2215. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +5 -5
  2216. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +7 -7
  2217. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
  2218. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +4 -4
  2219. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +1 -1
  2220. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/collapsedCellOutput.js +3 -3
  2221. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.js +1 -1
  2222. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +2 -2
  2223. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.d.ts +1 -1
  2224. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +6 -5
  2225. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +1 -1
  2226. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelQuickPickStrategy.js +14 -14
  2227. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +2 -2
  2228. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookViewZones.js +1 -1
  2229. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.d.ts +1 -1
  2230. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +4 -3
  2231. package/vscode/src/vs/workbench/contrib/onboarding/browser/guidedTryoutPresentation.d.ts +17 -0
  2232. package/vscode/src/vs/workbench/contrib/onboarding/browser/guidedTryoutPresentation.js +131 -0
  2233. package/vscode/src/vs/workbench/contrib/onboarding/browser/onboardingPresentationQueue.d.ts +3 -0
  2234. package/vscode/src/vs/workbench/contrib/onboarding/browser/onboardingPresentationQueue.js +15 -0
  2235. package/vscode/src/vs/workbench/contrib/onboarding/browser/sequence/sequencePresentation.d.ts +10 -0
  2236. package/vscode/src/vs/workbench/contrib/onboarding/browser/sequence/sequencePresentation.js +154 -0
  2237. package/vscode/src/vs/workbench/contrib/onboarding/browser/spotlight/onboardingTarget.d.ts +31 -1
  2238. package/vscode/src/vs/workbench/contrib/onboarding/browser/spotlight/onboardingTarget.js +67 -4
  2239. package/vscode/src/vs/workbench/contrib/onboarding/browser/spotlight/spotlightTypes.d.ts +21 -4
  2240. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingRegistry.d.ts +17 -1
  2241. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingRegistry.js +17 -1
  2242. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingScenario.d.ts +3 -0
  2243. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingScenarioService.service.d.ts +9 -6
  2244. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingSequence.d.ts +2 -0
  2245. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingSequence.js +5 -0
  2246. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingTryout.d.ts +95 -0
  2247. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingTryout.js +111 -0
  2248. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingTryout.service.d.ts +13 -0
  2249. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingTryout.service.js +6 -0
  2250. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingTryoutActions.d.ts +34 -0
  2251. package/vscode/src/vs/workbench/contrib/onboarding/common/onboardingTryoutActions.js +44 -0
  2252. package/vscode/src/vs/workbench/contrib/opener/browser/opener.contribution.d.ts +18 -1
  2253. package/vscode/src/vs/workbench/contrib/opener/browser/opener.contribution.js +54 -12
  2254. package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingWidgets.js +3 -3
  2255. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesIcons.js +13 -13
  2256. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +10 -10
  2257. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsLayout.js +60 -60
  2258. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.d.ts +11 -4
  2259. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +68 -17
  2260. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.d.ts +1 -0
  2261. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +5 -4
  2262. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +21 -21
  2263. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.d.ts +30 -0
  2264. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +20 -19
  2265. package/vscode/src/vs/workbench/contrib/remote/browser/remoteIcons.js +17 -17
  2266. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +59 -59
  2267. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  2268. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.d.ts +1 -1
  2269. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +3 -2
  2270. package/vscode/src/vs/workbench/contrib/scm/browser/scmHistory.js +11 -11
  2271. package/vscode/src/vs/workbench/contrib/scm/browser/scmHistoryChatContext.js +6 -6
  2272. package/vscode/src/vs/workbench/contrib/scm/common/quickDiff.js +14 -14
  2273. package/vscode/src/vs/workbench/contrib/scm/common/scm.d.ts +1 -0
  2274. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.d.ts +1 -1
  2275. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +11 -10
  2276. package/vscode/src/vs/workbench/contrib/search/browser/patternInputWidget.js +4 -4
  2277. package/vscode/src/vs/workbench/contrib/search/browser/replaceService.js +3 -3
  2278. package/vscode/src/vs/workbench/contrib/search/browser/search.common.contribution.js +18 -18
  2279. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsBase.js +1 -1
  2280. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsSymbol.js +3 -3
  2281. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTopBar.js +9 -9
  2282. package/vscode/src/vs/workbench/contrib/search/browser/searchChatContext.js +5 -5
  2283. package/vscode/src/vs/workbench/contrib/search/browser/searchFindInput.js +1 -1
  2284. package/vscode/src/vs/workbench/contrib/search/browser/searchIcons.js +20 -20
  2285. package/vscode/src/vs/workbench/contrib/search/browser/searchMessage.js +2 -2
  2286. package/vscode/src/vs/workbench/contrib/search/browser/searchQuickAccess.contribution.js +4 -4
  2287. package/vscode/src/vs/workbench/contrib/search/browser/searchResultsView.js +14 -14
  2288. package/vscode/src/vs/workbench/contrib/search/browser/searchView.js +55 -55
  2289. package/vscode/src/vs/workbench/contrib/search/browser/searchWidget.js +11 -11
  2290. package/vscode/src/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +2 -2
  2291. package/vscode/src/vs/workbench/contrib/search/common/search.js +1 -1
  2292. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.d.ts +1 -1
  2293. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +7 -5
  2294. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorModel.d.ts +7 -4
  2295. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorModel.js +7 -1
  2296. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +5 -5
  2297. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +3 -3
  2298. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +3 -3
  2299. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +9 -9
  2300. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +29 -29
  2301. package/vscode/src/vs/workbench/contrib/tasks/common/constants.js +1 -1
  2302. package/vscode/src/vs/workbench/contrib/tasks/common/problemMatcher.js +70 -70
  2303. package/vscode/src/vs/workbench/contrib/tasks/common/taskConfiguration.js +16 -16
  2304. package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +6 -6
  2305. package/vscode/src/vs/workbench/contrib/tasks/common/taskService.js +6 -6
  2306. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +4 -4
  2307. package/vscode/src/vs/workbench/contrib/terminal/browser/agentHostPty.d.ts +19 -0
  2308. package/vscode/src/vs/workbench/contrib/terminal/browser/agentHostPty.js +36 -5
  2309. package/vscode/src/vs/workbench/contrib/terminal/browser/agentHostTerminalService.d.ts +10 -0
  2310. package/vscode/src/vs/workbench/contrib/terminal/browser/agentHostTerminalService.js +43 -11
  2311. package/vscode/src/vs/workbench/contrib/terminal/browser/agentHostTerminalService.service.d.ts +26 -0
  2312. package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.d.ts +19 -6
  2313. package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.js +10 -9
  2314. package/vscode/src/vs/workbench/contrib/terminal/browser/environmentVariableInfo.js +5 -5
  2315. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.d.ts +5 -0
  2316. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalActions.js +61 -61
  2317. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +3 -3
  2318. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcons.js +13 -13
  2319. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalMenus.js +42 -42
  2320. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.d.ts +1 -1
  2321. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.js +4 -3
  2322. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalTabsList.js +5 -5
  2323. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalTooltip.js +3 -3
  2324. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.js +16 -16
  2325. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +15 -15
  2326. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/terminalFontRendering.css +11 -0
  2327. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/terminalFontRendering.d.ts +3 -0
  2328. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/terminalFontRendering.js +24 -0
  2329. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +1 -0
  2330. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +10 -10
  2331. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +27 -27
  2332. package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +17 -17
  2333. package/vscode/src/vs/workbench/contrib/terminal/common/terminalEnvironment.js +1 -0
  2334. package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.js +26 -26
  2335. package/vscode/src/vs/workbench/contrib/terminal/terminalContribExports.d.ts +2 -5
  2336. package/vscode/src/vs/workbench/contrib/terminal/terminalContribExports.js +1 -4
  2337. package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/common/terminalAccessibilityConfiguration.js +5 -5
  2338. package/vscode/src/vs/workbench/contrib/terminalContrib/autoReplies/common/terminalAutoRepliesConfiguration.js +2 -2
  2339. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.d.ts +2 -1
  2340. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.js +294 -170
  2341. package/vscode/src/vs/workbench/contrib/terminalContrib/commandGuide/common/terminalCommandGuideConfiguration.js +1 -1
  2342. package/vscode/src/vs/workbench/contrib/terminalContrib/history/common/terminal.history.js +1 -1
  2343. package/vscode/src/vs/workbench/contrib/terminalContrib/inlineHint/common/terminalInitialHintConfiguration.js +1 -1
  2344. package/vscode/src/vs/workbench/contrib/terminalContrib/notification/common/terminalNotificationConfiguration.js +1 -1
  2345. package/vscode/src/vs/workbench/contrib/terminalContrib/resizeDimensionsOverlay/common/terminalResizeDimensionsOverlayConfiguration.js +1 -1
  2346. package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminalStickyScrollColorRegistry.js +3 -3
  2347. package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/common/terminalStickyScrollConfiguration.js +3 -3
  2348. package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/common/terminalSuggestConfiguration.js +30 -30
  2349. package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/common/terminalTypeAheadConfiguration.js +5 -5
  2350. package/vscode/src/vs/workbench/contrib/terminalContrib/zoom/common/terminal.zoom.js +2 -2
  2351. package/vscode/src/vs/workbench/contrib/testing/common/constants.js +11 -11
  2352. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +2 -2
  2353. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +3 -3
  2354. package/vscode/src/vs/workbench/contrib/update/browser/releaseNotesEditor.d.ts +27 -4
  2355. package/vscode/src/vs/workbench/contrib/update/browser/releaseNotesEditor.js +292 -60
  2356. package/vscode/src/vs/workbench/contrib/update/browser/releaseNotesTryouts.d.ts +67 -0
  2357. package/vscode/src/vs/workbench/contrib/update/browser/releaseNotesTryouts.js +434 -0
  2358. package/vscode/src/vs/workbench/contrib/update/browser/update.js +27 -27
  2359. package/vscode/src/vs/workbench/contrib/update/browser/updateTitleBarEntry.js +11 -11
  2360. package/vscode/src/vs/workbench/contrib/update/browser/updateTooltip.js +45 -45
  2361. package/vscode/src/vs/workbench/contrib/update/common/updateUtils.js +8 -8
  2362. package/vscode/src/vs/workbench/contrib/url/browser/trustedDomains.js +6 -6
  2363. package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +3 -3
  2364. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindAccessibilityHelp.js +30 -30
  2365. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.d.ts +2 -0
  2366. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +16 -1
  2367. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInput.d.ts +3 -0
  2368. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInput.js +1 -0
  2369. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewWorkbenchService.js +11 -7
  2370. package/vscode/src/vs/workbench/contrib/welcomeAgentSessions/browser/agentSessionsWelcomeInput.js +1 -1
  2371. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput.js +1 -1
  2372. package/vscode/src/vs/workbench/contrib/welcomeOnboarding/common/onboardingTypes.d.ts +0 -30
  2373. package/vscode/src/vs/workbench/contrib/welcomeOnboarding/common/onboardingTypes.js +13 -46
  2374. package/vscode/src/vs/workbench/contrib/workspace/common/workspace.js +2 -2
  2375. package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.d.ts +5 -4
  2376. package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.js +161 -102
  2377. package/vscode/src/vs/workbench/services/accounts/browser/managedSettings.d.ts +3 -0
  2378. package/vscode/src/vs/workbench/services/accounts/common/githubEnterprise.d.ts +29 -0
  2379. package/vscode/src/vs/workbench/services/accounts/common/githubEnterprise.js +109 -0
  2380. package/vscode/src/vs/workbench/services/agentHost/browser/agentSdkSetupService.service.d.ts +1 -1
  2381. package/vscode/src/vs/workbench/services/agentHost/browser/codexAccountService.d.ts +6 -0
  2382. package/vscode/src/vs/workbench/services/agentHost/browser/codexAccountService.js +49 -15
  2383. package/vscode/src/vs/workbench/services/agentHost/browser/codexContinuationService.service.d.ts +35 -0
  2384. package/vscode/src/vs/workbench/services/agentHost/browser/codexContinuationService.service.js +6 -0
  2385. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSearchProvider.d.ts +14 -0
  2386. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSearchProvider.js +172 -0
  2387. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.d.ts +18 -0
  2388. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.js +46 -0
  2389. package/vscode/src/vs/workbench/services/assignment/common/assignmentService.service.d.ts +3 -1
  2390. package/vscode/src/vs/workbench/services/authentication/browser/authenticationMcpService.service.d.ts +2 -2
  2391. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +11 -11
  2392. package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +18 -65
  2393. package/vscode/src/vs/workbench/services/authentication/common/authentication.js +22 -1
  2394. package/vscode/src/vs/workbench/services/authentication/common/authentication.service.d.ts +5 -5
  2395. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +5 -5
  2396. package/vscode/src/vs/workbench/services/banner/browser/bannerService.d.ts +3 -0
  2397. package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.d.ts +4 -0
  2398. package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.js +32 -28
  2399. package/vscode/src/vs/workbench/services/configuration/common/experimentalSettings.service.d.ts +12 -0
  2400. package/vscode/src/vs/workbench/services/configuration/common/experimentalSettings.service.js +6 -0
  2401. package/vscode/src/vs/workbench/services/configuration/common/managedSettingsPresentation.service.d.ts +9 -0
  2402. package/vscode/src/vs/workbench/services/configuration/common/managedSettingsPresentation.service.js +6 -0
  2403. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverExpression.d.ts +2 -11
  2404. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverExpression.js +2 -44
  2405. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +16 -16
  2406. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +1 -1
  2407. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
  2408. package/vscode/src/vs/workbench/services/dataChannel/browser/dataChannelService.js +11 -11
  2409. package/vscode/src/vs/workbench/services/decorations/common/decorations.d.ts +5 -0
  2410. package/vscode/src/vs/workbench/services/decorations/common/decorations.js +2 -1
  2411. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.d.ts +2 -4
  2412. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +17 -8
  2413. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionsIcons.js +3 -3
  2414. package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +7 -7
  2415. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +10 -10
  2416. package/vscode/src/vs/workbench/services/extensions/common/extensionManifestPropertiesService.d.ts +1 -1
  2417. package/vscode/src/vs/workbench/services/extensions/common/extensionManifestPropertiesService.js +6 -2
  2418. package/vscode/src/vs/workbench/services/extensions/common/extensionManifestPropertiesService.service.d.ts +1 -1
  2419. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +92 -92
  2420. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +19 -12
  2421. package/vscode/src/vs/workbench/services/github/common/githubService.service.d.ts +10 -0
  2422. package/vscode/src/vs/workbench/services/github/common/githubService.service.js +7 -0
  2423. package/vscode/src/vs/workbench/services/language/common/languageService.js +24 -24
  2424. package/vscode/src/vs/workbench/services/layout/browser/layoutService.d.ts +15 -6
  2425. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +26 -5
  2426. package/vscode/src/vs/workbench/services/log/common/logConstants.js +1 -1
  2427. package/vscode/src/vs/workbench/services/mcp/common/mcpWorkbenchManagementService.d.ts +12 -1
  2428. package/vscode/src/vs/workbench/services/mcp/common/mcpWorkbenchManagementService.js +108 -27
  2429. package/vscode/src/vs/workbench/services/mcp/common/mcpWorkbenchManagementService.service.d.ts +2 -2
  2430. package/vscode/src/vs/workbench/services/mcp/common/mcpWorkspaceInstallTargetService.service.d.ts +7 -0
  2431. package/vscode/src/vs/workbench/services/mcp/common/mcpWorkspaceInstallTargetService.service.js +6 -0
  2432. package/vscode/src/vs/workbench/services/outline/browser/outline.service.d.ts +1 -0
  2433. package/vscode/src/vs/workbench/services/path/common/pathService.d.ts +41 -0
  2434. package/vscode/src/vs/workbench/services/path/common/pathService.js +145 -0
  2435. package/vscode/src/vs/workbench/services/policies/common/accountPolicyService.d.ts +10 -3
  2436. package/vscode/src/vs/workbench/services/policies/common/accountPolicyService.js +11 -4
  2437. package/vscode/src/vs/workbench/services/policies/common/accountPolicyService.service.d.ts +2 -0
  2438. package/vscode/src/vs/workbench/services/policies/common/managedSettingsUpdate.d.ts +17 -0
  2439. package/vscode/src/vs/workbench/services/policies/common/managedSettingsUpdate.js +77 -0
  2440. package/vscode/src/vs/workbench/services/policies/common/managedSettingsUpdate.service.d.ts +8 -0
  2441. package/vscode/src/vs/workbench/services/policies/common/managedSettingsUpdate.service.js +6 -0
  2442. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +2 -2
  2443. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +7 -7
  2444. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +1 -0
  2445. package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +4 -4
  2446. package/vscode/src/vs/workbench/services/preferences/common/preferencesModels.js +6 -4
  2447. package/vscode/src/vs/workbench/services/preferences/common/preferencesValidation.js +30 -30
  2448. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +8 -8
  2449. package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +6 -6
  2450. package/vscode/src/vs/workbench/services/search/common/queryBuilder.d.ts +1 -1
  2451. package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +3 -2
  2452. package/vscode/src/vs/workbench/services/search/common/search.js +13 -2
  2453. package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +6 -3
  2454. package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.js +5 -1
  2455. package/vscode/src/vs/workbench/services/storage/browser/storageService.d.ts +5 -0
  2456. package/vscode/src/vs/workbench/services/storage/browser/storageService.js +10 -1
  2457. package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +9 -9
  2458. package/vscode/src/vs/workbench/services/textfile/common/encoding.js +36 -2
  2459. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.d.ts +1 -1
  2460. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +5 -4
  2461. package/vscode/src/vs/workbench/services/themes/browser/modernTabColorCustomizations.js +191 -54
  2462. package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +18 -18
  2463. package/vscode/src/vs/workbench/services/themes/common/colorThemeData.d.ts +5 -1
  2464. package/vscode/src/vs/workbench/services/themes/common/colorThemeData.js +30 -9
  2465. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +13 -13
  2466. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +24 -24
  2467. package/vscode/src/vs/workbench/services/themes/common/workbenchThemeService.service.d.ts +6 -1
  2468. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorInput.d.ts +1 -1
  2469. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorInput.js +2 -1
  2470. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +3 -3
  2471. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
  2472. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +13 -13
  2473. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +16 -16
  2474. package/vscode/src/vs/workbench/services/workspaces/common/workspaceTrust.d.ts +2 -0
  2475. package/vscode/src/vs/workbench/services/workspaces/common/workspaceTrust.js +27 -2
  2476. package/vscode-dts/vscode.d.ts +6 -3
  2477. package/vscode-dts/vscode.proposed.authIssuers.d.ts +11 -0
  2478. package/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts +11 -0
  2479. package/vscode-dts/vscode.proposed.chatParticipantPrivate.d.ts +4 -1
  2480. package/vscode-dts/vscode.proposed.chatProvider.d.ts +6 -0
  2481. package/vscode-dts/vscode.proposed.chatSessionsProvider.d.ts +2 -0
  2482. package/vscode-dts/vscode.proposed.customTextEditorNavigation.d.ts +47 -0
  2483. package/vscode-dts/vscode.proposed.d.ts +1 -0
  2484. package/vscode-dts/vscode.proposed.externalUriOpener.d.ts +6 -0
  2485. package/vscode-dts/vscode.proposed.languageModelCapabilities.d.ts +17 -0
  2486. package/vscode-dts/vscode.proposed.languageModelThinkingPart.d.ts +5 -0
  2487. package/vscode-dts/vscode.proposed.scmProviderOptions.d.ts +5 -0
  2488. package/vscode/src/vs/platform/agentHost/browser/webPubSubRelayTransport.d.ts +0 -106
  2489. package/vscode/src/vs/platform/agentHost/browser/webPubSubRelayTransport.js +0 -207
  2490. package/vscode/src/vs/platform/agentHost/common/agentHostOperatingSystem.d.ts +0 -6
  2491. package/vscode/src/vs/platform/agentHost/common/agentHostOperatingSystem.js +0 -32
  2492. package/vscode/src/vs/platform/agentHost/common/cloudSandboxAgentHost.d.ts +0 -230
  2493. package/vscode/src/vs/platform/agentHost/common/cloudSandboxAgentHost.js +0 -53
  2494. package/vscode/src/vs/platform/agentHost/common/githubEndpoints.d.ts +0 -52
  2495. package/vscode/src/vs/platform/agentHost/common/githubIssueReferences.d.ts +0 -8
  2496. package/vscode/src/vs/platform/agentHost/common/githubIssueReferences.js +0 -13
  2497. package/vscode/src/vs/platform/agentHost/common/meta/agentMessageDelegationMeta.js +0 -27
  2498. package/vscode/src/vs/platform/agentHost/common/meta/automationMeta.d.ts +0 -15
  2499. package/vscode/src/vs/platform/agentHost/common/meta/automationMeta.js +0 -17
  2500. package/vscode/src/vs/platform/agentHost/common/taskEventReplay.d.ts +0 -51
  2501. package/vscode/src/vs/platform/agentHost/common/taskEventReplay.js +0 -184
  2502. package/vscode/src/vs/platform/agentHost/common/webPubSub/chunking.d.ts +0 -100
  2503. package/vscode/src/vs/platform/agentHost/common/webPubSub/chunking.js +0 -256
  2504. package/vscode/src/vs/platform/agentHost/common/webPubSub/framing.d.ts +0 -86
  2505. package/vscode/src/vs/platform/agentHost/common/webPubSub/framing.js +0 -64
  2506. package/vscode/src/vs/platform/agentHost/common/webPubSub/groups.d.ts +0 -46
  2507. package/vscode/src/vs/platform/agentHost/common/webPubSub/groups.js +0 -92
  2508. package/vscode/src/vs/platform/sandbox/common/terminalSandboxMxcRuntime.service.d.ts +0 -13
  2509. package/vscode/src/vs/platform/sandbox/common/terminalSandboxMxcRuntime.service.js +0 -6
  2510. package/vscode/src/vs/sessions/contrib/automations/browser/automationService.d.ts +0 -53
  2511. package/vscode/src/vs/sessions/contrib/automations/browser/automationService.js +0 -893
  2512. package/vscode/src/vs/sessions/contrib/automations/common/automationStorageService.d.ts +0 -6
  2513. package/vscode/src/vs/sessions/contrib/automations/common/automationStorageService.js +0 -8
  2514. package/vscode/src/vs/sessions/contrib/automations/common/automationStorageService.service.d.ts +0 -10
  2515. package/vscode/src/vs/sessions/contrib/automations/common/automationStorageService.service.js +0 -6
  2516. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +0 -9
  2517. package/vscode/src/vs/sessions/contrib/github/browser/media/issueHover.css +0 -59
  2518. package/vscode/src/vs/sessions/contrib/github/browser/media/pullRequestHover.css +0 -88
  2519. package/vscode/src/vs/sessions/contrib/providers/copilotChatSessions/browser/copilotChatSessionsChangesets.d.ts +0 -104
  2520. package/vscode/src/vs/sessions/contrib/providers/copilotChatSessions/browser/copilotChatSessionsChangesets.js +0 -301
  2521. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxAgentHostContribution.d.ts +0 -166
  2522. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxAgentHostContribution.js +0 -586
  2523. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxAgentHostService.d.ts +0 -43
  2524. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxAgentHostService.js +0 -264
  2525. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxApiService.d.ts +0 -114
  2526. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxApiService.js +0 -593
  2527. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxConnectionCustomization.d.ts +0 -15
  2528. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxConnectionCustomization.js +0 -47
  2529. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxCredentialRefresh.d.ts +0 -71
  2530. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxCredentialRefresh.js +0 -147
  2531. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxReadOnlySessionHandler.d.ts +0 -45
  2532. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxReadOnlySessionHandler.js +0 -109
  2533. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxSessionsProvider.d.ts +0 -49
  2534. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxSessionsProvider.js +0 -69
  2535. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxTelemetry.d.ts +0 -43
  2536. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/cloudSandboxTelemetry.js +0 -91
  2537. package/vscode/src/vs/sessions/contrib/sessions/browser/automationsNewBadge.d.ts +0 -42
  2538. package/vscode/src/vs/sessions/contrib/sessions/browser/automationsNewBadge.js +0 -196
  2539. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.d.ts +0 -191
  2540. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.js +0 -514
  2541. package/vscode/src/vs/workbench/browser/abstractlayout.d.ts +0 -146
  2542. package/vscode/src/vs/workbench/browser/abstractlayout.js +0 -247
  2543. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.d.ts +0 -42
  2544. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.js +0 -130
  2545. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.d.ts +0 -46
  2546. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.js +0 -91
  2547. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerAutoRow.d.ts +0 -30
  2548. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerAutoRow.js +0 -140
  2549. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerItemSections.d.ts +0 -11
  2550. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerItemSections.js +0 -580
  2551. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerItemTypes.d.ts +0 -38
  2552. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +0 -9
  2553. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +0 -83
  2554. package/vscode/src/vs/workbench/services/path/common/pathService.service.d.ts +0 -61
  2555. package/vscode/src/vs/workbench/services/path/common/pathService.service.js +0 -6
  2556. /package/vscode/src/vs/platform/agentHost/common/meta/{agentDevContainerWorktreeMeta.js → vscode/agentDevContainerWorktreeMeta.js} +0 -0
  2557. /package/vscode/src/vs/platform/agentHost/common/meta/{agentElementAttachments.js → vscode/agentElementAttachments.js} +0 -0
  2558. /package/vscode/src/vs/platform/agentHost/common/meta/{agentHostArtifactRemovalMeta.js → vscode/agentHostArtifactRemovalMeta.js} +0 -0
  2559. /package/vscode/src/vs/platform/agentHost/common/meta/{agentMergeMessageMeta.js → vscode/agentMergeMessageMeta.js} +0 -0
  2560. /package/vscode/src/vs/platform/agentHost/common/meta/{agentWorkspaceContinuationMeta.js → vscode/agentWorkspaceContinuationMeta.js} +0 -0
  2561. /package/vscode/src/vs/{sessions/contrib/providers/remoteAgentHost/browser → workbench/contrib/chat/browser/remoteAgentHost}/cloudSandboxTelemetry.service.js +0 -0
  2562. /package/vscode/src/vs/{sessions/contrib/providers/remoteAgentHost/browser → workbench/contrib/chat/browser/remoteAgentHost}/remoteAgentHostConnectionCustomization.service.js +0 -0
@@ -2,29 +2,37 @@
2
2
  import { registerCss } from '../../../../../../../../css.js';
3
3
  import { __decorate, __param } from '../../../../../../../../external/tslib/tslib.es6.js';
4
4
  import * as aiCustomizationManagement from './media/aiCustomizationManagement.css';
5
- import { $ as $$1, append, DisposableResizeObserver, addDisposableListener, EventType, clearNode, addDisposableGenericMouseDownListener, EventHelper, getWindow, createTextNode, scheduleAtNextAnimationFrame } from '../../../../../base/browser/dom.js';
6
- import { Disposable, DisposableStore, MutableDisposable, isDisposable } from '../../../../../base/common/lifecycle.js';
5
+ import './aiCustomizationColors.js';
6
+ import { $ as $$1, append, clearNode, addDisposableListener, EventType, addStandardDisposableListener, addDisposableGenericMouseDownListener, EventHelper, DisposableResizeObserver, getWindow, createTextNode, scheduleAtNextAnimationFrame } from '../../../../../base/browser/dom.js';
7
+ import { renderFormattedText } from '../../../../../base/browser/formattedTextRenderer.js';
8
+ import { Disposable, DisposableStore, toDisposable, MutableDisposable, isDisposable } from '../../../../../base/common/lifecycle.js';
7
9
  import { Emitter } from '../../../../../base/common/event.js';
10
+ import { KeyCode } from '../../../../../base/common/keyCodes.js';
8
11
  import { localize } from '../../../../../nls.js';
9
12
  import { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';
13
+ import { RenderIndentGuides } from '../../../../../base/browser/ui/tree/abstractTree.js';
14
+ import { ObjectTreeElementCollapseState } from '../../../../../base/browser/ui/tree/tree.js';
10
15
  import { ThemeIcon } from '../../../../../base/common/themables.js';
11
16
  import { Codicon } from '../../../../../base/common/codicons.js';
12
17
  import { Button } from '../../../../../base/browser/ui/button/button.js';
13
- import { Switch } from '../../../../../base/browser/ui/toggle/switch.js';
14
- import { getButtonStyles, defaultButtonStyles, defaultInputBoxStyles } from '../../../../../platform/theme/browser/defaultStyles.js';
18
+ import { getButtonStyles, defaultInputBoxStyles } from '../../../../../platform/theme/browser/defaultStyles.js';
15
19
  import { ICommandService } from '../../../../../platform/commands/common/commands.service.js';
16
20
  import { IConfigurationService } from '../../../../../platform/configuration/common/configuration.service.js';
21
+ import { ICustomizationMarketplaceService } from '../../../../../platform/customizationMarketplace/common/customizationMarketplaceService.service.js';
22
+ import { CustomizationMarketplaceConfiguration } from '../../../../../platform/customizationMarketplace/common/customizationMarketplaceSources.js';
23
+ import { IThemeService } from '../../../../../platform/theme/common/themeService.service.js';
24
+ import { ITelemetryService } from '../../../../../platform/telemetry/common/telemetry.service.js';
17
25
  import { mcpAccessConfig, McpAccessValue } from '../../../../../platform/mcp/common/mcpManagement.js';
18
26
  import { IMcpGalleryManifestService } from '../../../../../platform/mcp/common/mcpGalleryManifest.service.js';
19
- import { MCP_PLUGIN_COLLECTION_ID_PREFIX, McpConnectionState, McpServerInstallState, McpServerTransportType } from '../../../mcp/common/mcpTypes.js';
27
+ import { MCP_PLUGIN_COLLECTION_ID_PREFIX, McpConnectionState, McpCollectionProvenance, McpCollectionDefinition, McpServerInstallState, McpServerTransportType } from '../../../mcp/common/mcpTypes.js';
20
28
  import { IMcpWorkbenchService, IMcpService } from '../../../mcp/common/mcpTypes.service.js';
21
29
  import { IMcpRegistry } from '../../../mcp/common/mcpRegistryTypes.service.js';
22
30
  import '../../../mcp/common/discovery/pluginMcpDiscovery.js';
23
31
  import { ExtensionIdentifier } from '../../../../../platform/extensions/common/extensions.js';
24
32
  import { ContributionEnablementState, isContributionDisabled, isContributionEnabled } from '../../common/enablement.js';
33
+ import { ICustomizationMarketplaceInstallService } from '../../common/customizationMarketplaceInstallService.service.js';
25
34
  import { McpCommandIds } from '../../../mcp/common/mcpCommandIds.js';
26
35
  import '../../../../../base/common/observableInternal/index.js';
27
- import { defaultGenerator } from '../../../../../base/common/idGenerator.js';
28
36
  import { IOpenerService } from '../../../../../platform/opener/common/opener.service.js';
29
37
  import { URI } from '../../../../../base/common/uri.js';
30
38
  import { isEqual } from '../../../../../base/common/resources.js';
@@ -39,12 +47,15 @@ import { IAgentPluginService } from '../../common/plugins/agentPluginService.ser
39
47
  import { IDialogService } from '../../../../../platform/dialogs/common/dialogs.service.js';
40
48
  import { mcpServerIcon } from './aiCustomizationIcons.js';
41
49
  import { formatDisplayName } from './aiCustomizationListWidget.js';
50
+ import { MiddleEllipsisPathLabel, truncateToFirstLine } from './aiCustomizationListWidgetUtils.js';
42
51
  import { getDefaultHoverDelegate } from '../../../../../base/browser/ui/hover/hoverDelegateFactory.js';
43
52
  import { IHoverService } from '../../../../../platform/hover/browser/hover.service.js';
53
+ import { ILogService } from '../../../../../platform/log/common/log.service.js';
44
54
  import { IAICustomizationWorkspaceService } from '../../common/aiCustomizationWorkspaceService.service.js';
45
55
  import { AgentPluginItemKind } from '../agentPluginEditor/agentPluginItems.js';
46
56
  import { getCustomizationDisabledLabel } from '../../common/customizationHarnessService.js';
47
57
  import { ICustomizationHarnessService } from '../../common/customizationHarnessService.service.js';
58
+ import { getMcpServerDisplayLabel } from '../agentSessions/agentHost/agentHostCustomizationService.js';
48
59
  import { IAgentHostCustomizationService } from '../agentSessions/agentHost/agentHostCustomizationService.service.js';
49
60
  import '../../../../../platform/agentHost/common/state/protocol/channels-root/state.js';
50
61
  import { McpServerStatus, CustomizationEnablementKind } from '../../../../../platform/agentHost/common/state/protocol/channels-session/state.js';
@@ -55,29 +66,63 @@ import '../../../../../platform/agentHost/common/state/protocol/channels-resourc
55
66
  import '../../../../../platform/agentHost/common/state/protocol/channels-automation/state.js';
56
67
  import '../../../../../platform/agentHost/common/state/protocol/channels-automation-run/state.js';
57
68
  import { IOutputService } from '../../../../services/output/common/output.service.js';
58
- import { getCustomizationScopeEnablement } from '../../../../../platform/agentHost/common/customizationEnablement.js';
59
- import { createAgentHostEnablePluginAction } from '../agentPluginActions.js';
69
+ import { ChatConfiguration } from '../../common/constants.js';
70
+ import { runCustomizationMarketplaceInstallWithTelemetry, getAvailableCustomizationMarketplaceInstallTelemetryContext } from '../../common/customizationMarketplaceInstallTelemetry.js';
71
+ import { getCustomizationDisabledReason, getCustomizationScopeEnablement, getCustomizationEnablementDecision } from '../../../../../platform/agentHost/common/customizationEnablement.js';
72
+ import { createAgentHostEnablePluginAction, removePluginWithMarketplaceOwnership } from '../agentPluginActions.js';
60
73
  import { INotificationService } from '../../../../../platform/notification/common/notification.service.js';
61
- import { getErrorMessage } from '../../../../../base/common/errors.js';
74
+ import { isCancellationError, getErrorMessage } from '../../../../../base/common/errors.js';
62
75
  import { status } from '../../../../../base/browser/ui/aria/aria.js';
63
76
  import { Range } from '../../../../../editor/common/core/range.js';
64
77
  import { McpServerType } from '../../../../../platform/mcp/common/mcpPlatformTypes.js';
65
78
  import { createWorkbenchMcpServerDetailInput } from './embeddedMcpServerDetail.js';
66
- import { setVirtualizedRowActionsTabbable, createCustomizationCardPrimaryAction, setupCollapsibleSection, CustomizationCardListController, layoutVirtualizedSections, getVirtualizedSectionMinimumHeight, renderVirtualizedSectionLoadingPlaceholder } from './customizationCardList.js';
79
+ import { setVirtualizedRowActionsTabbable, createCustomizationCardPrimaryAction, trackCustomizationCardPrimaryActionFocus, layoutVirtualizedSections, getVirtualizedSectionMinimumHeight } from './customizationCardList.js';
67
80
  import { DomScrollableElement } from '../../../../../base/browser/ui/scrollbar/scrollableElement.js';
68
81
  import { ScrollbarVisibility } from '../../../../../base/common/scrollable.js';
69
- import { WorkbenchList } from '../../../../../platform/list/browser/listService.js';
82
+ import { WorkbenchObjectTree } from '../../../../../platform/list/browser/listService.js';
83
+ import { ILabelService } from '../../../../../platform/label/common/label.service.js';
84
+ import { ExtensionEditorTab } from '../../../extensions/common/extensions.js';
85
+ import { IExtensionsWorkbenchService } from '../../../extensions/common/extensions.service.js';
86
+ import { getRuntimeServerMatchKeys, getUniqueMcpMatchKeys, isMcpServerInUse, ActiveSessionMcpServerMatcher } from './mcpServerCount.js';
87
+ import { getConnectorActionLabel } from './connectorPresentation.js';
88
+ import { ICopilotConnectorsService } from './copilotConnectorsService.service.js';
89
+ import { CUSTOMIZATION_GROUP_HEADER_HEIGHT, CUSTOMIZATION_GROUP_HEADER_HEIGHT_WITH_SEPARATOR, CustomizationGroupHeaderRenderer } from './customizationGroupHeaderRenderer.js';
90
+ import { asTreeRenderer, customizationTreeStyles, getCustomizationTreeContentHeight } from './customizationTree.js';
91
+ import { CustomizationToggle } from './customizationToggle.js';
92
+ import { affectsCustomizationDiscoveryAvailability, isCustomizationDiscoveryAvailable } from './customizationMarketplaceConfiguration.js';
93
+ import { renderCustomizationMarketplaceIcon } from './aiCustomizationPresentation.js';
94
+ import { getAICustomizationWorkspaceGroups, getAICustomizationWorkspaceGroupForResource, isAICustomizationWorkspaceGroupKey } from './aiCustomizationWorkspaceGroups.js';
95
+ import { IWorkspaceContextService } from '../../../../../platform/workspace/common/workspace.service.js';
96
+ import { observableValue } from '../../../../../base/common/observableInternal/observables/observableValue.js';
70
97
  import { observableSignalFromEvent } from '../../../../../base/common/observableInternal/observables/observableSignalFromEvent.js';
71
98
  import { autorun } from '../../../../../base/common/observableInternal/reactions/autorun.js';
72
99
  import { derived } from '../../../../../base/common/observableInternal/observables/derived.js';
73
- import { truncateToFirstLine } from './aiCustomizationListWidgetUtils.js';
74
- import { observableSignal } from '../../../../../base/common/observableInternal/observables/observableSignal.js';
75
100
 
76
101
  registerCss(aiCustomizationManagement, 1);
77
102
  const $ = $$1;
78
103
  const PLUGIN_COLLECTION_PREFIX = MCP_PLUGIN_COLLECTION_ID_PREFIX;
79
- const MCP_SECTION_ITEM_HEIGHT = 66;
80
- const MCP_ERROR_PREVIEW_LENGTH = 300;
104
+ const MCP_INSTALLED_ITEM_HEIGHT = 44;
105
+ const MCP_MARKETPLACE_ITEM_HEIGHT = 58;
106
+ const MCP_UNINSTALL_ACTION_ID = "extensions.uninstall";
107
+ function getMarketplaceMcpManagementAction(action, serverId, marketplaceInstallService) {
108
+ const marketplace = marketplaceInstallService.installations.get().findByTarget({
109
+ kind: "mcp",
110
+ id: serverId
111
+ });
112
+ if (!marketplace || action.id !== MCP_UNINSTALL_ACTION_ID) {
113
+ return action;
114
+ }
115
+ const marketplaceUninstall = ( new Action(
116
+ action.id,
117
+ action.label,
118
+ action.class,
119
+ action.enabled,
120
+ () => marketplaceInstallService.uninstall(marketplace.resource)
121
+ ));
122
+ marketplaceUninstall.tooltip = action.tooltip;
123
+ marketplaceUninstall.checked = action.checked;
124
+ return marketplaceUninstall;
125
+ }
81
126
  const COPILOT_EXTENSION_IDS = ["github.copilot", "github.copilot-chat"];
82
127
  function isCopilotExtension(id) {
83
128
  return ( COPILOT_EXTENSION_IDS.some(copilotId => ExtensionIdentifier.equals(id, copilotId)));
@@ -85,6 +130,15 @@ function isCopilotExtension(id) {
85
130
  function getPluginUriFromCollectionId(collectionId) {
86
131
  return collectionId?.startsWith(PLUGIN_COLLECTION_PREFIX) ? collectionId.slice(PLUGIN_COLLECTION_PREFIX.length) : undefined;
87
132
  }
133
+ function createInstalledPluginItem(plugin) {
134
+ return {
135
+ kind: AgentPluginItemKind.Installed,
136
+ name: plugin.label,
137
+ description: plugin.fromMarketplace?.description ?? "",
138
+ marketplace: plugin.fromMarketplace?.marketplace,
139
+ plugin
140
+ };
141
+ }
88
142
  function createBuiltinActiveSessionMcpEntries(servers) {
89
143
  return servers.map(server => ({
90
144
  type: "session-server-item",
@@ -94,16 +148,58 @@ function createBuiltinActiveSessionMcpEntries(servers) {
94
148
  function isMcpServerCollectionVisible(collectionId, hiddenCollectionIds) {
95
149
  return !hiddenCollectionIds?.includes(collectionId);
96
150
  }
151
+ function hasMcpInstalledEntryIcon(entry) {
152
+ return getMcpInstalledEntryIcon(entry) !== undefined;
153
+ }
154
+ function getMcpInstalledEntryIcon(entry) {
155
+ if (entry.type === "connector-item") {
156
+ return entry.connector.connector.icon;
157
+ }
158
+ if (entry.type === "provider-item") {
159
+ return entry.marketplaceRecord.resource.icon;
160
+ }
161
+ if (entry.type !== "server-item") {
162
+ return undefined;
163
+ }
164
+ if (entry.marketplaceRecord?.resource.icon) {
165
+ return entry.marketplaceRecord.resource.icon;
166
+ }
167
+ const icon = entry.server.icon;
168
+ return icon ? {
169
+ light: ( URI.parse(icon.light)),
170
+ dark: ( URI.parse(icon.dark))
171
+ } : undefined;
172
+ }
97
173
  class McpSectionDelegate {
98
- getHeight() {
99
- return MCP_SECTION_ITEM_HEIGHT;
174
+ constructor(getInstalledHeight) {
175
+ this.getInstalledHeight = getInstalledHeight;
176
+ }
177
+ getHeight(element) {
178
+ if (element.type === "group-header") {
179
+ return element.isFirst ? CUSTOMIZATION_GROUP_HEADER_HEIGHT : CUSTOMIZATION_GROUP_HEADER_HEIGHT_WITH_SEPARATOR;
180
+ }
181
+ return element.type === "marketplace-item" ? MCP_MARKETPLACE_ITEM_HEIGHT : this.getInstalledHeight(element);
100
182
  }
101
183
  getTemplateId(element) {
184
+ if (element.type === "group-header") {
185
+ return "mcpGroupHeader";
186
+ }
102
187
  return element.type === "marketplace-item" ? "mcpMarketplaceItem" : "mcpServerItem";
103
188
  }
104
- hasDynamicHeight(element) {
105
- return element.type !== "marketplace-item";
106
- }
189
+ }
190
+ function preserveMcpEntryOrder(entries, order) {
191
+ let nextOrder = order.size;
192
+ for (const {
193
+ entry
194
+ } of entries) {
195
+ const key = getMcpRowKey(entry);
196
+ if (!( order.has(key))) {
197
+ order.set(key, nextOrder++);
198
+ }
199
+ }
200
+ return [...entries].sort(
201
+ (left, right) => order.get(getMcpRowKey(left.entry)) - order.get(getMcpRowKey(right.entry))
202
+ );
107
203
  }
108
204
  function getToggledMcpEnablementState(state) {
109
205
  switch (state) {
@@ -120,137 +216,104 @@ function getToggledMcpEnablementState(state) {
120
216
  let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
121
217
  constructor(
122
218
  _renderManagementActions,
219
+ _getCompatibilityKind,
220
+ _openPlugin,
221
+ _openMigrations,
123
222
  workspaceService,
124
223
  agentPluginService,
125
224
  hoverService,
126
225
  agentHostCustomizationService,
127
- customizationHarnessService
226
+ customizationHarnessService,
227
+ labelService,
228
+ extensionsWorkbenchService,
229
+ themeService
128
230
  ) {
129
231
  super();
130
232
  this._renderManagementActions = _renderManagementActions;
233
+ this._getCompatibilityKind = _getCompatibilityKind;
234
+ this._openPlugin = _openPlugin;
235
+ this._openMigrations = _openMigrations;
131
236
  this.workspaceService = workspaceService;
132
237
  this.agentPluginService = agentPluginService;
133
238
  this.hoverService = hoverService;
134
239
  this.agentHostCustomizationService = agentHostCustomizationService;
135
240
  this.customizationHarnessService = customizationHarnessService;
241
+ this.labelService = labelService;
242
+ this.extensionsWorkbenchService = extensionsWorkbenchService;
243
+ this.themeService = themeService;
136
244
  this.templateId = "mcpServerItem";
137
245
  this._templates = ( new Set());
138
- this._focusedIndex = -1;
139
- this._onDidChangeHeight = this._register(( new Emitter()));
140
- this.onDidChangeHeight = this._onDidChangeHeight.event;
141
- this.errorExpansionChanged = observableSignal(this);
142
- this.expandedErrors = ( new Map());
143
- }
144
- readErrorExpansion(reader) {
145
- this.errorExpansionChanged.read(reader);
146
- }
147
- syncError(element, error) {
148
- const session = this.customizationHarnessService.activeSessionResource.get();
149
- if (!isEqual(session, this.expansionSession)) {
150
- this.expansionSession = session;
151
- if (this.expandedErrors.size) {
152
- this.expandedErrors.clear();
153
- this.errorExpansionChanged.trigger(undefined);
246
+ this._register(this.themeService.onDidColorThemeChange(() => {
247
+ for (const template of this._templates) {
248
+ if (template.currentElement) {
249
+ this.renderIcon(template.currentElement, template);
250
+ }
154
251
  }
155
- }
156
- const key = getMcpRowKey(element);
157
- if (( this.expandedErrors.has(key)) && this.expandedErrors.get(key) !== error) {
158
- this.expandedErrors.delete(key);
159
- this.errorExpansionChanged.trigger(undefined);
160
- }
161
- }
162
- isErrorExpanded(element, error) {
163
- return error !== undefined && isEqual(
164
- this.expansionSession,
165
- this.customizationHarnessService.activeSessionResource.get()
166
- ) && this.expandedErrors.get(getMcpRowKey(element)) === error;
167
- }
168
- isErrorClipped(element) {
169
- return ( [...this._templates].some(
170
- template => template.currentIndex >= 0 && template.renderedRowKey === getMcpRowKey(element) && template.isClipped
171
- ));
252
+ }));
172
253
  }
173
254
  renderTemplate(container) {
174
255
  const templateDisposables = ( new DisposableStore());
175
256
  container.classList.add("mcp-server-item");
176
- container.style.minHeight = `${MCP_SECTION_ITEM_HEIGHT}px`;
177
- const typeIcon = append(container, $(".mcp-server-icon"));
178
- typeIcon.classList.add(...ThemeIcon.asClassNameArray(mcpServerIcon));
257
+ container.style.minHeight = `${MCP_INSTALLED_ITEM_HEIGHT}px`;
258
+ const icon = append(container, $(".mcp-server-icon"));
259
+ const iconDisposables = templateDisposables.add(( new DisposableStore()));
179
260
  const details = append(container, $(".mcp-server-details"));
180
261
  const nameRow = append(details, $(".mcp-server-name-row"));
181
262
  const name = append(nameRow, $(".mcp-server-name"));
182
- const statusBadge = append(nameRow, $(".plugin-list-item-status.mcp-runtime-status-badge"));
183
- statusBadge.setAttribute("aria-hidden", "true");
263
+ const secondaryLine = append(details, $(".mcp-server-secondary-line"));
264
+ const compatibilityMessage = append(secondaryLine, $(".mcp-server-compatibility-message"));
265
+ const compatibilityMessageDisposables = templateDisposables.add(( new DisposableStore()));
266
+ const sourcePath = append(secondaryLine, $("a.mcp-server-source-path"));
267
+ const sourcePathLabel = templateDisposables.add(( new MiddleEllipsisPathLabel(sourcePath)));
268
+ const sourcePathHover = templateDisposables.add(
269
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), sourcePath, "")
270
+ );
184
271
  const description = append(details, $(".mcp-server-description"));
185
- description.id = defaultGenerator.nextId();
186
272
  const descriptionHover = templateDisposables.add(
187
273
  this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), description, "")
188
274
  );
189
- const expandButton = templateDisposables.add(( new Button(details, {
190
- ...getButtonStyles({
191
- buttonBackground: undefined,
192
- buttonHoverBackground: undefined,
193
- buttonForeground: undefined,
194
- buttonBorder: undefined
195
- })
196
- })));
197
- expandButton.element.classList.add("mcp-server-error-toggle");
198
- expandButton.element.style.display = "none";
199
- expandButton.element.setAttribute("aria-controls", description.id);
275
+ const issue = append(details, $(".mcp-server-issue"));
276
+ const issueHover = templateDisposables.add(
277
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), issue, "")
278
+ );
200
279
  const actions = append(container, $(".mcp-server-actions"));
201
280
  const template = {
202
281
  container,
203
- typeIcon,
282
+ icon,
283
+ iconDisposables,
204
284
  name,
205
- statusBadge,
285
+ secondaryLine,
286
+ compatibilityMessage,
287
+ compatibilityMessageDisposables,
288
+ sourcePath,
289
+ sourcePathLabel,
290
+ sourcePathHover,
206
291
  description,
207
292
  descriptionHover,
208
- expandButton,
293
+ issue,
294
+ issueHover,
209
295
  actions,
210
296
  templateDisposables,
211
297
  elementDisposables: ( new DisposableStore()),
212
- actionDisposables: ( new DisposableStore()),
213
- currentIndex: -1,
214
- isRendering: false,
215
- isExpanded: false,
216
- isClipped: false
298
+ actionDisposables: ( new DisposableStore())
217
299
  };
218
- registerMcpInlineButtonAction(templateDisposables, expandButton, () => {
219
- if (!template.currentElement || !template.currentError) {
220
- return;
221
- }
222
- const key = getMcpRowKey(template.currentElement);
223
- if (template.isExpanded) {
224
- this.expandedErrors.delete(key);
225
- } else {
226
- this.expandedErrors.set(key, template.currentError);
227
- }
228
- this.renderDescription(template);
229
- this.errorExpansionChanged.trigger(undefined);
230
- });
231
- const resizeObserver = templateDisposables.add(new DisposableResizeObserver(
232
- "McpServerItemRenderer.description",
233
- () => this.updateExpandButton(template)
234
- ));
235
- templateDisposables.add(resizeObserver.observe(description));
236
- templateDisposables.add(addDisposableListener(
237
- expandButton.element,
238
- EventType.BLUR,
239
- () => this.updateExpandButton(template)
240
- ));
241
300
  this._templates.add(template);
242
301
  return template;
243
302
  }
244
- renderElement(element, index, templateData) {
245
- templateData.isRendering = true;
246
- try {
247
- this.renderEntry(element, index, templateData);
248
- } finally {
249
- templateData.isRendering = false;
250
- }
303
+ renderElement(element, _index, templateData) {
304
+ this.renderEntry(element, templateData);
305
+ }
306
+ renderIcon(element, templateData) {
307
+ templateData.iconDisposables.clear();
308
+ renderCustomizationMarketplaceIcon(
309
+ templateData.icon,
310
+ mcpServerIcon,
311
+ getMcpInstalledEntryIcon(element),
312
+ this.themeService.getColorTheme().type,
313
+ templateData.iconDisposables
314
+ );
251
315
  }
252
- renderEntry(element, index, templateData) {
253
- templateData.currentIndex = index;
316
+ renderEntry(element, templateData) {
254
317
  templateData.currentElement = element;
255
318
  const rowKey = getMcpRowKey(element);
256
319
  if (templateData.renderedRowKey !== rowKey) {
@@ -260,17 +323,75 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
260
323
  clearNode(templateData.actions);
261
324
  }
262
325
  templateData.elementDisposables.clear();
326
+ this.renderIcon(element, templateData);
327
+ const source = getMcpEntrySource(
328
+ element,
329
+ this.labelService,
330
+ this.agentPluginService,
331
+ this.extensionsWorkbenchService,
332
+ this._openPlugin
333
+ );
334
+ if (source) {
335
+ templateData.secondaryLine.classList.add("has-source");
336
+ templateData.sourcePathLabel.set(source.label);
337
+ templateData.sourcePath.style.display = "";
338
+ templateData.sourcePathHover.update(source.hover);
339
+ templateData.sourcePath.classList.toggle("source-link", source.open !== undefined);
340
+ if (source.open && source.ariaLabel) {
341
+ templateData.sourcePath.setAttribute("href", "#");
342
+ templateData.sourcePath.setAttribute("aria-label", source.ariaLabel);
343
+ templateData.elementDisposables.add(addDisposableListener(
344
+ templateData.sourcePath,
345
+ EventType.MOUSE_DOWN,
346
+ event => event.stopPropagation()
347
+ ));
348
+ templateData.elementDisposables.add(
349
+ addStandardDisposableListener(templateData.sourcePath, EventType.KEY_DOWN, event => {
350
+ if (event.keyCode === KeyCode.Enter) {
351
+ event.stopPropagation();
352
+ }
353
+ })
354
+ );
355
+ templateData.elementDisposables.add(
356
+ addDisposableListener(templateData.sourcePath, EventType.CLICK, event => {
357
+ event.preventDefault();
358
+ event.stopPropagation();
359
+ source.open?.();
360
+ })
361
+ );
362
+ } else {
363
+ templateData.sourcePath.removeAttribute("href");
364
+ templateData.sourcePath.removeAttribute("aria-label");
365
+ }
366
+ } else {
367
+ templateData.secondaryLine.classList.remove("has-source");
368
+ templateData.sourcePathLabel.set("");
369
+ templateData.sourcePath.style.display = "none";
370
+ templateData.sourcePathHover.update("");
371
+ templateData.sourcePath.classList.remove("source-link");
372
+ templateData.sourcePath.removeAttribute("href");
373
+ templateData.sourcePath.removeAttribute("aria-label");
374
+ }
375
+ templateData.sourcePath.tabIndex = source?.open && rowKey === this._focusedRowKey ? 0 : -1;
376
+ this.renderDescription(templateData, element, !!source);
377
+ if (element.type === "provider-item") {
378
+ templateData.container.classList.remove("builtin");
379
+ templateData.container.classList.add("has-detail");
380
+ templateData.name.textContent = formatDisplayName(element.label);
381
+ this.updateStatus(templateData, element, element, undefined, undefined);
382
+ return;
383
+ }
384
+ if (element.type === "connector-item") {
385
+ templateData.container.classList.remove("builtin");
386
+ templateData.container.classList.add("has-detail");
387
+ templateData.name.textContent = formatDisplayName(element.label);
388
+ this.updateKnownServerStatus(templateData, element);
389
+ return;
390
+ }
263
391
  if (element.type === "builtin-item") {
264
392
  templateData.container.classList.add("builtin");
265
393
  templateData.container.classList.toggle("has-detail", false);
266
394
  templateData.name.textContent = formatDisplayName(element.label);
267
- if (element.description) {
268
- templateData.description.textContent = truncateToFirstLine(element.description);
269
- templateData.description.style.display = "";
270
- } else {
271
- templateData.description.textContent = "";
272
- templateData.description.style.display = "none";
273
- }
274
395
  this.updateKnownServerStatus(templateData, element);
275
396
  const pluginUriStr = getPluginUriFromCollectionId(element.collectionId);
276
397
  if (pluginUriStr) {
@@ -278,7 +399,7 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
278
399
  const plugin = this.agentPluginService.plugins.get().find(p => ( p.uri.toString()) === pluginUriStr);
279
400
  if (plugin) {
280
401
  return {
281
- content: `${element.label}\n${( localize(9103, "Plugin: {0}", plugin.label))}`,
402
+ content: `${element.label}\n${( localize(11035, "Plugin: {0}", plugin.label))}`,
282
403
  appearance: {
283
404
  compact: true,
284
405
  skipFadeInAnimation: true
@@ -299,9 +420,7 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
299
420
  if (element.type === "session-server-item") {
300
421
  templateData.container.classList.remove("builtin");
301
422
  templateData.container.classList.toggle("has-detail", false);
302
- templateData.name.textContent = formatDisplayName(element.server.name);
303
- templateData.description.textContent = "";
304
- templateData.description.style.display = "none";
423
+ templateData.name.textContent = formatDisplayName(getMcpServerDisplayLabel(element.server));
305
424
  this.updateActiveSessionStatus(templateData, element);
306
425
  return;
307
426
  }
@@ -311,13 +430,6 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
311
430
  const isGallery = !element.server.local;
312
431
  const hasDetail = !!description || isGallery;
313
432
  templateData.container.classList.toggle("has-detail", hasDetail);
314
- if (description) {
315
- templateData.description.textContent = truncateToFirstLine(description);
316
- templateData.description.style.display = "";
317
- } else {
318
- templateData.description.textContent = "";
319
- templateData.description.style.display = "none";
320
- }
321
433
  if (element.activeSessionServer !== undefined) {
322
434
  this.updateKnownServerStatus(templateData, element);
323
435
  } else if (this.workspaceService.isSessionsWindow) {
@@ -332,8 +444,7 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
332
444
  element,
333
445
  element,
334
446
  disabled ? "disabled" : connectionState?.state,
335
- undefined,
336
- connectionState?.state === McpConnectionState.Kind.Error ? connectionState.message : undefined
447
+ this._getCompatibilityKind(element, reader)
337
448
  );
338
449
  }));
339
450
  }
@@ -341,13 +452,14 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
341
452
  updateKnownServerStatus(templateData, element) {
342
453
  let localDisabled = false;
343
454
  let connectionState;
344
- const update = () => {
455
+ const update = reader => {
345
456
  const currentEntry = resolveMcpEntry(
346
457
  element,
347
458
  this.agentHostCustomizationService,
348
459
  this.customizationHarnessService.activeSessionResource.get()
349
460
  );
350
461
  const activeSessionServer = currentEntry && getActiveSessionServer(currentEntry);
462
+ const compatibilityKind = this._getCompatibilityKind(element, reader);
351
463
  if (element.activeSessionServer !== undefined) {
352
464
  const presentation = activeSessionServer && getActiveSessionServerPresentation(activeSessionServer);
353
465
  templateData.container.classList.toggle("disabled", presentation?.enabled === false);
@@ -356,32 +468,33 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
356
468
  element,
357
469
  currentEntry,
358
470
  presentation?.status,
359
- presentation?.enabled ? undefined : activeSessionServer?.disabledReason,
360
- activeSessionServer?.state?.kind === McpServerStatus.Error ? activeSessionServer.state.error?.message : undefined
471
+ compatibilityKind,
472
+ presentation?.enabled ? undefined : activeSessionServer?.disabledReason
361
473
  );
362
474
  return;
363
475
  }
364
476
  templateData.container.classList.toggle("disabled", localDisabled);
365
- const localError = !this.workspaceService.isSessionsWindow && connectionState?.state === McpConnectionState.Kind.Error ? connectionState : undefined;
477
+ const localState = !this.workspaceService.isSessionsWindow ? connectionState?.state : undefined;
366
478
  this.updateStatus(
367
479
  templateData,
368
480
  element,
369
481
  currentEntry,
370
- localDisabled ? "disabled" : localError?.state,
371
- undefined,
372
- localError?.message
482
+ localDisabled ? "disabled" : localState,
483
+ compatibilityKind
373
484
  );
374
485
  };
375
486
  templateData.elementDisposables.add(autorun(reader => {
376
487
  this.customizationHarnessService.activeSessionResource.read(reader);
377
488
  localDisabled = element.localServer ? isContributionDisabled(element.localServer.enablement.read(reader)) : false;
378
489
  connectionState = element.localServer?.connectionState.read(reader);
379
- update();
490
+ update(reader);
380
491
  }));
381
- templateData.elementDisposables.add(this.agentHostCustomizationService.onDidChangeCustomizations(update));
492
+ templateData.elementDisposables.add(
493
+ this.agentHostCustomizationService.onDidChangeCustomizations(() => update())
494
+ );
382
495
  }
383
496
  updateActiveSessionStatus(templateData, element) {
384
- const update = () => {
497
+ const update = reader => {
385
498
  const currentEntry = resolveMcpEntry(
386
499
  element,
387
500
  this.agentHostCustomizationService,
@@ -395,32 +508,43 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
395
508
  element,
396
509
  currentEntry,
397
510
  presentation?.status,
398
- server?.disabledReason,
399
- server?.state?.kind === McpServerStatus.Error ? server.state.error?.message : undefined
511
+ this._getCompatibilityKind(element, reader),
512
+ server?.disabledReason
400
513
  );
401
514
  };
402
515
  templateData.elementDisposables.add(autorun(reader => {
403
516
  this.customizationHarnessService.activeSessionResource.read(reader);
404
- update();
517
+ update(reader);
405
518
  }));
406
- templateData.elementDisposables.add(this.agentHostCustomizationService.onDidChangeCustomizations(update));
519
+ templateData.elementDisposables.add(
520
+ this.agentHostCustomizationService.onDidChangeCustomizations(() => update())
521
+ );
407
522
  }
408
- updateStatus(templateData, element, currentEntry, state, disabledReason, errorMessage) {
409
- const error = getMcpErrorMessage(state, errorMessage);
410
- this.syncError(element, error);
411
- templateData.currentError = error;
412
- this.renderDescription(templateData);
413
- const presentation = getMcpStatusPresentation(state, disabledReason);
414
- templateData.statusBadge.className = "plugin-list-item-status mcp-runtime-status-badge";
415
- if (presentation) {
416
- templateData.statusBadge.textContent = presentation.label;
417
- templateData.statusBadge.classList.add(presentation.className);
418
- templateData.statusBadge.style.display = "";
419
- } else {
420
- templateData.statusBadge.textContent = "";
421
- templateData.statusBadge.style.display = "none";
523
+ updateStatus(
524
+ templateData,
525
+ element,
526
+ currentEntry,
527
+ state,
528
+ compatibilityKind,
529
+ disabledReason
530
+ ) {
531
+ const isError = state === McpServerStatus.Error || state === McpConnectionState.Kind.Error;
532
+ templateData.compatibilityLink = updateMcpCompatibilityMessage(
533
+ templateData.compatibilityMessage,
534
+ compatibilityKind,
535
+ templateData.compatibilityMessageDisposables,
536
+ this._openMigrations
537
+ );
538
+ this.updateActionsTabbability(templateData);
539
+ if (isError) {
540
+ templateData.compatibilityMessage.style.display = "none";
422
541
  }
542
+ const presentation = getMcpStatusPresentation(state, disabledReason);
423
543
  const activeSessionServer = currentEntry && getActiveSessionServer(currentEntry);
544
+ templateData.issue.textContent = "";
545
+ templateData.issue.style.display = "none";
546
+ templateData.issueHover.update("");
547
+ templateData.description.style.display = compatibilityKind && compatibilityKind !== "supported" ? "none" : templateData.description.textContent ? "" : "none";
424
548
  const label = getMcpEntryLabel(currentEntry ?? element);
425
549
  const activeSessionResource = this.customizationHarnessService.activeSessionResource.get();
426
550
  const localServer = element.type === "session-server-item" ? undefined : element.localServer;
@@ -431,6 +555,7 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
431
555
  statusLabel: presentation?.label,
432
556
  statusClassName: presentation?.className,
433
557
  statusIconId: presentation?.icon?.id,
558
+ compatibilityKind,
434
559
  activeSessionServerId: activeSessionServer?.id,
435
560
  logOutputChannelId: activeSessionServer?.logOutputChannelId,
436
561
  localServerId: localServer?.definition.id,
@@ -446,47 +571,23 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
446
571
  return;
447
572
  }
448
573
  const getEntry = () => resolveMcpEntry(currentEntry, this.agentHostCustomizationService, activeSessionResource);
449
- if (!presentation) {
450
- this._renderManagementActions(
451
- getEntry,
452
- templateData.actions,
453
- templateData.actionDisposables,
454
- () => this.updateActionsTabbability(templateData)
455
- );
456
- this.updateActionsTabbability(templateData);
457
- return;
458
- }
459
- if (state === McpServerStatus.AuthRequired && activeSessionServer !== undefined) {
460
- const signInButton = createMcpSignInButton(templateData.actions, templateData.actionDisposables, label);
461
- registerMcpInlineButtonAction(templateData.actionDisposables, signInButton, async () => {
462
- signInButton.enabled = false;
463
- try {
464
- await authenticateMcpServer(
465
- this.agentHostCustomizationService,
466
- activeSessionResource,
467
- activeSessionServer.id
468
- );
469
- } finally {
470
- signInButton.enabled = true;
574
+ renderMcpServerStatusActions(templateData.actions, templateData.actionDisposables, this.hoverService, {
575
+ label,
576
+ state,
577
+ signIn: activeSessionServer ? () => authenticateMcpServer(
578
+ this.agentHostCustomizationService,
579
+ activeSessionResource,
580
+ activeSessionServer.id
581
+ ) : undefined,
582
+ start: async () => {
583
+ const entry = getEntry();
584
+ if (entry) {
585
+ await startMcpEntry(entry);
471
586
  }
472
- });
473
- }
474
- if (!presentation.icon || error !== undefined) {
475
- this._renderManagementActions(
476
- getEntry,
477
- templateData.actions,
478
- templateData.actionDisposables,
479
- () => this.updateActionsTabbability(templateData)
480
- );
481
- this.updateActionsTabbability(templateData);
482
- return;
483
- }
484
- const statusElement = append(templateData.actions, $(".mcp-server-status"));
485
- statusElement.classList.add(presentation.className, ...ThemeIcon.asClassNameArray(presentation.icon));
486
- statusElement.setAttribute("aria-hidden", "true");
487
- templateData.actionDisposables.add(
488
- this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), statusElement, presentation.label)
489
- );
587
+ },
588
+ statusHover: presentation?.label,
589
+ updateTabbability: () => this.updateActionsTabbability(templateData)
590
+ });
490
591
  this._renderManagementActions(
491
592
  getEntry,
492
593
  templateData.actions,
@@ -495,81 +596,37 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
495
596
  );
496
597
  this.updateActionsTabbability(templateData);
497
598
  }
498
- setFocusedIndex(index) {
499
- this._focusedIndex = index;
599
+ setFocusedRowKey(rowKey) {
600
+ this._focusedRowKey = rowKey;
500
601
  for (const template of this._templates) {
501
602
  this.updateActionsTabbability(template);
502
603
  }
503
604
  }
504
605
  updateActionsTabbability(templateData) {
505
- setVirtualizedRowActionsTabbable(templateData.actions, templateData.currentIndex === this._focusedIndex);
506
- templateData.expandButton.element.tabIndex = templateData.currentIndex === this._focusedIndex ? 0 : -1;
507
- }
508
- notifyHeightChange(template) {
509
- if (!template.isRendering && template.currentIndex >= 0) {
510
- this._onDidChangeHeight.fire({
511
- index: template.currentIndex,
512
- text: template.currentError === undefined ? undefined : template.renderedDescription,
513
- expanded: template.isExpanded
514
- });
606
+ const focused = templateData.currentElement !== undefined && getMcpRowKey(templateData.currentElement) === this._focusedRowKey;
607
+ setVirtualizedRowActionsTabbable(templateData.actions, focused);
608
+ templateData.sourcePath.tabIndex = templateData.sourcePath.classList.contains("source-link") && focused ? 0 : -1;
609
+ if (templateData.compatibilityLink) {
610
+ templateData.compatibilityLink.tabIndex = focused ? 0 : -1;
515
611
  }
516
612
  }
517
- renderDescription(template) {
518
- const element = template.currentElement;
519
- if (!element) {
520
- return;
521
- }
522
- const error = template.currentError;
523
- const expanded = this.isErrorExpanded(element, error);
524
- const description = error === undefined ? element.type === "session-server-item" ? "" : element.type === "builtin-item" ? element.description : element.server.description?.trim() ?? "" : expanded ? error : getMcpErrorPreview(error).text;
525
- const text = error === undefined ? truncateToFirstLine(description) : description;
526
- const changed = template.renderedDescription !== description || template.isExpanded !== expanded || template.description.classList.contains("error") !== (error !== undefined);
527
- if (template.description.textContent !== text) {
528
- template.description.textContent = text;
529
- }
530
- template.isExpanded = expanded;
531
- template.description.classList.toggle("expanded", expanded);
532
- template.description.classList.toggle("error", error !== undefined);
533
- template.container.classList.toggle("has-error", error !== undefined);
613
+ renderDescription(template, element, hasSource) {
614
+ const description = hasSource || element.type === "session-server-item" ? "" : element.type === "builtin-item" || element.type === "connector-item" || element.type === "provider-item" ? element.description : element.server.description?.trim() ?? "";
615
+ template.description.textContent = truncateToFirstLine(description);
534
616
  template.description.style.display = description ? "" : "none";
535
- if (template.renderedDescription !== description) {
536
- template.renderedDescription = description;
537
- template.descriptionHover.update(description);
538
- }
539
- if (changed) {
540
- this.updateExpandButton(template);
541
- this.notifyHeightChange(template);
542
- }
543
- }
544
- updateExpandButton(template) {
545
- if (!template.currentElement) {
546
- return;
547
- }
548
- const clipped = template.currentError !== undefined && !template.isExpanded && template.description.clientWidth > 0 && template.description.scrollHeight > template.description.clientHeight;
549
- if (clipped !== template.isClipped) {
550
- template.isClipped = clipped;
551
- this.errorExpansionChanged.trigger(undefined);
552
- }
553
- const visible = template.currentError !== undefined && (template.isExpanded || getMcpErrorPreview(template.currentError).truncated || clipped || template.expandButton.hasFocus());
554
- const display = visible ? "" : "none";
555
- if (template.expandButton.element.style.display !== display) {
556
- template.expandButton.element.style.display = display;
557
- this.notifyHeightChange(template);
558
- }
559
- template.expandButton.label = template.isExpanded ? ( localize(9104, "Show Less")) : ( localize(9105, "Show More"));
560
- template.expandButton.element.setAttribute("aria-expanded", String(template.isExpanded));
561
- this.updateActionsTabbability(template);
617
+ template.descriptionHover.update(description);
562
618
  }
563
619
  disposeElement(_element, _index, templateData) {
564
620
  templateData.elementDisposables.clear();
621
+ templateData.sourcePathHover.hide();
622
+ templateData.sourcePathHover.update("");
623
+ templateData.sourcePathLabel.set("");
565
624
  templateData.descriptionHover.hide();
566
625
  templateData.descriptionHover.update("");
626
+ templateData.issueHover.hide();
627
+ templateData.issueHover.update("");
567
628
  templateData.description.textContent = "";
568
- templateData.renderedDescription = undefined;
569
629
  templateData.currentElement = undefined;
570
- templateData.currentError = undefined;
571
- templateData.isClipped = false;
572
- templateData.currentIndex = -1;
573
630
  }
574
631
  disposeTemplate(templateData) {
575
632
  this._templates.delete(templateData);
@@ -577,18 +634,13 @@ let McpServerItemRenderer = class McpServerItemRenderer extends Disposable {
577
634
  templateData.elementDisposables.dispose();
578
635
  templateData.actionDisposables.dispose();
579
636
  }
580
- dispose() {
581
- this.expandedErrors.clear();
582
- super.dispose();
583
- }
584
637
  };
585
- McpServerItemRenderer = ( __decorate([( __param(1, IAICustomizationWorkspaceService)), ( __param(2, IAgentPluginService)), ( __param(3, IHoverService)), ( __param(4, IAgentHostCustomizationService)), ( __param(5, ICustomizationHarnessService))], McpServerItemRenderer));
638
+ McpServerItemRenderer = ( __decorate([( __param(4, IAICustomizationWorkspaceService)), ( __param(5, IAgentPluginService)), ( __param(6, IHoverService)), ( __param(7, IAgentHostCustomizationService)), ( __param(8, ICustomizationHarnessService)), ( __param(9, ILabelService)), ( __param(10, IExtensionsWorkbenchService)), ( __param(11, IThemeService))], McpServerItemRenderer));
586
639
  class McpMarketplaceItemRenderer {
587
640
  constructor(_install) {
588
641
  this._install = _install;
589
642
  this.templateId = "mcpMarketplaceItem";
590
643
  this._templates = ( new Set());
591
- this._focusedIndex = -1;
592
644
  }
593
645
  renderTemplate(container) {
594
646
  container.classList.add("plugin-list-item", "plugin-marketplace-home-row");
@@ -599,7 +651,12 @@ class McpMarketplaceItemRenderer {
599
651
  );
600
652
  const description = append(details, $(".plugin-list-item-description"));
601
653
  const actionContainer = append(container, $(".plugin-list-item-action"));
602
- const installButton = ( new Button(actionContainer, defaultButtonStyles));
654
+ const installButton = ( new Button(actionContainer, {
655
+ ...getButtonStyles({
656
+ buttonSecondaryHoverBackground: undefined
657
+ }),
658
+ secondary: true
659
+ }));
603
660
  installButton.element.classList.add("plugin-list-item-install-button");
604
661
  const templateDisposables = ( new DisposableStore());
605
662
  templateDisposables.add(installButton);
@@ -613,32 +670,33 @@ class McpMarketplaceItemRenderer {
613
670
  installButton,
614
671
  elementDisposables: ( new DisposableStore()),
615
672
  templateDisposables,
616
- currentIndex: -1
673
+ currentServerId: undefined
617
674
  };
618
675
  this._templates.add(template);
619
676
  return template;
620
677
  }
621
- renderElement(element, index, templateData) {
678
+ renderElement(element, _index, templateData) {
622
679
  templateData.elementDisposables.clear();
623
- templateData.currentIndex = index;
680
+ templateData.currentServerId = element.server.id;
624
681
  templateData.name.textContent = element.server.label;
625
- templateData.description.textContent = truncateToFirstLine(element.server.description || ( localize(9106, "No description provided.")));
626
- templateData.installButton.label = ( localize(9107, "Install"));
682
+ templateData.description.textContent = truncateToFirstLine(element.server.description || ( localize(11036, "No description provided.")));
683
+ templateData.installButton.label = ( localize(11037, "Install"));
627
684
  templateData.installButton.enabled = true;
628
- templateData.installButton.element.tabIndex = index === this._focusedIndex ? 0 : -1;
685
+ templateData.installButton.element.tabIndex = element.server.id === this._focusedServerId ? 0 : -1;
629
686
  templateData.elementDisposables.add(templateData.installButton.onDidClick(event => {
630
687
  EventHelper.stop(event, true);
631
688
  void this._install(element.server, templateData.installButton);
632
689
  }));
633
690
  }
634
- setFocusedIndex(index) {
635
- this._focusedIndex = index;
691
+ setFocusedServerId(serverId) {
692
+ this._focusedServerId = serverId;
636
693
  for (const template of this._templates) {
637
- template.installButton.element.tabIndex = template.currentIndex === index ? 0 : -1;
694
+ template.installButton.element.tabIndex = template.currentServerId === serverId ? 0 : -1;
638
695
  }
639
696
  }
640
697
  disposeElement(_element, _index, templateData) {
641
698
  templateData.elementDisposables.clear();
699
+ templateData.currentServerId = undefined;
642
700
  }
643
701
  disposeTemplate(templateData) {
644
702
  this._templates.delete(templateData);
@@ -647,18 +705,102 @@ class McpMarketplaceItemRenderer {
647
705
  }
648
706
  }
649
707
  function createMcpSignInButton(parent, store, serverLabel) {
650
- const signInLabel = ( localize(9108, "Sign in to {0}", serverLabel));
708
+ const signInLabel = ( localize(11038, "Sign in to {0}", serverLabel));
651
709
  const signInButton = store.add(( new Button(parent, {
652
- ...defaultButtonStyles,
710
+ ...getButtonStyles({
711
+ buttonSecondaryHoverBackground: undefined
712
+ }),
653
713
  secondary: true,
654
714
  small: true,
655
715
  title: signInLabel,
656
- ariaLabel: signInLabel
716
+ ariaLabel: signInLabel,
717
+ supportIcons: true
657
718
  })));
658
- signInButton.label = ( localize(9109, "Sign In"));
719
+ signInButton.label = ( localize(11039, "Sign In"));
659
720
  signInButton.element.classList.add("mcp-server-sign-in");
660
721
  return signInButton;
661
722
  }
723
+ function createMcpStartButton(parent, store, serverLabel) {
724
+ const startLabel = ( localize(11040, "Start {0}", serverLabel));
725
+ const startButton = store.add(( new Button(parent, {
726
+ ...getButtonStyles({
727
+ buttonSecondaryHoverBackground: undefined
728
+ }),
729
+ secondary: true,
730
+ small: true,
731
+ title: startLabel,
732
+ ariaLabel: startLabel
733
+ })));
734
+ startButton.label = ( localize(11041, "Start"));
735
+ startButton.element.classList.add("mcp-server-start");
736
+ return startButton;
737
+ }
738
+ function createMcpShowOutputButton(parent, store, serverLabel) {
739
+ const showOutputLabel = ( localize(11042, "Show output for {0}", serverLabel));
740
+ const showOutputButton = store.add(( new Button(parent, {
741
+ ...getButtonStyles({
742
+ buttonSecondaryHoverBackground: undefined
743
+ }),
744
+ secondary: true,
745
+ small: true,
746
+ title: showOutputLabel,
747
+ ariaLabel: showOutputLabel
748
+ })));
749
+ showOutputButton.label = ( localize(11043, "Show Output"));
750
+ showOutputButton.element.classList.add("mcp-server-show-output");
751
+ return showOutputButton;
752
+ }
753
+ async function startMcpEntry(entry) {
754
+ const activeSessionServer = getActiveSessionServer(entry);
755
+ if (activeSessionServer) {
756
+ await activeSessionServer.start();
757
+ return;
758
+ }
759
+ if (entry.type !== "session-server-item" && entry.localServer) {
760
+ await entry.localServer.start({
761
+ promptType: "all-untrusted"
762
+ });
763
+ }
764
+ }
765
+ function registerMcpSignInButtonAction(store, button, serverLabel, action, options) {
766
+ const signingInLabel = ( localize(11044, "Signing In..."));
767
+ const signingInAriaLabel = ( localize(11045, "Signing in to {0}", serverLabel));
768
+ let pending = false;
769
+ let disposed = false;
770
+ store.add(toDisposable(() => disposed = true));
771
+ registerMcpInlineButtonAction(store, button, async () => {
772
+ if (pending) {
773
+ return;
774
+ }
775
+ pending = true;
776
+ const wasEnabled = button.enabled;
777
+ button.label = `$(${Codicon.loading.id}) ${signingInLabel}`;
778
+ button.setTitle(signingInAriaLabel);
779
+ button.setAriaLabel(signingInAriaLabel);
780
+ button.element.setAttribute("aria-busy", "true");
781
+ button.enabled = false;
782
+ status(( localize(11046, "Signing in to {0}.", serverLabel)));
783
+ try {
784
+ await action();
785
+ } finally {
786
+ if (!disposed) {
787
+ pending = false;
788
+ const tabIndex = button.element.tabIndex;
789
+ resetMcpSignInButton(button, serverLabel, wasEnabled);
790
+ button.element.tabIndex = tabIndex;
791
+ options?.updateTabbability?.();
792
+ }
793
+ }
794
+ });
795
+ }
796
+ function resetMcpSignInButton(button, serverLabel, enabled) {
797
+ const signInAriaLabel = ( localize(11038, "Sign in to {0}", serverLabel));
798
+ button.label = ( localize(11039, "Sign In"));
799
+ button.setTitle(signInAriaLabel);
800
+ button.setAriaLabel(signInAriaLabel);
801
+ button.element.removeAttribute("aria-busy");
802
+ button.enabled = enabled;
803
+ }
662
804
  function registerMcpInlineButtonAction(store, button, action) {
663
805
  store.add(
664
806
  addDisposableGenericMouseDownListener(button.element, event => EventHelper.stop(event, true))
@@ -668,6 +810,70 @@ function registerMcpInlineButtonAction(store, button, action) {
668
810
  void action();
669
811
  }));
670
812
  }
813
+ function renderMcpServerStatusActions(container, store, hoverService, options) {
814
+ const {
815
+ label,
816
+ state,
817
+ signIn,
818
+ start,
819
+ openStatus
820
+ } = options;
821
+ if (state === McpServerStatus.AuthRequired && signIn) {
822
+ const signInButton = createMcpSignInButton(container, store, label);
823
+ signInButton.element.tabIndex = -1;
824
+ registerMcpSignInButtonAction(store, signInButton, label, signIn, options);
825
+ }
826
+ if ((state === McpServerStatus.Stopped || state === McpConnectionState.Kind.Stopped) && start) {
827
+ const startButton = createMcpStartButton(container, store, label);
828
+ startButton.element.tabIndex = -1;
829
+ let disposed = false;
830
+ store.add(toDisposable(() => disposed = true));
831
+ registerMcpInlineButtonAction(store, startButton, async () => {
832
+ if (!startButton.enabled) {
833
+ return;
834
+ }
835
+ const tabIndex = startButton.element.tabIndex;
836
+ startButton.enabled = false;
837
+ try {
838
+ await start();
839
+ } finally {
840
+ if (!disposed) {
841
+ startButton.enabled = true;
842
+ startButton.element.tabIndex = tabIndex;
843
+ options.updateTabbability?.();
844
+ }
845
+ }
846
+ });
847
+ }
848
+ const presentation = getMcpStatusPresentation(state);
849
+ if (presentation?.icon) {
850
+ const isError = state === McpServerStatus.Error || state === McpConnectionState.Kind.Error;
851
+ const statusContainer = isError ? append(container, $(".mcp-server-error-actions")) : container;
852
+ const statusElement = append(statusContainer, $(
853
+ openStatus ? "button.mcp-server-status.mcp-server-state-icon.mcp-server-status-action" : ".mcp-server-status.mcp-server-state-icon"
854
+ ));
855
+ statusElement.classList.add(presentation.className, ...ThemeIcon.asClassNameArray(presentation.icon));
856
+ if (openStatus) {
857
+ statusElement.setAttribute("type", "button");
858
+ statusElement.setAttribute("aria-label", ( localize(11047, "Show details for {0}", label)));
859
+ statusElement.tabIndex = -1;
860
+ store.add(
861
+ addDisposableGenericMouseDownListener(statusElement, event => EventHelper.stop(event, true))
862
+ );
863
+ store.add(addDisposableListener(statusElement, EventType.CLICK, event => {
864
+ EventHelper.stop(event, true);
865
+ openStatus();
866
+ }));
867
+ } else {
868
+ statusElement.setAttribute("aria-hidden", "true");
869
+ }
870
+ store.add(hoverService.setupManagedHover(
871
+ getDefaultHoverDelegate("element"),
872
+ statusElement,
873
+ options.statusHover ?? presentation.label
874
+ ));
875
+ }
876
+ }
671
877
  function authenticateMcpServer(agentHostCustomizationService, sessionResource, serverId) {
672
878
  return agentHostCustomizationService.authenticateMcpServer(sessionResource, serverId);
673
879
  }
@@ -696,42 +902,103 @@ function getMcpServerOutputHandler(
696
902
  }
697
903
  return undefined;
698
904
  }
905
+ function getMcpCompatibilityPresentation(kind) {
906
+ switch (kind) {
907
+ case "partiallySupported":
908
+ return {
909
+ label: ( localize(11048, "Partially supported")),
910
+ className: "partially-supported"
911
+ };
912
+ case "unsupported":
913
+ return {
914
+ label: ( localize(11049, "Unsupported")),
915
+ className: "unsupported"
916
+ };
917
+ case "unknown":
918
+ return {
919
+ label: ( localize(11050, "Support unknown")),
920
+ className: "support-unknown"
921
+ };
922
+ case "supported":
923
+ case undefined:
924
+ return undefined;
925
+ }
926
+ }
927
+ function updateMcpCompatibilityMessage(message, kind, disposables, openMigrations) {
928
+ const presentation = getMcpCompatibilityPresentation(kind);
929
+ disposables.clear();
930
+ message.className = "mcp-server-compatibility-message";
931
+ message.style.display = presentation ? "" : "none";
932
+ clearNode(message);
933
+ if (!presentation) {
934
+ return undefined;
935
+ }
936
+ message.classList.add(presentation.className);
937
+ renderFormattedText(( localize(11051, "{0}. See [[Migrations]] for details.", presentation.label)), {
938
+ actionHandler: {
939
+ callback: (_content, event) => {
940
+ event.preventDefault();
941
+ event.stopPropagation();
942
+ openMigrations();
943
+ },
944
+ disposables
945
+ }
946
+ }, message);
947
+ const migrationLink = message.firstElementChild;
948
+ const iconTheme = kind === "unsupported" ? Codicon.error : Codicon.warning;
949
+ const icon = $("span.mcp-server-compatibility-icon");
950
+ icon.classList.add(...ThemeIcon.asClassNameArray(iconTheme));
951
+ icon.setAttribute("aria-hidden", "true");
952
+ message.insertBefore(icon, message.firstChild);
953
+ if (migrationLink) {
954
+ migrationLink.href = "#";
955
+ migrationLink.tabIndex = -1;
956
+ migrationLink.classList.add("mcp-server-compatibility-link");
957
+ disposables.add(
958
+ addDisposableListener(migrationLink, EventType.MOUSE_DOWN, event => event.stopPropagation())
959
+ );
960
+ }
961
+ return migrationLink ?? undefined;
962
+ }
699
963
  function getMcpStatusPresentation(state, disabledReason) {
700
964
  if (state === undefined) {
701
965
  return undefined;
702
966
  }
703
967
  if (state === "disabled") {
704
968
  return {
705
- label: getCustomizationDisabledLabel(disabledReason),
706
- className: "disabled",
707
- icon: Codicon.circleSlash
969
+ label: getMcpDisabledLabel(disabledReason),
970
+ className: "disabled"
708
971
  };
709
972
  }
710
973
  switch (state) {
711
974
  case McpConnectionState.Kind.Running:
712
975
  case McpServerStatus.Ready:
713
976
  return {
714
- label: ( localize(9110, "Running")),
715
- className: "running",
716
- icon: Codicon.check
977
+ label: ( localize(11052, "Running")),
978
+ className: "running"
717
979
  };
718
980
  case McpConnectionState.Kind.Starting:
719
981
  case McpServerStatus.Starting:
720
982
  return {
721
- label: ( localize(9111, "Starting")),
983
+ label: ( localize(11053, "Starting")),
984
+ className: "starting",
985
+ icon: ThemeIcon.modify(Codicon.loading, "spin")
986
+ };
987
+ case "authenticating":
988
+ return {
989
+ label: ( localize(11054, "Authenticating")),
722
990
  className: "starting",
723
991
  icon: ThemeIcon.modify(Codicon.loading, "spin")
724
992
  };
725
993
  case McpServerStatus.AuthRequired:
726
994
  return {
727
- label: ( localize(9112, "Authentication required")),
728
- className: "auth-required",
729
- icon: Codicon.account
995
+ label: ( localize(11055, "Authentication required")),
996
+ className: "auth-required"
730
997
  };
731
998
  case McpConnectionState.Kind.Error:
732
999
  case McpServerStatus.Error:
733
1000
  return {
734
- label: ( localize(9113, "Error")),
1001
+ label: ( localize(11056, "Error")),
735
1002
  className: "error",
736
1003
  icon: Codicon.error
737
1004
  };
@@ -739,35 +1006,47 @@ function getMcpStatusPresentation(state, disabledReason) {
739
1006
  case McpServerStatus.Stopped:
740
1007
  default:
741
1008
  return {
742
- label: ( localize(9114, "Stopped")),
1009
+ label: ( localize(11057, "Stopped")),
743
1010
  className: "stopped"
744
1011
  };
745
1012
  }
746
1013
  }
1014
+ function getMcpDisabledLabel(reason) {
1015
+ if (reason?.source === "scope" && reason.scope !== CustomizationEnablementKind.Global) {
1016
+ return getCustomizationDisabledLabel(reason);
1017
+ }
1018
+ if (reason?.source === "plugin") {
1019
+ return getCustomizationDisabledLabel(reason);
1020
+ }
1021
+ return localize(11058, "Disabled (Globally)");
1022
+ }
1023
+ function getMcpEntryErrorMessage(entry) {
1024
+ const activeSessionServer = getActiveSessionServer(entry);
1025
+ if (activeSessionServer) {
1026
+ return getMcpErrorMessage(
1027
+ activeSessionServer.status,
1028
+ activeSessionServer.state?.kind === McpServerStatus.Error ? activeSessionServer.state.error?.message : undefined
1029
+ );
1030
+ }
1031
+ const connectionState = entry.type === "session-server-item" ? undefined : entry.localServer?.connectionState.get();
1032
+ return getMcpErrorMessage(
1033
+ connectionState?.state,
1034
+ connectionState?.state === McpConnectionState.Kind.Error ? connectionState.message : undefined
1035
+ );
1036
+ }
747
1037
  function getMcpErrorMessage(state, message) {
748
1038
  if (state !== McpServerStatus.Error && state !== McpConnectionState.Kind.Error) {
749
1039
  return undefined;
750
1040
  }
751
- return message && /\S/u.test(message) ? message : ( localize(9115, "The server reported an error without additional details."));
752
- }
753
- function getMcpErrorPreview(message) {
754
- let end = 0;
755
- const characters = [];
756
- for (let count = 0; count < MCP_ERROR_PREVIEW_LENGTH && end < message.length; count++) {
757
- const codePoint = message.codePointAt(end);
758
- characters.push(String.fromCodePoint(codePoint));
759
- end += codePoint > 0xFFFF ? 2 : 1;
760
- }
761
- const truncated = end < message.length;
762
- return {
763
- text: characters.join("") + (truncated ? "…" : ""),
764
- truncated
765
- };
1041
+ return message && /\S/u.test(message) ? message : ( localize(11059, "The server reported an error without additional details."));
766
1042
  }
767
1043
  function getActiveSessionServer(entry) {
768
1044
  return entry.type === "session-server-item" ? entry.server : entry.activeSessionServer;
769
1045
  }
770
1046
  function resolveMcpEntry(entry, customizations, sessionResource) {
1047
+ if (entry.type === "provider-item") {
1048
+ return entry;
1049
+ }
771
1050
  const activeSessionServer = getActiveSessionServer(entry);
772
1051
  if (!activeSessionServer) {
773
1052
  return entry;
@@ -789,8 +1068,49 @@ function getMcpRowKey(entry) {
789
1068
  return `session:${entry.server.id}`;
790
1069
  case "builtin-item":
791
1070
  return `builtin:${entry.id}`;
1071
+ case "connector-item":
1072
+ return `connector:${entry.id}`;
1073
+ case "provider-item":
1074
+ return `provider:${entry.id}`;
792
1075
  }
793
1076
  }
1077
+ function getMcpEntryGroup(entry) {
1078
+ if (entry.type === "provider-item") {
1079
+ return "user";
1080
+ }
1081
+ if (entry.type === "server-item") {
1082
+ return entry.server.local?.scope === LocalMcpServerScope.Workspace ? "workspace" : "user";
1083
+ }
1084
+ if (entry.type === "connector-item") {
1085
+ return "plugins";
1086
+ }
1087
+ if (entry.type === "builtin-item") {
1088
+ if (entry.collectionId?.startsWith(PLUGIN_COLLECTION_PREFIX)) {
1089
+ return "plugins";
1090
+ }
1091
+ if (entry.extensionId) {
1092
+ return isCopilotExtension(entry.extensionId) ? "builtin" : "extensions";
1093
+ }
1094
+ const collection = entry.localServer?.readDefinitions().get().collection;
1095
+ if (collection?.provenance === McpCollectionProvenance.ExternalConfiguration) {
1096
+ return McpCollectionDefinition.isWorkspaceDiscovered(collection) ? "workspace" : "user";
1097
+ }
1098
+ }
1099
+ const activeSessionServer = getActiveSessionServer(entry);
1100
+ switch (activeSessionServer?.source) {
1101
+ case "user":
1102
+ return "user";
1103
+ case "workspace":
1104
+ return "workspace";
1105
+ case "plugin":
1106
+ return "plugins";
1107
+ case undefined:
1108
+ if (activeSessionServer?.hostConfiguration) {
1109
+ return "user";
1110
+ }
1111
+ }
1112
+ return "builtin";
1113
+ }
794
1114
  function getMcpStatusRenderSignature(input) {
795
1115
  return JSON.stringify([
796
1116
  input.rowKey,
@@ -799,14 +1119,208 @@ function getMcpStatusRenderSignature(input) {
799
1119
  input.statusLabel ?? null,
800
1120
  input.statusClassName ?? null,
801
1121
  input.statusIconId ?? null,
1122
+ input.compatibilityKind ?? null,
802
1123
  input.activeSessionServerId ?? null,
803
1124
  input.logOutputChannelId ?? null,
804
1125
  input.localServerId ?? null,
805
1126
  input.activeSessionResource ?? null
806
1127
  ]);
807
1128
  }
808
- function getMcpEntryLabel(element) {
809
- return element.type === "session-server-item" ? element.server.name : element.type === "builtin-item" ? element.label : element.server.label;
1129
+ function getMcpEntryLabel(element) {
1130
+ switch (element.type) {
1131
+ case "server-item":
1132
+ return element.server.label;
1133
+ case "session-server-item":
1134
+ return getMcpServerDisplayLabel(element.server);
1135
+ case "builtin-item":
1136
+ case "connector-item":
1137
+ case "provider-item":
1138
+ return element.label;
1139
+ }
1140
+ }
1141
+ function getMcpEntryName(element) {
1142
+ return element.type === "session-server-item" ? element.server.name : element.type === "provider-item" ? element.name : getMcpEntryLabel(element);
1143
+ }
1144
+ function getMcpEntrySourceUri(element) {
1145
+ switch (element.type) {
1146
+ case "server-item":
1147
+ return element.server.local?.mcpResource;
1148
+ case "session-server-item":
1149
+ return element.server.sourceUri;
1150
+ case "connector-item":
1151
+ return element.activeSessionServer?.sourceUri;
1152
+ case "builtin-item":
1153
+ return element.activeSessionServer?.sourceUri ?? element.localServer?.readDefinitions().get().server?.presentation?.origin?.uri ?? element.localServer?.collection?.presentation?.origin;
1154
+ case "provider-item":
1155
+ return undefined;
1156
+ }
1157
+ }
1158
+ function getMcpEntrySource(
1159
+ element,
1160
+ labelService,
1161
+ agentPluginService,
1162
+ extensionsWorkbenchService,
1163
+ openPlugin
1164
+ ) {
1165
+ const sourceUri = getMcpEntrySourceUri(element);
1166
+ if (element.type === "builtin-item") {
1167
+ const pluginUri = getPluginUriFromCollectionId(element.collectionId);
1168
+ const plugin = pluginUri ? agentPluginService.plugins.get().find(plugin => ( plugin.uri.toString()) === pluginUri) : undefined;
1169
+ if (plugin) {
1170
+ return {
1171
+ label: ( localize(11035, "Plugin: {0}", plugin.label)),
1172
+ hover: ( localize(11060, "Open plugin details for {0}", plugin.label)),
1173
+ ariaLabel: ( localize(11060, "Open plugin details for {0}", plugin.label)),
1174
+ open: openPlugin ? () => openPlugin(plugin) : undefined
1175
+ };
1176
+ }
1177
+ if (element.extensionId && extensionsWorkbenchService) {
1178
+ const extensionId = element.extensionId;
1179
+ const extension = extensionsWorkbenchService.local.find(
1180
+ extension => ExtensionIdentifier.equals(extension.identifier.id, extensionId)
1181
+ );
1182
+ const extensionName = extension?.displayName || extensionId.value;
1183
+ return {
1184
+ label: isCopilotExtension(extensionId) ? ( localize(11061, "Built-in: {0}", extensionName)) : ( localize(11062, "Extension: {0}", extensionName)),
1185
+ hover: ( localize(11063, "Open extension details for {0}", extensionName)),
1186
+ ariaLabel: ( localize(11063, "Open extension details for {0}", extensionName)),
1187
+ open: () => extensionsWorkbenchService.open(extensionId.value, {
1188
+ tab: ExtensionEditorTab.Features,
1189
+ feature: "mcp"
1190
+ })
1191
+ };
1192
+ }
1193
+ }
1194
+ if (!sourceUri) {
1195
+ return undefined;
1196
+ }
1197
+ return {
1198
+ label: labelService.getUriLabel(sourceUri, {
1199
+ relative: true
1200
+ }),
1201
+ hover: labelService.getUriLabel(sourceUri, {
1202
+ noPrefix: true
1203
+ })
1204
+ };
1205
+ }
1206
+ function getAgentHostMcpServerSource(server, plugin, labelService, agentPluginService, openPlugin, openFile) {
1207
+ const entry = {
1208
+ type: "session-server-item",
1209
+ server
1210
+ };
1211
+ const fileSource = createInstalledMcpServerDetailInput(entry).source;
1212
+ const openFileSource = fileSource && openFile ? () => openFile(fileSource) : undefined;
1213
+ if (plugin) {
1214
+ const pluginUri = ( URI.parse(plugin.uri));
1215
+ const clientPlugin = agentPluginService.plugins.get().find(candidate => isEqual(candidate.uri, pluginUri));
1216
+ if (clientPlugin && openPlugin) {
1217
+ return {
1218
+ label: clientPlugin.label,
1219
+ hover: ( localize(11060, "Open plugin details for {0}", clientPlugin.label)),
1220
+ ariaLabel: ( localize(11060, "Open plugin details for {0}", clientPlugin.label)),
1221
+ open: () => openPlugin(clientPlugin)
1222
+ };
1223
+ }
1224
+ return {
1225
+ label: plugin.name,
1226
+ hover: fileSource ? labelService.getUriLabel(fileSource.uri, {
1227
+ noPrefix: true
1228
+ }) : plugin.name,
1229
+ ariaLabel: openFileSource ? ( localize(11064, "Open {0}", plugin.name)) : undefined,
1230
+ open: openFileSource
1231
+ };
1232
+ }
1233
+ const source = getMcpEntrySource(entry, labelService, agentPluginService);
1234
+ return source && openFileSource ? {
1235
+ ...source,
1236
+ ariaLabel: ( localize(11064, "Open {0}", source.label)),
1237
+ open: openFileSource
1238
+ } : source;
1239
+ }
1240
+ function getMcpEntryLabelWithSource(element, labelService, agentPluginService, extensionsWorkbenchService) {
1241
+ const label = getMcpEntryLabel(element);
1242
+ const source = getMcpEntrySource(element, labelService, agentPluginService, extensionsWorkbenchService);
1243
+ return source ? ( localize(11065, "{0}, configured in {1}", label, source.label)) : label;
1244
+ }
1245
+ function getActiveSessionServerProvenance(server, agentLabel) {
1246
+ if (server.hostConfiguration && server.source !== "builtin" && server.source !== "managed" && server.source !== "account") {
1247
+ return {
1248
+ label: ( localize(11066, "Agent host configuration"))
1249
+ };
1250
+ }
1251
+ switch (server.source) {
1252
+ case "builtin":
1253
+ return {
1254
+ label: server.sourcePluginName ? ( localize(11067, "Built-in plugin: {0}", server.sourcePluginName)) : ( localize(11061, "Built-in: {0}", agentLabel))
1255
+ };
1256
+ case "managed":
1257
+ return {
1258
+ label: ( localize(11068, "Managed by {0}", agentLabel))
1259
+ };
1260
+ case "account":
1261
+ return {
1262
+ label: ( localize(11069, "Signed-in account"))
1263
+ };
1264
+ case "plugin":
1265
+ return server.sourcePluginName ? {
1266
+ label: ( localize(11035, "Plugin: {0}", server.sourcePluginName))
1267
+ } : undefined;
1268
+ case "workspace":
1269
+ return {
1270
+ label: ( localize(11070, "Workspace configuration"))
1271
+ };
1272
+ case "user":
1273
+ return {
1274
+ label: ( localize(11071, "User configuration"))
1275
+ };
1276
+ default:
1277
+ return undefined;
1278
+ }
1279
+ }
1280
+ function getActiveSessionServerDefinitionUnavailable(server, agentLabel) {
1281
+ const settingId = server.controllingSettingId;
1282
+ switch (server.source) {
1283
+ case "builtin":
1284
+ return {
1285
+ message: ( localize(
1286
+ 11072,
1287
+ "{0} configures this server automatically, so its definition can't be viewed or edited.",
1288
+ agentLabel
1289
+ )),
1290
+ ...(settingId ? {
1291
+ settingId
1292
+ } : {})
1293
+ };
1294
+ case "managed":
1295
+ return {
1296
+ message: ( localize(
1297
+ 11073,
1298
+ "{0} manages this server, so its definition can't be viewed or edited.",
1299
+ agentLabel
1300
+ )),
1301
+ ...(settingId ? {
1302
+ settingId
1303
+ } : {})
1304
+ };
1305
+ case "account":
1306
+ return {
1307
+ message: ( localize(
1308
+ 11074,
1309
+ "Your signed-in account provides this server, so its definition can't be viewed or edited."
1310
+ )),
1311
+ ...(settingId ? {
1312
+ settingId
1313
+ } : {})
1314
+ };
1315
+ default:
1316
+ return undefined;
1317
+ }
1318
+ }
1319
+ function getMcpServerCompatibilityId(element) {
1320
+ if (element.type === "session-server-item") {
1321
+ return undefined;
1322
+ }
1323
+ return element.localServer?.definition.id ?? (element.type === "server-item" ? element.server.id : element.type === "connector-item" ? element.connector.serverName : undefined);
810
1324
  }
811
1325
  function getMcpStatusKind(entry, isSessionsWindow) {
812
1326
  if (entry.type === "session-server-item") {
@@ -818,71 +1332,50 @@ function getMcpStatusKind(entry, isSessionsWindow) {
818
1332
  if (entry.localServer && isContributionDisabled(entry.localServer.enablement.get())) {
819
1333
  return "disabled";
820
1334
  }
821
- if (entry.type === "server-item" && !isSessionsWindow) {
822
- return entry.localServer?.connectionState.get().state;
1335
+ if (!isSessionsWindow) {
1336
+ const state = entry.localServer?.connectionState.get().state;
1337
+ return state;
823
1338
  }
824
1339
  return undefined;
825
1340
  }
826
- function getMcpEntryAriaLabel(element, isSessionsWindow) {
827
- const label = getMcpEntryLabel(element);
1341
+ function getMcpEntryAriaLabel(
1342
+ element,
1343
+ isSessionsWindow,
1344
+ compatibilityKind,
1345
+ labelService,
1346
+ agentPluginService,
1347
+ extensionsWorkbenchService
1348
+ ) {
1349
+ const label = getMcpEntryLabelWithSource(element, labelService, agentPluginService, extensionsWorkbenchService);
828
1350
  const statusKind = getMcpStatusKind(element, isSessionsWindow);
829
1351
  const disabledReason = statusKind === "disabled" ? getMcpDisabledReason(element) : undefined;
830
1352
  const status = getMcpStatusPresentation(statusKind, disabledReason);
831
- return status ? ( localize(9116, "{0}, {1}", label, status.label)) : label;
1353
+ const compatibility = getMcpCompatibilityPresentation(compatibilityKind);
1354
+ const errorMessage = statusKind === McpServerStatus.Error || statusKind === McpConnectionState.Kind.Error ? getMcpEntryErrorMessage(element) : undefined;
1355
+ return [compatibility?.label, status?.label, errorMessage].reduce((result, detail) => detail ? ( localize(11075, "{0}, {1}", result, detail)) : result, label);
832
1356
  }
833
1357
  function getMcpDisabledReason(entry) {
834
1358
  if (entry.type === "session-server-item") {
835
1359
  return entry.server.disabledReason;
836
1360
  }
837
1361
  if (entry.activeSessionServer !== undefined) {
838
- return entry.activeSessionServer.disabledReason;
839
- }
840
- return undefined;
841
- }
842
- function normalizeMcpMatchKey(value) {
843
- return value || undefined;
844
- }
845
- function getUniqueMcpMatchKeys(values) {
846
- const keys = ( new Set());
847
- for (const value of values) {
848
- const key = normalizeMcpMatchKey(value);
849
- if (key) {
850
- keys.add(key);
851
- }
852
- }
853
- return [...keys];
854
- }
855
- class ActiveSessionMcpServerMatcher {
856
- constructor(servers) {
857
- this.servers = servers;
858
- this.byKey = ( new Map());
859
- this.matchedIds = ( new Set());
860
- for (const server of servers) {
861
- const separator = server.id.indexOf("/");
862
- const rawId = separator >= 0 ? server.id.slice(separator + 1) : server.id;
863
- for (const key of getUniqueMcpMatchKeys([rawId, server.name])) {
864
- let bucket = this.byKey.get(key);
865
- if (!bucket) {
866
- bucket = [];
867
- this.byKey.set(key, bucket);
868
- }
869
- bucket.push(server);
870
- }
871
- }
872
- }
873
- take(keys) {
874
- for (const key of getUniqueMcpMatchKeys(keys)) {
875
- const matches = this.byKey.get(key)?.filter(server => !( this.matchedIds.has(server.id)));
876
- if (matches?.length === 1) {
877
- this.matchedIds.add(matches[0].id);
878
- return matches[0];
879
- }
1362
+ return entry.activeSessionServer.disabledReason ?? getCustomizationDisabledReason(entry.activeSessionServer);
1363
+ }
1364
+ if (entry.localServer) {
1365
+ switch (entry.localServer.enablement.get()) {
1366
+ case ContributionEnablementState.DisabledWorkspace:
1367
+ return {
1368
+ source: "scope",
1369
+ scope: CustomizationEnablementKind.Workspace
1370
+ };
1371
+ case ContributionEnablementState.DisabledProfile:
1372
+ return {
1373
+ source: "scope",
1374
+ scope: CustomizationEnablementKind.Global
1375
+ };
880
1376
  }
881
- return undefined;
882
- }
883
- unmatched(query) {
884
- return this.servers.filter(server => !( this.matchedIds.has(server.id)) && matchesActiveSessionServerQuery(server, query));
885
1377
  }
1378
+ return undefined;
886
1379
  }
887
1380
  class LocalMcpServerMatcher {
888
1381
  constructor(servers) {
@@ -908,26 +1401,49 @@ class LocalMcpServerMatcher {
908
1401
  return undefined;
909
1402
  }
910
1403
  }
911
- function matchesActiveSessionServerQuery(server, query) {
912
- if (!query) {
913
- return true;
914
- }
915
- return server.name.toLowerCase().includes(query);
916
- }
917
1404
  function getWorkbenchServerMatchKeys(server) {
918
1405
  return getUniqueMcpMatchKeys([server.id, server.name, server.label]);
919
1406
  }
920
- function getRuntimeServerMatchKeys(server) {
921
- return getUniqueMcpMatchKeys([server.definition.id, server.definition.label]);
1407
+ function createProviderMcpEntries(installations, existingMatchKeys, query) {
1408
+ const occupied = ( new Set(existingMatchKeys.map(key => key.toLowerCase())));
1409
+ const normalizedQuery = query.toLowerCase().trim();
1410
+ const result = [];
1411
+ for (const installation of installations) {
1412
+ const target = installation.state.target;
1413
+ if (!installation.installationId || installation.state.kind !== "installed" || target.kind !== "mcp") {
1414
+ continue;
1415
+ }
1416
+ const matchKeys = getUniqueMcpMatchKeys([target.id, target.name]);
1417
+ if (matchKeys.length === 0 || ( matchKeys.some(key => ( occupied.has(key.toLowerCase()))))) {
1418
+ continue;
1419
+ }
1420
+ const resource = installation.resource;
1421
+ const name = target.name ?? target.id;
1422
+ if (normalizedQuery && !( [name, resource.displayName, resource.description].some(value => value.toLowerCase().includes(normalizedQuery)))) {
1423
+ continue;
1424
+ }
1425
+ for (const key of matchKeys) {
1426
+ occupied.add(key.toLowerCase());
1427
+ }
1428
+ result.push({
1429
+ type: "provider-item",
1430
+ id: installation.installationId,
1431
+ name,
1432
+ label: resource.displayName,
1433
+ description: resource.description,
1434
+ marketplaceRecord: installation
1435
+ });
1436
+ }
1437
+ return result;
922
1438
  }
923
1439
  function getActiveSessionServerPresentation(server) {
924
1440
  return {
925
1441
  enabled: server.enabled,
926
- status: server.enabled ? server.status : "disabled"
1442
+ status: server.enabled ? server.authenticating ? "authenticating" : server.status : "disabled"
927
1443
  };
928
1444
  }
929
1445
  function updateMcpCardRuntimePresentation(
930
- statusBadge,
1446
+ statusIcon,
931
1447
  primaryAction,
932
1448
  description,
933
1449
  statusKind,
@@ -936,11 +1452,16 @@ function updateMcpCardRuntimePresentation(
936
1452
  descriptionText
937
1453
  ) {
938
1454
  const statusPresentation = getMcpStatusPresentation(statusKind, disabledReason);
939
- statusBadge.className = "plugin-list-item-status mcp-runtime-status-badge";
940
- statusBadge.style.display = statusPresentation ? "" : "none";
941
- statusBadge.textContent = statusPresentation?.label ?? "";
942
- if (statusPresentation) {
943
- statusBadge.classList.add(statusPresentation.className);
1455
+ statusIcon.className = "mcp-server-state-icon";
1456
+ statusIcon.style.display = statusPresentation?.icon ? "" : "none";
1457
+ if (statusPresentation?.icon) {
1458
+ statusIcon.classList.add(
1459
+ statusPresentation.className,
1460
+ ...ThemeIcon.asClassNameArray(statusPresentation.icon)
1461
+ );
1462
+ statusIcon.setAttribute("aria-label", statusPresentation.label);
1463
+ } else {
1464
+ statusIcon.removeAttribute("aria-label");
944
1465
  }
945
1466
  primaryAction.setAttribute("aria-label", ariaLabel);
946
1467
  description.textContent = descriptionText;
@@ -948,6 +1469,9 @@ function updateMcpCardRuntimePresentation(
948
1469
  function shouldLoadMcpGallerySnapshot(visible, query, itemCount, failed, loading, accessEnabled) {
949
1470
  return accessEnabled && visible && !query.trim() && itemCount === 0 && !failed && !loading;
950
1471
  }
1472
+ function shouldShowLegacyMcpGallery(configurationService) {
1473
+ return configurationService.getValue(CustomizationMarketplaceConfiguration.MarketplaceEnabled) !== true;
1474
+ }
951
1475
  function hasSameMcpMembership(previous, current) {
952
1476
  return previous === current;
953
1477
  }
@@ -955,7 +1479,7 @@ function getActiveSessionServerLifecycleAction(server) {
955
1479
  if (!getActiveSessionServerPresentation(server).enabled) {
956
1480
  return undefined;
957
1481
  }
958
- return server.status === McpServerStatus.Stopped || server.status === McpServerStatus.Error ? ( new Action("mcpServer.activeSession.start", ( localize(9117, "Start Server")), undefined, true, () => server.start())) : ( new Action("mcpServer.activeSession.stop", ( localize(9118, "Stop Server")), undefined, true, () => server.stop()));
1482
+ return server.status === McpServerStatus.Stopped || server.status === McpServerStatus.Error ? ( new Action("mcpServer.activeSession.start", ( localize(11076, "Start Server")), undefined, true, () => server.start())) : ( new Action("mcpServer.activeSession.stop", ( localize(11077, "Stop Server")), undefined, true, () => server.stop()));
959
1483
  }
960
1484
  function isHostOwnedPluginMcpServer(server) {
961
1485
  return server.isPluginProvided === true && !server.isClientBundled;
@@ -963,18 +1487,18 @@ function isHostOwnedPluginMcpServer(server) {
963
1487
  const agentHostMcpServerEnablementActionInfo = {
964
1488
  global: {
965
1489
  kind: CustomizationEnablementKind.Global,
966
- enableLabel: () => ( localize(9119, "Enable")),
967
- disableLabel: () => ( localize(9120, "Disable"))
1490
+ enableLabel: () => ( localize(11078, "Enable")),
1491
+ disableLabel: () => ( localize(11079, "Disable (Globally)"))
968
1492
  },
969
1493
  workspace: {
970
1494
  kind: CustomizationEnablementKind.Workspace,
971
- enableLabel: () => ( localize(9121, "Enable (Workspace)")),
972
- disableLabel: () => ( localize(9122, "Disable (Workspace)"))
1495
+ enableLabel: () => ( localize(11080, "Enable (Workspace)")),
1496
+ disableLabel: () => ( localize(11081, "Disable (Workspace)"))
973
1497
  },
974
1498
  session: {
975
1499
  kind: CustomizationEnablementKind.Session,
976
- enableLabel: () => ( localize(9123, "Enable (Session)")),
977
- disableLabel: () => ( localize(9124, "Disable (Session)"))
1500
+ enableLabel: () => ( localize(11082, "Enable (Session)")),
1501
+ disableLabel: () => ( localize(11083, "Disable (Session)"))
978
1502
  }
979
1503
  };
980
1504
  function getAgentHostMcpServerEnablementActions(
@@ -1047,6 +1571,17 @@ function setPrimaryMcpServerEnablement(
1047
1571
  );
1048
1572
  return;
1049
1573
  }
1574
+ if (activeSessionServer && !activeSessionServer.enabled && enabled) {
1575
+ const scope = activeSessionServer.disabledReason?.source === "scope" ? activeSessionServer.disabledReason.scope : getCustomizationEnablementDecision(activeSessionServer)?.kind ?? CustomizationEnablementKind.Global;
1576
+ agentHostCustomizations.setCustomizationEnablement(
1577
+ sessionResource,
1578
+ activeSessionServer.id,
1579
+ activeSessionServer.enablement,
1580
+ scope,
1581
+ true
1582
+ );
1583
+ return;
1584
+ }
1050
1585
  if (localServerId) {
1051
1586
  const current = mcpService.enablementModel.readEnabled(localServerId);
1052
1587
  const next = getToggledMcpEnablementState(current);
@@ -1071,6 +1606,9 @@ function isPrimaryMcpServerEnabled(mcpService, localServerId, activeSessionServe
1071
1606
  if (activeSessionServer && isHostOwnedPluginMcpServer(activeSessionServer)) {
1072
1607
  return getCustomizationScopeEnablement(activeSessionServer).global;
1073
1608
  }
1609
+ if (activeSessionServer && !activeSessionServer.enabled) {
1610
+ return false;
1611
+ }
1074
1612
  if (localServerId) {
1075
1613
  return isContributionEnabled(mcpService.enablementModel.readEnabled(localServerId));
1076
1614
  }
@@ -1094,20 +1632,20 @@ function getLocalMcpServerEnablementActions(mcpService, serverId, isEmptyWorkben
1094
1632
  const disabled = options.activeSessionServer ? !getActiveSessionServerPresentation(options.activeSessionServer).enabled : isContributionDisabled(mcpService.enablementModel.readEnabled(serverId));
1095
1633
  const actions = [];
1096
1634
  if (disabled) {
1097
- actions.push(( new Action("mcpServer.builtin.enable", ( localize(9125, "Enable")), undefined, true, () => {
1635
+ actions.push(( new Action("mcpServer.builtin.enable", ( localize(11084, "Enable")), undefined, true, () => {
1098
1636
  mcpService.enablementModel.setEnabled(serverId, ContributionEnablementState.EnabledProfile);
1099
1637
  })));
1100
1638
  if (includeWorkspace && !isEmptyWorkbench) {
1101
- actions.push(( new Action("mcpServer.builtin.enableWorkspace", ( localize(9126, "Enable (Workspace)")), undefined, true, () => {
1639
+ actions.push(( new Action("mcpServer.builtin.enableWorkspace", ( localize(11085, "Enable (Workspace)")), undefined, true, () => {
1102
1640
  mcpService.enablementModel.setEnabled(serverId, ContributionEnablementState.EnabledWorkspace);
1103
1641
  })));
1104
1642
  }
1105
1643
  } else {
1106
- actions.push(( new Action("mcpServer.builtin.disable", ( localize(9127, "Disable")), undefined, true, () => {
1644
+ actions.push(( new Action("mcpServer.builtin.disable", ( localize(11086, "Disable (Globally)")), undefined, true, () => {
1107
1645
  mcpService.enablementModel.setEnabled(serverId, ContributionEnablementState.DisabledProfile);
1108
1646
  })));
1109
1647
  if (includeWorkspace && !isEmptyWorkbench) {
1110
- actions.push(( new Action("mcpServer.builtin.disableWorkspace", ( localize(9128, "Disable (Workspace)")), undefined, true, () => {
1648
+ actions.push(( new Action("mcpServer.builtin.disableWorkspace", ( localize(11087, "Disable (Workspace)")), undefined, true, () => {
1111
1649
  mcpService.enablementModel.setEnabled(serverId, ContributionEnablementState.DisabledWorkspace);
1112
1650
  })));
1113
1651
  }
@@ -1168,7 +1706,7 @@ function getActiveSessionServerOptionsActions(
1168
1706
  actions.push(...durableActions);
1169
1707
  }
1170
1708
  actions.push(( new Separator()));
1171
- actions.push(( new Action("mcpServer.activeSession.options", ( localize(9129, "Server Options")), undefined, true, async () => {
1709
+ actions.push(( new Action("mcpServer.activeSession.options", ( localize(11088, "Server Options")), undefined, true, async () => {
1172
1710
  await commandService.executeCommand(McpCommandIds.AgentHostServerOptions, sessionResource, server.id);
1173
1711
  })));
1174
1712
  return actions;
@@ -1213,20 +1751,40 @@ function getServerItemContextMenuActions(
1213
1751
  }
1214
1752
  return actions;
1215
1753
  }
1216
- function createBuiltinEntry(server, activeSessionServer) {
1754
+ function createBuiltinEntry(server, activeSessionServer, extensionId) {
1217
1755
  return {
1218
1756
  type: "builtin-item",
1219
1757
  id: `builtin-${server.definition.id}`,
1220
1758
  label: server.definition.label,
1221
1759
  description: "",
1222
1760
  collectionId: server.collection.id,
1761
+ extensionId,
1223
1762
  activeSessionServer,
1224
1763
  localServer: server
1225
1764
  };
1226
1765
  }
1227
- function createInstalledMcpServerDetailInput(entry) {
1766
+ function createConnectorMcpEntry(connector, activeSessionServer) {
1767
+ return {
1768
+ type: "connector-item",
1769
+ id: `copilot-connector:${connector.id}`,
1770
+ label: connector.serverName,
1771
+ description: ( localize(11089, "Connector: {0}", connector.connector.displayName)),
1772
+ activeSessionServer,
1773
+ connector
1774
+ };
1775
+ }
1776
+ function isConnectorMcpEntry(entry) {
1777
+ return entry.type === "connector-item";
1778
+ }
1779
+ function createInstalledMcpServerDetailInput(entry, error, presentation) {
1228
1780
  if (entry.type === "server-item") {
1229
- return createWorkbenchMcpServerDetailInput(entry.server);
1781
+ const input = createWorkbenchMcpServerDetailInput(entry.server);
1782
+ return {
1783
+ ...input,
1784
+ icon: entry.marketplaceRecord?.resource.icon ?? input.icon,
1785
+ compatibilityId: entry.localServer?.definition.id ?? entry.server.id,
1786
+ error
1787
+ };
1230
1788
  }
1231
1789
  const activeSessionServer = getActiveSessionServer(entry);
1232
1790
  const localServer = entry.type === "session-server-item" ? undefined : entry.localServer;
@@ -1247,13 +1805,46 @@ function createInstalledMcpServerDetailInput(entry) {
1247
1805
  } : undefined;
1248
1806
  return {
1249
1807
  id: getMcpRowKey(entry),
1250
- name: getMcpEntryLabel(entry),
1808
+ name: getMcpEntryName(entry),
1251
1809
  label: getMcpEntryLabel(entry),
1810
+ icon: entry.type === "provider-item" ? entry.marketplaceRecord.resource.icon : undefined,
1252
1811
  installState: McpServerInstallState.Installed,
1253
- config: localDefinition ? getMcpServerConfiguration(localDefinition) : undefined,
1254
- source: localSource ?? activeSessionSource
1812
+ config: localDefinition ? getMcpServerConfiguration(localDefinition) : activeSessionServer?.hostConfiguration,
1813
+ compatibilityId: localDefinition?.id,
1814
+ error,
1815
+ source: localSource ?? activeSessionSource,
1816
+ ...(presentation?.provenance ? {
1817
+ provenance: presentation.provenance
1818
+ } : {}),
1819
+ ...(presentation?.definitionUnavailable ? {
1820
+ definitionUnavailable: presentation.definitionUnavailable
1821
+ } : {})
1255
1822
  };
1256
1823
  }
1824
+ function createAgentHostMcpServerDetailInput(
1825
+ server,
1826
+ agentHostCustomizationService,
1827
+ harnessService,
1828
+ customizationsChanged
1829
+ ) {
1830
+ const agentLabel = harnessService.getActiveDescriptor().label;
1831
+ return createInstalledMcpServerDetailInput({
1832
+ type: "session-server-item",
1833
+ server
1834
+ }, derived(agentHostCustomizationService, reader => {
1835
+ customizationsChanged.read(reader);
1836
+ const sessionResource = harnessService.activeSessionResource.read(reader);
1837
+ const currentServer = agentHostCustomizationService.getMcpServers(sessionResource).find(candidate => candidate.id === server.id);
1838
+ if (!currentServer?.enabled) {
1839
+ return undefined;
1840
+ }
1841
+ const errorMessage = currentServer.state?.kind === McpServerStatus.Error ? currentServer.state.error?.message : undefined;
1842
+ return getMcpErrorMessage(getActiveSessionServerPresentation(currentServer).status, errorMessage);
1843
+ }), {
1844
+ provenance: getActiveSessionServerProvenance(server, agentLabel),
1845
+ definitionUnavailable: getActiveSessionServerDefinitionUnavailable(server, agentLabel)
1846
+ });
1847
+ }
1257
1848
  function getMcpServerConfiguration(definition) {
1258
1849
  const launch = definition.launch;
1259
1850
  if (launch.type === McpServerTransportType.HTTP) {
@@ -1280,53 +1871,80 @@ let McpListWidget = class McpListWidget extends Disposable {
1280
1871
  constructor(
1281
1872
  instantiationService,
1282
1873
  mcpWorkbenchService,
1874
+ mcpGalleryManifestService,
1875
+ marketplaceInstallService,
1283
1876
  mcpService,
1284
1877
  mcpRegistry,
1878
+ connectorsService,
1285
1879
  commandService,
1286
1880
  openerService,
1287
1881
  contextViewService,
1288
1882
  contextMenuService,
1883
+ hoverService,
1289
1884
  agentPluginService,
1290
1885
  dialogService,
1291
1886
  configurationService,
1887
+ customizationMarketplaceService,
1292
1888
  customizationHarnessService,
1293
1889
  agentHostCustomizationService,
1294
1890
  workspaceService,
1295
1891
  notificationService,
1296
1892
  outputService,
1297
- mcpGalleryManifestService
1893
+ labelService,
1894
+ extensionsWorkbenchService,
1895
+ logService,
1896
+ telemetryService,
1897
+ workspaceContextService
1298
1898
  ) {
1299
1899
  super();
1300
1900
  this.instantiationService = instantiationService;
1301
1901
  this.mcpWorkbenchService = mcpWorkbenchService;
1902
+ this.mcpGalleryManifestService = mcpGalleryManifestService;
1903
+ this.marketplaceInstallService = marketplaceInstallService;
1302
1904
  this.mcpService = mcpService;
1303
1905
  this.mcpRegistry = mcpRegistry;
1906
+ this.connectorsService = connectorsService;
1304
1907
  this.commandService = commandService;
1305
1908
  this.openerService = openerService;
1306
1909
  this.contextViewService = contextViewService;
1307
1910
  this.contextMenuService = contextMenuService;
1911
+ this.hoverService = hoverService;
1308
1912
  this.agentPluginService = agentPluginService;
1309
1913
  this.dialogService = dialogService;
1310
1914
  this.configurationService = configurationService;
1915
+ this.customizationMarketplaceService = customizationMarketplaceService;
1311
1916
  this.customizationHarnessService = customizationHarnessService;
1312
1917
  this.agentHostCustomizationService = agentHostCustomizationService;
1313
1918
  this.workspaceService = workspaceService;
1314
1919
  this.notificationService = notificationService;
1315
1920
  this.outputService = outputService;
1921
+ this.labelService = labelService;
1922
+ this.extensionsWorkbenchService = extensionsWorkbenchService;
1923
+ this.logService = logService;
1924
+ this.telemetryService = telemetryService;
1925
+ this.workspaceContextService = workspaceContextService;
1316
1926
  this._onDidSelectServer = this._register(( new Emitter()));
1317
1927
  this.onDidSelectServer = this._onDidSelectServer.event;
1928
+ this._onDidUpdateServerDetail = this._register(( new Emitter()));
1929
+ this.onDidUpdateServerDetail = this._onDidUpdateServerDetail.event;
1318
1930
  this._onDidChangeItemCount = this._register(( new Emitter()));
1319
1931
  this.onDidChangeItemCount = this._onDidChangeItemCount.event;
1320
1932
  this._onDidRequestShowPlugin = this._register(( new Emitter()));
1321
1933
  this.onDidRequestShowPlugin = this._onDidRequestShowPlugin.event;
1934
+ this._onDidSelectConnector = this._register(( new Emitter()));
1935
+ this.onDidSelectConnector = this._onDidSelectConnector.event;
1936
+ this._onDidRequestOpenMigrations = this._register(( new Emitter()));
1937
+ this.onDidRequestOpenMigrations = this._onDidRequestOpenMigrations.event;
1938
+ this._onDidRequestBrowse = this._register(( new Emitter()));
1939
+ this.onDidRequestBrowse = this._onDidRequestBrowse.event;
1322
1940
  this.disabledLinkListener = this._register(( new MutableDisposable()));
1323
1941
  this.filteredServers = [];
1324
- this.filteredBuiltinCount = 0;
1325
- this.filteredActiveSessionCount = 0;
1326
1942
  this.installedEntries = [];
1943
+ this.installedEntryOrder = ( new Map());
1327
1944
  this.gallerySnapshotServers = [];
1328
1945
  this.galleryServers = [];
1329
1946
  this.searchQuery = "";
1947
+ this.currentTreeGroups = [];
1330
1948
  this.gallerySnapshotFailed = false;
1331
1949
  this.gallerySnapshotLoading = false;
1332
1950
  this.gallerySearchLoading = false;
@@ -1338,18 +1956,25 @@ let McpListWidget = class McpListWidget extends Disposable {
1338
1956
  this.lastWidth = 0;
1339
1957
  this.lastHeaderHeight = 0;
1340
1958
  this._layoutDeferred = false;
1341
- this.revealLastItemScheduler = this._register(( new MutableDisposable()));
1342
- this.sectionScrollPositions = ( new Map());
1343
1959
  this.cardDisposables = this._register(( new DisposableStore()));
1344
1960
  this.pendingSectionLayout = this._register(( new MutableDisposable()));
1345
1961
  this.cardListControllers = ( new WeakMap());
1346
1962
  this.sectionLists = [];
1347
- this.collapsedSections = ( new Set());
1963
+ this.connectorsCancellation = this._register(( new MutableDisposable()));
1964
+ this.connectorActionCancellation = this._register(( new MutableDisposable()));
1965
+ this.connectorChangeListener = this._register(( new MutableDisposable()));
1348
1966
  this.delayedFilter = ( new Delayer(200));
1349
1967
  this.delayedGallerySearch = ( new Delayer(400));
1968
+ this._closeCustomizationEditor = () => Promise.resolve();
1969
+ this.mcpServerCompatibility = observableValue(this, ( new Map()));
1970
+ this.mcpServerCompatibilityScope = this._register(( new MutableDisposable()));
1350
1971
  this.agentHostCustomizationsChanged = observableSignalFromEvent(this, this.agentHostCustomizationService.onDidChangeCustomizations);
1351
1972
  this.element = $(".mcp-list-widget.plugin-list-widget");
1352
1973
  this.create();
1974
+ this._register(autorun(reader => {
1975
+ this.marketplaceInstallService.installations.read(reader);
1976
+ this.filterServers();
1977
+ }));
1353
1978
  const resizeObserver = this._register(new DisposableResizeObserver(
1354
1979
  "McpListWidget",
1355
1980
  () => this.updateResponsiveLayout(this.element.offsetWidth),
@@ -1358,6 +1983,9 @@ let McpListWidget = class McpListWidget extends Disposable {
1358
1983
  this._register(resizeObserver.observe(this.element));
1359
1984
  this.updateAccessState();
1360
1985
  this._register(mcpGalleryManifestService.onDidChangeMcpGalleryManifest(() => {
1986
+ if (this.isGalleryDiscoveryEnabled()) {
1987
+ return;
1988
+ }
1361
1989
  this.galleryCts?.dispose(true);
1362
1990
  this.galleryCts = undefined;
1363
1991
  this.gallerySnapshotServers = [];
@@ -1370,35 +1998,76 @@ let McpListWidget = class McpListWidget extends Disposable {
1370
1998
  void this.refresh();
1371
1999
  }
1372
2000
  }));
1373
- void mcpGalleryManifestService.getMcpGalleryManifest();
2001
+ if (!this.isGalleryDiscoveryEnabled()) {
2002
+ void mcpGalleryManifestService.getMcpGalleryManifest();
2003
+ }
1374
2004
  void this.refresh();
2005
+ this.updateConnectorChangeListener();
1375
2006
  this._register(this.configurationService.onDidChangeConfiguration(e => {
2007
+ if (affectsCustomizationDiscoveryAvailability(e, this.customizationMarketplaceService)) {
2008
+ this.galleryCts?.dispose(true);
2009
+ this.galleryCts = undefined;
2010
+ this.delayedGallerySearch.cancel();
2011
+ this.gallerySnapshotServers = [];
2012
+ this.galleryServers = [];
2013
+ this.gallerySnapshotFailed = false;
2014
+ this.gallerySnapshotLoading = false;
2015
+ this.gallerySearchLoading = false;
2016
+ void this.refresh();
2017
+ }
1376
2018
  if (e.affectsConfiguration(mcpAccessConfig)) {
1377
2019
  this.updateAccessState();
1378
2020
  }
2021
+ if (e.affectsConfiguration(CustomizationMarketplaceConfiguration.CopilotConnectorsEnabled)) {
2022
+ this.updateConnectorChangeListener();
2023
+ this.connectorsCancellation.value?.cancel();
2024
+ this.connectorsCancellation.clear();
2025
+ this.connectorActionCancellation.value?.cancel();
2026
+ this.connectorActionCancellation.clear();
2027
+ if (this.visible && this.isConnectorsEnabled()) {
2028
+ void this.refreshConnectors();
2029
+ } else {
2030
+ this.filterServers();
2031
+ }
2032
+ }
2033
+ if (e.affectsConfiguration(ChatConfiguration.ChatCustomizationsMigrationEnabled)) {
2034
+ this.updateMcpServerCompatibilityScope();
2035
+ }
1379
2036
  }));
2037
+ if (this.customizationMarketplaceService.onDidChangeSources) {
2038
+ this._register(
2039
+ this.customizationMarketplaceService.onDidChangeSources(() => void this.refresh())
2040
+ );
2041
+ }
2042
+ this._register(
2043
+ this.workspaceContextService.onDidChangeWorkspaceFolders(() => this.renderMcpTree())
2044
+ );
1380
2045
  this._register({
1381
2046
  dispose: () => {
1382
2047
  this.delayedFilter.cancel();
1383
2048
  this.delayedGallerySearch.cancel();
1384
2049
  this.galleryCts?.dispose(true);
2050
+ this.connectorsCancellation.value?.cancel();
1385
2051
  }
1386
2052
  });
1387
2053
  }
2054
+ setCloseCustomizationEditor(closeCustomizationEditor) {
2055
+ this._closeCustomizationEditor = closeCustomizationEditor;
2056
+ }
1388
2057
  create() {
1389
2058
  this.sectionTitleHeader = append(this.element, $(".section-title-header"));
1390
2059
  const titleRow = append(this.sectionTitleHeader, $(".section-title-row"));
1391
2060
  const sectionTitle = append(titleRow, $("h2.section-title"));
1392
- sectionTitle.textContent = ( localize(9130, "MCP Servers"));
2061
+ sectionTitle.textContent = ( localize(11090, "MCP Servers"));
1393
2062
  const sectionTitleDescription = append(this.sectionTitleHeader, $("p.section-title-description"));
1394
2063
  const sectionTitleDescriptionText = append(sectionTitleDescription, $("span.section-title-description-text"));
1395
2064
  sectionTitleDescriptionText.textContent = ( localize(
1396
- 9131,
2065
+ 11091,
1397
2066
  "An open standard that lets AI use external tools and services. MCP servers provide tools for file operations, databases, APIs, and more."
1398
2067
  ));
1399
2068
  sectionTitleDescription.appendChild(createTextNode(" "));
1400
2069
  this.sectionLink = append(sectionTitleDescription, $("a.section-title-link"));
1401
- this.sectionLink.textContent = ( localize(9132, "Learn more about MCP servers"));
2070
+ this.sectionLink.textContent = ( localize(11092, "Learn more about MCP servers"));
1402
2071
  this.sectionLink.href = "https://code.visualstudio.com/docs/agent-customization/mcp-servers?referrer=in-product";
1403
2072
  this._register(addDisposableListener(this.sectionLink, "click", e => {
1404
2073
  e.preventDefault();
@@ -1424,7 +2093,7 @@ let McpListWidget = class McpListWidget extends Disposable {
1424
2093
  this.searchAndButtonContainer = append(this.element, $(".list-search-and-button-container"));
1425
2094
  const searchContainer = append(this.searchAndButtonContainer, $(".list-search-container"));
1426
2095
  this.searchInput = this._register(( new InputBox(searchContainer, this.contextViewService, {
1427
- placeholder: ( localize(9133, "Type to search...")),
2096
+ placeholder: ( localize(11093, "Type to search...")),
1428
2097
  inputBoxStyles: defaultInputBoxStyles
1429
2098
  })));
1430
2099
  this._register(this.searchInput.onDidChange(() => {
@@ -1435,7 +2104,7 @@ let McpListWidget = class McpListWidget extends Disposable {
1435
2104
  const query = this.searchQuery.toLowerCase().trim();
1436
2105
  this.galleryServers = query ? this.gallerySnapshotServers.filter(server => this.matchesGalleryServerQuery(server, query)) : [...this.gallerySnapshotServers];
1437
2106
  this.delayedFilter.trigger(() => this.filterServers());
1438
- if (!this.mcpAccessEnabled) {
2107
+ if (!this.mcpAccessEnabled || this.isGalleryDiscoveryEnabled()) {
1439
2108
  this.gallerySearchLoading = false;
1440
2109
  this.delayedGallerySearch.cancel();
1441
2110
  return;
@@ -1459,7 +2128,7 @@ let McpListWidget = class McpListWidget extends Disposable {
1459
2128
  const disabledHeader = append(this.disabledContainer, $(".empty-state-header"));
1460
2129
  this.disabledIcon = append(disabledHeader, $(".empty-icon"));
1461
2130
  const disabledText = append(disabledHeader, $(".empty-text"));
1462
- disabledText.textContent = ( localize(9134, "MCP servers are disabled"));
2131
+ disabledText.textContent = ( localize(11094, "MCP servers are disabled"));
1463
2132
  this.disabledMessage = append(this.disabledContainer, $(".empty-subtext"));
1464
2133
  this.cardContainer = $(".plugin-card-container");
1465
2134
  this.cardScrollable = this._register(( new DomScrollableElement(this.cardContainer, {
@@ -1482,6 +2151,83 @@ let McpListWidget = class McpListWidget extends Disposable {
1482
2151
  new DisposableResizeObserver("McpListWidget.cardScrollable", () => this.cardScrollable.scanDomNode())
1483
2152
  );
1484
2153
  this._register(cardResizeObserver.observe(this.cardScrollableNode));
2154
+ this.listContainer = append(this.element, $(".mcp-list-container.customization-tree-container"));
2155
+ const delegate = ( new McpSectionDelegate(() => MCP_INSTALLED_ITEM_HEIGHT));
2156
+ const groupRenderer = ( new CustomizationGroupHeaderRenderer(
2157
+ "mcpGroupHeader",
2158
+ this.hoverService,
2159
+ (entry, container, disposables) => this.renderMcpTreeGroupActions(entry, container, disposables)
2160
+ ));
2161
+ const itemRenderer = this._register(this.instantiationService.createInstance(
2162
+ McpServerItemRenderer,
2163
+ (getEntry, actions, disposables, updateTabbability) => this.renderMcpListActions(getEntry, actions, disposables, updateTabbability),
2164
+ (entry, reader) => this.getMcpServerCompatibilityKind(entry, reader),
2165
+ plugin => this._onDidRequestShowPlugin.fire(createInstalledPluginItem(plugin)),
2166
+ () => this._onDidRequestOpenMigrations.fire()
2167
+ ));
2168
+ const marketplaceRenderer = ( new McpMarketplaceItemRenderer((server, button) => this.installMarketplaceServer(server, button)));
2169
+ this.list = this._register(
2170
+ this.instantiationService.createInstance(WorkbenchObjectTree, "McpManagementTree", this.listContainer, delegate, [
2171
+ asTreeRenderer(groupRenderer),
2172
+ asTreeRenderer(itemRenderer),
2173
+ asTreeRenderer(marketplaceRenderer)
2174
+ ], {
2175
+ indent: 8,
2176
+ renderIndentGuides: RenderIndentGuides.None,
2177
+ hideTwistiesOfChildlessElements: false,
2178
+ overrideStyles: customizationTreeStyles,
2179
+ multipleSelectionSupport: false,
2180
+ setRowLineHeight: false,
2181
+ horizontalScrolling: false,
2182
+ accessibilityProvider: {
2183
+ getAriaLabel: entry => {
2184
+ if (entry.type === "group-header") {
2185
+ return localize(11095, "{0}, {1} items", entry.label, entry.count);
2186
+ }
2187
+ return entry.type === "connector-item" ? ( localize(
2188
+ 11096,
2189
+ "{0}. Connector: {1}.",
2190
+ entry.connector.serverName,
2191
+ entry.connector.connector.displayName
2192
+ )) : entry.type === "marketplace-item" ? ( localize(
2193
+ 11097,
2194
+ "{0}. Available to install from the MCP marketplace.",
2195
+ entry.server.label
2196
+ )) : this.getMcpEntryAriaLabel(entry);
2197
+ },
2198
+ getWidgetAriaLabel: () => ( localize(11098, "MCP Servers"))
2199
+ },
2200
+ openOnSingleClick: true,
2201
+ identityProvider: {
2202
+ getId: entry => this.getMcpTreeEntryId(entry)
2203
+ }
2204
+ })
2205
+ );
2206
+ this._register(this.list.onDidOpen(event => {
2207
+ const entry = event.element;
2208
+ if (!entry || entry.type === "group-header") {
2209
+ return;
2210
+ }
2211
+ if (entry.type !== "marketplace-item" && isConnectorMcpEntry(entry)) {
2212
+ this._onDidSelectConnector.fire(entry.connector.connector);
2213
+ return;
2214
+ }
2215
+ this._onDidSelectServer.fire(
2216
+ entry.type === "marketplace-item" ? createWorkbenchMcpServerDetailInput(entry.server) : this.createInstalledMcpServerDetailInput(entry)
2217
+ );
2218
+ }));
2219
+ this._register(this.list.onContextMenu(event => {
2220
+ if (event.element && event.element.type !== "group-header" && event.element.type !== "marketplace-item") {
2221
+ this.showMcpServerActions(event.element, event.anchor);
2222
+ }
2223
+ }));
2224
+ this._register(this.list.onDidChangeFocus(event => {
2225
+ const entry = event.elements[0];
2226
+ itemRenderer.setFocusedRowKey(
2227
+ entry && entry.type !== "group-header" && entry.type !== "marketplace-item" ? getMcpRowKey(entry) : undefined
2228
+ );
2229
+ marketplaceRenderer.setFocusedServerId(entry?.type === "marketplace-item" ? entry.server.id : undefined);
2230
+ }));
1485
2231
  this._register(this.mcpWorkbenchService.onChange(() => {
1486
2232
  this.refresh();
1487
2233
  }));
@@ -1494,6 +2240,8 @@ let McpListWidget = class McpListWidget extends Disposable {
1494
2240
  }));
1495
2241
  this._register(autorun(reader => {
1496
2242
  this.customizationHarnessService.activeSessionResource.read(reader);
2243
+ this.customizationHarnessService.availableHarnesses.read(reader);
2244
+ this.updateMcpServerCompatibilityScope();
1497
2245
  this.refresh();
1498
2246
  }));
1499
2247
  this._register(this.agentHostCustomizationService.onDidChangeCustomizations(() => {
@@ -1502,11 +2250,12 @@ let McpListWidget = class McpListWidget extends Disposable {
1502
2250
  if (!hasSameMcpMembership(previousMembership, this.getInstalledEntryMembershipSignature())) {
1503
2251
  this.renderFilteredServers();
1504
2252
  }
2253
+ this._onDidUpdateServerDetail.fire();
1505
2254
  }));
1506
2255
  }
1507
2256
  async refresh() {
1508
2257
  this.filterServers();
1509
- if (shouldLoadMcpGallerySnapshot(
2258
+ if (!this.isGalleryDiscoveryEnabled() && shouldLoadMcpGallerySnapshot(
1510
2259
  this.visible,
1511
2260
  this.searchQuery,
1512
2261
  this.gallerySnapshotServers.length,
@@ -1517,13 +2266,94 @@ let McpListWidget = class McpListWidget extends Disposable {
1517
2266
  await this.queryGallerySnapshot();
1518
2267
  }
1519
2268
  }
2269
+ async refreshConnectors() {
2270
+ if (!this.visible || !this.mcpAccessEnabled || !this.isConnectorsEnabled()) {
2271
+ return;
2272
+ }
2273
+ this.connectorsCancellation.value?.cancel();
2274
+ const cancellation = ( new CancellationTokenSource());
2275
+ this.connectorsCancellation.value = cancellation;
2276
+ try {
2277
+ await this.connectorsService.getConnectors(cancellation.token);
2278
+ } catch (error) {
2279
+ if (!cancellation.token.isCancellationRequested && !isCancellationError(error)) {
2280
+ this.logService.warn("[McpListWidget] Unable to refresh Copilot connectors", error);
2281
+ }
2282
+ } finally {
2283
+ if (this.connectorsCancellation.value === cancellation) {
2284
+ this.connectorsCancellation.clear();
2285
+ this.filterServers();
2286
+ }
2287
+ }
2288
+ }
2289
+ isConnectorsEnabled() {
2290
+ return this.configurationService.getValue(CustomizationMarketplaceConfiguration.CopilotConnectorsEnabled) === true;
2291
+ }
2292
+ updateConnectorChangeListener() {
2293
+ if (!this.isConnectorsEnabled()) {
2294
+ this.connectorChangeListener.clear();
2295
+ return;
2296
+ }
2297
+ this.connectorChangeListener.value ??= this.connectorsService.onDidChange(() => {
2298
+ if (this.visible) {
2299
+ this.filterServers();
2300
+ if (!this.connectorsService.connectionStateKnown) {
2301
+ void this.refreshConnectors();
2302
+ }
2303
+ }
2304
+ });
2305
+ }
2306
+ isGalleryDiscoveryEnabled() {
2307
+ return !shouldShowLegacyMcpGallery(this.configurationService);
2308
+ }
1520
2309
  setVisible(visible) {
1521
2310
  if (this.visible === visible) {
1522
2311
  return;
1523
2312
  }
1524
2313
  this.visible = visible;
1525
2314
  if (visible) {
2315
+ this.updateMcpServerCompatibilityScope();
1526
2316
  void this.refresh();
2317
+ if (this.isConnectorsEnabled()) {
2318
+ void this.refreshConnectors();
2319
+ }
2320
+ } else {
2321
+ this.connectorsCancellation.value?.cancel();
2322
+ this.connectorsCancellation.clear();
2323
+ this.connectorActionCancellation.value?.cancel();
2324
+ this.connectorActionCancellation.clear();
2325
+ this.clearMcpServerCompatibilityScope();
2326
+ }
2327
+ }
2328
+ dispose() {
2329
+ this.connectorActionCancellation.value?.cancel();
2330
+ super.dispose();
2331
+ }
2332
+ updateMcpServerCompatibilityScope() {
2333
+ this.clearMcpServerCompatibilityScope();
2334
+ if (!this.visible) {
2335
+ return;
2336
+ }
2337
+ if (this.configurationService.getValue(ChatConfiguration.ChatCustomizationsMigrationEnabled) !== true) {
2338
+ return;
2339
+ }
2340
+ const descriptor = this.customizationHarnessService.getActiveDescriptor();
2341
+ const scope = descriptor.mcpServerCompatibilityProvider?.acquire(this.customizationHarnessService.activeSessionResource.get());
2342
+ if (!scope) {
2343
+ return;
2344
+ }
2345
+ const store = ( new DisposableStore());
2346
+ store.add(scope);
2347
+ store.add(autorun(reader => {
2348
+ const compatibility = ( new Map(scope.servers.read(reader).map(server => [server.id, server.kind])));
2349
+ this.mcpServerCompatibility.set(compatibility, undefined);
2350
+ }));
2351
+ this.mcpServerCompatibilityScope.value = store;
2352
+ }
2353
+ clearMcpServerCompatibilityScope() {
2354
+ this.mcpServerCompatibilityScope.clear();
2355
+ if (this.mcpServerCompatibility.get().size > 0) {
2356
+ this.mcpServerCompatibility.set(( new Map()), undefined);
1527
2357
  }
1528
2358
  }
1529
2359
  updateAccessState() {
@@ -1535,6 +2365,10 @@ let McpListWidget = class McpListWidget extends Disposable {
1535
2365
  this.mcpAccessEnabled = !disabled;
1536
2366
  this.element.classList.toggle("access-disabled", disabled);
1537
2367
  if (disabled) {
2368
+ this.connectorsCancellation.value?.cancel();
2369
+ this.connectorsCancellation.clear();
2370
+ this.connectorActionCancellation.value?.cancel();
2371
+ this.connectorActionCancellation.clear();
1538
2372
  this.delayedGallerySearch.cancel();
1539
2373
  this.galleryCts?.dispose(true);
1540
2374
  this.galleryCts = undefined;
@@ -1549,13 +2383,13 @@ let McpListWidget = class McpListWidget extends Disposable {
1549
2383
  this.disabledLinkListener.clear();
1550
2384
  if (policyLocked) {
1551
2385
  this.disabledMessage.textContent = ( localize(
1552
- 9135,
2386
+ 11099,
1553
2387
  "Access to MCP servers is disabled by your organization. Contact your organization administrator for more information."
1554
2388
  ));
1555
2389
  } else {
1556
- this.disabledMessage.appendChild(createTextNode(( localize(9136, "MCP servers are disabled in settings. "))));
2390
+ this.disabledMessage.appendChild(createTextNode(( localize(11100, "MCP servers are disabled in settings. "))));
1557
2391
  const link = append(this.disabledMessage, $("a.mcp-disabled-settings-link"));
1558
- link.textContent = ( localize(9137, "Configure in settings."));
2392
+ link.textContent = ( localize(11101, "Configure in settings."));
1559
2393
  link.href = "#";
1560
2394
  link.setAttribute("role", "button");
1561
2395
  this.disabledLinkListener.value = addDisposableListener(link, "click", e => {
@@ -1564,14 +2398,20 @@ let McpListWidget = class McpListWidget extends Disposable {
1564
2398
  });
1565
2399
  }
1566
2400
  } else if (accessChanged && this.visible) {
1567
- if (this.searchQuery.trim()) {
2401
+ if (this.searchQuery.trim() && !this.isGalleryDiscoveryEnabled()) {
1568
2402
  void this.queryMcpSearch();
1569
2403
  } else {
1570
2404
  void this.refresh();
1571
2405
  }
2406
+ if (this.isConnectorsEnabled()) {
2407
+ void this.refreshConnectors();
2408
+ }
1572
2409
  }
1573
2410
  }
1574
2411
  showBrowseMarketplace() {
2412
+ if (this.isGalleryDiscoveryEnabled()) {
2413
+ return;
2414
+ }
1575
2415
  if (!this.mcpAccessEnabled) {
1576
2416
  return;
1577
2417
  }
@@ -1579,8 +2419,22 @@ let McpListWidget = class McpListWidget extends Disposable {
1579
2419
  this.searchQuery = "";
1580
2420
  void this.queryGallerySnapshot(true);
1581
2421
  }
2422
+ async queryLegacyGallery(options, token) {
2423
+ const [active, fallback] = await Promise.all([
2424
+ this.mcpGalleryManifestService.getMcpGalleryManifest(),
2425
+ this.mcpGalleryManifestService.getDefaultMcpGalleryManifest()
2426
+ ]);
2427
+ const manifests = active && fallback && active.url !== fallback.url ? [active, fallback] : [active ?? fallback ?? undefined];
2428
+ const pages = await Promise.allSettled((manifests[0] ? manifests : [undefined]).map(
2429
+ async manifest => (await this.mcpWorkbenchService.queryGallery(options, token, manifest)).firstPage.items
2430
+ ));
2431
+ if (pages.length && pages.every(page => page.status === "rejected")) {
2432
+ throw pages[0].reason;
2433
+ }
2434
+ return pages.flatMap(page => page.status === "fulfilled" ? page.value : []);
2435
+ }
1582
2436
  async queryGallerySnapshot(revealMarketplace = false) {
1583
- if (!this.mcpAccessEnabled) {
2437
+ if (!this.mcpAccessEnabled || this.isGalleryDiscoveryEnabled()) {
1584
2438
  return;
1585
2439
  }
1586
2440
  this.galleryCts?.dispose(true);
@@ -1590,19 +2444,20 @@ let McpListWidget = class McpListWidget extends Disposable {
1590
2444
  this.renderMcpHome();
1591
2445
  }
1592
2446
  try {
1593
- const pager = await this.mcpWorkbenchService.queryGallery(undefined, cts.token);
2447
+ const servers = await this.queryLegacyGallery(undefined, cts.token);
1594
2448
  if (this.galleryCts !== cts || cts.token.isCancellationRequested || !this.mcpAccessEnabled || this.searchQuery.trim()) {
1595
2449
  return;
1596
2450
  }
1597
- this.gallerySnapshotServers = pager.firstPage.items;
2451
+ this.gallerySnapshotServers = servers;
1598
2452
  this.galleryServers = [...this.gallerySnapshotServers];
1599
2453
  this.gallerySnapshotFailed = false;
1600
2454
  this.gallerySnapshotLoading = false;
1601
2455
  this.renderMcpHome();
1602
2456
  if (revealMarketplace) {
1603
- this.availableSection?.scrollIntoView({
1604
- block: "start"
1605
- });
2457
+ const group = this.currentTreeGroups.find(group => group.id === "available");
2458
+ if (group) {
2459
+ this.list?.reveal(group.element);
2460
+ }
1606
2461
  }
1607
2462
  } catch {
1608
2463
  if (this.galleryCts === cts && !cts.token.isCancellationRequested && this.mcpAccessEnabled) {
@@ -1620,27 +2475,27 @@ let McpListWidget = class McpListWidget extends Disposable {
1620
2475
  }
1621
2476
  async queryMcpSearch() {
1622
2477
  const query = this.searchQuery.trim();
1623
- if (!query || !this.mcpAccessEnabled) {
2478
+ if (!query || !this.mcpAccessEnabled || this.isGalleryDiscoveryEnabled()) {
1624
2479
  return;
1625
2480
  }
1626
2481
  this.galleryCts?.dispose(true);
1627
2482
  const cts = this.galleryCts = ( new CancellationTokenSource());
1628
2483
  this.gallerySearchLoading = true;
1629
2484
  try {
1630
- const pager = await this.mcpWorkbenchService.queryGallery({
2485
+ const servers = await this.queryLegacyGallery({
1631
2486
  text: query
1632
2487
  }, cts.token);
1633
2488
  if (this.galleryCts !== cts || cts.token.isCancellationRequested || !this.mcpAccessEnabled || this.searchQuery.trim() !== query) {
1634
2489
  return;
1635
2490
  }
1636
- this.galleryServers = pager.firstPage.items;
2491
+ this.galleryServers = servers;
1637
2492
  this.searchInput.hideMessage();
1638
2493
  } catch {
1639
2494
  if (this.galleryCts === cts && !cts.token.isCancellationRequested && this.mcpAccessEnabled && this.searchQuery.trim() === query) {
1640
2495
  this.galleryServers = this.gallerySnapshotServers.filter(server => this.matchesGalleryServerQuery(server, query.toLowerCase()));
1641
2496
  this.searchInput.showMessage({
1642
2497
  content: ( localize(
1643
- 9138,
2498
+ 11102,
1644
2499
  "Marketplace results are unavailable. Showing installed MCP servers only."
1645
2500
  )),
1646
2501
  type: MessageType.WARNING
@@ -1653,208 +2508,106 @@ let McpListWidget = class McpListWidget extends Disposable {
1653
2508
  }
1654
2509
  }
1655
2510
  }
1656
- showCardSurface() {
1657
- this.emptyContainer.style.display = "none";
1658
- this.cardScrollableNode.style.display = "";
1659
- }
1660
- showEmptySurface(message, detail) {
1661
- this.cardScrollableNode.style.display = "none";
1662
- this.emptyContainer.style.display = "flex";
1663
- this.emptyText.textContent = message;
1664
- this.emptySubtext.textContent = detail;
1665
- }
1666
- createCardScrollContent(...classNames) {
1667
- const content = append(this.cardContainer, $(".plugin-card-scroll.plugin-card-scroll-content"));
1668
- content.classList.add(...classNames);
1669
- this.sectionLayoutContainer = classNames.includes("distributed-section-layout") ? content : undefined;
1670
- const resizeObserver = this.cardDisposables.add(
1671
- new DisposableResizeObserver("McpListWidget.cardScrollContent", () => this.scheduleMcpSectionLayout())
1672
- );
1673
- this.cardDisposables.add(resizeObserver.observe(content));
1674
- return content;
1675
- }
1676
2511
  addSurfaceActivation(surface, label, callback, ...classNames) {
1677
2512
  const primaryAction = createCustomizationCardPrimaryAction(surface, label, ...classNames);
2513
+ trackCustomizationCardPrimaryActionFocus(
2514
+ primaryAction,
2515
+ surface.closest(".plugin-home-row") ?? surface,
2516
+ this.cardDisposables
2517
+ );
1678
2518
  this.firstCardFocusElement ??= primaryAction;
1679
2519
  this.cardDisposables.add(addDisposableListener(primaryAction, "click", callback));
1680
2520
  return primaryAction;
1681
2521
  }
1682
- renderCardSection(parent, title, description, className, count, renderActions) {
1683
- const section = append(parent, $(".plugin-card-section"));
1684
- section.classList.add(className);
1685
- const header = append(section, $(".plugin-card-section-header"));
1686
- const text = append(header, $(".plugin-card-section-text"));
1687
- const headingRow = append(text, $(".plugin-card-section-heading-row"));
1688
- const heading = append(headingRow, $("h3.plugin-card-section-title"));
1689
- heading.textContent = title;
1690
- if (count !== undefined) {
1691
- const countElement = append(headingRow, $(".plugin-card-section-count"));
1692
- countElement.textContent = String(count);
1693
- }
1694
- if (description) {
1695
- const descriptionElement = append(text, $(".plugin-card-section-description"));
1696
- descriptionElement.textContent = description;
1697
- }
1698
- renderActions?.(header);
1699
- const list = append(section, $(".plugin-card-grid"));
1700
- list.dataset.virtualizedSectionKey = className;
1701
- const collapsedSections = this.collapsedSections ??= ( new Set());
1702
- setupCollapsibleSection(headingRow, list, title, this.cardDisposables, ( collapsedSections.has(className)), collapsed => {
1703
- if (collapsed) {
1704
- collapsedSections.add(className);
1705
- } else {
1706
- collapsedSections.delete(className);
1707
- }
1708
- this.scheduleMcpSectionLayout();
1709
- });
1710
- this.cardListControllers.set(list, this.cardDisposables.add(( new CustomizationCardListController(list, title))));
1711
- return list;
1712
- }
1713
- createMcpSectionList(container, label, entries) {
1714
- const key = container.dataset.virtualizedSectionKey ?? label;
1715
- container.style.height = `${MCP_SECTION_ITEM_HEIGHT}px`;
1716
- container.classList.add("virtualized-section-list");
1717
- this.cardListControllers.get(container)?.dispose();
1718
- this.cardListControllers.delete(container);
1719
- container.removeAttribute("role");
1720
- container.removeAttribute("aria-label");
1721
- const itemRenderer = this.cardDisposables.add(this.instantiationService.createInstance(
1722
- McpServerItemRenderer,
1723
- (getEntry, actions, disposables, updateTabbability) => this.renderMcpListActions(getEntry, actions, disposables, updateTabbability)
1724
- ));
1725
- const marketplaceRenderer = ( new McpMarketplaceItemRenderer((server, button) => this.installMarketplaceServer(server, button)));
1726
- const list = this.cardDisposables.add(
1727
- this.instantiationService.createInstance(WorkbenchList, `McpManagementList.${label}`, container, ( new McpSectionDelegate()), [itemRenderer, marketplaceRenderer], {
1728
- multipleSelectionSupport: false,
1729
- setRowLineHeight: false,
1730
- horizontalScrolling: false,
1731
- supportDynamicHeights: true,
1732
- accessibilityProvider: {
1733
- getAriaLabel: entry => entry.type === "marketplace-item" ? ( localize(
1734
- 9139,
1735
- "{0}. Available to install from the MCP marketplace.",
1736
- entry.server.label
1737
- )) : this.getMcpEntryAriaLabel(entry, itemRenderer),
1738
- getWidgetAriaLabel: () => label,
1739
- getSetSize: (_entry, _index, listLength) => listLength,
1740
- getPosInSet: (_entry, index) => index + 1
1741
- },
1742
- openOnSingleClick: true,
1743
- identityProvider: {
1744
- getId: entry => entry.type === "marketplace-item" ? `marketplace:${entry.server.id}` : getMcpRowKey(entry)
1745
- }
1746
- })
1747
- );
1748
- this.cardDisposables.add(list.onDidChangeContentHeight(() => this.scheduleMcpSectionLayout()));
1749
- list.splice(0, 0, entries);
1750
- const section = {
1751
- list,
1752
- entries,
1753
- container,
1754
- key,
1755
- pendingMeasurements: ( new Set()),
1756
- deferredMeasurements: ( new Set())
1757
- };
1758
- this.sectionLists.push(section);
1759
- this.cardDisposables.add(list.onDidScroll(() => {
1760
- if (( [...section.deferredMeasurements].some(index => index >= list.firstVisibleIndex && index <= list.lastVisibleIndex))) {
1761
- this.scheduleMcpSectionLayout();
1762
- }
1763
- }));
1764
- const heightInputs = ( new Map());
1765
- this.cardDisposables.add(itemRenderer.onDidChangeHeight((
1766
- {
1767
- index,
1768
- text,
1769
- expanded
1770
- }
1771
- ) => {
1772
- const entry = entries[index];
1773
- if (entry && entry.type !== "marketplace-item") {
1774
- heightInputs.set(entry, {
1775
- text,
1776
- expanded
1777
- });
1778
- }
1779
- section.pendingMeasurements.add(index);
1780
- this.scheduleMcpSectionLayout();
1781
- }));
1782
- this.cardDisposables.add(autorun(reader => {
1783
- this.agentHostCustomizationsChanged.read(reader);
1784
- const sessionResource = this.customizationHarnessService.activeSessionResource.read(reader);
1785
- const servers = ( new Map(
1786
- this.agentHostCustomizationService.getMcpServers(sessionResource).map(server => [server.id, server])
1787
- ));
1788
- for (let index = 0; index < entries.length; index++) {
1789
- const entry = entries[index];
1790
- if (entry.type === "marketplace-item") {
1791
- continue;
1792
- }
1793
- const host = getActiveSessionServer(entry);
1794
- let error;
1795
- if (host) {
1796
- const server = servers.get(host.id);
1797
- error = server?.enabled && server.status === McpServerStatus.Error ? getMcpErrorMessage(
1798
- server.status,
1799
- server.state?.kind === McpServerStatus.Error ? server.state.error?.message : undefined
1800
- ) : undefined;
1801
- } else if (!this.workspaceService.isSessionsWindow && entry.type !== "session-server-item") {
1802
- const state = entry.localServer?.connectionState.read(reader);
1803
- const enabled = !entry.localServer || isContributionEnabled(entry.localServer.enablement.read(reader));
1804
- error = enabled && state?.state === McpConnectionState.Kind.Error ? getMcpErrorMessage(state.state, state.message) : undefined;
1805
- }
1806
- itemRenderer.syncError(entry, error);
1807
- const expanded = itemRenderer.isErrorExpanded(entry, error);
1808
- const text = error === undefined ? undefined : expanded ? error : getMcpErrorPreview(error).text;
1809
- const previous = heightInputs.get(entry);
1810
- heightInputs.set(entry, {
1811
- text,
1812
- expanded
1813
- });
1814
- if (previous && (previous.text !== text || previous.expanded !== expanded)) {
1815
- section.pendingMeasurements.add(index);
1816
- }
1817
- }
1818
- if (section.pendingMeasurements.size) {
1819
- this.scheduleMcpSectionLayout();
1820
- }
1821
- }));
1822
- list.scrollTop = this.sectionScrollPositions.get(key) ?? 0;
1823
- this.cardDisposables.add(list.onDidOpen(event => {
1824
- const entry = event.element;
1825
- if (!entry) {
1826
- return;
2522
+ getMcpServerCompatibilityKind(entry, reader) {
2523
+ const id = getMcpServerCompatibilityId(entry);
2524
+ return id ? (reader ? this.mcpServerCompatibility.read(reader) : this.mcpServerCompatibility.get()).get(id) : undefined;
2525
+ }
2526
+ getUpdatedServerDetail(id) {
2527
+ for (const {
2528
+ entry
2529
+ } of this.installedEntries) {
2530
+ if (entry.type === "server-item" ? entry.server.id === id : getMcpRowKey(entry) === id) {
2531
+ return this.createInstalledMcpServerDetailInput(entry);
1827
2532
  }
1828
- this._onDidSelectServer.fire(
1829
- entry.type === "marketplace-item" ? createWorkbenchMcpServerDetailInput(entry.server) : createInstalledMcpServerDetailInput(entry)
2533
+ }
2534
+ return undefined;
2535
+ }
2536
+ createInstalledMcpServerDetailInput(entry) {
2537
+ const activeSessionServer = getActiveSessionServer(entry);
2538
+ if (activeSessionServer) {
2539
+ const detail = createAgentHostMcpServerDetailInput(
2540
+ activeSessionServer,
2541
+ this.agentHostCustomizationService,
2542
+ this.customizationHarnessService,
2543
+ this.agentHostCustomizationsChanged
1830
2544
  );
1831
- }));
1832
- this.cardDisposables.add(list.onContextMenu(event => {
1833
- if (event.element && event.element.type !== "marketplace-item") {
1834
- this.showMcpServerActions(event.element, event.anchor);
2545
+ return createInstalledMcpServerDetailInput(entry, detail.error, this.getMcpEntryDetailPresentation(entry));
2546
+ }
2547
+ return createInstalledMcpServerDetailInput(entry, derived(this, reader => {
2548
+ if (entry.type === "session-server-item" || !entry.localServer) {
2549
+ return undefined;
1835
2550
  }
1836
- }));
1837
- this.cardDisposables.add(list.onDidChangeFocus(event => {
1838
- const index = event.indexes[0] ?? -1;
1839
- itemRenderer.setFocusedIndex(index);
1840
- marketplaceRenderer.setFocusedIndex(index);
1841
- }));
1842
- this.cardDisposables.add(list.onDidFocus(() => {
1843
- if (list.getFocus().length === 0 && entries.length > 0) {
1844
- list.setFocus([0]);
2551
+ const runtimeServers = this.mcpService.servers.read(reader);
2552
+ const matchKeys = entry.type === "server-item" ? getWorkbenchServerMatchKeys(entry.server) : getRuntimeServerMatchKeys(entry.localServer);
2553
+ const localServer = ( new LocalMcpServerMatcher(runtimeServers)).find(matchKeys);
2554
+ if (!localServer || isContributionDisabled(localServer.enablement.read(reader))) {
2555
+ return undefined;
1845
2556
  }
1846
- }));
2557
+ const connectionState = localServer.connectionState.read(reader);
2558
+ return getMcpErrorMessage(
2559
+ connectionState.state,
2560
+ connectionState.state === McpConnectionState.Kind.Error ? connectionState.message : undefined
2561
+ );
2562
+ }), this.getMcpEntryDetailPresentation(entry));
1847
2563
  }
1848
- captureSectionScrollPositions() {
1849
- for (const section of this.sectionLists) {
1850
- this.sectionScrollPositions.set(section.key, section.list.scrollTop);
2564
+ getMcpEntryDetailPresentation(entry) {
2565
+ const activeSessionServer = getActiveSessionServer(entry);
2566
+ const agentLabel = this.customizationHarnessService.getActiveDescriptor().label;
2567
+ if (entry.type === "provider-item") {
2568
+ const source = this.customizationMarketplaceService.sources.find(source => source.id === entry.marketplaceRecord.resource.sourceId);
2569
+ return {
2570
+ provenance: {
2571
+ label: source?.displayName ?? agentLabel
2572
+ },
2573
+ definitionUnavailable: {
2574
+ message: ( localize(
2575
+ 11103,
2576
+ "{0} manages this server installation, so its definition can't be viewed or edited here.",
2577
+ agentLabel
2578
+ ))
2579
+ }
2580
+ };
1851
2581
  }
2582
+ const definitionUnavailable = activeSessionServer && getActiveSessionServerDefinitionUnavailable(activeSessionServer, agentLabel);
2583
+ const source = getMcpEntrySource(
2584
+ entry,
2585
+ this.labelService,
2586
+ this.agentPluginService,
2587
+ this.extensionsWorkbenchService,
2588
+ plugin => this._onDidRequestShowPlugin.fire(createInstalledPluginItem(plugin))
2589
+ );
2590
+ const open = source?.open;
2591
+ const provenance = source && open ? {
2592
+ label: source.label,
2593
+ ariaLabel: source.ariaLabel,
2594
+ open
2595
+ } : activeSessionServer && getActiveSessionServerProvenance(activeSessionServer, agentLabel);
2596
+ return {
2597
+ provenance,
2598
+ definitionUnavailable
2599
+ };
1852
2600
  }
1853
- getMcpEntryAriaLabel(entry, renderer) {
2601
+ getMcpEntryAriaLabel(entry) {
1854
2602
  return derived(this, reader => {
1855
- renderer?.readErrorExpansion(reader);
1856
2603
  this.agentHostCustomizationsChanged.read(reader);
1857
- const label = getMcpEntryLabel(entry);
2604
+ const label = getMcpEntryLabelWithSource(
2605
+ entry,
2606
+ this.labelService,
2607
+ this.agentPluginService,
2608
+ this.extensionsWorkbenchService
2609
+ );
2610
+ const compatibility = getMcpCompatibilityPresentation(this.getMcpServerCompatibilityKind(entry, reader));
1858
2611
  const activeSessionResource = this.customizationHarnessService.activeSessionResource.read(reader);
1859
2612
  let statusKind;
1860
2613
  let disabledReason;
@@ -1865,88 +2618,86 @@ let McpListWidget = class McpListWidget extends Disposable {
1865
2618
  const presentation = server && getActiveSessionServerPresentation(server);
1866
2619
  statusKind = presentation?.status;
1867
2620
  disabledReason = presentation?.enabled ? undefined : server?.disabledReason;
1868
- errorMessage = server?.state?.kind === McpServerStatus.Error ? server.state.error?.message : undefined;
2621
+ const message = server?.state?.kind === McpServerStatus.Error ? server.state.error?.message : undefined;
2622
+ errorMessage = getMcpErrorMessage(statusKind, message);
1869
2623
  } else if (entry.type !== "session-server-item" && entry.localServer && isContributionDisabled(entry.localServer.enablement.read(reader))) {
1870
2624
  statusKind = "disabled";
1871
2625
  disabledReason = getMcpDisabledReason(entry);
1872
2626
  } else if (entry.type !== "session-server-item" && !this.workspaceService.isSessionsWindow) {
1873
2627
  const connectionState = entry.localServer?.connectionState.read(reader);
1874
2628
  statusKind = entry.type === "server-item" || connectionState?.state === McpConnectionState.Kind.Error ? connectionState?.state : undefined;
1875
- errorMessage = connectionState?.state === McpConnectionState.Kind.Error ? connectionState.message : undefined;
1876
- }
1877
- const status = getMcpStatusPresentation(statusKind, disabledReason);
1878
- const error = getMcpErrorMessage(statusKind, errorMessage);
1879
- if (status && error) {
1880
- const preview = getMcpErrorPreview(error);
1881
- const expanded = renderer?.isErrorExpanded(entry, error);
1882
- const text = expanded ? error : preview.text;
1883
- return !expanded && (preview.truncated || renderer?.isErrorClipped(entry)) ? ( localize(
1884
- 9140,
1885
- "{0}, {1}, {2}. Use Show More to read the full error.",
1886
- label,
1887
- status.label,
1888
- text
1889
- )) : ( localize(9141, "{0}, {1}, {2}", label, status.label, text));
1890
- }
1891
- return status ? ( localize(9116, "{0}, {1}", label, status.label)) : label;
1892
- });
1893
- }
1894
- renderMcpListActions(getEntry, actions, disposables, updateTabbability) {
1895
- const entry = getEntry();
1896
- if (!entry) {
1897
- return;
1898
- }
1899
- const label = getMcpEntryLabel(entry);
1900
- let enabled = this.isInstalledEntryEnabled(entry);
1901
- const toggle = disposables.add(( new Switch({
1902
- ariaLabel: label,
1903
- checked: enabled
1904
- })));
1905
- append(actions, toggle.domNode);
1906
- const update = () => {
1907
- const currentEntry = getEntry();
1908
- enabled = currentEntry ? this.isInstalledEntryEnabled(currentEntry) : false;
1909
- const blockedByPlugin = currentEntry && getMcpDisabledReason(currentEntry)?.source === "plugin";
1910
- const toggleLabel = enabled ? ( localize(9142, "Disable {0}", label)) : ( localize(9143, "Enable {0}", label));
1911
- const accessibleLabel = blockedByPlugin ? ( localize(9144, "{0} is disabled by its plugin", label)) : toggleLabel;
1912
- toggle.disabled = !currentEntry || !!blockedByPlugin;
1913
- toggle.checked = enabled;
1914
- toggle.setAriaLabel(accessibleLabel);
1915
- updateTabbability();
1916
- };
1917
- update();
1918
- disposables.add(
1919
- addDisposableGenericMouseDownListener(toggle.domNode, event => EventHelper.stop(event, true))
1920
- );
1921
- disposables.add(toggle.onChange(checked => {
1922
- const currentEntry = getEntry();
1923
- if (!currentEntry) {
1924
- update();
1925
- return;
2629
+ errorMessage = getMcpErrorMessage(
2630
+ statusKind,
2631
+ connectionState?.state === McpConnectionState.Kind.Error ? connectionState.message : undefined
2632
+ );
1926
2633
  }
1927
- enabled = checked;
1928
- this.setInstalledEntryEnabled(currentEntry, enabled);
2634
+ const status = getMcpStatusPresentation(statusKind, disabledReason);
2635
+ return [compatibility?.label, status?.label, errorMessage].reduce((result, detail) => detail ? ( localize(11075, "{0}, {1}", result, detail)) : result, label);
2636
+ });
2637
+ }
2638
+ renderMcpListActions(getEntry, actions, disposables, updateTabbability) {
2639
+ const entry = getEntry();
2640
+ if (!entry) {
2641
+ return;
2642
+ }
2643
+ const label = getMcpEntryLabel(entry);
2644
+ if (!isConnectorMcpEntry(entry) && entry.type !== "provider-item") {
2645
+ let enabled = this.isInstalledEntryEnabled(entry);
2646
+ const disabledLabel = append(actions, $(".mcp-server-disabled-label"));
2647
+ const toggle = disposables.add(this.instantiationService.createInstance(CustomizationToggle, {
2648
+ ariaLabel: label,
2649
+ checked: enabled
2650
+ }));
2651
+ append(actions, toggle.domNode);
2652
+ const update = () => {
2653
+ const currentEntry = getEntry();
2654
+ enabled = currentEntry ? this.isInstalledEntryEnabled(currentEntry) : false;
2655
+ const disabledReason = currentEntry && getMcpDisabledReason(currentEntry);
2656
+ const blockedByPlugin = disabledReason?.source === "plugin";
2657
+ const toggleLabel = enabled ? ( localize(11104, "Disable {0}", label)) : ( localize(11105, "Enable {0}", label));
2658
+ const accessibleLabel = blockedByPlugin ? ( localize(11106, "{0} is disabled by its plugin", label)) : toggleLabel;
2659
+ disabledLabel.textContent = enabled ? "" : getMcpDisabledLabel(disabledReason);
2660
+ disabledLabel.style.display = enabled ? "none" : "";
2661
+ toggle.disabled = !currentEntry || !!blockedByPlugin;
2662
+ toggle.checked = enabled;
2663
+ toggle.setAriaLabel(accessibleLabel);
2664
+ updateTabbability();
2665
+ };
1929
2666
  update();
1930
- status(enabled ? ( localize(9145, "{0} enabled.", label)) : ( localize(9146, "{0} disabled.", label)));
1931
- }));
1932
- if (entry.type !== "session-server-item" && entry.localServer) {
1933
- disposables.add(autorun(reader => {
1934
- entry.localServer?.enablement.read(reader);
2667
+ disposables.add(
2668
+ addDisposableGenericMouseDownListener(toggle.domNode, event => EventHelper.stop(event, true))
2669
+ );
2670
+ disposables.add(toggle.onChange(checked => {
2671
+ const currentEntry = getEntry();
2672
+ if (!currentEntry) {
2673
+ update();
2674
+ return;
2675
+ }
2676
+ enabled = checked;
2677
+ this.setInstalledEntryEnabled(currentEntry, enabled);
1935
2678
  update();
2679
+ status(enabled ? ( localize(11107, "{0} enabled.", label)) : ( localize(11108, "{0} disabled.", label)));
1936
2680
  }));
2681
+ if (entry.type !== "session-server-item" && entry.localServer) {
2682
+ disposables.add(autorun(reader => {
2683
+ entry.localServer?.enablement.read(reader);
2684
+ update();
2685
+ }));
2686
+ }
2687
+ disposables.add(this.agentHostCustomizationService.onDidChangeCustomizations(update));
1937
2688
  }
1938
- disposables.add(this.agentHostCustomizationService.onDidChangeCustomizations(update));
1939
2689
  const more = disposables.add(( new Button(actions, {
1940
2690
  ...getButtonStyles({
1941
2691
  buttonSecondaryBackground: undefined,
2692
+ buttonSecondaryForeground: undefined,
2693
+ buttonSecondaryHoverBackground: undefined,
1942
2694
  buttonSecondaryBorder: undefined
1943
2695
  }),
1944
2696
  secondary: true,
1945
- supportIcons: true,
1946
- ariaLabel: ( localize(9147, "More actions for {0}", label))
2697
+ ariaLabel: ( localize(11109, "More actions for {0}", label))
1947
2698
  })));
1948
2699
  more.element.classList.add("plugin-card-icon-button");
1949
- more.label = `$(${Codicon.ellipsis.id})`;
2700
+ more.icon = Codicon.ellipsis;
1950
2701
  registerMcpInlineButtonAction(disposables, more, () => {
1951
2702
  const currentEntry = getEntry();
1952
2703
  if (currentEntry) {
@@ -1973,22 +2724,6 @@ let McpListWidget = class McpListWidget extends Disposable {
1973
2724
  section.container.style.height = `${height}px`;
1974
2725
  if (height > 0) {
1975
2726
  section.list.layout(height, section.container.clientWidth || undefined);
1976
- for (const index of section.deferredMeasurements) {
1977
- if (index >= section.list.firstVisibleIndex && index <= section.list.lastVisibleIndex) {
1978
- section.deferredMeasurements.delete(index);
1979
- section.pendingMeasurements.add(index);
1980
- }
1981
- }
1982
- const pending = [...section.pendingMeasurements];
1983
- section.pendingMeasurements.clear();
1984
- for (const index of pending) {
1985
- if (index >= section.list.firstVisibleIndex && index <= section.list.lastVisibleIndex) {
1986
- section.list.updateElementHeight(index, undefined);
1987
- } else {
1988
- section.list.updateElementHeight(index, MCP_SECTION_ITEM_HEIGHT);
1989
- section.deferredMeasurements.add(index);
1990
- }
1991
- }
1992
2727
  }
1993
2728
  }
1994
2729
  }
@@ -1998,63 +2733,269 @@ let McpListWidget = class McpListWidget extends Disposable {
1998
2733
  this.cardScrollable.scanDomNode();
1999
2734
  });
2000
2735
  }
2736
+ getAvailableGalleryServers() {
2737
+ const installedKeys = ( new Set());
2738
+ for (const presentation of this.installedEntries) {
2739
+ const entry = presentation.entry;
2740
+ if (entry.type === "server-item") {
2741
+ for (const key of getWorkbenchServerMatchKeys(entry.server)) {
2742
+ installedKeys.add(key.toLowerCase());
2743
+ }
2744
+ } else if (entry.type === "builtin-item" || entry.type === "connector-item") {
2745
+ installedKeys.add(entry.label.toLowerCase());
2746
+ if (entry.localServer) {
2747
+ for (const key of getRuntimeServerMatchKeys(entry.localServer)) {
2748
+ installedKeys.add(key.toLowerCase());
2749
+ }
2750
+ }
2751
+ } else if (entry.type === "session-server-item") {
2752
+ installedKeys.add(entry.server.name.toLowerCase());
2753
+ } else {
2754
+ installedKeys.add(entry.name.toLowerCase());
2755
+ installedKeys.add(entry.label.toLowerCase());
2756
+ }
2757
+ }
2758
+ return this.galleryServers.filter(
2759
+ server => server.installState === McpServerInstallState.Uninstalled && !( getWorkbenchServerMatchKeys(server).some(key => ( installedKeys.has(key.toLowerCase()))))
2760
+ );
2761
+ }
2762
+ matchesGalleryServerQuery(server, query) {
2763
+ return server.label.toLowerCase().includes(query) || server.description.toLowerCase().includes(query) || server.publisherDisplayName?.toLowerCase().includes(query) === true;
2764
+ }
2765
+ renderMcpTree() {
2766
+ if (!this.list) {
2767
+ return;
2768
+ }
2769
+ const showGallery = !this.isGalleryDiscoveryEnabled();
2770
+ const allInstalledEntries = this.installedEntries.map(presentation => presentation.entry);
2771
+ const workspaceGroups = getAICustomizationWorkspaceGroups(this.workspaceContextService);
2772
+ const grouped = ( new Map([
2773
+ ["user", []],
2774
+ ...(workspaceGroups.length > 0 ? workspaceGroups.map(group => [group.key, []]) : [["workspace", []]]),
2775
+ ["plugins", []],
2776
+ ["extensions", []],
2777
+ ["builtin", []],
2778
+ [
2779
+ "available",
2780
+ showGallery ? this.getAvailableGalleryServers().map(server => ({
2781
+ type: "marketplace-item",
2782
+ server
2783
+ })) : []
2784
+ ]
2785
+ ]));
2786
+ for (const entry of allInstalledEntries) {
2787
+ const group = getMcpEntryGroup(entry);
2788
+ const sourceUri = getMcpEntrySourceUri(entry);
2789
+ const groupKey = group === "workspace" && workspaceGroups.length > 0 ? (sourceUri ? getAICustomizationWorkspaceGroupForResource(sourceUri, this.workspaceContextService)?.key : undefined) ?? workspaceGroups[0].key : group;
2790
+ grouped.get(groupKey).push(entry);
2791
+ }
2792
+ const definitions = [{
2793
+ id: "user",
2794
+ label: ( localize(11110, "User")),
2795
+ description: ( localize(
2796
+ 11111,
2797
+ "MCP servers configured for your profile and available across workspaces."
2798
+ )),
2799
+ icon: Codicon.account
2800
+ }, ...(workspaceGroups.length > 0 ? workspaceGroups.map(group => ({
2801
+ id: group.key,
2802
+ label: group.label,
2803
+ description: ( localize(11112, "MCP servers configured by this workspace.")),
2804
+ icon: Codicon.folder,
2805
+ workspaceFolder: group.uri
2806
+ })) : [{
2807
+ id: "workspace",
2808
+ label: ( localize(11113, "Workspace")),
2809
+ description: ( localize(11112, "MCP servers configured by this workspace.")),
2810
+ icon: Codicon.folder,
2811
+ workspaceFolder: undefined
2812
+ }]), {
2813
+ id: "plugins",
2814
+ label: ( localize(11114, "Plugins")),
2815
+ description: ( localize(
2816
+ 11115,
2817
+ "MCP servers provided by installed plugins or connected connectors."
2818
+ )),
2819
+ icon: Codicon.plug
2820
+ }, {
2821
+ id: "extensions",
2822
+ label: ( localize(11116, "Extensions")),
2823
+ description: ( localize(11117, "MCP servers provided by installed extensions.")),
2824
+ icon: Codicon.extensions
2825
+ }, {
2826
+ id: "builtin",
2827
+ label: ( localize(11118, "Built-In")),
2828
+ description: ( localize(11119, "MCP servers built into the application or active agent host.")),
2829
+ icon: mcpServerIcon
2830
+ }, {
2831
+ id: "available",
2832
+ label: ( localize(11120, "Available")),
2833
+ description: ( localize(11121, "Browse and install MCP servers from the marketplace.")),
2834
+ icon: Codicon.globe
2835
+ }].filter(
2836
+ group => group.id === "available" ? showGallery : group.id === "user" || group.id === "workspace" || isAICustomizationWorkspaceGroupKey(group.id) || grouped.get(group.id).length > 0
2837
+ );
2838
+ this.currentTreeGroups = definitions.map((group, index) => {
2839
+ const entries = grouped.get(group.id);
2840
+ const element = {
2841
+ type: "group-header",
2842
+ id: `mcp-group-${group.id}`,
2843
+ group: group.id,
2844
+ label: group.label,
2845
+ icon: group.icon,
2846
+ count: entries.length,
2847
+ isFirst: index === 0,
2848
+ description: group.description,
2849
+ collapsed: false,
2850
+ workspaceFolder: group.workspaceFolder
2851
+ };
2852
+ return {
2853
+ id: group.id,
2854
+ label: group.label,
2855
+ description: group.description,
2856
+ count: entries.length,
2857
+ element,
2858
+ children: entries
2859
+ };
2860
+ });
2861
+ this.cardScrollableNode.style.display = "none";
2862
+ this.cardDisposables.clear();
2863
+ const children = this.currentTreeGroups.map(group => ({
2864
+ element: group.element,
2865
+ collapsible: true,
2866
+ collapsed: ObjectTreeElementCollapseState.PreserveOrExpanded,
2867
+ children: group.children.map(element => ({
2868
+ element
2869
+ }))
2870
+ }));
2871
+ this.list.setChildren(null);
2872
+ this.list.setChildren(null, children);
2873
+ this.updateMcpTreeEmptyState(
2874
+ this.currentTreeGroups.reduce((count, group) => count + group.children.length, 0)
2875
+ );
2876
+ }
2877
+ updateMcpTreeEmptyState(itemCount) {
2878
+ const empty = itemCount === 0;
2879
+ this.listContainer.style.display = empty ? "none" : "";
2880
+ this.emptyContainer.style.display = empty ? "flex" : "none";
2881
+ if (empty) {
2882
+ this.emptyText.textContent = this.gallerySearchLoading ? ( localize(11122, "Searching the MCP marketplace...")) : this.searchQuery.trim() ? ( localize(11123, "No servers match '{0}'", this.searchQuery)) : ( localize(11124, "No MCP servers in this group"));
2883
+ this.emptySubtext.textContent = this.gallerySearchLoading || !this.searchQuery.trim() ? "" : ( localize(11125, "Try a different search term"));
2884
+ }
2885
+ }
2886
+ getMcpTreeEntryId(entry) {
2887
+ if (entry.type === "group-header") {
2888
+ return entry.id;
2889
+ }
2890
+ return entry.type === "marketplace-item" ? `marketplace:${entry.server.id}` : getMcpRowKey(entry);
2891
+ }
2892
+ getVisibleMcpEntries() {
2893
+ return this.currentTreeGroups.flatMap(group => [group.element, ...group.children]);
2894
+ }
2001
2895
  renderMcpHome() {
2002
2896
  if (this.searchQuery.trim()) {
2003
2897
  return;
2004
2898
  }
2005
- this.captureSectionScrollPositions();
2006
- this.cardDisposables.clear();
2007
- this.sectionLists = [];
2008
- this.installedAddButton = undefined;
2009
- this.firstCardFocusElement = undefined;
2010
- this.availableSection = undefined;
2011
- clearNode(this.cardContainer);
2012
- this.showCardSurface();
2013
- const content = this.createCardScrollContent("distributed-section-layout");
2014
- const installedList = this.renderCardSection(content, ( localize(9148, "Installed")), undefined, "installed-mcp-servers-section", this.installedEntries.length, header => this.renderInstalledSectionActions(header));
2015
- installedList.classList.add("plugin-inventory-list");
2016
- if (this.installedEntries.length === 0) {
2017
- const empty = append(installedList, $(".plugin-inventory-empty"));
2018
- empty.textContent = ( localize(9149, "No MCP servers are installed."));
2019
- } else {
2020
- this.createMcpSectionList(installedList, ( localize(9148, "Installed")), this.installedEntries.map(presentation => presentation.entry));
2899
+ this.renderMcpTree();
2900
+ }
2901
+ renderMcpTreeGroupActions(entry, container, disposables) {
2902
+ if (entry.group !== "user" && entry.group !== "workspace" && !isAICustomizationWorkspaceGroupKey(entry.group)) {
2903
+ return;
2021
2904
  }
2022
- this.renderAvailableServers(content, this.getAvailableGalleryServers(), true);
2023
- this.scheduleMcpSectionLayout();
2905
+ this.renderInstalledSectionActionsWithDisposables(container, disposables, entry.group === "user", entry.workspaceFolder);
2024
2906
  }
2025
- renderInstalledSectionActions(header) {
2907
+ renderInstalledSectionActionsWithDisposables(header, disposables, showBrowse, workspaceFolder) {
2026
2908
  const actions = append(header, $(".plugin-card-section-actions"));
2027
- const addLabel = ( localize(9150, "Add Server"));
2028
- const add = this.installedAddButton = this.cardDisposables.add(( new Button(actions, {
2029
- ...defaultButtonStyles,
2909
+ const addLabel = ( localize(11126, "Add Server"));
2910
+ const add = disposables.add(( new Button(actions, {
2911
+ ...getButtonStyles({
2912
+ buttonSecondaryBackground: undefined,
2913
+ buttonSecondaryForeground: undefined,
2914
+ buttonSecondaryHoverBackground: undefined,
2915
+ buttonSecondaryBorder: undefined
2916
+ }),
2030
2917
  secondary: true,
2918
+ supportIcons: true,
2919
+ title: addLabel,
2031
2920
  ariaLabel: addLabel
2032
2921
  })));
2033
- add.element.classList.add("plugin-installed-action");
2034
- add.label = this.narrowLayout ? ( localize(9151, "Add")) : addLabel;
2035
- this.firstCardFocusElement ??= add.element;
2036
- this.cardDisposables.add(
2037
- add.onDidClick(() => this.commandService.executeCommand(McpCommandIds.AddConfiguration))
2922
+ add.element.classList.add(
2923
+ "plugin-installed-action",
2924
+ "plugin-card-ghost-button",
2925
+ "plugin-card-icon-button"
2038
2926
  );
2927
+ add.icon = Codicon.add;
2928
+ this.firstCardFocusElement ??= add.element;
2929
+ disposables.add(add.onDidClick(
2930
+ () => this.commandService.executeCommand(McpCommandIds.AddConfiguration, workspaceFolder)
2931
+ ));
2932
+ if (showBrowse && isCustomizationDiscoveryAvailable(this.configurationService, this.customizationMarketplaceService)) {
2933
+ const browseLabel = ( localize(11127, "Browse MCPs"));
2934
+ const browse = disposables.add(( new Button(actions, {
2935
+ ...getButtonStyles({
2936
+ buttonSecondaryBackground: undefined,
2937
+ buttonSecondaryForeground: undefined,
2938
+ buttonSecondaryHoverBackground: undefined,
2939
+ buttonSecondaryBorder: undefined
2940
+ }),
2941
+ secondary: true,
2942
+ title: browseLabel,
2943
+ ariaLabel: browseLabel
2944
+ })));
2945
+ browse.element.classList.add("plugin-installed-action", "plugin-card-ghost-button");
2946
+ browse.label = browseLabel;
2947
+ disposables.add(browse.onDidClick(() => this._onDidRequestBrowse.fire()));
2948
+ }
2039
2949
  }
2040
- renderAvailableServers(parent, servers, showDescription) {
2041
- const availableList = this.renderCardSection(parent, ( localize(9152, "Available")), showDescription ? ( localize(9153, "Browse and install MCP servers from the marketplace.")) : undefined, "available-mcp-servers-section", servers.length);
2042
- this.availableSection = availableList.parentElement ?? undefined;
2043
- availableList.classList.add("plugin-inventory-list");
2044
- if (servers.length === 0) {
2045
- if (this.gallerySnapshotLoading) {
2046
- renderVirtualizedSectionLoadingPlaceholder(availableList, ( localize(9154, "Loading marketplace MCP servers...")), MCP_SECTION_ITEM_HEIGHT);
2047
- } else {
2048
- const empty = append(availableList, $(".plugin-inventory-empty"));
2049
- empty.textContent = ( localize(9155, "No marketplace MCP servers are available."));
2950
+ startConnectorAction() {
2951
+ this.connectorActionCancellation.value?.cancel();
2952
+ const cancellation = ( new CancellationTokenSource());
2953
+ this.connectorActionCancellation.value = cancellation;
2954
+ return cancellation;
2955
+ }
2956
+ showConnectorActions(connector, anchor) {
2957
+ const disposables = ( new DisposableStore());
2958
+ const disconnect = disposables.add(( new Action(
2959
+ "connectors.disconnect",
2960
+ getConnectorActionLabel("disconnect"),
2961
+ undefined,
2962
+ true,
2963
+ async () => {
2964
+ const cancellation = this.startConnectorAction();
2965
+ try {
2966
+ await this.connectorsService.disconnect(connector.name, cancellation.token);
2967
+ if (!cancellation.token.isCancellationRequested) {
2968
+ await this.refreshConnectors();
2969
+ if (!cancellation.token.isCancellationRequested) {
2970
+ status(( localize(
2971
+ 11128,
2972
+ "{0}: {1}",
2973
+ connector.displayName,
2974
+ getConnectorActionLabel("disconnect")
2975
+ )));
2976
+ }
2977
+ }
2978
+ } catch (error) {
2979
+ if (!cancellation.token.isCancellationRequested && !isCancellationError(error)) {
2980
+ this.notificationService.error(( localize(
2981
+ 11129,
2982
+ "Unable to update {0}: {1}",
2983
+ connector.displayName,
2984
+ getErrorMessage(error)
2985
+ )));
2986
+ }
2987
+ } finally {
2988
+ if (this.connectorActionCancellation.value === cancellation) {
2989
+ this.connectorActionCancellation.clear();
2990
+ }
2991
+ }
2050
2992
  }
2051
- this.cardListControllers.get(availableList)?.finalize();
2052
- return;
2053
- }
2054
- this.createMcpSectionList(availableList, ( localize(9152, "Available")), servers.map(server => ({
2055
- type: "marketplace-item",
2056
- server
2057
- })));
2993
+ )));
2994
+ this.contextMenuService.showContextMenu({
2995
+ getAnchor: () => anchor,
2996
+ getActions: () => [disconnect],
2997
+ onHide: () => disposables.dispose()
2998
+ });
2058
2999
  }
2059
3000
  appendInstalledServerRow(parent, presentation) {
2060
3001
  let entry = presentation.entry;
@@ -2063,54 +3004,87 @@ let McpListWidget = class McpListWidget extends Disposable {
2063
3004
  const row = append(parent, $(".plugin-list-item.plugin-home-row.mcp-installed-home-row"));
2064
3005
  const enabled = this.isInstalledEntryEnabled(entry);
2065
3006
  row.classList.toggle("disabled", !enabled);
2066
- const primaryAction = this.addSurfaceActivation(
2067
- row,
2068
- getMcpEntryAriaLabel(entry, this.workspaceService.isSessionsWindow),
2069
- () => this._onDidSelectServer.fire(createInstalledMcpServerDetailInput(entry))
2070
- );
3007
+ const content = append(row, $(".mcp-installed-card-content"));
3008
+ const primaryAction = this.addSurfaceActivation(content, getMcpEntryAriaLabel(
3009
+ entry,
3010
+ this.workspaceService.isSessionsWindow,
3011
+ this.getMcpServerCompatibilityKind(entry),
3012
+ this.labelService,
3013
+ this.agentPluginService,
3014
+ this.extensionsWorkbenchService
3015
+ ), () => this._onDidSelectServer.fire(this.createInstalledMcpServerDetailInput(entry)));
2071
3016
  const details = append(primaryAction, $(".plugin-list-item-details"));
2072
3017
  const nameRow = append(details, $(".plugin-list-item-name-row"));
2073
3018
  const name = append(nameRow, $(".plugin-list-item-name"));
2074
3019
  name.textContent = formatDisplayName(label);
2075
3020
  name.title = label;
2076
- const statusBadge = append(nameRow, $(".plugin-list-item-status.mcp-runtime-status-badge"));
2077
3021
  const description = append(details, $(".plugin-list-item-description"));
3022
+ const compatibilityMessage = append(content, $(".mcp-server-compatibility-message"));
3023
+ const compatibilityMessageDisposables = this.cardDisposables.add(( new DisposableStore()));
2078
3024
  const actions = append(row, $(".plugin-list-item-action"));
2079
3025
  const getEntry = () => entry;
2080
3026
  const signIn = this.appendInstalledServerSignIn(actions, getEntry);
2081
- const toggle = this.appendInstalledServerToggle(actions, getEntry);
3027
+ const start = this.appendInstalledServerStart(actions, getEntry);
3028
+ const errorActions = append(actions, $(".mcp-server-error-actions"));
3029
+ const statusIcon = append(errorActions, $("span.mcp-server-state-icon"));
3030
+ const showOutput = this.appendInstalledServerShowOutput(errorActions, getEntry);
3031
+ const toggle = entry.type === "provider-item" ? undefined : this.appendInstalledServerToggle(actions, getEntry);
2082
3032
  const more = this.cardDisposables.add(( new Button(actions, {
2083
3033
  ...getButtonStyles({
2084
3034
  buttonSecondaryBackground: undefined,
3035
+ buttonSecondaryForeground: undefined,
3036
+ buttonSecondaryHoverBackground: undefined,
2085
3037
  buttonSecondaryBorder: undefined
2086
3038
  }),
2087
3039
  secondary: true,
2088
- supportIcons: true,
2089
- ariaLabel: ( localize(9147, "More actions for {0}", label))
3040
+ ariaLabel: ( localize(11109, "More actions for {0}", label))
2090
3041
  })));
2091
3042
  more.element.classList.add("plugin-card-icon-button");
2092
- more.label = `$(${Codicon.ellipsis.id})`;
3043
+ more.icon = Codicon.ellipsis;
2093
3044
  this.cardDisposables.add(more.onDidClick(() => this.showMcpServerActions(entry, more.element)));
2094
3045
  this.cardListControllers.get(parent)?.addItem({
2095
3046
  row,
2096
3047
  primaryAction,
2097
3048
  label,
2098
- actions: [signIn?.element, toggle.element, more.element].filter(action => action !== undefined),
3049
+ actions: [
3050
+ compatibilityMessage,
3051
+ signIn?.element,
3052
+ start.element,
3053
+ showOutput.element,
3054
+ toggle?.element,
3055
+ more.element
3056
+ ].filter(action => action !== undefined),
2099
3057
  contextMenuAction: more.element
2100
3058
  });
2101
3059
  this.cardDisposables.add(autorun(reader => {
2102
3060
  if (entry.type !== "session-server-item") {
2103
3061
  entry.localServer?.connectionState.read(reader);
2104
3062
  }
3063
+ const compatibilityKind = this.getMcpServerCompatibilityKind(entry, reader);
3064
+ updateMcpCompatibilityMessage(
3065
+ compatibilityMessage,
3066
+ compatibilityKind,
3067
+ compatibilityMessageDisposables,
3068
+ () => this._onDidRequestOpenMigrations.fire()
3069
+ );
2105
3070
  updateMcpCardRuntimePresentation(
2106
- statusBadge,
3071
+ statusIcon,
2107
3072
  primaryAction,
2108
3073
  description,
2109
3074
  getMcpStatusKind(entry, this.workspaceService.isSessionsWindow),
2110
3075
  getMcpDisabledReason(entry),
2111
- getMcpEntryAriaLabel(entry, this.workspaceService.isSessionsWindow),
3076
+ getMcpEntryAriaLabel(
3077
+ entry,
3078
+ this.workspaceService.isSessionsWindow,
3079
+ compatibilityKind,
3080
+ this.labelService,
3081
+ this.agentPluginService,
3082
+ this.extensionsWorkbenchService
3083
+ ),
2112
3084
  this.getInstalledEntryDescription(entry)
2113
3085
  );
3086
+ start.update();
3087
+ showOutput.update();
2114
3088
  }));
2115
3089
  this.cardDisposables.add(this.agentHostCustomizationService.onDidChangeCustomizations(() => {
2116
3090
  const updated = this.installedEntries.find(candidate => getMcpRowKey(candidate.entry) === rowKey)?.entry;
@@ -2118,17 +3092,33 @@ let McpListWidget = class McpListWidget extends Disposable {
2118
3092
  return;
2119
3093
  }
2120
3094
  entry = updated;
3095
+ const compatibilityKind = this.getMcpServerCompatibilityKind(entry);
3096
+ updateMcpCompatibilityMessage(
3097
+ compatibilityMessage,
3098
+ compatibilityKind,
3099
+ compatibilityMessageDisposables,
3100
+ () => this._onDidRequestOpenMigrations.fire()
3101
+ );
2121
3102
  updateMcpCardRuntimePresentation(
2122
- statusBadge,
3103
+ statusIcon,
2123
3104
  primaryAction,
2124
3105
  description,
2125
3106
  getMcpStatusKind(entry, this.workspaceService.isSessionsWindow),
2126
3107
  getMcpDisabledReason(entry),
2127
- getMcpEntryAriaLabel(entry, this.workspaceService.isSessionsWindow),
3108
+ getMcpEntryAriaLabel(
3109
+ entry,
3110
+ this.workspaceService.isSessionsWindow,
3111
+ compatibilityKind,
3112
+ this.labelService,
3113
+ this.agentPluginService,
3114
+ this.extensionsWorkbenchService
3115
+ ),
2128
3116
  this.getInstalledEntryDescription(entry)
2129
3117
  );
2130
3118
  signIn?.update();
2131
- toggle.update();
3119
+ start.update();
3120
+ showOutput.update();
3121
+ toggle?.update();
2132
3122
  row.classList.toggle("disabled", !this.isInstalledEntryEnabled(entry));
2133
3123
  }));
2134
3124
  }
@@ -2138,46 +3128,92 @@ let McpListWidget = class McpListWidget extends Disposable {
2138
3128
  }
2139
3129
  const label = getMcpEntryLabel(getEntry());
2140
3130
  const signInButton = createMcpSignInButton(parent, this.cardDisposables, label);
2141
- registerMcpInlineButtonAction(this.cardDisposables, signInButton, async () => {
2142
- const activeSessionServer = getActiveSessionServer(getEntry());
2143
- if (!activeSessionServer) {
2144
- return;
3131
+ const actionDisposables = this.cardDisposables.add(( new DisposableStore()));
3132
+ let hasAuthRequiredAction = false;
3133
+ const update = () => {
3134
+ const isAuthRequired = getMcpStatusKind(getEntry(), this.workspaceService.isSessionsWindow) === McpServerStatus.AuthRequired;
3135
+ if (hasAuthRequiredAction !== isAuthRequired) {
3136
+ actionDisposables.clear();
3137
+ resetMcpSignInButton(signInButton, label, true);
3138
+ hasAuthRequiredAction = isAuthRequired;
3139
+ if (isAuthRequired) {
3140
+ registerMcpSignInButtonAction(actionDisposables, signInButton, label, async () => {
3141
+ const activeSessionServer = getActiveSessionServer(getEntry());
3142
+ if (!activeSessionServer) {
3143
+ return;
3144
+ }
3145
+ try {
3146
+ return await authenticateMcpServer(
3147
+ this.agentHostCustomizationService,
3148
+ this.customizationHarnessService.activeSessionResource.get(),
3149
+ activeSessionServer.id
3150
+ );
3151
+ } catch (error) {
3152
+ this.notificationService.error(( localize(11130, "Unable to sign in to {0}: {1}", label, getErrorMessage(error))));
3153
+ return false;
3154
+ }
3155
+ });
3156
+ }
2145
3157
  }
2146
- signInButton.enabled = false;
3158
+ signInButton.element.style.display = isAuthRequired ? "" : "none";
3159
+ };
3160
+ update();
3161
+ return {
3162
+ element: signInButton.element,
3163
+ update
3164
+ };
3165
+ }
3166
+ appendInstalledServerStart(parent, getEntry) {
3167
+ const startButton = createMcpStartButton(parent, this.cardDisposables, getMcpEntryLabel(getEntry()));
3168
+ registerMcpInlineButtonAction(this.cardDisposables, startButton, async () => {
3169
+ startButton.enabled = false;
2147
3170
  try {
2148
- await authenticateMcpServer(
2149
- this.agentHostCustomizationService,
2150
- this.customizationHarnessService.activeSessionResource.get(),
2151
- activeSessionServer.id
2152
- );
2153
- } catch (error) {
2154
- this.notificationService.error(( localize(9156, "Unable to sign in to {0}: {1}", label, getErrorMessage(error))));
3171
+ await startMcpEntry(getEntry());
2155
3172
  } finally {
2156
- signInButton.enabled = true;
3173
+ startButton.enabled = true;
2157
3174
  }
2158
3175
  });
2159
3176
  const update = () => {
2160
- signInButton.element.style.display = getMcpStatusKind(getEntry(), this.workspaceService.isSessionsWindow) === McpServerStatus.AuthRequired ? "" : "none";
3177
+ const state = getMcpStatusKind(getEntry(), this.workspaceService.isSessionsWindow);
3178
+ startButton.element.style.display = state === McpServerStatus.Stopped || state === McpConnectionState.Kind.Stopped ? "" : "none";
2161
3179
  };
2162
3180
  update();
2163
3181
  return {
2164
- element: signInButton.element,
3182
+ element: startButton.element,
3183
+ update
3184
+ };
3185
+ }
3186
+ appendInstalledServerShowOutput(parent, getEntry) {
3187
+ const showOutputButton = createMcpShowOutputButton(parent, this.cardDisposables, getMcpEntryLabel(getEntry()));
3188
+ registerMcpInlineButtonAction(
3189
+ this.cardDisposables,
3190
+ showOutputButton,
3191
+ () => this.showMcpServerOutput(getEntry())
3192
+ );
3193
+ const update = () => {
3194
+ const state = getMcpStatusKind(getEntry(), this.workspaceService.isSessionsWindow);
3195
+ showOutputButton.element.style.display = state === McpServerStatus.Error || state === McpConnectionState.Kind.Error ? "" : "none";
3196
+ };
3197
+ update();
3198
+ return {
3199
+ element: showOutputButton.element,
2165
3200
  update
2166
3201
  };
2167
3202
  }
2168
3203
  appendInstalledServerToggle(parent, getEntry) {
2169
3204
  const label = getMcpEntryLabel(getEntry());
2170
3205
  let enabled = this.isInstalledEntryEnabled(getEntry());
2171
- const toggle = this.cardDisposables.add(( new Switch({
3206
+ const disabledLabel = append(parent, $(".mcp-server-disabled-label"));
3207
+ const toggle = this.cardDisposables.add(this.instantiationService.createInstance(CustomizationToggle, {
2172
3208
  ariaLabel: label,
2173
3209
  checked: enabled
2174
- })));
3210
+ }));
2175
3211
  const switchElement = toggle.domNode;
2176
3212
  append(parent, switchElement);
2177
3213
  const updateLabel = () => {
2178
3214
  const blockedByPlugin = getMcpDisabledReason(getEntry())?.source === "plugin";
2179
- const toggleLabel = enabled ? ( localize(9142, "Disable {0}", label)) : ( localize(9143, "Enable {0}", label));
2180
- const accessibleLabel = blockedByPlugin ? ( localize(9144, "{0} is disabled by its plugin", label)) : toggleLabel;
3215
+ const toggleLabel = enabled ? ( localize(11104, "Disable {0}", label)) : ( localize(11105, "Enable {0}", label));
3216
+ const accessibleLabel = blockedByPlugin ? ( localize(11106, "{0} is disabled by its plugin", label)) : toggleLabel;
2181
3217
  toggle.setAriaLabel(accessibleLabel);
2182
3218
  };
2183
3219
  updateLabel();
@@ -2185,11 +3221,14 @@ let McpListWidget = class McpListWidget extends Disposable {
2185
3221
  enabled = checked;
2186
3222
  updateLabel();
2187
3223
  this.setInstalledEntryEnabled(getEntry(), enabled);
2188
- status(enabled ? ( localize(9145, "{0} enabled.", label)) : ( localize(9146, "{0} disabled.", label)));
3224
+ status(enabled ? ( localize(11107, "{0} enabled.", label)) : ( localize(11108, "{0} disabled.", label)));
2189
3225
  }));
2190
3226
  const update = () => {
2191
3227
  enabled = this.isInstalledEntryEnabled(getEntry());
2192
- toggle.disabled = getMcpDisabledReason(getEntry())?.source === "plugin";
3228
+ const disabledReason = getMcpDisabledReason(getEntry());
3229
+ disabledLabel.textContent = enabled ? "" : getMcpDisabledLabel(disabledReason);
3230
+ disabledLabel.style.display = enabled ? "none" : "";
3231
+ toggle.disabled = disabledReason?.source === "plugin";
2193
3232
  toggle.checked = enabled;
2194
3233
  updateLabel();
2195
3234
  };
@@ -2201,21 +3240,24 @@ let McpListWidget = class McpListWidget extends Disposable {
2201
3240
  }
2202
3241
  appendMarketplaceServerRow(parent, server) {
2203
3242
  const row = append(parent, $(".plugin-list-item.plugin-home-row.plugin-marketplace-home-row"));
2204
- const primaryAction = this.addSurfaceActivation(row, ( localize(9139, "{0}. Available to install from the MCP marketplace.", server.label)), () => this._onDidSelectServer.fire(createWorkbenchMcpServerDetailInput(server)));
3243
+ const primaryAction = this.addSurfaceActivation(row, ( localize(11097, "{0}. Available to install from the MCP marketplace.", server.label)), () => this._onDidSelectServer.fire(createWorkbenchMcpServerDetailInput(server)));
2205
3244
  const details = append(primaryAction, $(".plugin-list-item-details"));
2206
3245
  const nameRow = append(details, $(".plugin-list-item-name-row"));
2207
3246
  const name = append(nameRow, $(".plugin-list-item-name"));
2208
3247
  name.textContent = server.label;
2209
3248
  name.title = server.label;
2210
3249
  const description = append(details, $(".plugin-list-item-description"));
2211
- description.textContent = truncateToFirstLine(server.description || ( localize(9106, "No description provided.")));
3250
+ description.textContent = truncateToFirstLine(server.description || ( localize(11036, "No description provided.")));
2212
3251
  const actions = append(row, $(".plugin-list-item-action"));
2213
3252
  const install = this.cardDisposables.add(( new Button(actions, {
2214
- ...defaultButtonStyles,
2215
- ariaLabel: ( localize(9157, "Install {0}", server.label))
3253
+ ...getButtonStyles({
3254
+ buttonSecondaryHoverBackground: undefined
3255
+ }),
3256
+ secondary: true,
3257
+ ariaLabel: ( localize(11131, "Install {0}", server.label))
2216
3258
  })));
2217
3259
  install.element.classList.add("plugin-list-item-install-button");
2218
- install.label = ( localize(9107, "Install"));
3260
+ install.label = ( localize(11037, "Install"));
2219
3261
  this.cardDisposables.add(install.onDidClick(() => this.installMarketplaceServer(server, install)));
2220
3262
  this.cardListControllers.get(parent)?.addItem({
2221
3263
  row,
@@ -2225,55 +3267,44 @@ let McpListWidget = class McpListWidget extends Disposable {
2225
3267
  });
2226
3268
  }
2227
3269
  async installMarketplaceServer(server, button) {
2228
- button.label = ( localize(9158, "Installing..."));
3270
+ button.label = ( localize(11132, "Installing..."));
2229
3271
  button.enabled = false;
2230
3272
  try {
2231
- await this.mcpWorkbenchService.install(server);
2232
- status(( localize(9159, "{0} installed.", server.label)));
3273
+ await runCustomizationMarketplaceInstallWithTelemetry(
3274
+ this.telemetryService,
3275
+ getAvailableCustomizationMarketplaceInstallTelemetryContext("mcpServer"),
3276
+ async () => {
3277
+ await this.mcpWorkbenchService.install(server);
3278
+ }
3279
+ );
3280
+ status(( localize(11133, "{0} installed.", server.label)));
2233
3281
  await this.refresh();
2234
3282
  } catch (error) {
2235
- button.label = ( localize(9107, "Install"));
3283
+ button.label = ( localize(11037, "Install"));
2236
3284
  button.enabled = true;
2237
- this.notificationService.error(( localize(9160, "Unable to install MCP server: {0}", getErrorMessage(error))));
2238
- }
2239
- }
2240
- getAvailableGalleryServers() {
2241
- const installedKeys = ( new Set());
2242
- for (const presentation of this.installedEntries) {
2243
- const entry = presentation.entry;
2244
- if (entry.type === "server-item") {
2245
- for (const key of getWorkbenchServerMatchKeys(entry.server)) {
2246
- installedKeys.add(key.toLowerCase());
2247
- }
2248
- } else if (entry.type === "builtin-item") {
2249
- installedKeys.add(entry.label.toLowerCase());
2250
- if (entry.localServer) {
2251
- for (const key of getRuntimeServerMatchKeys(entry.localServer)) {
2252
- installedKeys.add(key.toLowerCase());
2253
- }
2254
- }
2255
- } else {
2256
- installedKeys.add(entry.server.name.toLowerCase());
2257
- }
3285
+ this.notificationService.error(( localize(11134, "Unable to install MCP server: {0}", getErrorMessage(error))));
2258
3286
  }
2259
- return this.galleryServers.filter(
2260
- server => server.installState === McpServerInstallState.Uninstalled && !( getWorkbenchServerMatchKeys(server).some(key => ( installedKeys.has(key.toLowerCase()))))
2261
- );
2262
- }
2263
- matchesGalleryServerQuery(server, query) {
2264
- return server.label.toLowerCase().includes(query) || server.description.toLowerCase().includes(query) || server.publisherDisplayName?.toLowerCase().includes(query) === true;
2265
3287
  }
2266
3288
  getInstalledEntryDescription(entry) {
2267
- const description = entry.type === "server-item" ? entry.server.description : entry.type === "builtin-item" ? entry.description : "";
2268
- return truncateToFirstLine(description || ( localize(9106, "No description provided.")));
3289
+ const description = entry.type === "server-item" ? entry.server.description : entry.type === "builtin-item" || entry.type === "connector-item" || entry.type === "provider-item" ? entry.description : "";
3290
+ return truncateToFirstLine(description || ( localize(11036, "No description provided.")));
2269
3291
  }
2270
3292
  isInstalledEntryEnabled(entry) {
3293
+ if (entry.type === "provider-item") {
3294
+ return true;
3295
+ }
2271
3296
  const activeSessionServer = getActiveSessionServer(entry);
2272
3297
  const localServer = entry.type === "session-server-item" ? undefined : entry.localServer;
2273
3298
  const serverId = localServer?.definition.id ?? (entry.type === "server-item" ? entry.server.id : undefined);
2274
3299
  return isPrimaryMcpServerEnabled(this.mcpService, serverId, activeSessionServer);
2275
3300
  }
3301
+ isInstalledEntryInUse(entry) {
3302
+ return isMcpServerInUse(this.isInstalledEntryEnabled(entry), getActiveSessionServer(entry));
3303
+ }
2276
3304
  setInstalledEntryEnabled(entry, enabled) {
3305
+ if (entry.type === "provider-item") {
3306
+ return;
3307
+ }
2277
3308
  const activeSessionServer = getActiveSessionServer(entry);
2278
3309
  const localServer = entry.type === "session-server-item" ? undefined : entry.localServer;
2279
3310
  const serverId = localServer?.definition.id ?? (entry.type === "server-item" ? entry.server.id : undefined);
@@ -2287,35 +3318,23 @@ let McpListWidget = class McpListWidget extends Disposable {
2287
3318
  );
2288
3319
  }
2289
3320
  updateSearchResults() {
2290
- const available = this.getAvailableGalleryServers();
2291
- if (this.installedEntries.length === 0 && available.length === 0) {
2292
- this.showEmptySurface(this.gallerySearchLoading ? ( localize(9161, "Searching the MCP marketplace...")) : ( localize(9162, "No servers match '{0}'", this.searchQuery)), this.gallerySearchLoading ? "" : ( localize(9163, "Try a different search term")));
2293
- return;
2294
- }
2295
- this.captureSectionScrollPositions();
2296
- this.cardDisposables.clear();
2297
- this.sectionLists = [];
2298
- this.installedAddButton = undefined;
2299
- this.firstCardFocusElement = undefined;
2300
- this.availableSection = undefined;
2301
- clearNode(this.cardContainer);
2302
- this.showCardSurface();
2303
- const content = this.createCardScrollContent("plugin-search-results", "distributed-section-layout");
2304
- if (this.installedEntries.length > 0) {
2305
- const installedList = this.renderCardSection(content, ( localize(9164, "Installed")), undefined, "installed-mcp-servers-section", this.installedEntries.length);
2306
- installedList.classList.add("plugin-inventory-list");
2307
- this.createMcpSectionList(installedList, ( localize(9164, "Installed")), this.installedEntries.map(presentation => presentation.entry));
2308
- }
2309
- if (available.length > 0) {
2310
- this.renderAvailableServers(content, available, false);
2311
- }
2312
- this.scheduleMcpSectionLayout();
3321
+ this.renderMcpTree();
2313
3322
  }
2314
3323
  filterServers(render = true) {
2315
3324
  const query = this.searchQuery.toLowerCase().trim();
2316
3325
  const activeSessionResource = this.customizationHarnessService.activeSessionResource.get();
2317
- const activeSessionMatcher = ( new ActiveSessionMcpServerMatcher(this.agentHostCustomizationService.getMcpServers(activeSessionResource)));
2318
- const localServerMatcher = ( new LocalMcpServerMatcher(this.mcpService.servers.get()));
3326
+ const activeSessionServers = this.agentHostCustomizationService.getMcpServers(activeSessionResource);
3327
+ const runtimeServers = this.mcpService.servers.get();
3328
+ const activeSessionMatcher = ( new ActiveSessionMcpServerMatcher(activeSessionServers));
3329
+ const localServerMatcher = ( new LocalMcpServerMatcher(runtimeServers));
3330
+ const marketplaceInstallations = this.marketplaceInstallService.installations.get();
3331
+ const providerEntries = createProviderMcpEntries(marketplaceInstallations.installations, [
3332
+ ...this.mcpWorkbenchService.local.flatMap(getWorkbenchServerMatchKeys),
3333
+ ...runtimeServers.flatMap(getRuntimeServerMatchKeys),
3334
+ ...activeSessionServers.flatMap(
3335
+ server => getUniqueMcpMatchKeys([server.id, server.name, server.displayName])
3336
+ )
3337
+ ], query);
2319
3338
  if (query) {
2320
3339
  this.filteredServers = this.mcpWorkbenchService.local.filter(
2321
3340
  server => server.label.toLowerCase().includes(query) || (server.description?.toLowerCase().includes(query))
@@ -2325,7 +3344,7 @@ let McpListWidget = class McpListWidget extends Disposable {
2325
3344
  }
2326
3345
  const localIds = ( new Set(this.filteredServers.map(s => s.id)));
2327
3346
  const hiddenCollectionIds = this.customizationHarnessService.getActiveDescriptor().hiddenMcpServerCollectionIds;
2328
- const builtinServers = this.mcpService.servers.get().filter(s => !( localIds.has(s.definition.id))).filter(s => isMcpServerCollectionVisible(s.collection.id, hiddenCollectionIds)).filter(s => !query || s.definition.label.toLowerCase().includes(query));
3347
+ const builtinServers = runtimeServers.filter(s => !( localIds.has(s.definition.id))).filter(s => isMcpServerCollectionVisible(s.collection.id, hiddenCollectionIds)).filter(s => !query || s.definition.label.toLowerCase().includes(query));
2329
3348
  const groups = [{
2330
3349
  entries: []
2331
3350
  }, {
@@ -2335,6 +3354,10 @@ let McpListWidget = class McpListWidget extends Disposable {
2335
3354
  const entry = {
2336
3355
  type: "server-item",
2337
3356
  server,
3357
+ marketplaceRecord: marketplaceInstallations.findByTarget({
3358
+ kind: "mcp",
3359
+ id: server.id
3360
+ }),
2338
3361
  activeSessionServer: activeSessionMatcher.take(getWorkbenchServerMatchKeys(server)),
2339
3362
  localServer: localServerMatcher.find(getWorkbenchServerMatchKeys(server))
2340
3363
  };
@@ -2358,11 +3381,29 @@ let McpListWidget = class McpListWidget extends Disposable {
2358
3381
  if (server.collection.id.startsWith(PLUGIN_COLLECTION_PREFIX)) {
2359
3382
  pluginServers.push(entry);
2360
3383
  } else if (source instanceof ExtensionIdentifier && !isCopilotExtension(source)) {
2361
- extensionServers.push(entry);
3384
+ extensionServers.push({
3385
+ ...entry,
3386
+ extensionId: source
3387
+ });
2362
3388
  } else {
2363
- otherBuiltinServers.push(entry);
3389
+ otherBuiltinServers.push({
3390
+ ...entry,
3391
+ extensionId: source instanceof ExtensionIdentifier ? source : undefined
3392
+ });
2364
3393
  }
2365
3394
  }
3395
+ const regularMatchKeys = ( new Set([
3396
+ ...this.filteredServers.flatMap(getWorkbenchServerMatchKeys),
3397
+ ...builtinServers.flatMap(getRuntimeServerMatchKeys)
3398
+ ].map(key => key.toLowerCase())));
3399
+ const connectorMcpEntries = this.isConnectorsEnabled() ? this.connectorsService.connectedMcpServers.filter(server => !( regularMatchKeys.has(server.serverName.toLowerCase()))).filter(server => !query || ( [
3400
+ server.connector.displayName,
3401
+ server.connector.description,
3402
+ server.serverName
3403
+ ].some(value => value.toLowerCase().includes(query)))).map(server => createConnectorMcpEntry(
3404
+ server,
3405
+ activeSessionMatcher.takeConnector([server.serverName], [server.connector.name, server.connector.displayName])
3406
+ )) : [];
2366
3407
  const activeSessionOnlyServers = activeSessionMatcher.unmatched(query);
2367
3408
  const activeSessionBuiltinEntries = createBuiltinActiveSessionMcpEntries(activeSessionOnlyServers);
2368
3409
  this.installedEntries = [...groups.flatMap(group => group.entries.map(entry => ({
@@ -2377,22 +3418,32 @@ let McpListWidget = class McpListWidget extends Disposable {
2377
3418
  })), ...extensionServers.map((
2378
3419
  {
2379
3420
  server,
2380
- activeSessionServer
3421
+ activeSessionServer,
3422
+ extensionId
2381
3423
  }
2382
3424
  ) => ({
2383
- entry: createBuiltinEntry(server, activeSessionServer)
3425
+ entry: createBuiltinEntry(server, activeSessionServer, extensionId)
2384
3426
  })), ...otherBuiltinServers.map((
2385
3427
  {
2386
3428
  server,
2387
- activeSessionServer
3429
+ activeSessionServer,
3430
+ extensionId
2388
3431
  }
2389
3432
  ) => ({
2390
- entry: createBuiltinEntry(server, activeSessionServer)
3433
+ entry: createBuiltinEntry(server, activeSessionServer, extensionId)
3434
+ })), ...connectorMcpEntries.map(entry => ({
3435
+ entry
2391
3436
  })), ...activeSessionBuiltinEntries.map(entry => ({
2392
3437
  entry
3438
+ })), ...providerEntries.map(entry => ({
3439
+ entry
2393
3440
  }))];
2394
- this.filteredBuiltinCount = builtinServers.length;
2395
- this.filteredActiveSessionCount = activeSessionOnlyServers.length;
3441
+ this.installedEntries = preserveMcpEntryOrder(this.installedEntries, this.installedEntryOrder);
3442
+ this.element.classList.toggle("show-mcp-item-icons", ( this.installedEntries.some((
3443
+ {
3444
+ entry
3445
+ }
3446
+ ) => hasMcpInstalledEntryIcon(entry))));
2396
3447
  this._onDidChangeItemCount.fire(this.itemCount);
2397
3448
  if (render) {
2398
3449
  this.renderFilteredServers();
@@ -2412,12 +3463,19 @@ let McpListWidget = class McpListWidget extends Disposable {
2412
3463
  }
2413
3464
  ) => [
2414
3465
  getMcpRowKey(entry),
3466
+ getMcpEntryGroup(entry),
2415
3467
  getActiveSessionServer(entry) ? "session" : "",
2416
- entry.type !== "session-server-item" && entry.localServer ? "local" : ""
3468
+ entry.type !== "session-server-item" && entry.localServer ? "local" : "",
3469
+ getMcpEntrySourceUri(entry)?.toString() ?? "",
3470
+ getMcpEntryLabel(entry)
2417
3471
  ].join(":")).join("|");
2418
3472
  }
2419
3473
  get itemCount() {
2420
- return this.filteredServers.length + this.filteredBuiltinCount + this.filteredActiveSessionCount;
3474
+ return this.installedEntries.filter((
3475
+ {
3476
+ entry
3477
+ }
3478
+ ) => this.isInstalledEntryInUse(entry)).length;
2421
3479
  }
2422
3480
  fireItemCount() {
2423
3481
  this._onDidChangeItemCount.fire(this.itemCount);
@@ -2449,38 +3507,81 @@ let McpListWidget = class McpListWidget extends Disposable {
2449
3507
  }
2450
3508
  const headerHeight = this.sectionTitleHeader.offsetHeight;
2451
3509
  this.lastHeaderHeight = headerHeight;
2452
- const listHeight = Math.max(0, availableHeight - searchBarHeight - headerHeight);
3510
+ const listHeight = getCustomizationTreeContentHeight(this.element, this.listContainer, availableHeight);
2453
3511
  this.cardScrollableNode.style.height = `${listHeight}px`;
3512
+ this.listContainer.style.height = `${listHeight}px`;
3513
+ this.list.layout(listHeight, width);
2454
3514
  this.scheduleMcpSectionLayout();
2455
3515
  }
2456
3516
  focusSearch() {
2457
3517
  this.searchInput.focus();
2458
3518
  }
3519
+ setSearchQuery(query) {
3520
+ this.searchInput.value = query;
3521
+ }
2459
3522
  revealLastItem() {
2460
- const reveal = () => {
2461
- const section = this.sectionLists.at(-1);
2462
- if (section?.entries.length) {
2463
- section.list.reveal(section.entries.length - 1);
3523
+ const entries = this.getVisibleMcpEntries();
3524
+ if (entries.length > 0) {
3525
+ this.list.reveal(entries[entries.length - 1]);
3526
+ }
3527
+ }
3528
+ revealAndSelectServer(serverId, serverName, connectorName) {
3529
+ if (this.searchQuery) {
3530
+ this.searchInput.value = "";
3531
+ this.searchQuery = "";
3532
+ this.delayedFilter.cancel();
3533
+ void this.filterServers();
3534
+ return false;
3535
+ }
3536
+ const entry = this.getVisibleMcpEntries().find(entry => {
3537
+ if (connectorName) {
3538
+ return entry.type === "connector-item" && entry.connector.connector.name === connectorName;
2464
3539
  }
2465
- this.cardScrollable.scanDomNode();
2466
- this.cardScrollable.setScrollPosition({
2467
- scrollTop: this.cardContainer.scrollHeight
2468
- });
2469
- };
2470
- reveal();
2471
- this.revealLastItemScheduler.value = scheduleAtNextAnimationFrame(getWindow(this.element), reveal);
2472
- }
2473
- focus() {
2474
- if (this.cardScrollableNode.style.display !== "none") {
2475
- if (this.firstCardFocusElement) {
2476
- this.firstCardFocusElement.focus();
2477
- } else {
2478
- const section = this.sectionLists[0];
2479
- if (section?.entries.length) {
2480
- section.list.setFocus([0]);
2481
- section.list.domFocus();
3540
+ if (serverId) {
3541
+ switch (entry.type) {
3542
+ case "server-item":
3543
+ case "session-server-item":
3544
+ return entry.server.id === serverId;
3545
+ case "builtin-item":
3546
+ case "connector-item":
3547
+ return entry.id === serverId || entry.activeSessionServer?.id === serverId;
3548
+ case "provider-item":
3549
+ return entry.id === serverId || entry.name === serverId;
3550
+ case "group-header":
3551
+ case "marketplace-item":
3552
+ return false;
2482
3553
  }
2483
3554
  }
3555
+ switch (entry.type) {
3556
+ case "server-item":
3557
+ return entry.server.label === serverName;
3558
+ case "session-server-item":
3559
+ return entry.server.name === serverName || entry.server.displayName === serverName;
3560
+ case "builtin-item":
3561
+ return entry.label === serverName;
3562
+ case "connector-item":
3563
+ return entry.label === serverName || entry.connector.connector.displayName === serverName;
3564
+ case "provider-item":
3565
+ return entry.name === serverName || entry.label === serverName;
3566
+ case "group-header":
3567
+ case "marketplace-item":
3568
+ return false;
3569
+ }
3570
+ });
3571
+ if (!entry) {
3572
+ return false;
3573
+ }
3574
+ this.list.reveal(entry);
3575
+ this.list.setFocus([entry]);
3576
+ this.list.setSelection([entry]);
3577
+ this.list.domFocus();
3578
+ return true;
3579
+ }
3580
+ focus() {
3581
+ const firstItem = this.getVisibleMcpEntries().find(entry => entry.type !== "group-header");
3582
+ if (firstItem) {
3583
+ this.list.setFocus([firstItem]);
3584
+ this.list.domFocus();
2484
3585
  }
2485
3586
  }
2486
3587
  updateResponsiveLayout(width) {
@@ -2493,11 +3594,12 @@ let McpListWidget = class McpListWidget extends Disposable {
2493
3594
  this.wideLayout = wide;
2494
3595
  this.element.classList.toggle("narrow-layout", narrow);
2495
3596
  this.element.classList.toggle("wide-layout", wide);
2496
- if (this.installedAddButton) {
2497
- this.installedAddButton.label = narrow ? ( localize(9151, "Add")) : ( localize(9150, "Add Server"));
2498
- }
2499
3597
  }
2500
3598
  showMcpServerActions(entry, anchor) {
3599
+ if (isConnectorMcpEntry(entry)) {
3600
+ this.showConnectorActions(entry.connector.connector, anchor);
3601
+ return;
3602
+ }
2501
3603
  const disposables = ( new DisposableStore());
2502
3604
  const actions = this.getMcpServerActions(entry, disposables);
2503
3605
  if (actions.length === 0) {
@@ -2510,35 +3612,46 @@ let McpListWidget = class McpListWidget extends Disposable {
2510
3612
  onHide: () => disposables.dispose()
2511
3613
  });
2512
3614
  }
2513
- getMcpServerActions(entry, disposables) {
3615
+ getMcpServerOutputHandler(entry) {
2514
3616
  const sessionResource = this.customizationHarnessService.activeSessionResource.get();
2515
- const currentEntry = resolveMcpEntry(entry, this.agentHostCustomizationService, sessionResource);
2516
- if (!currentEntry) {
2517
- return [];
2518
- }
2519
- entry = currentEntry;
2520
3617
  const activeSessionServer = getActiveSessionServer(entry);
2521
- const actions = this.getMcpServerManagementActions(entry, disposables);
2522
- if (!activeSessionServer && entry.type === "server-item") {
2523
- return actions;
2524
- }
2525
- const showOutput = activeSessionServer ? getMcpServerOutputHandler(
3618
+ return activeSessionServer ? getMcpServerOutputHandler(
2526
3619
  this.outputService,
2527
3620
  undefined,
2528
3621
  activeSessionServer,
2529
- undefined,
2530
- () => this.agentHostCustomizationService.showMcpServerLog(sessionResource, activeSessionServer.id)
3622
+ this._closeCustomizationEditor,
3623
+ beforeShow => this.agentHostCustomizationService.showMcpServerLog(sessionResource, activeSessionServer.id, beforeShow)
2531
3624
  ) : getMcpServerOutputHandler(
2532
3625
  this.outputService,
2533
3626
  entry.type === "session-server-item" ? undefined : entry.localServer,
2534
- undefined
3627
+ undefined,
3628
+ this._closeCustomizationEditor
3629
+ );
3630
+ }
3631
+ async showMcpServerOutput(entry) {
3632
+ const currentEntry = resolveMcpEntry(
3633
+ entry,
3634
+ this.agentHostCustomizationService,
3635
+ this.customizationHarnessService.activeSessionResource.get()
2535
3636
  );
3637
+ const showOutput = currentEntry && this.getMcpServerOutputHandler(currentEntry);
3638
+ await showOutput?.();
3639
+ }
3640
+ getMcpServerActions(entry, disposables) {
3641
+ const sessionResource = this.customizationHarnessService.activeSessionResource.get();
3642
+ const currentEntry = resolveMcpEntry(entry, this.agentHostCustomizationService, sessionResource);
3643
+ if (!currentEntry) {
3644
+ return [];
3645
+ }
3646
+ entry = currentEntry;
3647
+ const actions = this.getMcpServerManagementActions(entry, disposables);
3648
+ const showOutput = this.getMcpServerOutputHandler(entry);
2536
3649
  const outputIndex = actions.findIndex(action => action instanceof ShowServerOutputAction);
2537
3650
  if (outputIndex !== -1) {
2538
3651
  actions.splice(outputIndex, 1);
2539
3652
  }
2540
3653
  if (showOutput) {
2541
- const outputAction = disposables.add(( new Action("mcpServer.showOutput", ( localize(9165, "Show Output")), undefined, true, showOutput)));
3654
+ const outputAction = disposables.add(( new Action("mcpServer.showOutput", ( localize(11043, "Show Output")), undefined, true, showOutput)));
2542
3655
  if (outputIndex !== -1) {
2543
3656
  actions.splice(outputIndex, 0, outputAction);
2544
3657
  } else {
@@ -2551,6 +3664,9 @@ let McpListWidget = class McpListWidget extends Disposable {
2551
3664
  return actions;
2552
3665
  }
2553
3666
  getMcpServerManagementActions(entry, disposables) {
3667
+ if (entry.type === "provider-item") {
3668
+ return [disposables.add(( new Action(MCP_UNINSTALL_ACTION_ID, ( localize(11135, "Uninstall")), undefined, true, () => this.marketplaceInstallService.uninstall(entry.marketplaceRecord.resource))))];
3669
+ }
2554
3670
  if (entry.type === "session-server-item") {
2555
3671
  const actions = getActiveSessionServerOptionsActions(
2556
3672
  this.commandService,
@@ -2562,6 +3678,9 @@ let McpListWidget = class McpListWidget extends Disposable {
2562
3678
  actions.forEach(action => isDisposable(action) && disposables.add(action));
2563
3679
  return actions;
2564
3680
  }
3681
+ if (entry.type === "connector-item") {
3682
+ return [];
3683
+ }
2565
3684
  if (entry.type === "builtin-item") {
2566
3685
  const collectionId = entry.collectionId;
2567
3686
  const pluginUriStr = getPluginUriFromCollectionId(collectionId);
@@ -2594,32 +3713,32 @@ let McpListWidget = class McpListWidget extends Disposable {
2594
3713
  }
2595
3714
  }
2596
3715
  }
3716
+ const sourceAction = plugin ? undefined : this.getBuiltinMcpServerSourceAction(entry);
3717
+ if (sourceAction) {
3718
+ if (actions.length > 0) {
3719
+ actions.push(( new Separator()));
3720
+ }
3721
+ actions.push(disposables.add(sourceAction));
3722
+ }
2597
3723
  if (plugin) {
2598
3724
  if (actions.length > 0) {
2599
3725
  actions.push(( new Separator()));
2600
3726
  }
2601
- actions.push(disposables.add(( new Action("mcpServer.showPlugin", ( localize(9166, "Show Plugin")), undefined, true, async () => {
2602
- const item = {
2603
- kind: AgentPluginItemKind.Installed,
2604
- name: plugin.label,
2605
- description: plugin.fromMarketplace?.description ?? "",
2606
- marketplace: plugin.fromMarketplace?.marketplace,
2607
- plugin
2608
- };
2609
- this._onDidRequestShowPlugin.fire(item);
3727
+ actions.push(disposables.add(( new Action("mcpServer.showPlugin", ( localize(11136, "Show Plugin")), undefined, true, async () => {
3728
+ this._onDidRequestShowPlugin.fire(createInstalledPluginItem(plugin));
2610
3729
  }))));
2611
- actions.push(disposables.add(( new Action("mcpServer.uninstallPlugin", ( localize(9167, "Uninstall Plugin")), undefined, true, async () => {
3730
+ actions.push(disposables.add(( new Action("mcpServer.uninstallPlugin", ( localize(11137, "Uninstall Plugin")), undefined, true, async () => {
2612
3731
  const result = await this.dialogService.confirm({
2613
- message: ( localize(9168, "This MCP server is provided by the plugin '{0}'", plugin.label)),
3732
+ message: ( localize(11138, "This MCP server is provided by the plugin '{0}'", plugin.label)),
2614
3733
  detail: ( localize(
2615
- 9169,
3734
+ 11139,
2616
3735
  "Individual MCP servers from a plugin cannot be removed separately. Would you like to uninstall the entire plugin?"
2617
3736
  )),
2618
- primaryButton: ( localize(9170, "Uninstall Plugin")),
3737
+ primaryButton: ( localize(11140, "Uninstall Plugin")),
2619
3738
  type: "question"
2620
3739
  });
2621
3740
  if (result.confirmed) {
2622
- await plugin.remove?.();
3741
+ await removePluginWithMarketplaceOwnership(plugin, this.marketplaceInstallService);
2623
3742
  }
2624
3743
  }))));
2625
3744
  }
@@ -2637,8 +3756,14 @@ let McpListWidget = class McpListWidget extends Disposable {
2637
3756
  ["workspace", "session"]
2638
3757
  ) : [];
2639
3758
  for (const menuActions of groups) {
2640
- for (const menuAction of menuActions) {
2641
- if (isDisposable(menuAction)) {
3759
+ for (let index = 0; index < menuActions.length; index++) {
3760
+ const originalMenuAction = menuActions[index];
3761
+ if (isDisposable(originalMenuAction)) {
3762
+ disposables.add(originalMenuAction);
3763
+ }
3764
+ const menuAction = getMarketplaceMcpManagementAction(originalMenuAction, mcpServer.id, this.marketplaceInstallService);
3765
+ menuActions[index] = menuAction;
3766
+ if (menuAction !== originalMenuAction && isDisposable(menuAction)) {
2642
3767
  disposables.add(menuAction);
2643
3768
  }
2644
3769
  }
@@ -2655,7 +3780,42 @@ let McpListWidget = class McpListWidget extends Disposable {
2655
3780
  agentHostEnablementActions
2656
3781
  );
2657
3782
  }
3783
+ getBuiltinMcpServerSourceAction(entry) {
3784
+ const extensionId = entry.extensionId;
3785
+ if (extensionId) {
3786
+ return (new Action(
3787
+ "mcpServer.showExtension",
3788
+ localize(11141, "Show Extension"),
3789
+ undefined,
3790
+ true,
3791
+ async () => {
3792
+ await this.extensionsWorkbenchService.open(extensionId.value, {
3793
+ tab: ExtensionEditorTab.Features,
3794
+ feature: "mcp"
3795
+ });
3796
+ }
3797
+ ));
3798
+ }
3799
+ const localServer = entry.localServer;
3800
+ const definitions = localServer?.readDefinitions().get();
3801
+ if (!localServer || !(definitions?.server?.presentation?.origin ?? definitions?.collection?.presentation?.origin)) {
3802
+ return undefined;
3803
+ }
3804
+ return (new Action(
3805
+ "mcpServer.showConfiguration",
3806
+ localize(11142, "Show Configuration"),
3807
+ undefined,
3808
+ true,
3809
+ async () => {
3810
+ await this.commandService.executeCommand(
3811
+ McpCommandIds.ShowConfiguration,
3812
+ localServer.collection.id,
3813
+ localServer.definition.id
3814
+ );
3815
+ }
3816
+ ));
3817
+ }
2658
3818
  };
2659
- 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, IAgentPluginService)), ( __param(9, IDialogService)), ( __param(10, IConfigurationService)), ( __param(11, ICustomizationHarnessService)), ( __param(12, IAgentHostCustomizationService)), ( __param(13, IAICustomizationWorkspaceService)), ( __param(14, INotificationService)), ( __param(15, IOutputService)), ( __param(16, IMcpGalleryManifestService))], McpListWidget));
3819
+ McpListWidget = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IMcpWorkbenchService)), ( __param(2, IMcpGalleryManifestService)), ( __param(3, ICustomizationMarketplaceInstallService)), ( __param(4, IMcpService)), ( __param(5, IMcpRegistry)), ( __param(6, ICopilotConnectorsService)), ( __param(7, ICommandService)), ( __param(8, IOpenerService)), ( __param(9, IContextViewService)), ( __param(10, IContextMenuService)), ( __param(11, IHoverService)), ( __param(12, IAgentPluginService)), ( __param(13, IDialogService)), ( __param(14, IConfigurationService)), ( __param(15, ICustomizationMarketplaceService)), ( __param(16, ICustomizationHarnessService)), ( __param(17, IAgentHostCustomizationService)), ( __param(18, IAICustomizationWorkspaceService)), ( __param(19, INotificationService)), ( __param(20, IOutputService)), ( __param(21, ILabelService)), ( __param(22, IExtensionsWorkbenchService)), ( __param(23, ILogService)), ( __param(24, ITelemetryService)), ( __param(25, IWorkspaceContextService))], McpListWidget));
2660
3820
 
2661
- export { MCP_ERROR_PREVIEW_LENGTH, McpListWidget, McpServerItemRenderer, authenticateMcpServer, createBuiltinActiveSessionMcpEntries, createInstalledMcpServerDetailInput, getActiveSessionServerLifecycleAction, getActiveSessionServerOptionsActions, getActiveSessionServerPresentation, getAgentHostMcpServerEnablementActions, getBuiltinMcpServerEnablementActions, getLocalMcpServerEnablementActions, getMcpErrorPreview, getMcpServerOutputHandler, getMcpStatusPresentation, getMcpStatusRenderSignature, getServerItemContextMenuActions, getToggledMcpEnablementState, hasSameMcpMembership, isMcpServerCollectionVisible, isPrimaryMcpServerEnabled, registerMcpInlineButtonAction, setPrimaryMcpServerEnablement, shouldLoadMcpGallerySnapshot, updateMcpCardRuntimePresentation };
3821
+ export { McpListWidget, McpServerItemRenderer, authenticateMcpServer, createAgentHostMcpServerDetailInput, createBuiltinActiveSessionMcpEntries, createInstalledMcpServerDetailInput, createInstalledPluginItem, createMcpSignInButton, createProviderMcpEntries, getActiveSessionServerDefinitionUnavailable, getActiveSessionServerLifecycleAction, getActiveSessionServerOptionsActions, getActiveSessionServerPresentation, getActiveSessionServerProvenance, getAgentHostMcpServerEnablementActions, getAgentHostMcpServerSource, getBuiltinMcpServerEnablementActions, getLocalMcpServerEnablementActions, getMarketplaceMcpManagementAction, getMcpCompatibilityPresentation, getMcpEntryGroup, getMcpErrorMessage, getMcpRowKey, getMcpServerOutputHandler, getMcpStatusPresentation, getMcpStatusRenderSignature, getServerItemContextMenuActions, getToggledMcpEnablementState, hasSameMcpMembership, isMcpServerCollectionVisible, isPrimaryMcpServerEnabled, preserveMcpEntryOrder, registerMcpInlineButtonAction, registerMcpSignInButtonAction, renderMcpServerStatusActions, setPrimaryMcpServerEnablement, shouldLoadMcpGallerySnapshot, shouldShowLegacyMcpGallery, updateMcpCardRuntimePresentation, updateMcpCompatibilityMessage };