@codingame/monaco-vscode-api 36.2.7 → 37.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 (1490) hide show
  1. package/missing-services.js +566 -13
  2. package/package.json +9 -9
  3. package/services.d.ts +32 -0
  4. package/services.js +35 -5
  5. package/vscode/product.json.js +1 -1
  6. package/vscode/src/vs/base/browser/browser.d.ts +9 -0
  7. package/vscode/src/vs/base/browser/browser.js +5 -1
  8. package/vscode/src/vs/base/browser/contextmenu.d.ts +7 -1
  9. package/vscode/src/vs/base/browser/dom.d.ts +43 -17
  10. package/vscode/src/vs/base/browser/dom.js +98 -19
  11. package/vscode/src/vs/base/browser/domSanitize.d.ts +18 -0
  12. package/vscode/src/vs/base/browser/domSanitize.js +54 -9
  13. package/vscode/src/vs/base/browser/dompurify/dompurify.d.ts +443 -0
  14. package/vscode/src/vs/base/browser/indexedDB.d.ts +8 -0
  15. package/vscode/src/vs/base/browser/indexedDB.js +32 -0
  16. package/vscode/src/vs/base/browser/keyboardEvent.js +1 -1
  17. package/vscode/src/vs/base/browser/markdownRenderer.d.ts +10 -0
  18. package/vscode/src/vs/base/browser/markdownRenderer.js +74 -10
  19. package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.d.ts +2 -1
  20. package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.js +5 -2
  21. package/vscode/src/vs/base/browser/ui/animations/animations.d.ts +1 -2
  22. package/vscode/src/vs/base/browser/ui/animations/animations.js +43 -81
  23. package/vscode/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.d.ts +4 -1
  24. package/vscode/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.js +21 -5
  25. package/vscode/src/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  26. package/vscode/src/vs/base/browser/ui/contextview/contextview.d.ts +21 -1
  27. package/vscode/src/vs/base/browser/ui/contextview/contextview.js +193 -18
  28. package/vscode/src/vs/base/browser/ui/dialog/dialog.css +4 -2
  29. package/vscode/src/vs/base/browser/ui/dialog/dialog.d.ts +12 -0
  30. package/vscode/src/vs/base/browser/ui/dialog/dialog.js +23 -4
  31. package/vscode/src/vs/base/browser/ui/dropdown/dropdown.d.ts +7 -1
  32. package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +25 -7
  33. package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.d.ts +6 -1
  34. package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +14 -2
  35. package/vscode/src/vs/base/browser/ui/findinput/findInput.d.ts +4 -1
  36. package/vscode/src/vs/base/browser/ui/findinput/findInput.js +14 -28
  37. package/vscode/src/vs/base/browser/ui/findinput/findInputToggles.d.ts +9 -0
  38. package/vscode/src/vs/base/browser/ui/findinput/findInputToggles.js +28 -1
  39. package/vscode/src/vs/base/browser/ui/findinput/replaceInput.js +3 -24
  40. package/vscode/src/vs/base/browser/ui/grid/grid.d.ts +3 -3
  41. package/vscode/src/vs/base/browser/ui/grid/grid.js +5 -1
  42. package/vscode/src/vs/base/browser/ui/hover/hover.d.ts +6 -0
  43. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate.d.ts +2 -7
  44. package/vscode/src/vs/base/browser/ui/iconLabel/iconlabel.css +3 -3
  45. package/vscode/src/vs/base/browser/ui/inputbox/inputBox.d.ts +7 -0
  46. package/vscode/src/vs/base/browser/ui/inputbox/inputBox.js +14 -1
  47. package/vscode/src/vs/base/browser/ui/list/listView.d.ts +9 -3
  48. package/vscode/src/vs/base/browser/ui/list/listView.js +310 -120
  49. package/vscode/src/vs/base/browser/ui/list/listWidget.d.ts +1 -0
  50. package/vscode/src/vs/base/browser/ui/list/listWidget.js +14 -2
  51. package/vscode/src/vs/base/browser/ui/menu/menu.js +26 -10
  52. package/vscode/src/vs/base/browser/ui/radio/radio.css +117 -8
  53. package/vscode/src/vs/base/browser/ui/radio/radio.d.ts +36 -0
  54. package/vscode/src/vs/base/browser/ui/radio/radio.js +166 -10
  55. package/vscode/src/vs/base/browser/ui/sash/sash.d.ts +4 -1
  56. package/vscode/src/vs/base/browser/ui/sash/sash.js +24 -0
  57. package/vscode/src/vs/base/browser/ui/scrollbar/scrollableElement.d.ts +9 -0
  58. package/vscode/src/vs/base/browser/ui/scrollbar/scrollableElement.js +21 -3
  59. package/vscode/src/vs/base/browser/ui/selectBox/selectBox.d.ts +4 -0
  60. package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.d.ts +8 -1
  61. package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +124 -49
  62. package/vscode/src/vs/base/browser/ui/splitview/paneview.css +6 -0
  63. package/vscode/src/vs/base/browser/ui/splitview/paneview.d.ts +5 -28
  64. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +6 -26
  65. package/vscode/src/vs/base/browser/ui/splitview/splitview.js +7 -1
  66. package/vscode/src/vs/base/browser/ui/toggle/switch.css +60 -0
  67. package/vscode/src/vs/base/browser/ui/toggle/switch.d.ts +33 -0
  68. package/vscode/src/vs/base/browser/ui/toggle/switch.js +64 -0
  69. package/vscode/src/vs/base/browser/ui/toggle/toggle.js +12 -3
  70. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.d.ts +18 -3
  71. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +224 -42
  72. package/vscode/src/vs/base/browser/ui/tree/abstractTree.d.ts +32 -2
  73. package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +213 -39
  74. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +1 -0
  75. package/vscode/src/vs/base/browser/ui/tree/objectTree.d.ts +1 -0
  76. package/vscode/src/vs/base/browser/ui/tree/objectTree.js +7 -1
  77. package/vscode/src/vs/base/browser/ui/tree/tree.d.ts +2 -0
  78. package/vscode/src/vs/base/common/arrays.js +2 -2
  79. package/vscode/src/vs/base/common/assert.js +0 -1
  80. package/vscode/src/vs/base/common/async.js +2 -3
  81. package/vscode/src/vs/base/common/codicons.d.ts +71 -30
  82. package/vscode/src/vs/base/common/codiconsLibrary.d.ts +41 -0
  83. package/vscode/src/vs/base/common/codiconsLibrary.js +41 -0
  84. package/vscode/src/vs/base/common/comparers.d.ts +2 -2
  85. package/vscode/src/vs/base/common/date.d.ts +12 -0
  86. package/vscode/src/vs/base/common/date.js +14 -1
  87. package/vscode/src/vs/base/common/defaultAccount.d.ts +12 -0
  88. package/vscode/src/vs/base/common/errors.d.ts +1 -0
  89. package/vscode/src/vs/base/common/event.d.ts +5 -1
  90. package/vscode/src/vs/base/common/event.js +54 -36
  91. package/vscode/src/vs/base/common/glob.js +7 -7
  92. package/vscode/src/vs/base/common/hash.d.ts +4 -0
  93. package/vscode/src/vs/base/common/hash.js +9 -1
  94. package/vscode/src/vs/base/common/htmlContent.d.ts +8 -0
  95. package/vscode/src/vs/base/common/htmlContent.js +12 -2
  96. package/vscode/src/vs/base/common/jsonSchema.d.ts +1 -0
  97. package/vscode/src/vs/base/common/managedSettings.d.ts +12 -2
  98. package/vscode/src/vs/base/common/managedSettings.js +2 -1
  99. package/vscode/src/vs/base/common/map.js +4 -0
  100. package/vscode/src/vs/base/common/mime.js +7 -4
  101. package/vscode/src/vs/base/common/network.d.ts +5 -0
  102. package/vscode/src/vs/base/common/network.js +5 -1
  103. package/vscode/src/vs/base/common/oauth.d.ts +2 -0
  104. package/vscode/src/vs/base/common/objects.js +14 -10
  105. package/vscode/src/vs/base/common/observableInternal/base.d.ts +3 -3
  106. package/vscode/src/vs/base/common/observableInternal/logging/debugger/rpc.js +6 -0
  107. package/vscode/src/vs/base/common/observableInternal/observables/observableFromEvent.js +6 -5
  108. package/vscode/src/vs/base/common/platform.d.ts +2 -0
  109. package/vscode/src/vs/base/common/platform.js +5 -1
  110. package/vscode/src/vs/base/common/processes.js +0 -1
  111. package/vscode/src/vs/base/common/product.d.ts +22 -0
  112. package/vscode/src/vs/base/common/strings.js +13 -5
  113. package/vscode/src/vs/base/parts/ipc/common/ipc.d.ts +4 -0
  114. package/vscode/src/vs/base/parts/ipc/common/ipc.js +13 -6
  115. package/vscode/src/vs/editor/browser/config/fontMeasurements.d.ts +2 -2
  116. package/vscode/src/vs/editor/browser/config/fontMeasurements.js +18 -5
  117. package/vscode/src/vs/editor/browser/controller/dragScrolling.js +7 -13
  118. package/vscode/src/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js +2 -2
  119. package/vscode/src/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js +12 -3
  120. package/vscode/src/vs/editor/browser/editorBrowser.d.ts +5 -0
  121. package/vscode/src/vs/editor/browser/gpu/viewGpuContext.js +17 -1
  122. package/vscode/src/vs/editor/browser/services/openerService.d.ts +5 -0
  123. package/vscode/src/vs/editor/browser/services/openerService.js +59 -23
  124. package/vscode/src/vs/editor/browser/view/domLineBreaksComputer.d.ts +1 -1
  125. package/vscode/src/vs/editor/browser/view/domLineBreaksComputer.js +212 -74
  126. package/vscode/src/vs/editor/browser/viewParts/viewLines/rangeUtil.d.ts +5 -0
  127. package/vscode/src/vs/editor/browser/viewParts/viewLines/rangeUtil.js +10 -0
  128. package/vscode/src/vs/editor/browser/viewParts/viewLines/viewLine.js +20 -1
  129. package/vscode/src/vs/editor/browser/viewParts/viewLines/viewLineOptions.d.ts +1 -0
  130. package/vscode/src/vs/editor/browser/viewParts/viewLines/viewLineOptions.js +3 -1
  131. package/vscode/src/vs/editor/browser/viewParts/viewLines/viewLines.css +12 -0
  132. package/vscode/src/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.d.ts +1 -1
  133. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.d.ts +1 -0
  134. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +4 -2
  135. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines.d.ts +2 -1
  136. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js +9 -2
  137. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js +4 -18
  138. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.d.ts +8 -4
  139. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +38 -8
  140. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.d.ts +1 -1
  141. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.d.ts +14 -1
  142. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +90 -8
  143. package/vscode/src/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.d.ts +3 -1
  144. package/vscode/src/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +47 -22
  145. package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +7 -7
  146. package/vscode/src/vs/editor/browser/widget/diffEditor/features/overviewRulerFeature.js +5 -1
  147. package/vscode/src/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +1 -1
  148. package/vscode/src/vs/editor/browser/widget/diffEditor/registrations.contribution.js +5 -5
  149. package/vscode/src/vs/editor/browser/widget/diffEditor/style.css +4 -0
  150. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/colors.js +3 -3
  151. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollLayout.d.ts +71 -0
  152. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollLayout.js +159 -0
  153. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollView.d.ts +80 -0
  154. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/compressedVirtualizedScrollView.js +372 -0
  155. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.d.ts +44 -15
  156. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +324 -94
  157. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/model.d.ts +11 -2
  158. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/model.js +10 -0
  159. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorLogging.d.ts +60 -0
  160. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorLogging.js +132 -0
  161. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorOptions.d.ts +20 -0
  162. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorOptions.js +29 -0
  163. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel.d.ts +7 -4
  164. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel.js +15 -4
  165. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget.d.ts +30 -2
  166. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget.js +80 -6
  167. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.d.ts +106 -22
  168. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +377 -234
  169. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/style.css +331 -65
  170. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/virtualizedItemManager.d.ts +84 -0
  171. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/virtualizedItemManager.js +253 -0
  172. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/workbenchUIElementFactory.d.ts +21 -4
  173. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/workbenchUIElementFactory.js +9 -0
  174. package/vscode/src/vs/editor/common/config/diffEditor.d.ts +1 -0
  175. package/vscode/src/vs/editor/common/config/diffEditor.js +1 -0
  176. package/vscode/src/vs/editor/common/config/editorConfigurationSchema.js +52 -52
  177. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +54 -32
  178. package/vscode/src/vs/editor/common/config/editorOptions.js +422 -376
  179. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +72 -72
  180. package/vscode/src/vs/editor/common/cursor/cursorMoveOperations.js +1 -1
  181. package/vscode/src/vs/editor/common/cursor/cursorTypeEditOperations.js +6 -0
  182. package/vscode/src/vs/editor/common/cursor/cursorWordOperations.js +1 -1
  183. package/vscode/src/vs/editor/common/cursorEvents.d.ts +2 -2
  184. package/vscode/src/vs/editor/common/editorContextKeys.d.ts +4 -0
  185. package/vscode/src/vs/editor/common/editorContextKeys.js +62 -49
  186. package/vscode/src/vs/editor/common/languages/autoIndent.js +1 -1
  187. package/vscode/src/vs/editor/common/languages/languageConfigurationRegistry.js +4 -1
  188. package/vscode/src/vs/editor/common/languages/modesRegistry.js +1 -1
  189. package/vscode/src/vs/editor/common/languages.d.ts +2 -1
  190. package/vscode/src/vs/editor/common/languages.js +56 -56
  191. package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.d.ts +1 -0
  192. package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js +11 -0
  193. package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/bracketPairsTree.d.ts +2 -0
  194. package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/bracketPairsTree.js +50 -2
  195. package/vscode/src/vs/editor/common/model/editStack.js +1 -1
  196. package/vscode/src/vs/editor/common/model/textModel.d.ts +2 -1
  197. package/vscode/src/vs/editor/common/model/textModel.js +1 -0
  198. package/vscode/src/vs/editor/common/model.d.ts +5 -0
  199. package/vscode/src/vs/editor/common/modelLineProjectionData.d.ts +1 -1
  200. package/vscode/src/vs/editor/common/multiDiffEditor.d.ts +16 -0
  201. package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.d.ts +2 -0
  202. package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.js +9 -0
  203. package/vscode/src/vs/editor/common/standalone/standaloneEnums.d.ts +3 -1
  204. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +2 -0
  205. package/vscode/src/vs/editor/common/standaloneStrings.d.ts +1 -0
  206. package/vscode/src/vs/editor/common/standaloneStrings.js +55 -50
  207. package/vscode/src/vs/editor/common/textModelBracketPairs.d.ts +5 -0
  208. package/vscode/src/vs/editor/common/textModelEditSource.d.ts +35 -13
  209. package/vscode/src/vs/editor/common/textModelEditSource.js +15 -0
  210. package/vscode/src/vs/editor/common/textModelEvents.d.ts +20 -0
  211. package/vscode/src/vs/editor/common/textModelEvents.js +24 -2
  212. package/vscode/src/vs/editor/common/viewLayout/lineDecorations.js +1 -1
  213. package/vscode/src/vs/editor/common/viewLayout/lineHeights.js +2 -2
  214. package/vscode/src/vs/editor/common/viewLayout/viewLineRenderer.d.ts +6 -1
  215. package/vscode/src/vs/editor/common/viewLayout/viewLineRenderer.js +54 -12
  216. package/vscode/src/vs/editor/common/viewModel/inlineDecorations.d.ts +9 -1
  217. package/vscode/src/vs/editor/common/viewModel/inlineDecorations.js +11 -6
  218. package/vscode/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.d.ts +1 -1
  219. package/vscode/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.js +162 -36
  220. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +6 -2
  221. package/vscode/src/vs/editor/common/viewModel/viewModelLines.d.ts +4 -3
  222. package/vscode/src/vs/editor/common/viewModel/viewModelLines.js +17 -5
  223. package/vscode/src/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
  224. package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
  225. package/vscode/src/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
  226. package/vscode/src/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
  227. package/vscode/src/vs/editor/contrib/clipboard/browser/clipboard.js +20 -20
  228. package/vscode/src/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
  229. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionCommands.js +18 -18
  230. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
  231. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +9 -4
  232. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
  233. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionModel.d.ts +5 -0
  234. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionModel.js +144 -121
  235. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
  236. package/vscode/src/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
  237. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorDetector.d.ts +2 -0
  238. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorDetector.js +23 -2
  239. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPicker.css +3 -3
  240. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
  241. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
  242. package/vscode/src/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
  243. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  244. package/vscode/src/vs/editor/contrib/comment/browser/comment.js +6 -6
  245. package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +15 -13
  246. package/vscode/src/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  247. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
  248. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
  249. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +5 -5
  250. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  251. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
  252. package/vscode/src/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  253. package/vscode/src/vs/editor/contrib/find/browser/findController.js +19 -19
  254. package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +28 -28
  255. package/vscode/src/vs/editor/contrib/folding/browser/folding.js +21 -35
  256. package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  257. package/vscode/src/vs/editor/contrib/folding/browser/foldingModel.d.ts +2 -1
  258. package/vscode/src/vs/editor/contrib/folding/browser/foldingModel.js +19 -3
  259. package/vscode/src/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  260. package/vscode/src/vs/editor/contrib/format/browser/formatActions.js +2 -2
  261. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  262. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -16
  263. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +33 -33
  264. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  265. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
  266. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  267. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  268. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  269. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  270. package/vscode/src/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  271. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverController.js +4 -0
  272. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +3 -3
  273. package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +2 -2
  274. package/vscode/src/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  275. package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +22 -22
  276. package/vscode/src/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
  277. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +7 -7
  278. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +6 -8
  279. package/vscode/src/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  280. package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +18 -18
  281. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +16 -11
  282. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +5 -5
  283. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +21 -21
  284. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -13
  285. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.d.ts +2 -6
  286. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +46 -27
  287. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  288. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +4 -4
  289. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.d.ts +3 -2
  290. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +8 -4
  291. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.d.ts +2 -1
  292. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +10 -10
  293. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +2 -2
  294. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/telemetry.d.ts +1 -0
  295. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.d.ts +1 -1
  296. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +6 -3
  297. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  298. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +3 -13
  299. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +6 -4
  300. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.d.ts +6 -0
  301. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js +3 -1
  302. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +15 -13
  303. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +2 -2
  304. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +6 -4
  305. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js +20 -10
  306. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
  307. package/vscode/src/vs/editor/contrib/inlineProgress/browser/inlineProgress.js +2 -1
  308. package/vscode/src/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  309. package/vscode/src/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  310. package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
  311. package/vscode/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  312. package/vscode/src/vs/editor/contrib/links/browser/links.js +6 -6
  313. package/vscode/src/vs/editor/contrib/message/browser/messageController.js +1 -1
  314. package/vscode/src/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  315. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  316. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  317. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  318. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  319. package/vscode/src/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +1 -1
  320. package/vscode/src/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +11 -11
  321. package/vscode/src/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  322. package/vscode/src/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  323. package/vscode/src/vs/editor/contrib/rename/browser/rename.d.ts +1 -1
  324. package/vscode/src/vs/editor/contrib/rename/browser/rename.js +13 -13
  325. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +6 -6
  326. package/vscode/src/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js +18 -4
  327. package/vscode/src/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  328. package/vscode/src/vs/editor/contrib/snippet/browser/snippetController2.js +5 -5
  329. package/vscode/src/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  330. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  331. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +1 -1
  332. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +11 -4
  333. package/vscode/src/vs/editor/contrib/suggest/browser/media/suggest.css +19 -1
  334. package/vscode/src/vs/editor/contrib/suggest/browser/suggest.d.ts +1 -1
  335. package/vscode/src/vs/editor/contrib/suggest/browser/suggest.js +9 -9
  336. package/vscode/src/vs/editor/contrib/suggest/browser/suggestController.js +11 -11
  337. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.d.ts +10 -0
  338. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +99 -38
  339. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +3 -2
  340. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  341. package/vscode/src/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  342. package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  343. package/vscode/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  344. package/vscode/src/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  345. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  346. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  347. package/vscode/src/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  348. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  349. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  350. package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +3 -3
  351. package/vscode/src/vs/editor/standalone/browser/standaloneServices.js +12 -3
  352. package/vscode/src/vs/nls.js +1 -1
  353. package/vscode/src/vs/platform/accessibility/browser/accessibilityService.js +13 -3
  354. package/vscode/src/vs/platform/accessibility/browser/accessibleView.d.ts +8 -3
  355. package/vscode/src/vs/platform/accessibility/browser/accessibleView.js +4 -0
  356. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.d.ts +2 -0
  357. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +78 -62
  358. package/vscode/src/vs/platform/action/common/actionCommonCategories.js +6 -6
  359. package/vscode/src/vs/platform/actionWidget/browser/actionList.d.ts +118 -13
  360. package/vscode/src/vs/platform/actionWidget/browser/actionList.js +754 -175
  361. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.css +81 -72
  362. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.d.ts +4 -0
  363. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +80 -29
  364. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +24 -1
  365. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +46 -6
  366. package/vscode/src/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem.d.ts +4 -0
  367. package/vscode/src/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem.js +6 -0
  368. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.d.ts +5 -1
  369. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +36 -19
  370. package/vscode/src/vs/platform/actions/browser/toolbar.js +2 -2
  371. package/vscode/src/vs/platform/actions/common/actions.d.ts +8 -5
  372. package/vscode/src/vs/platform/actions/common/actions.js +9 -3
  373. package/vscode/src/vs/platform/actions/common/menuResetAction.js +1 -1
  374. package/vscode/src/vs/platform/actions/common/menuService.js +2 -2
  375. package/vscode/src/vs/platform/agentHost/browser/nullAgentHostService.d.ts +27 -3
  376. package/vscode/src/vs/platform/agentHost/browser/nullAgentHostService.js +49 -0
  377. package/vscode/src/vs/platform/agentHost/common/agent.d.ts +1100 -0
  378. package/vscode/src/vs/platform/agentHost/common/agent.js +61 -0
  379. package/vscode/src/vs/platform/agentHost/common/agentHostConfigurationSync.d.ts +66 -0
  380. package/vscode/src/vs/platform/agentHost/common/agentHostConfigurationSync.js +128 -0
  381. package/vscode/src/vs/platform/agentHost/common/agentHostConnectionsService.d.ts +20 -5
  382. package/vscode/src/vs/platform/agentHost/common/agentHostConnectionsService.service.d.ts +21 -7
  383. package/vscode/src/vs/platform/agentHost/common/agentHostCustomizationUri.d.ts +10 -0
  384. package/vscode/src/vs/platform/agentHost/common/agentHostCustomizationUri.js +12 -0
  385. package/vscode/src/vs/platform/agentHost/common/agentHostEnablementService.d.ts +7 -0
  386. package/vscode/src/vs/platform/agentHost/common/agentHostEnablementService.js +92 -0
  387. package/vscode/src/vs/platform/agentHost/common/agentHostEnablementService.service.d.ts +21 -0
  388. package/vscode/src/vs/platform/agentHost/common/agentHostEnablementService.service.js +6 -0
  389. package/vscode/src/vs/platform/agentHost/common/agentHostEndpointRegistry.d.ts +97 -0
  390. package/vscode/src/vs/platform/agentHost/common/agentHostMcpServer.d.ts +14 -1
  391. package/vscode/src/vs/platform/agentHost/common/agentHostResourceService.d.ts +65 -0
  392. package/vscode/src/vs/platform/agentHost/common/agentHostResourceService.js +25 -0
  393. package/vscode/src/vs/platform/agentHost/common/agentHostResourceService.service.d.ts +22 -28
  394. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +347 -0
  395. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +713 -0
  396. package/vscode/src/vs/platform/agentHost/common/agentHostSessionType.d.ts +1 -1
  397. package/vscode/src/vs/platform/agentHost/common/agentHostSessionType.js +4 -1
  398. package/vscode/src/vs/platform/agentHost/common/agentHostTelemetry.d.ts +46 -0
  399. package/vscode/src/vs/platform/agentHost/common/agentHostTelemetry.js +62 -0
  400. package/vscode/src/vs/platform/agentHost/common/agentHostUri.d.ts +65 -10
  401. package/vscode/src/vs/platform/agentHost/common/agentHostUri.js +62 -15
  402. package/vscode/src/vs/platform/agentHost/common/agentMergePrompt.d.ts +25 -0
  403. package/vscode/src/vs/platform/agentHost/common/agentMergePrompt.js +186 -0
  404. package/vscode/src/vs/platform/agentHost/common/agentServerTools.d.ts +37 -9
  405. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +638 -0
  406. package/vscode/src/vs/platform/agentHost/common/agentService.js +50 -0
  407. package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +53 -33
  408. package/vscode/src/vs/platform/agentHost/common/codexAccount.d.ts +1 -0
  409. package/vscode/src/vs/platform/agentHost/common/copilotHome.d.ts +3 -0
  410. package/vscode/src/vs/platform/agentHost/common/copilotHome.js +8 -0
  411. package/vscode/src/vs/platform/agentHost/common/customizationEnablement.d.ts +63 -0
  412. package/vscode/src/vs/platform/agentHost/common/customizationEnablement.js +62 -0
  413. package/vscode/src/vs/platform/agentHost/common/meta/agentFeedbackAnnotations.d.ts +128 -0
  414. package/vscode/src/vs/platform/agentHost/common/meta/agentToolCallMeta.d.ts +81 -0
  415. package/vscode/src/vs/platform/agentHost/common/meta/agentWorkspaceContinuationMeta.d.ts +8 -0
  416. package/vscode/src/vs/platform/agentHost/common/meta/codexAccount.d.ts +28 -0
  417. package/vscode/src/vs/platform/agentHost/common/meta/codexAccount.js +69 -0
  418. package/vscode/src/vs/platform/agentHost/common/reconnectPolicy.d.ts +29 -0
  419. package/vscode/src/vs/platform/agentHost/common/reconnectPolicy.js +16 -0
  420. package/vscode/src/vs/platform/agentHost/common/reconnectingTransport.d.ts +37 -0
  421. package/vscode/src/vs/platform/agentHost/common/relayTransport.d.ts +26 -5
  422. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostLocationPreference.d.ts +7 -0
  423. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostService.d.ts +247 -23
  424. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostService.js +173 -62
  425. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostService.service.d.ts +23 -37
  426. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.d.ts +67 -0
  427. package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.js +22 -0
  428. package/vscode/src/vs/platform/agentHost/common/sshRemoteAgentHost.d.ts +243 -0
  429. package/vscode/src/vs/platform/agentHost/common/sshRemoteAgentHost.service.d.ts +65 -8
  430. package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +20 -8
  431. package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +2 -0
  432. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-annotations/actions.d.ts +3 -7
  433. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-annotations/state.d.ts +20 -12
  434. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-automation/actions.d.ts +117 -0
  435. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-automation/commands.d.ts +102 -0
  436. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-automation/state.d.ts +309 -0
  437. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-automation/state.js +20 -0
  438. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-automation-run/actions.d.ts +74 -0
  439. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-automation-run/state.d.ts +215 -0
  440. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-automation-run/state.js +17 -0
  441. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/actions.d.ts +34 -2
  442. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/commands.d.ts +1 -0
  443. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/state.d.ts +53 -0
  444. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/actions.d.ts +193 -17
  445. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/commands.d.ts +82 -7
  446. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/commands.js +9 -0
  447. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/state.d.ts +373 -62
  448. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/state.js +16 -2
  449. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-resource-watch/commands.d.ts +1 -1
  450. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-resource-watch/state.d.ts +1 -0
  451. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/commands.d.ts +30 -6
  452. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/state.d.ts +67 -2
  453. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/actions.d.ts +138 -9
  454. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/commands.d.ts +39 -40
  455. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/state.d.ts +288 -57
  456. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/state.js +13 -2
  457. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-terminal/state.d.ts +47 -4
  458. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-terminal/state.js +6 -1
  459. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +1 -0
  460. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/actions.d.ts +29 -5
  461. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/actions.js +21 -0
  462. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/commands.d.ts +294 -8
  463. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/errors.d.ts +186 -0
  464. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/errors.js +11 -0
  465. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/messages.d.ts +17 -4
  466. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/notifications.d.ts +60 -0
  467. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/notifications.js +9 -0
  468. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/state.d.ts +5 -5
  469. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +1 -1
  470. package/vscode/src/vs/platform/agentHost/common/state/protocol/notifications.d.ts +1 -1
  471. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +2 -0
  472. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +13 -2
  473. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.js +1 -0
  474. package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +429 -23
  475. package/vscode/src/vs/platform/agentHost/common/state/sessionState.js +387 -2
  476. package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.d.ts +57 -0
  477. package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.js +18 -0
  478. package/vscode/src/vs/platform/agentHost/common/tunnelAgentHost.d.ts +146 -14
  479. package/vscode/src/vs/platform/agentHost/common/tunnelAgentHost.js +1 -1
  480. package/vscode/src/vs/platform/agentPlugins/common/agentPluginParser.d.ts +12 -0
  481. package/vscode/src/vs/platform/agentPlugins/common/agentPluginParser.js +58 -0
  482. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +67 -16
  483. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +200 -45
  484. package/vscode/src/vs/platform/assignment/common/assignment.d.ts +119 -0
  485. package/vscode/src/vs/platform/assignment/common/assignment.js +53 -0
  486. package/vscode/src/vs/platform/browserView/common/browserPermissions.js +14 -14
  487. package/vscode/src/vs/platform/browserView/common/browserView.d.ts +150 -27
  488. package/vscode/src/vs/platform/browserView/common/browserView.js +27 -1
  489. package/vscode/src/vs/platform/browserView/common/browserViewTelemetry.d.ts +3 -1
  490. package/vscode/src/vs/platform/browserView/common/cdp/types.d.ts +19 -7
  491. package/vscode/src/vs/platform/chat/common/chatSettings.d.ts +21 -0
  492. package/vscode/src/vs/platform/chat/common/chatSettings.js +50 -0
  493. package/vscode/src/vs/platform/configuration/common/configuration.d.ts +1 -1
  494. package/vscode/src/vs/platform/configuration/common/configurationModels.d.ts +1 -0
  495. package/vscode/src/vs/platform/configuration/common/configurationModels.js +90 -6
  496. package/vscode/src/vs/platform/configuration/common/configurationRegistry.d.ts +50 -0
  497. package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +58 -12
  498. package/vscode/src/vs/platform/configuration/common/configurations.js +1 -2
  499. package/vscode/src/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  500. package/vscode/src/vs/platform/contextkey/common/contextkey.js +12 -11
  501. package/vscode/src/vs/platform/contextkey/common/contextkeys.d.ts +1 -0
  502. package/vscode/src/vs/platform/contextkey/common/contextkeys.js +12 -11
  503. package/vscode/src/vs/platform/contextkey/common/scanner.js +5 -5
  504. package/vscode/src/vs/platform/contextview/browser/contextMenuHandler.js +2 -1
  505. package/vscode/src/vs/platform/contextview/browser/contextView.d.ts +3 -1
  506. package/vscode/src/vs/platform/contextview/browser/contextView.service.d.ts +1 -1
  507. package/vscode/src/vs/platform/contextview/browser/contextViewService.d.ts +1 -1
  508. package/vscode/src/vs/platform/contextview/browser/contextViewService.js +3 -2
  509. package/vscode/src/vs/platform/dataChannel/browser/forwardingTelemetryService.d.ts +1 -1
  510. package/vscode/src/vs/platform/dataChannel/common/dataChannel.d.ts +42 -0
  511. package/vscode/src/vs/platform/dataChannel/common/dataChannel.js +73 -2
  512. package/vscode/src/vs/platform/dataChannel/common/dataChannel.service.d.ts +13 -1
  513. package/vscode/src/vs/platform/dataChannel/common/dataChannel.service.js +2 -1
  514. package/vscode/src/vs/platform/defaultAccount/common/defaultAccount.d.ts +20 -3
  515. package/vscode/src/vs/platform/defaultAccount/common/defaultAccount.js +3 -1
  516. package/vscode/src/vs/platform/defaultAccount/common/defaultAccount.service.d.ts +7 -4
  517. package/vscode/src/vs/platform/dialogs/common/dialogs.d.ts +17 -21
  518. package/vscode/src/vs/platform/dialogs/common/dialogs.js +9 -12
  519. package/vscode/src/vs/platform/dnd/browser/dnd.d.ts +58 -0
  520. package/vscode/src/vs/platform/dnd/browser/dnd.js +18 -3
  521. package/vscode/src/vs/platform/environment/common/argv.d.ts +2 -0
  522. package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryManifest.d.ts +1 -0
  523. package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryManifest.js +2 -1
  524. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +2 -1
  525. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +18 -17
  526. package/vscode/src/vs/platform/extensionManagement/common/extensionNls.js +1 -1
  527. package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +7 -7
  528. package/vscode/src/vs/platform/extensionRecommendations/common/extensionRecommendations.d.ts +1 -1
  529. package/vscode/src/vs/platform/extensions/common/extensionValidator.js +19 -19
  530. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +8 -0
  531. package/vscode/src/vs/platform/extensions/common/extensions.js +2 -1
  532. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.d.ts +15 -3
  533. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +15 -3
  534. package/vscode/src/vs/platform/files/browser/htmlFileSystemProvider.js +2 -2
  535. package/vscode/src/vs/platform/files/common/files.d.ts +2 -2
  536. package/vscode/src/vs/platform/files/common/files.js +6 -6
  537. package/vscode/src/vs/platform/github/common/githubPullRequestService.d.ts +182 -0
  538. package/vscode/src/vs/platform/github/common/githubTypes.d.ts +30 -0
  539. package/vscode/src/vs/platform/history/browser/contextScopedHistoryWidget.js +3 -3
  540. package/vscode/src/vs/platform/hover/browser/hover.d.ts +1 -1
  541. package/vscode/src/vs/platform/hover/browser/hoverService.d.ts +5 -0
  542. package/vscode/src/vs/platform/hover/browser/hoverService.js +16 -3
  543. package/vscode/src/vs/platform/hover/browser/hoverWidget.d.ts +1 -0
  544. package/vscode/src/vs/platform/hover/browser/hoverWidget.js +24 -7
  545. package/vscode/src/vs/platform/hover/browser/updatableHoverWidget.js +3 -2
  546. package/vscode/src/vs/platform/keybinding/common/abstractKeybindingService.js +21 -5
  547. package/vscode/src/vs/platform/label/common/label.d.ts +17 -0
  548. package/vscode/src/vs/platform/label/common/label.service.d.ts +4 -2
  549. package/vscode/src/vs/platform/languagePacks/common/languagePacks.js +1 -1
  550. package/vscode/src/vs/platform/languagePacks/common/localizedStrings.js +3 -3
  551. package/vscode/src/vs/platform/list/browser/listService.d.ts +1 -1
  552. package/vscode/src/vs/platform/list/browser/listService.js +29 -29
  553. package/vscode/src/vs/platform/localTranscription/common/localTranscription.d.ts +53 -0
  554. package/vscode/src/vs/platform/localTranscription/common/localTranscription.js +13 -0
  555. package/vscode/src/vs/platform/localTranscription/common/localTranscription.service.d.ts +84 -0
  556. package/vscode/src/vs/platform/localTranscription/common/localTranscription.service.js +6 -0
  557. package/vscode/src/vs/platform/log/common/log.d.ts +2 -2
  558. package/vscode/src/vs/platform/log/common/log.js +6 -6
  559. package/vscode/src/vs/platform/markers/common/markerService.js +2 -2
  560. package/vscode/src/vs/platform/markers/common/markers.js +6 -6
  561. package/vscode/src/vs/platform/mcp/common/mcpManagement.d.ts +18 -0
  562. package/vscode/src/vs/platform/mcp/common/mcpManagement.js +9 -1
  563. package/vscode/src/vs/platform/mcp/common/mcpManagement.service.d.ts +18 -1
  564. package/vscode/src/vs/platform/mcp/common/mcpManagementService.d.ts +13 -3
  565. package/vscode/src/vs/platform/mcp/common/mcpManagementService.js +40 -11
  566. package/vscode/src/vs/platform/mcp/common/mcpPlatformTypes.d.ts +1 -0
  567. package/vscode/src/vs/platform/meteredConnection/common/meteredConnection.config.contribution.js +5 -5
  568. package/vscode/src/vs/platform/meteredConnection/common/meteredConnection.service.d.ts +4 -0
  569. package/vscode/src/vs/platform/native/common/native.d.ts +116 -10
  570. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.service.d.ts +5 -1
  571. package/vscode/src/vs/platform/notification/common/notification.js +3 -3
  572. package/vscode/src/vs/platform/opener/common/opener.d.ts +5 -0
  573. package/vscode/src/vs/platform/opener/common/opener.js +2 -1
  574. package/vscode/src/vs/platform/opener/common/opener.service.d.ts +1 -1
  575. package/vscode/src/vs/platform/policy/common/copilotManagedSettings.d.ts +98 -24
  576. package/vscode/src/vs/platform/policy/common/copilotManagedSettings.js +100 -7
  577. package/vscode/src/vs/platform/policy/common/copilotManagedSettings.service.d.ts +13 -1
  578. package/vscode/src/vs/platform/policy/common/copilotManagedSettings.service.js +2 -1
  579. package/vscode/src/vs/platform/policy/common/managedSettingsFreshness.d.ts +58 -0
  580. package/vscode/src/vs/platform/policy/common/managedSettingsFreshness.js +35 -0
  581. package/vscode/src/vs/platform/policy/common/policy.d.ts +18 -0
  582. package/vscode/src/vs/platform/policy/common/policy.js +50 -5
  583. package/vscode/src/vs/platform/policy/common/policy.service.d.ts +3 -1
  584. package/vscode/src/vs/platform/product/common/product.js +3 -3
  585. package/vscode/src/vs/platform/quickinput/browser/media/quickInput.css +45 -4
  586. package/vscode/src/vs/platform/quickinput/browser/quickInput.d.ts +2 -2
  587. package/vscode/src/vs/platform/quickinput/browser/quickInput.js +10 -10
  588. package/vscode/src/vs/platform/quickinput/browser/quickInputActions.js +6 -6
  589. package/vscode/src/vs/platform/quickinput/browser/quickInputBox.d.ts +1 -0
  590. package/vscode/src/vs/platform/quickinput/browser/quickInputBox.js +3 -0
  591. package/vscode/src/vs/platform/quickinput/browser/quickInputController.d.ts +5 -0
  592. package/vscode/src/vs/platform/quickinput/browser/quickInputController.js +80 -14
  593. package/vscode/src/vs/platform/quickinput/browser/quickInputList.js +8 -1
  594. package/vscode/src/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  595. package/vscode/src/vs/platform/quickinput/browser/quickPickPin.js +2 -2
  596. package/vscode/src/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  597. package/vscode/src/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js +2 -0
  598. package/vscode/src/vs/platform/quickinput/browser/tree/quickTree.js +1 -1
  599. package/vscode/src/vs/platform/quickinput/common/quickInput.d.ts +3 -0
  600. package/vscode/src/vs/platform/remoteTunnel/common/remoteTunnel.service.d.ts +15 -0
  601. package/vscode/src/vs/platform/remoteTunnel/common/remoteTunnel.service.js +6 -0
  602. package/vscode/src/vs/platform/request/common/request.d.ts +1 -1
  603. package/vscode/src/vs/platform/request/common/request.js +46 -27
  604. package/vscode/src/vs/platform/sandbox/common/sandboxHelperService.d.ts +2 -0
  605. package/vscode/src/vs/platform/sandbox/common/settings.d.ts +2 -6
  606. package/vscode/src/vs/platform/sandbox/common/settings.js +0 -4
  607. package/vscode/src/vs/platform/sandbox/common/terminalSandboxMxcRuntime.service.d.ts +1 -1
  608. package/vscode/src/vs/platform/telemetry/common/errorTelemetry.d.ts +1 -1
  609. package/vscode/src/vs/platform/telemetry/common/telemetry.service.d.ts +2 -2
  610. package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +4 -2
  611. package/vscode/src/vs/platform/terminal/common/autoApprove/gitAutoApproveRules.d.ts +6 -0
  612. package/vscode/src/vs/platform/terminal/common/autoApprove/gitAutoApproveRules.js +16 -0
  613. package/vscode/src/vs/platform/terminal/common/autoApprove/powershellAutoApproveRules.d.ts +8 -0
  614. package/vscode/src/vs/platform/terminal/common/autoApprove/powershellAutoApproveRules.js +26 -0
  615. package/vscode/src/vs/platform/terminal/common/autoApprove/sortAutoApproveRules.d.ts +4 -0
  616. package/vscode/src/vs/platform/terminal/common/autoApprove/sortAutoApproveRules.js +9 -0
  617. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/terminalCommand.d.ts +1 -1
  618. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetectionCapability.d.ts +1 -0
  619. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetectionCapability.js +6 -1
  620. package/vscode/src/vs/platform/terminal/common/terminal.d.ts +4 -0
  621. package/vscode/src/vs/platform/terminal/common/terminal.js +3 -1
  622. package/vscode/src/vs/platform/terminal/common/terminalPlatformConfiguration.js +34 -34
  623. package/vscode/src/vs/platform/terminal/common/terminalProfiles.js +1 -1
  624. package/vscode/src/vs/platform/theme/browser/defaultStyles.js +4 -1
  625. package/vscode/src/vs/platform/theme/common/colorUtils.js +2 -2
  626. package/vscode/src/vs/platform/theme/common/colors/baseColors.js +19 -19
  627. package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +8 -8
  628. package/vscode/src/vs/platform/theme/common/colors/editorColors.js +95 -95
  629. package/vscode/src/vs/platform/theme/common/colors/inputColors.js +48 -48
  630. package/vscode/src/vs/platform/theme/common/colors/listColors.js +36 -36
  631. package/vscode/src/vs/platform/theme/common/colors/menuColors.js +7 -7
  632. package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +11 -11
  633. package/vscode/src/vs/platform/theme/common/colors/miscColors.js +16 -16
  634. package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +10 -10
  635. package/vscode/src/vs/platform/theme/common/colors/searchColors.js +3 -3
  636. package/vscode/src/vs/platform/theme/common/iconRegistry.js +6 -6
  637. package/vscode/src/vs/platform/theme/common/sizes/baseSizes.d.ts +13 -0
  638. package/vscode/src/vs/platform/theme/common/sizes/baseSizes.js +37 -27
  639. package/vscode/src/vs/platform/theme/common/themeService.d.ts +36 -0
  640. package/vscode/src/vs/platform/theme/common/tokenClassificationRegistry.js +42 -42
  641. package/vscode/src/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  642. package/vscode/src/vs/platform/url/common/trustedDomains.d.ts +8 -0
  643. package/vscode/src/vs/platform/url/common/trustedDomains.js +12 -3
  644. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.d.ts +2 -2
  645. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +1 -1
  646. package/vscode/src/vs/platform/userDataSync/common/abstractSynchronizer.js +2 -2
  647. package/vscode/src/vs/platform/userDataSync/common/keybindingsSync.js +2 -2
  648. package/vscode/src/vs/platform/userDataSync/common/settingsSync.js +1 -1
  649. package/vscode/src/vs/platform/userDataSync/common/userDataSync.js +5 -5
  650. package/vscode/src/vs/platform/userDataSync/common/userDataSyncMachines.js +1 -1
  651. package/vscode/src/vs/platform/userDataSync/common/userDataSyncStoreService.d.ts +2 -2
  652. package/vscode/src/vs/platform/userInteraction/browser/userInteractionServiceImpl.js +2 -3
  653. package/vscode/src/vs/platform/webWorker/browser/webWorkerServiceImpl.js +8 -5
  654. package/vscode/src/vs/platform/window/common/window.d.ts +13 -0
  655. package/vscode/src/vs/platform/window/common/window.js +13 -1
  656. package/vscode/src/vs/platform/workspace/common/workspace.d.ts +2 -2
  657. package/vscode/src/vs/platform/workspace/common/workspace.js +1 -1
  658. package/vscode/src/vs/workbench/api/browser/statusBarExtensionPoint.js +13 -13
  659. package/vscode/src/vs/workbench/api/common/extHost.api.impl.d.ts +2 -0
  660. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +51 -21
  661. package/vscode/src/vs/workbench/api/common/extHost.protocol.d.ts +34 -8
  662. package/vscode/src/vs/workbench/api/common/extHostAgentEditorComments.d.ts +2 -1
  663. package/vscode/src/vs/workbench/api/common/extHostAgentEditorComments.js +20 -3
  664. package/vscode/src/vs/workbench/api/common/extHostAuthentication.d.ts +31 -7
  665. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +46 -15
  666. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +18 -11
  667. package/vscode/src/vs/workbench/api/common/extHostChatContext.d.ts +10 -5
  668. package/vscode/src/vs/workbench/api/common/extHostChatContext.js +40 -52
  669. package/vscode/src/vs/workbench/api/common/extHostChatInputNotification.js +9 -1
  670. package/vscode/src/vs/workbench/api/common/extHostCommands.d.ts +4 -4
  671. package/vscode/src/vs/workbench/api/common/extHostCommands.js +1 -1
  672. package/vscode/src/vs/workbench/api/common/extHostComments.js +7 -7
  673. package/vscode/src/vs/workbench/api/common/extHostCustomEditors.js +3 -3
  674. package/vscode/src/vs/workbench/api/common/extHostDataChannels.d.ts +35 -3
  675. package/vscode/src/vs/workbench/api/common/extHostDataChannels.js +170 -11
  676. package/vscode/src/vs/workbench/api/common/extHostDiagnostics.js +6 -2
  677. package/vscode/src/vs/workbench/api/common/extHostEmbedding.d.ts +1 -0
  678. package/vscode/src/vs/workbench/api/common/extHostEmbedding.js +7 -3
  679. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +3 -3
  680. package/vscode/src/vs/workbench/api/common/extHostFileSystemConsumer.d.ts +1 -1
  681. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +11 -11
  682. package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +6 -6
  683. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +7 -4
  684. package/vscode/src/vs/workbench/api/common/extHostLogService.js +1 -1
  685. package/vscode/src/vs/workbench/api/common/extHostMcp.js +12 -4
  686. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
  687. package/vscode/src/vs/workbench/api/common/extHostSCM.js +3 -3
  688. package/vscode/src/vs/workbench/api/common/extHostStatusBar.js +2 -2
  689. package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +1 -1
  690. package/vscode/src/vs/workbench/api/common/extHostTerminalService.d.ts +3 -1
  691. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +27 -17
  692. package/vscode/src/vs/workbench/api/common/extHostTimeline.js +1 -1
  693. package/vscode/src/vs/workbench/api/common/extHostTunnelService.js +2 -2
  694. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.d.ts +14 -7
  695. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +63 -19
  696. package/vscode/src/vs/workbench/api/common/extHostTypes.d.ts +17 -7
  697. package/vscode/src/vs/workbench/api/common/extHostTypes.js +8 -5
  698. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
  699. package/vscode/src/vs/workbench/api/common/extHostXaaAuthProvider.d.ts +8 -0
  700. package/vscode/src/vs/workbench/api/common/extHostXaaAuthProvider.js +20 -16
  701. package/vscode/src/vs/workbench/api/common/jsonValidationExtensionPoint.js +87 -11
  702. package/vscode/src/vs/workbench/browser/actions/developerActions.js +437 -241
  703. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +172 -137
  704. package/vscode/src/vs/workbench/browser/actions/menuMotion.d.ts +10 -0
  705. package/vscode/src/vs/workbench/browser/actions/menuMotion.js +14 -0
  706. package/vscode/src/vs/workbench/browser/actions/policyDiagnosticsMarkdown.d.ts +4 -0
  707. package/vscode/src/vs/workbench/browser/actions/policyDiagnosticsMarkdown.js +32 -0
  708. package/vscode/src/vs/workbench/browser/actions/textInputActions.js +6 -6
  709. package/vscode/src/vs/workbench/browser/actions/windowActions.js +76 -49
  710. package/vscode/src/vs/workbench/browser/actions/workspaceActions.js +21 -21
  711. package/vscode/src/vs/workbench/browser/actions/workspaceCommands.js +4 -4
  712. package/vscode/src/vs/workbench/browser/contextkeys.d.ts +5 -4
  713. package/vscode/src/vs/workbench/browser/contextkeys.js +16 -12
  714. package/vscode/src/vs/workbench/browser/editor.js +2 -2
  715. package/vscode/src/vs/workbench/browser/labels.js +7 -5
  716. package/vscode/src/vs/workbench/browser/media/floatingPanels.css +524 -82
  717. package/vscode/src/vs/workbench/browser/part.js +10 -8
  718. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.d.ts +64 -8
  719. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +152 -50
  720. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activityaction.css +2 -2
  721. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +29 -34
  722. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.d.ts +2 -0
  723. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +15 -5
  724. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/media/auxiliaryBarPart.css +6 -1
  725. package/vscode/src/vs/workbench/browser/parts/compositeBar.js +1 -1
  726. package/vscode/src/vs/workbench/browser/parts/compositeBarActions.js +9 -9
  727. package/vscode/src/vs/workbench/browser/parts/compositePart.d.ts +2 -0
  728. package/vscode/src/vs/workbench/browser/parts/compositePart.js +13 -10
  729. package/vscode/src/vs/workbench/browser/parts/dialogs/dialog.d.ts +2 -1
  730. package/vscode/src/vs/workbench/browser/parts/dialogs/dialog.js +4 -3
  731. package/vscode/src/vs/workbench/browser/parts/editor/auxiliaryEditorPart.js +6 -4
  732. package/vscode/src/vs/workbench/browser/parts/editor/binaryDiffEditor.js +1 -1
  733. package/vscode/src/vs/workbench/browser/parts/editor/binaryEditor.js +3 -3
  734. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbs.d.ts +7 -4
  735. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbs.js +50 -38
  736. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsControl.d.ts +27 -1
  737. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsControl.js +175 -35
  738. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsModel.d.ts +9 -2
  739. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsModel.js +53 -7
  740. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.d.ts +1 -1
  741. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.js +1 -1
  742. package/vscode/src/vs/workbench/browser/parts/editor/diffEditorCommands.d.ts +4 -0
  743. package/vscode/src/vs/workbench/browser/parts/editor/diffEditorCommands.js +43 -170
  744. package/vscode/src/vs/workbench/browser/parts/editor/diffEditorCommandsService.d.ts +28 -0
  745. package/vscode/src/vs/workbench/browser/parts/editor/diffEditorCommandsService.js +227 -0
  746. package/vscode/src/vs/workbench/browser/parts/editor/diffEditorCommandsService.service.d.ts +24 -0
  747. package/vscode/src/vs/workbench/browser/parts/editor/diffEditorCommandsService.service.js +6 -0
  748. package/vscode/src/vs/workbench/browser/parts/editor/editor.d.ts +31 -0
  749. package/vscode/src/vs/workbench/browser/parts/editor/editor.js +2 -0
  750. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.d.ts +8 -1
  751. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +179 -141
  752. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +25 -25
  753. package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +23 -5
  754. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupView.d.ts +11 -4
  755. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupView.js +81 -18
  756. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupWatermark.js +12 -12
  757. package/vscode/src/vs/workbench/browser/parts/editor/editorHeaderControl.d.ts +33 -0
  758. package/vscode/src/vs/workbench/browser/parts/editor/editorHeaderControl.js +215 -0
  759. package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +2 -2
  760. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.d.ts +8 -10
  761. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.js +33 -23
  762. package/vscode/src/vs/workbench/browser/parts/editor/editorParts.d.ts +3 -0
  763. package/vscode/src/vs/workbench/browser/parts/editor/editorParts.js +37 -13
  764. package/vscode/src/vs/workbench/browser/parts/editor/editorPlaceholder.js +10 -10
  765. package/vscode/src/vs/workbench/browser/parts/editor/editorQuickAccess.js +5 -5
  766. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +66 -66
  767. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.d.ts +18 -5
  768. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.js +94 -21
  769. package/vscode/src/vs/workbench/browser/parts/editor/editorTitleControl.d.ts +11 -7
  770. package/vscode/src/vs/workbench/browser/parts/editor/editorTitleControl.js +45 -53
  771. package/vscode/src/vs/workbench/browser/parts/editor/editorTypePicker.d.ts +37 -0
  772. package/vscode/src/vs/workbench/browser/parts/editor/editorTypePicker.js +96 -0
  773. package/vscode/src/vs/workbench/browser/parts/editor/editorWithViewState.d.ts +7 -0
  774. package/vscode/src/vs/workbench/browser/parts/editor/editorWithViewState.js +3 -0
  775. package/vscode/src/vs/workbench/browser/parts/editor/editorsObserver.js +13 -15
  776. package/vscode/src/vs/workbench/browser/parts/editor/media/breadcrumbscontrol.css +42 -0
  777. package/vscode/src/vs/workbench/browser/parts/editor/media/editorgroupview.css +9 -0
  778. package/vscode/src/vs/workbench/browser/parts/editor/media/modalEditorPart.css +6 -1
  779. package/vscode/src/vs/workbench/browser/parts/editor/media/multieditortabscontrol.css +8 -12
  780. package/vscode/src/vs/workbench/browser/parts/editor/media/singleeditortabscontrol.css +20 -7
  781. package/vscode/src/vs/workbench/browser/parts/editor/modalEditorPart.js +29 -5
  782. package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.d.ts +14 -3
  783. package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.js +154 -72
  784. package/vscode/src/vs/workbench/browser/parts/editor/multiRowEditorTabsControl.d.ts +6 -2
  785. package/vscode/src/vs/workbench/browser/parts/editor/multiRowEditorTabsControl.js +18 -3
  786. package/vscode/src/vs/workbench/browser/parts/editor/noEditorTabsControl.d.ts +1 -0
  787. package/vscode/src/vs/workbench/browser/parts/editor/noEditorTabsControl.js +1 -0
  788. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -1
  789. package/vscode/src/vs/workbench/browser/parts/editor/singleEditorTabsControl.d.ts +1 -0
  790. package/vscode/src/vs/workbench/browser/parts/editor/singleEditorTabsControl.js +34 -21
  791. package/vscode/src/vs/workbench/browser/parts/editor/textCodeEditor.js +1 -1
  792. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.d.ts +3 -1
  793. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +43 -8
  794. package/vscode/src/vs/workbench/browser/parts/editor/textEditor.js +1 -1
  795. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.d.ts +11 -3
  796. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +125 -30
  797. package/vscode/src/vs/workbench/browser/parts/media/globalCompositeBar.css +15 -0
  798. package/vscode/src/vs/workbench/browser/parts/media/paneCompositePart.css +12 -0
  799. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsActions.js +22 -22
  800. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsAlerts.js +3 -3
  801. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCenter.js +21 -10
  802. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +14 -14
  803. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsList.d.ts +1 -0
  804. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsList.js +19 -6
  805. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsStatus.js +14 -14
  806. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.d.ts +2 -0
  807. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +48 -13
  808. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.d.ts +11 -1
  809. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +16 -12
  810. package/vscode/src/vs/workbench/browser/parts/notifications/pendingNotificationToasts.d.ts +13 -0
  811. package/vscode/src/vs/workbench/browser/parts/notifications/pendingNotificationToasts.js +64 -0
  812. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.js +4 -4
  813. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.d.ts +5 -23
  814. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.js +35 -43
  815. package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +27 -27
  816. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +3 -3
  817. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarActions.js +2 -2
  818. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.d.ts +3 -0
  819. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.js +10 -1
  820. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.d.ts +1 -0
  821. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +16 -12
  822. package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarActions.js +15 -15
  823. package/vscode/src/vs/workbench/browser/parts/titlebar/windowTitle.js +2 -2
  824. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +1 -1
  825. package/vscode/src/vs/workbench/browser/parts/views/media/views.css +1 -1
  826. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +13 -10
  827. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +4 -4
  828. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +5 -5
  829. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +8 -8
  830. package/vscode/src/vs/workbench/browser/quickaccess.js +1 -1
  831. package/vscode/src/vs/workbench/browser/web.api.d.ts +10 -0
  832. package/vscode/src/vs/workbench/browser/window.js +17 -17
  833. package/vscode/src/vs/workbench/browser/workbench.contribution.js +276 -232
  834. package/vscode/src/vs/workbench/common/configuration.d.ts +1 -0
  835. package/vscode/src/vs/workbench/common/configuration.js +12 -9
  836. package/vscode/src/vs/workbench/common/contextkeys.d.ts +5 -1
  837. package/vscode/src/vs/workbench/common/contextkeys.js +102 -88
  838. package/vscode/src/vs/workbench/common/editor/diffEditorInput.js +2 -1
  839. package/vscode/src/vs/workbench/common/editor/sideBySideEditorInput.js +1 -1
  840. package/vscode/src/vs/workbench/common/editor/textEditorModel.js +1 -1
  841. package/vscode/src/vs/workbench/common/editor.d.ts +25 -1
  842. package/vscode/src/vs/workbench/common/editor.js +11 -5
  843. package/vscode/src/vs/workbench/common/notifications.d.ts +7 -0
  844. package/vscode/src/vs/workbench/common/notifications.js +21 -7
  845. package/vscode/src/vs/workbench/common/theme.d.ts +30 -0
  846. package/vscode/src/vs/workbench/common/theme.js +402 -167
  847. package/vscode/src/vs/workbench/common/views.d.ts +1 -1
  848. package/vscode/src/vs/workbench/common/views.js +4 -4
  849. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.d.ts +4 -1
  850. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +230 -162
  851. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.js +12 -12
  852. package/vscode/src/vs/workbench/contrib/accessibility/browser/editorAccessibilityHelp.d.ts +1 -0
  853. package/vscode/src/vs/workbench/contrib/accessibility/browser/editorAccessibilityHelp.js +14 -1
  854. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/voiceModeOnboarding.service.d.ts +19 -0
  855. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/voiceModeOnboarding.service.js +6 -0
  856. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.d.ts +46 -0
  857. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.js +31 -0
  858. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoiceColors.d.ts +2 -0
  859. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoiceColors.js +26 -0
  860. package/vscode/src/vs/workbench/contrib/browserView/common/browserEditorInput.d.ts +8 -1
  861. package/vscode/src/vs/workbench/contrib/browserView/common/browserEditorInput.js +82 -36
  862. package/vscode/src/vs/workbench/contrib/browserView/common/browserView.d.ts +55 -27
  863. package/vscode/src/vs/workbench/contrib/browserView/common/browserView.js +190 -96
  864. package/vscode/src/vs/workbench/contrib/browserView/common/browserView.service.d.ts +11 -6
  865. package/vscode/src/vs/workbench/contrib/browserView/common/browserZoomService.d.ts +7 -7
  866. package/vscode/src/vs/workbench/contrib/browserView/common/browserZoomService.service.d.ts +12 -12
  867. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.d.ts +17 -11
  868. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +132 -123
  869. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.service.d.ts +6 -4
  870. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +121 -0
  871. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +276 -0
  872. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.service.d.ts +16 -23
  873. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.service.d.ts +34 -3
  874. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostImportConversationStore.service.d.ts +26 -0
  875. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostImportConversationStore.service.js +6 -0
  876. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLegacyMigration.d.ts +50 -0
  877. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLegacyMigration.js +97 -0
  878. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.service.d.ts +12 -0
  879. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostProtectedResourcesService.service.d.ts +32 -0
  880. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostProtectedResourcesService.service.js +6 -0
  881. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectorySynchronizer.service.d.ts +24 -0
  882. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectorySynchronizer.service.js +6 -0
  883. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostShellInitSynchronizer.service.d.ts +15 -0
  884. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostShellInitSynchronizer.service.js +6 -0
  885. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.service.d.ts +18 -5
  886. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +0 -1
  887. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +23 -24
  888. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel.d.ts +85 -1
  889. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel.js +157 -18
  890. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionSummaryHoverService.service.d.ts +21 -0
  891. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionSummaryHoverService.service.js +6 -0
  892. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +24 -13
  893. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +34 -10
  894. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatDynamicVariables.d.ts +13 -0
  895. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatDynamicVariables.js +75 -7
  896. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatScreenshotContext.js +1 -1
  897. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +4 -1
  898. package/vscode/src/vs/workbench/contrib/chat/browser/chat.d.ts +140 -37
  899. package/vscode/src/vs/workbench/contrib/chat/browser/chat.js +14 -1
  900. package/vscode/src/vs/workbench/contrib/chat/browser/chat.service.d.ts +10 -3
  901. package/vscode/src/vs/workbench/contrib/chat/browser/chat.service.js +2 -1
  902. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys.d.ts +2 -2
  903. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys.js +7 -7
  904. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageUtils.d.ts +1 -0
  905. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageUtils.js +2 -1
  906. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutline.d.ts +54 -0
  907. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutline.js +238 -0
  908. package/vscode/src/vs/workbench/contrib/chat/browser/chatPetService.service.d.ts +27 -0
  909. package/vscode/src/vs/workbench/contrib/chat/browser/chatPetService.service.js +6 -0
  910. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseFileChangesService.service.d.ts +14 -1
  911. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionDescription.js +2 -2
  912. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +28 -2
  913. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +314 -86
  914. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +34 -1
  915. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +15 -2
  916. package/vscode/src/vs/workbench/contrib/chat/browser/chatSubmitRequestHandlerService.service.d.ts +9 -0
  917. package/vscode/src/vs/workbench/contrib/chat/browser/chatSubmitRequestHandlerService.service.js +6 -0
  918. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.d.ts +106 -0
  919. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +161 -0
  920. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.d.ts +20 -0
  921. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +40 -0
  922. package/vscode/src/vs/workbench/contrib/chat/browser/feedbackSurvey/chatModelFeedbackSurveyService.service.d.ts +38 -0
  923. package/vscode/src/vs/workbench/contrib/chat/browser/feedbackSurvey/chatModelFeedbackSurveyService.service.js +6 -0
  924. package/vscode/src/vs/workbench/contrib/chat/browser/pcmCaptureWorklet.d.ts +54 -0
  925. package/vscode/src/vs/workbench/contrib/chat/browser/pcmCaptureWorklet.js +102 -0
  926. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackService.service.d.ts +13 -4
  927. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/chatSpeechToTextService.d.ts +333 -0
  928. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/chatSpeechToTextService.js +1368 -0
  929. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/chatSpeechToTextService.service.d.ts +81 -0
  930. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/chatSpeechToTextService.service.js +6 -0
  931. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/dictationDownloadRing.d.ts +35 -0
  932. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/dictationDownloadRing.js +86 -0
  933. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/dictationLanguage.d.ts +6 -0
  934. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/dictationLanguage.js +113 -0
  935. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/dictationOnboarding.service.d.ts +28 -0
  936. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/dictationOnboarding.service.js +6 -0
  937. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/dictationSession.d.ts +27 -0
  938. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/dictationSession.js +408 -0
  939. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/media/dictationSession.css +22 -0
  940. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/voiceCodeTranscriptionClient.service.d.ts +16 -0
  941. package/vscode/src/vs/workbench/contrib/chat/browser/speechToText/voiceCodeTranscriptionClient.service.js +6 -0
  942. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.d.ts +139 -0
  943. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.js +535 -0
  944. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.service.d.ts +21 -4
  945. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceEndpoint.d.ts +5 -0
  946. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceEndpoint.js +46 -0
  947. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceSessionController.service.d.ts +78 -4
  948. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceToolDispatchService.service.d.ts +11 -2
  949. package/vscode/src/vs/workbench/contrib/chat/browser/voiceInputMode/voiceInputMode.service.d.ts +32 -0
  950. package/vscode/src/vs/workbench/contrib/chat/browser/voiceInputMode/voiceInputMode.service.js +6 -0
  951. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatPetWidgetService.service.d.ts +9 -0
  952. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatPetWidgetService.service.js +6 -0
  953. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNoticeHub.service.d.ts +14 -0
  954. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNoticeHub.service.js +6 -0
  955. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +140 -0
  956. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.js +186 -0
  957. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.service.d.ts +20 -4
  958. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.service.d.ts +2 -4
  959. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditorInput.d.ts +21 -1
  960. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditorInput.js +174 -42
  961. package/vscode/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.d.ts +21 -0
  962. package/vscode/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.js +183 -93
  963. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +14 -28
  964. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +31 -27
  965. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.service.d.ts +4 -0
  966. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariableEntries.d.ts +150 -3
  967. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariableEntries.js +102 -12
  968. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariables.d.ts +3 -1
  969. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariables.js +17 -0
  970. package/vscode/src/vs/workbench/contrib/chat/common/automations/automation.d.ts +110 -0
  971. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +3 -0
  972. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +6 -3
  973. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.service.d.ts +4 -2
  974. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.d.ts +34 -0
  975. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +194 -0
  976. package/vscode/src/vs/workbench/contrib/chat/common/chatModes.d.ts +1 -1
  977. package/vscode/src/vs/workbench/contrib/chat/common/chatModes.js +11 -6
  978. package/vscode/src/vs/workbench/contrib/chat/common/chatRequestOrigin.d.ts +27 -0
  979. package/vscode/src/vs/workbench/contrib/chat/common/chatRequestOrigin.js +50 -0
  980. package/vscode/src/vs/workbench/contrib/chat/common/chatRequestOrigin.service.d.ts +8 -0
  981. package/vscode/src/vs/workbench/contrib/chat/common/chatRequestOrigin.service.js +6 -0
  982. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.d.ts +16 -14
  983. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.js +42 -48
  984. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.d.ts +256 -33
  985. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.js +8 -1
  986. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatService.service.d.ts +18 -9
  987. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionTypePreference.d.ts +5 -0
  988. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionTypePreference.js +15 -0
  989. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.d.ts +132 -5
  990. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.js +7 -2
  991. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.service.d.ts +30 -2
  992. package/vscode/src/vs/workbench/contrib/chat/common/chatSideChatService.service.d.ts +17 -0
  993. package/vscode/src/vs/workbench/contrib/chat/common/chatSideChatService.service.js +6 -0
  994. package/vscode/src/vs/workbench/contrib/chat/common/constants.d.ts +99 -26
  995. package/vscode/src/vs/workbench/contrib/chat/common/constants.js +286 -50
  996. package/vscode/src/vs/workbench/contrib/chat/common/contextContrib/chatContext.d.ts +3 -3
  997. package/vscode/src/vs/workbench/contrib/chat/common/customizationHarnessService.d.ts +16 -8
  998. package/vscode/src/vs/workbench/contrib/chat/common/customizationHarnessService.js +31 -13
  999. package/vscode/src/vs/workbench/contrib/chat/common/customizationLockdown.d.ts +4 -0
  1000. package/vscode/src/vs/workbench/contrib/chat/common/customizationLockdown.js +19 -0
  1001. package/vscode/src/vs/workbench/contrib/chat/common/editing/chatEditingService.d.ts +33 -7
  1002. package/vscode/src/vs/workbench/contrib/chat/common/editing/chatEditingService.js +2 -2
  1003. package/vscode/src/vs/workbench/contrib/chat/common/editing/chatEditingService.service.d.ts +7 -2
  1004. package/vscode/src/vs/workbench/contrib/chat/common/enablement.d.ts +5 -0
  1005. package/vscode/src/vs/workbench/contrib/chat/common/enablement.js +32 -10
  1006. package/vscode/src/vs/workbench/contrib/chat/common/languageModelStats.js +3 -3
  1007. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.d.ts +98 -1
  1008. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +110 -51
  1009. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.service.d.ts +7 -1
  1010. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModel.d.ts +136 -11
  1011. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModel.js +304 -62
  1012. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatPlanReviewData.d.ts +5 -1
  1013. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatPlanReviewData.js +8 -1
  1014. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatQuestionCarouselData.d.ts +9 -2
  1015. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatQuestionCarouselData.js +16 -2
  1016. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +20 -1
  1017. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +121 -50
  1018. package/vscode/src/vs/workbench/contrib/chat/common/model/chatUri.d.ts +10 -0
  1019. package/vscode/src/vs/workbench/contrib/chat/common/model/chatUri.js +16 -1
  1020. package/vscode/src/vs/workbench/contrib/chat/common/model/chatViewModel.d.ts +26 -81
  1021. package/vscode/src/vs/workbench/contrib/chat/common/model/chatViewModel.js +39 -3
  1022. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatAgents.d.ts +14 -0
  1023. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.d.ts +25 -0
  1024. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.js +178 -0
  1025. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginRepositoryService.d.ts +11 -1
  1026. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginRepositoryService.service.d.ts +3 -2
  1027. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +12 -3
  1028. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.d.ts +67 -0
  1029. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.js +195 -0
  1030. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +67 -0
  1031. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +294 -0
  1032. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginGitService.service.d.ts +1 -0
  1033. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginInstallService.d.ts +5 -1
  1034. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginInstallService.service.d.ts +1 -1
  1035. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +212 -0
  1036. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +955 -0
  1037. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.service.d.ts +9 -11
  1038. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginSource.d.ts +1 -1
  1039. package/vscode/src/vs/workbench/contrib/chat/common/plugins/strictKnownMarketplaces.d.ts +31 -0
  1040. package/vscode/src/vs/workbench/contrib/chat/common/plugins/strictKnownMarketplaces.js +122 -0
  1041. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.d.ts +3 -1
  1042. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.js +38 -37
  1043. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations.d.ts +8 -0
  1044. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations.js +3 -1
  1045. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookSchema.js +18 -18
  1046. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookTypes.js +20 -20
  1047. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptFileAttributes.js +97 -79
  1048. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser.d.ts +3 -1
  1049. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser.js +10 -4
  1050. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptTypes.d.ts +12 -12
  1051. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptTypes.js +29 -11
  1052. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/customizationMigrationService.service.d.ts +12 -0
  1053. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/customizationMigrationService.service.js +6 -0
  1054. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/extensionPromptFileService.js +7 -1
  1055. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +15 -4
  1056. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +6 -1
  1057. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service.d.ts +12 -2
  1058. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +28 -2
  1059. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +201 -51
  1060. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +10 -3
  1061. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +62 -18
  1062. package/vscode/src/vs/workbench/contrib/chat/common/requestParser/chatParserTypes.d.ts +2 -1
  1063. package/vscode/src/vs/workbench/contrib/chat/common/requestParser/chatParserTypes.js +17 -3
  1064. package/vscode/src/vs/workbench/contrib/chat/common/requestParser/chatRequestParser.js +2 -1
  1065. package/vscode/src/vs/workbench/contrib/chat/common/sessionChatPills.service.d.ts +16 -0
  1066. package/vscode/src/vs/workbench/contrib/chat/common/sessionChatPills.service.js +6 -0
  1067. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/askQuestionsTool.js +8 -8
  1068. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/confirmationTool.js +2 -0
  1069. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/manageTodoListTool.js +10 -10
  1070. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/reviewPlanTool.js +9 -8
  1071. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/runSubagentTool.d.ts +15 -2
  1072. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/runSubagentTool.js +136 -49
  1073. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/setArtifactRulesTool.js +3 -3
  1074. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/setArtifactsTool.js +4 -4
  1075. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +31 -30
  1076. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.d.ts +24 -3
  1077. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.js +3 -3
  1078. package/vscode/src/vs/workbench/contrib/chat/common/voiceClient/voiceClientService.service.d.ts +47 -5
  1079. package/vscode/src/vs/workbench/contrib/chat/common/voicePlaybackService.service.d.ts +13 -0
  1080. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.service.d.ts +7 -7
  1081. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +11 -11
  1082. package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.d.ts +17 -2
  1083. package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.js +106 -29
  1084. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorAccessibilityHelp.js +10 -6
  1085. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +3 -3
  1086. package/vscode/src/vs/workbench/contrib/codeEditor/browser/emptyTextEditorHint/emptyTextEditorHintTypes.d.ts +5 -0
  1087. package/vscode/src/vs/workbench/contrib/codeEditor/browser/emptyTextEditorHint/emptyTextEditorHintTypes.js +5 -0
  1088. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +16 -11
  1089. package/vscode/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.js +2 -2
  1090. package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +3 -3
  1091. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.d.ts +9 -1
  1092. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +116 -79
  1093. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +4 -4
  1094. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.d.ts +2 -2
  1095. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMinimap.js +2 -2
  1096. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +3 -3
  1097. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderControlCharacter.js +2 -2
  1098. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderWhitespace.js +12 -12
  1099. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.d.ts +2 -0
  1100. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +20 -7
  1101. package/vscode/src/vs/workbench/contrib/codeEditor/common/languageConfigurationExtensionPoint.js +71 -71
  1102. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +7 -7
  1103. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +7 -7
  1104. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +2 -2
  1105. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +4 -8
  1106. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +3 -3
  1107. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +3 -3
  1108. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +3 -3
  1109. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +3 -3
  1110. package/vscode/src/vs/workbench/contrib/comments/browser/commentsAccessibility.js +12 -12
  1111. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.d.ts +1 -1
  1112. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +7 -7
  1113. package/vscode/src/vs/workbench/contrib/comments/browser/commentsModel.js +1 -1
  1114. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +9 -9
  1115. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +14 -14
  1116. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +16 -16
  1117. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +7 -7
  1118. package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +12 -12
  1119. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorDiffInput.d.ts +3 -2
  1120. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorDiffInput.js +9 -3
  1121. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInput.js +3 -3
  1122. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +1 -1
  1123. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +33 -31
  1124. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +14 -14
  1125. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +75 -75
  1126. package/vscode/src/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +2 -2
  1127. package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +22 -10
  1128. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +12 -12
  1129. package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +38 -38
  1130. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +2 -2
  1131. package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +3 -3
  1132. package/vscode/src/vs/workbench/contrib/debug/browser/debugIcons.js +57 -57
  1133. package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +3 -3
  1134. package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +7 -7
  1135. package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +2 -2
  1136. package/vscode/src/vs/workbench/contrib/debug/browser/media/exceptionWidget.css +4 -0
  1137. package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +18 -18
  1138. package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +10 -5
  1139. package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +9 -9
  1140. package/vscode/src/vs/workbench/contrib/debug/common/abstractDebugAdapter.js +1 -1
  1141. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +2 -2
  1142. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +65 -65
  1143. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.d.ts +1 -0
  1144. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +23 -7
  1145. package/vscode/src/vs/workbench/contrib/debug/common/debugSource.d.ts +1 -1
  1146. package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +1 -1
  1147. package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +2 -2
  1148. package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +1 -1
  1149. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +1 -1
  1150. package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/commands.js +2 -2
  1151. package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/configurationSchema.js +4 -4
  1152. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryService.d.ts +2 -0
  1153. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +3 -0
  1154. package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +1 -1
  1155. package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +1 -1
  1156. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +41 -41
  1157. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementContext.d.ts +28 -0
  1158. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementContext.js +38 -0
  1159. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +1 -1
  1160. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +15 -15
  1161. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +14 -14
  1162. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +199 -158
  1163. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +193 -198
  1164. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +1 -1
  1165. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +1 -1
  1166. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +5 -5
  1167. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsIcons.js +25 -25
  1168. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +4 -4
  1169. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +7 -7
  1170. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +49 -50
  1171. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +5 -5
  1172. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +30 -30
  1173. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +78 -78
  1174. package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +2 -2
  1175. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extension.css +9 -17
  1176. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css +1 -1
  1177. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsWidgets.css +30 -35
  1178. package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +1 -1
  1179. package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +2 -2
  1180. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +1 -1
  1181. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsFileTemplate.js +5 -5
  1182. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.js +2 -2
  1183. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsUtils.js +3 -3
  1184. package/vscode/src/vs/workbench/contrib/extensions/common/searchExtensionsTool.js +3 -3
  1185. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/configuration.d.ts +2 -1
  1186. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/configuration.js +5 -5
  1187. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.js +5 -4
  1188. package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +1 -1
  1189. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +8 -8
  1190. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +18 -18
  1191. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +14 -14
  1192. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +57 -41
  1193. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +84 -84
  1194. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands._save.js +63 -27
  1195. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.d.ts +1 -1
  1196. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +30 -30
  1197. package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +6 -6
  1198. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +32 -29
  1199. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +50 -50
  1200. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
  1201. package/vscode/src/vs/workbench/contrib/files/browser/media/explorerviewlet.css +12 -0
  1202. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +1 -1
  1203. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.d.ts +26 -5
  1204. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +69 -23
  1205. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +18 -17
  1206. package/vscode/src/vs/workbench/contrib/files/browser/views/media/openeditors.css +6 -0
  1207. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.d.ts +13 -0
  1208. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +100 -21
  1209. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +4 -4
  1210. package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +1 -1
  1211. package/vscode/src/vs/workbench/contrib/files/common/files.js +16 -16
  1212. package/vscode/src/vs/workbench/contrib/folding/browser/folding.contribution.js +3 -3
  1213. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +44 -29
  1214. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsNone.js +4 -4
  1215. package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
  1216. package/vscode/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +4 -4
  1217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionResolver.service.d.ts +9 -0
  1218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionResolver.service.js +6 -0
  1219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.service.d.ts +2 -1
  1220. package/vscode/src/vs/workbench/contrib/inlineCompletions/browser/inlineCompletionLanguageStatusBarContribution.js +6 -6
  1221. package/vscode/src/vs/workbench/contrib/list/browser/listResizeColumnAction.js +2 -2
  1222. package/vscode/src/vs/workbench/contrib/list/browser/tableColumnResizeQuickPick.js +5 -5
  1223. package/vscode/src/vs/workbench/contrib/markdown/browser/markedGfmHeadingIdPlugin.d.ts +1 -1
  1224. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration.js +70 -70
  1225. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerActions.js +42 -47
  1226. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/pluginMcpDiscovery.d.ts +1 -2
  1227. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/pluginMcpDiscovery.js +6 -31
  1228. package/vscode/src/vs/workbench/contrib/mcp/common/mcpConfiguration.d.ts +5 -4
  1229. package/vscode/src/vs/workbench/contrib/mcp/common/mcpConfiguration.js +62 -55
  1230. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.d.ts +30 -1
  1231. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.js +113 -24
  1232. package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.d.ts +39 -5
  1233. package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.js +108 -7
  1234. package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.service.d.ts +2 -0
  1235. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +4 -4
  1236. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +23 -23
  1237. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +2 -2
  1238. package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +8 -8
  1239. package/vscode/src/vs/workbench/contrib/meteredConnection/browser/meteredConnection.contribution.js +8 -8
  1240. package/vscode/src/vs/workbench/contrib/meteredConnection/browser/meteredConnectionStatus.js +6 -5
  1241. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/icons.contribution.js +1 -1
  1242. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.d.ts +12 -2
  1243. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.js +51 -15
  1244. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +59 -22
  1245. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService.d.ts +1 -0
  1246. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.d.ts +1 -1
  1247. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +8 -4
  1248. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.d.ts +2 -2
  1249. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +17 -17
  1250. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +6 -6
  1251. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +4 -4
  1252. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +3 -3
  1253. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebook.css +0 -36
  1254. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +3 -3
  1255. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +13 -13
  1256. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +24 -24
  1257. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +29 -29
  1258. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.d.ts +0 -1
  1259. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +4 -69
  1260. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +5 -5
  1261. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +7 -7
  1262. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbarStickyScroll.js +3 -0
  1263. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.d.ts +1 -1
  1264. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
  1265. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +4 -4
  1266. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +1 -1
  1267. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/collapsedCellOutput.js +3 -3
  1268. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.js +1 -1
  1269. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +2 -2
  1270. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookRenderingCommon.d.ts +1 -1
  1271. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.d.ts +3 -1
  1272. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +44 -22
  1273. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +1 -1
  1274. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +2 -1
  1275. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +1 -1
  1276. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelQuickPickStrategy.js +14 -14
  1277. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +2 -2
  1278. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookViewZones.js +1 -1
  1279. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.d.ts +3 -35
  1280. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +1 -13
  1281. package/vscode/src/vs/workbench/contrib/notebook/common/notebookContextKeys.d.ts +1 -1
  1282. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +2 -2
  1283. package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingWidgets.js +3 -3
  1284. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesIcons.js +13 -13
  1285. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +10 -10
  1286. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsLayout.js +62 -61
  1287. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.d.ts +0 -1
  1288. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +4 -3
  1289. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +21 -21
  1290. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.d.ts +6 -0
  1291. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +36 -18
  1292. package/vscode/src/vs/workbench/contrib/remote/browser/remoteIcons.js +17 -17
  1293. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.d.ts +3 -3
  1294. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +60 -60
  1295. package/vscode/src/vs/workbench/contrib/scm/browser/scmHistory.js +11 -11
  1296. package/vscode/src/vs/workbench/contrib/scm/browser/scmHistoryChatContext.js +6 -6
  1297. package/vscode/src/vs/workbench/contrib/scm/common/quickDiff.js +14 -14
  1298. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.d.ts +4 -2
  1299. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +10 -9
  1300. package/vscode/src/vs/workbench/contrib/search/browser/media/searchview.css +1 -1
  1301. package/vscode/src/vs/workbench/contrib/search/browser/patternInputWidget.js +4 -4
  1302. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsBase.js +1 -1
  1303. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTopBar.js +9 -9
  1304. package/vscode/src/vs/workbench/contrib/search/browser/searchChatContext.d.ts +2 -1
  1305. package/vscode/src/vs/workbench/contrib/search/browser/searchChatContext.js +11 -8
  1306. package/vscode/src/vs/workbench/contrib/search/browser/searchFindInput.js +1 -1
  1307. package/vscode/src/vs/workbench/contrib/search/browser/searchIcons.js +20 -20
  1308. package/vscode/src/vs/workbench/contrib/search/browser/searchMessage.js +2 -2
  1309. package/vscode/src/vs/workbench/contrib/search/browser/searchResultsView.js +14 -14
  1310. package/vscode/src/vs/workbench/contrib/search/browser/searchTreeModel/match.d.ts +2 -2
  1311. package/vscode/src/vs/workbench/contrib/search/browser/searchTreeModel/textSearchHeading.js +5 -7
  1312. package/vscode/src/vs/workbench/contrib/search/browser/searchView.d.ts +1 -1
  1313. package/vscode/src/vs/workbench/contrib/search/browser/searchView.js +59 -56
  1314. package/vscode/src/vs/workbench/contrib/search/browser/searchWidget.js +16 -16
  1315. package/vscode/src/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +2 -2
  1316. package/vscode/src/vs/workbench/contrib/search/common/search.js +1 -1
  1317. package/vscode/src/vs/workbench/contrib/searchEditor/browser/media/searchEditor.css +1 -0
  1318. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +4 -4
  1319. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +5 -5
  1320. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +3 -3
  1321. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +3 -3
  1322. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.d.ts +1 -0
  1323. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +23 -17
  1324. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +29 -29
  1325. package/vscode/src/vs/workbench/contrib/tasks/common/constants.js +1 -1
  1326. package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +6 -6
  1327. package/vscode/src/vs/workbench/contrib/tasks/common/taskService.js +6 -6
  1328. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +4 -4
  1329. package/vscode/src/vs/workbench/contrib/terminal/browser/agentHostTerminalService.service.d.ts +3 -1
  1330. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.d.ts +24 -1
  1331. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.service.d.ts +18 -2
  1332. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +3 -3
  1333. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcons.js +13 -13
  1334. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalMenus.js +64 -40
  1335. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +15 -15
  1336. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +10 -10
  1337. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +23 -23
  1338. package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +17 -17
  1339. package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.d.ts +2 -2
  1340. package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.js +26 -26
  1341. package/vscode/src/vs/workbench/contrib/terminal/terminalContribExports.d.ts +3 -3
  1342. package/vscode/src/vs/workbench/contrib/terminal/terminalContribExports.js +5 -3
  1343. package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/common/terminalAccessibilityConfiguration.d.ts +4 -1
  1344. package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/common/terminalAccessibilityConfiguration.js +19 -5
  1345. package/vscode/src/vs/workbench/contrib/terminalContrib/autoReplies/common/terminalAutoRepliesConfiguration.js +2 -2
  1346. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatSessionResolver.service.d.ts +9 -0
  1347. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatSessionResolver.service.js +6 -0
  1348. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.d.ts +1 -2
  1349. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.js +107 -137
  1350. package/vscode/src/vs/workbench/contrib/terminalContrib/commandGuide/common/terminalCommandGuideConfiguration.js +1 -1
  1351. package/vscode/src/vs/workbench/contrib/terminalContrib/history/common/terminal.history.js +1 -1
  1352. package/vscode/src/vs/workbench/contrib/terminalContrib/inlineHint/common/terminalInitialHintConfiguration.d.ts +1 -2
  1353. package/vscode/src/vs/workbench/contrib/terminalContrib/inlineHint/common/terminalInitialHintConfiguration.js +1 -16
  1354. package/vscode/src/vs/workbench/contrib/terminalContrib/notification/common/terminalNotificationConfiguration.js +1 -1
  1355. package/vscode/src/vs/workbench/contrib/terminalContrib/resizeDimensionsOverlay/common/terminalResizeDimensionsOverlayConfiguration.d.ts +6 -0
  1356. package/vscode/src/vs/workbench/contrib/terminalContrib/resizeDimensionsOverlay/common/terminalResizeDimensionsOverlayConfiguration.js +21 -0
  1357. package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/common/terminalStickyScrollConfiguration.js +3 -3
  1358. package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/common/terminalSuggestConfiguration.js +30 -30
  1359. package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/common/terminalTypeAheadConfiguration.js +5 -5
  1360. package/vscode/src/vs/workbench/contrib/terminalContrib/zoom/common/terminal.zoom.js +2 -2
  1361. package/vscode/src/vs/workbench/contrib/testing/common/constants.js +11 -11
  1362. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +2 -2
  1363. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +3 -3
  1364. package/vscode/src/vs/workbench/contrib/update/common/update.d.ts +5 -0
  1365. package/vscode/src/vs/workbench/contrib/update/common/update.js +9 -3
  1366. package/vscode/src/vs/workbench/contrib/url/browser/trustedDomains.js +6 -6
  1367. package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +3 -3
  1368. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindAccessibilityHelp.js +30 -30
  1369. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +1 -1
  1370. package/vscode/src/vs/workbench/contrib/welcomeOnboarding/common/onboardingTypes.d.ts +1 -2
  1371. package/vscode/src/vs/workbench/contrib/welcomeOnboarding/common/onboardingTypes.js +13 -23
  1372. package/vscode/src/vs/workbench/contrib/workspace/common/workspace.js +2 -2
  1373. package/vscode/src/vs/workbench/services/accounts/browser/managedSettings.d.ts +47 -0
  1374. package/vscode/src/vs/workbench/services/accounts/browser/managedSettings.js +48 -3
  1375. package/vscode/src/vs/workbench/services/agentEditorComments/common/agentEditorComments.service.d.ts +8 -3
  1376. package/vscode/src/vs/workbench/services/agentHost/browser/agentSdkSetupService.service.d.ts +34 -0
  1377. package/vscode/src/vs/workbench/services/agentHost/browser/agentSdkSetupService.service.js +6 -0
  1378. package/vscode/src/vs/workbench/services/agentHost/browser/codexAccountService.d.ts +37 -0
  1379. package/vscode/src/vs/workbench/services/agentHost/browser/codexAccountService.js +160 -0
  1380. package/vscode/src/vs/workbench/services/agentHost/browser/codexAccountService.service.d.ts +16 -0
  1381. package/vscode/src/vs/workbench/services/agentHost/browser/codexAccountService.service.js +6 -0
  1382. package/vscode/src/vs/workbench/services/assignment/common/assignmentService.d.ts +42 -3
  1383. package/vscode/src/vs/workbench/services/assignment/common/assignmentService.service.d.ts +1 -1
  1384. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +11 -11
  1385. package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +19 -0
  1386. package/vscode/src/vs/workbench/services/authentication/common/authentication.js +7 -6
  1387. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.d.ts +3 -0
  1388. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +10 -5
  1389. package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.d.ts +59 -7
  1390. package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.js +107 -29
  1391. package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.service.d.ts +1 -0
  1392. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +16 -16
  1393. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +1 -1
  1394. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
  1395. package/vscode/src/vs/workbench/services/dataChannel/browser/dataChannelService.d.ts +55 -0
  1396. package/vscode/src/vs/workbench/services/dataChannel/browser/dataChannelService.js +567 -0
  1397. package/vscode/src/vs/workbench/services/decorations/common/decorations.d.ts +13 -0
  1398. package/vscode/src/vs/workbench/services/decorations/common/decorations.js +6 -0
  1399. package/vscode/src/vs/workbench/services/editor/browser/editorService.d.ts +1 -0
  1400. package/vscode/src/vs/workbench/services/editor/browser/editorService.js +7 -4
  1401. package/vscode/src/vs/workbench/services/editor/common/customEditorLabelService.js +4 -1
  1402. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +10 -0
  1403. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.d.ts +68 -4
  1404. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +103 -6
  1405. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.service.d.ts +23 -7
  1406. package/vscode/src/vs/workbench/services/editor/common/editorService.d.ts +1 -1
  1407. package/vscode/src/vs/workbench/services/editor/common/editorService.service.d.ts +2 -1
  1408. package/vscode/src/vs/workbench/services/environment/browser/environmentService.d.ts +1 -0
  1409. package/vscode/src/vs/workbench/services/environment/browser/environmentService.js +17 -2
  1410. package/vscode/src/vs/workbench/services/environment/browser/environmentService.service.d.ts +4 -0
  1411. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionGalleryAccount.d.ts +27 -0
  1412. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionGalleryAccount.service.d.ts +15 -0
  1413. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionGalleryAccount.service.js +6 -0
  1414. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionsIcons.js +3 -3
  1415. package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +6 -6
  1416. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +27 -19
  1417. package/vscode/src/vs/workbench/services/extensions/common/extensionHostKind.d.ts +1 -1
  1418. package/vscode/src/vs/workbench/services/extensions/common/extensionManifestPropertiesService.js +8 -1
  1419. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +2 -2
  1420. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +110 -88
  1421. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +6 -4
  1422. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.d.ts +1 -1
  1423. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +12 -6
  1424. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.service.d.ts +5 -2
  1425. package/vscode/src/vs/workbench/services/history/common/history.d.ts +1 -0
  1426. package/vscode/src/vs/workbench/services/history/common/history.js +2 -1
  1427. package/vscode/src/vs/workbench/services/host/browser/host.d.ts +8 -0
  1428. package/vscode/src/vs/workbench/services/language/common/languageService.js +24 -24
  1429. package/vscode/src/vs/workbench/services/layout/browser/layoutService.d.ts +81 -13
  1430. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +102 -3
  1431. package/vscode/src/vs/workbench/services/layout/browser/layoutService.service.d.ts +12 -0
  1432. package/vscode/src/vs/workbench/services/log/common/logConstants.js +1 -1
  1433. package/vscode/src/vs/workbench/services/mcp/common/mcpWorkbenchManagementService.js +7 -4
  1434. package/vscode/src/vs/workbench/services/policies/common/accountPolicyService.d.ts +12 -2
  1435. package/vscode/src/vs/workbench/services/policies/common/accountPolicyService.js +6 -5
  1436. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +2 -2
  1437. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +7 -7
  1438. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +1 -27
  1439. package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +4 -4
  1440. package/vscode/src/vs/workbench/services/preferences/common/preferencesModels.d.ts +1 -3
  1441. package/vscode/src/vs/workbench/services/preferences/common/preferencesModels.js +7 -19
  1442. package/vscode/src/vs/workbench/services/preferences/common/preferencesValidation.js +30 -30
  1443. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +8 -8
  1444. package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +6 -6
  1445. package/vscode/src/vs/workbench/services/search/common/queryBuilder.d.ts +0 -2
  1446. package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +1 -9
  1447. package/vscode/src/vs/workbench/services/search/common/search.d.ts +0 -8
  1448. package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +0 -3
  1449. package/vscode/src/vs/workbench/services/storage/browser/storageService.d.ts +15 -0
  1450. package/vscode/src/vs/workbench/services/storage/browser/storageService.js +56 -0
  1451. package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +9 -9
  1452. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +3 -3
  1453. package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +18 -18
  1454. package/vscode/src/vs/workbench/services/themes/common/colorThemeData.d.ts +1 -0
  1455. package/vscode/src/vs/workbench/services/themes/common/colorThemeData.js +12 -8
  1456. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +13 -13
  1457. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +24 -24
  1458. package/vscode/src/vs/workbench/services/themes/common/workbenchThemeService.js +4 -4
  1459. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +3 -3
  1460. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
  1461. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +13 -13
  1462. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +16 -16
  1463. package/vscode/src/vs/workbench/services/workspaces/common/workspaceFolderLabelService.service.d.ts +6 -0
  1464. package/vscode/src/vs/workbench/services/workspaces/common/workspaceFolderLabelService.service.js +6 -0
  1465. package/vscode/src/vs/workbench/services/workspaces/common/workspaceTrust.js +1 -1
  1466. package/vscode-dts/vscode.d.ts +4 -1
  1467. package/vscode-dts/vscode.proposed.agentEditorComments.d.ts +27 -1
  1468. package/vscode-dts/{vscode.proposed.customEditorPriority.d.ts → vscode.proposed.agentsWindowActivation.d.ts} +1 -1
  1469. package/vscode-dts/vscode.proposed.authSessionAccountIcon.d.ts +13 -0
  1470. package/vscode-dts/vscode.proposed.authSessionExpiration.d.ts +19 -0
  1471. package/vscode-dts/vscode.proposed.chatContextProvider.d.ts +26 -84
  1472. package/vscode-dts/vscode.proposed.chatInputNotification.d.ts +6 -0
  1473. package/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts +11 -11
  1474. package/vscode-dts/vscode.proposed.chatParticipantPrivate.d.ts +40 -0
  1475. package/vscode-dts/vscode.proposed.chatProvider.d.ts +32 -0
  1476. package/vscode-dts/vscode.proposed.chatSessionCustomizationProvider.d.ts +5 -0
  1477. package/vscode-dts/vscode.proposed.chatSessionsProvider.d.ts +6 -0
  1478. package/vscode-dts/vscode.proposed.d.ts +5 -1
  1479. package/vscode-dts/vscode.proposed.linkPresentation.d.ts +136 -0
  1480. package/vscode-dts/vscode.proposed.terminalRemoteResolver.d.ts +21 -0
  1481. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/objectPool.d.ts +0 -16
  1482. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/objectPool.js +0 -47
  1483. package/vscode/src/vs/platform/browserView/common/playwrightService.d.ts +0 -7
  1484. package/vscode/src/vs/platform/browserView/common/playwrightService.service.d.ts +0 -123
  1485. package/vscode/src/vs/platform/browserView/common/playwrightService.service.js +0 -6
  1486. package/vscode/src/vs/workbench/contrib/chat/common/voiceClient/voiceClientService.d.ts +0 -95
  1487. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerDecorationsProvider.d.ts +0 -17
  1488. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerDecorationsProvider.js +0 -83
  1489. package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.d.ts +0 -47
  1490. package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.js +0 -1084
@@ -1,21 +1,25 @@
1
1
 
2
2
  import { registerCss } from '../../../../../../css.js';
3
3
  import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
4
- import { createElement, setVisibility, clearNode, addDisposableListener, EventType, isHTMLElement, append, $, addDisposableGenericMouseUpListener, EventHelper, isActiveElement, isMouseEvent, getWindow, getActiveElement } from '../../../base/browser/dom.js';
4
+ import { createElement, setVisibility, clearNode, addDisposableListener, EventType, EventHelper, isHTMLElement, append, $, addStandardDisposableListener, addDisposableGenericMouseUpListener, isEditableElement, isActiveElement, isAncestorOfActiveElement, getWindow, getDomNodeZoomLevel, getComputedStyle, isMouseEvent, DisposableResizeObserver, getActiveElement, SafeTriangle } from '../../../base/browser/dom.js';
5
+ import { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';
5
6
  import { renderMarkdown } from '../../../base/browser/markdownRenderer.js';
6
7
  import { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';
7
8
  import { getAnchorRect } from '../../../base/browser/ui/contextview/contextview.js';
8
9
  import { KeybindingLabel } from '../../../base/browser/ui/keybindingLabel/keybindingLabel.js';
9
- import { Toggle } from '../../../base/browser/ui/toggle/toggle.js';
10
+ import { DomScrollableElement } from '../../../base/browser/ui/scrollbar/scrollableElement.js';
11
+ import { Switch } from '../../../base/browser/ui/toggle/switch.js';
10
12
  import { List } from '../../../base/browser/ui/list/listWidget.js';
11
13
  import { toAction, SubmenuAction } from '../../../base/common/actions.js';
12
14
  import { CancellationTokenSource } from '../../../base/common/cancellation.js';
13
15
  import { Codicon } from '../../../base/common/codicons.js';
14
16
  import { Emitter } from '../../../base/common/event.js';
15
17
  import { isMarkdownString, MarkdownString } from '../../../base/common/htmlContent.js';
18
+ import { KeyCode } from '../../../base/common/keyCodes.js';
16
19
  import { AnchorPosition } from '../../../base/common/layout.js';
17
20
  import { DisposableStore, Disposable, MutableDisposable, toDisposable } from '../../../base/common/lifecycle.js';
18
21
  import { OS } from '../../../base/common/platform.js';
22
+ import { ScrollbarVisibility } from '../../../base/common/scrollable.js';
19
23
  import { ThemeIcon } from '../../../base/common/themables.js';
20
24
  import { URI } from '../../../base/common/uri.js';
21
25
  import * as actionWidget from './actionWidget.css';
@@ -81,10 +85,17 @@ class SeparatorRenderer {
81
85
  };
82
86
  }
83
87
  renderElement(element, _index, templateData) {
88
+ templateData.container.classList.toggle("has-label", !!element.label);
84
89
  templateData.text.textContent = element.label ?? "";
85
90
  }
86
91
  disposeTemplate(_templateData) {}
87
92
  }
93
+ function hasExpandablePanel(item) {
94
+ return (!!item.submenuActions?.length && !item.hover?.content) || !!item.hover?.expandable;
95
+ }
96
+ function hasSubmenuIndicator(item) {
97
+ return hasExpandablePanel(item) && item.hover?.showIndicator !== false;
98
+ }
88
99
  let ActionItemRenderer = class ActionItemRenderer {
89
100
  get templateId() {
90
101
  return ActionListItemKind.Action;
@@ -93,20 +104,22 @@ let ActionItemRenderer = class ActionItemRenderer {
93
104
  _supportsPreview,
94
105
  _onRemoveItem,
95
106
  _onShowSubmenu,
96
- _hasAnySubmenuActions,
107
+ _reservesSubmenuSpace,
97
108
  _groupTitleByIndex,
98
109
  _linkHandler,
99
110
  _hideDefaultKeybindingTooltip,
111
+ _registerStandaloneToggle,
100
112
  _keybindingService,
101
113
  _openerService
102
114
  ) {
103
115
  this._supportsPreview = _supportsPreview;
104
116
  this._onRemoveItem = _onRemoveItem;
105
117
  this._onShowSubmenu = _onShowSubmenu;
106
- this._hasAnySubmenuActions = _hasAnySubmenuActions;
118
+ this._reservesSubmenuSpace = _reservesSubmenuSpace;
107
119
  this._groupTitleByIndex = _groupTitleByIndex;
108
120
  this._linkHandler = _linkHandler;
109
121
  this._hideDefaultKeybindingTooltip = _hideDefaultKeybindingTooltip;
122
+ this._registerStandaloneToggle = _registerStandaloneToggle;
110
123
  this._keybindingService = _keybindingService;
111
124
  this._openerService = _openerService;
112
125
  }
@@ -158,16 +171,17 @@ let ActionItemRenderer = class ActionItemRenderer {
158
171
  }
159
172
  renderElement(element, _index, data) {
160
173
  data.elementDisposables.clear();
161
- if (element.group?.icon) {
174
+ if (element.iconClasses?.length) {
175
+ data.icon.className = ["icon", ...element.iconClasses].join(" ");
176
+ data.icon.style.color = "";
177
+ } else if (element.group?.icon) {
162
178
  data.icon.className = ThemeIcon.asClassName(element.group.icon);
163
- if (element.group.icon.color) {
164
- data.icon.style.color = asCssVariable(element.group.icon.color.id);
165
- }
179
+ data.icon.style.color = element.group.icon.color ? asCssVariable(element.group.icon.color.id) : "";
166
180
  } else {
167
181
  data.icon.className = ThemeIcon.asClassName(Codicon.lightBulb);
168
182
  data.icon.style.color = "var(--vscode-editorLightBulb-foreground)";
169
183
  }
170
- if (!element.item || !element.label) {
184
+ if ((!element.item && !element.standaloneToggle) || !element.label) {
171
185
  return;
172
186
  }
173
187
  setVisibility(!element.hideIcon, data.icon);
@@ -177,14 +191,15 @@ let ActionItemRenderer = class ActionItemRenderer {
177
191
  } else {
178
192
  data.container.removeAttribute("aria-expanded");
179
193
  }
180
- if (data.previousClassName) {
181
- data.container.classList.remove(data.previousClassName);
194
+ if (data.previousClassNames?.length) {
195
+ data.container.classList.remove(...data.previousClassNames);
182
196
  }
183
- data.container.classList.toggle("action-list-custom", !!element.className);
184
- if (element.className) {
185
- data.container.classList.add(element.className);
197
+ const classNames = element.className?.split(/\s+/).filter(name => name.length > 0) ?? [];
198
+ data.container.classList.toggle("action-list-custom", classNames.length > 0);
199
+ if (classNames.length) {
200
+ data.container.classList.add(...classNames);
186
201
  }
187
- data.previousClassName = element.className;
202
+ data.previousClassNames = classNames;
188
203
  data.text.textContent = stripNewlines(element.label);
189
204
  if (element.badge) {
190
205
  data.badge.textContent = element.badge;
@@ -237,32 +252,36 @@ let ActionItemRenderer = class ActionItemRenderer {
237
252
  data.detail.textContent = "";
238
253
  data.detail.style.display = "none";
239
254
  }
255
+ data.container.classList.toggle("has-detail", !!element.detail);
240
256
  clearNode(data.inlineToggleContainer);
241
- if (element.inlineToggle) {
242
- const inlineToggle = element.inlineToggle;
257
+ const toggleConfig = element.standaloneToggle ?? element.inlineToggle;
258
+ if (toggleConfig) {
243
259
  const toggleLabel = createElement("span");
244
260
  toggleLabel.className = "action-list-item-inline-toggle-label";
245
- toggleLabel.textContent = stripNewlines(inlineToggle.label);
246
- data.inlineToggleContainer.append(toggleLabel);
261
+ toggleLabel.textContent = stripNewlines(toggleConfig.label);
262
+ if (!element.standaloneToggle) {
263
+ data.inlineToggleContainer.append(toggleLabel);
264
+ }
247
265
  data.inlineToggleContainer.style.display = "";
248
- data.container.classList.add("has-inline-toggle");
249
- const toggle = data.elementDisposables.add(( new Toggle({
250
- title: inlineToggle.title ?? inlineToggle.label,
251
- isChecked: inlineToggle.checked,
252
- actionClassName: "action-list-inline-switch",
253
- notFocusable: false,
254
- inputActiveOptionBorder: undefined,
255
- inputActiveOptionForeground: undefined,
256
- inputActiveOptionBackground: undefined
266
+ data.container.classList.toggle("has-inline-toggle", !!element.inlineToggle);
267
+ data.container.classList.toggle("has-standalone-toggle", !!element.standaloneToggle);
268
+ const toggle = data.elementDisposables.add(( new Switch({
269
+ ariaLabel: toggleConfig.title ?? toggleConfig.label,
270
+ checked: toggleConfig.checked,
271
+ disabled: toggleConfig.disabled
257
272
  })));
258
273
  data.inlineToggleContainer.append(toggle.domNode);
259
- data.elementDisposables.add(toggle.onChange(() => inlineToggle.onChange(toggle.checked)));
274
+ if (element.standaloneToggle) {
275
+ data.elementDisposables.add(this._registerStandaloneToggle(element, toggle));
276
+ }
277
+ data.elementDisposables.add(toggle.onChange(() => toggleConfig.onChange(toggle.checked)));
260
278
  data.elementDisposables.add(
261
279
  addDisposableListener(data.inlineToggleContainer, EventType.CLICK, e => e.stopPropagation())
262
280
  );
263
281
  } else {
264
282
  data.inlineToggleContainer.style.display = "none";
265
283
  data.container.classList.remove("has-inline-toggle");
284
+ data.container.classList.remove("has-standalone-toggle");
266
285
  }
267
286
  const actionTitle = this._keybindingService.lookupKeybinding(acceptSelectedActionCommand)?.getLabel();
268
287
  const previewTitle = this._keybindingService.lookupKeybinding(previewSelectedActionCommand)?.getLabel();
@@ -273,13 +292,15 @@ let ActionItemRenderer = class ActionItemRenderer {
273
292
  data.container.title = element.tooltip;
274
293
  } else if (element.disabled) {
275
294
  data.container.title = element.label;
295
+ } else if (element.standaloneToggle) {
296
+ data.container.title = "";
276
297
  } else if (this._hideDefaultKeybindingTooltip) {
277
298
  data.container.title = "";
278
299
  } else if (actionTitle && previewTitle) {
279
300
  if (this._supportsPreview && element.canPreview) {
280
- data.container.title = ( localize(1793, "{0} to Apply, {1} to Preview", actionTitle, previewTitle));
301
+ data.container.title = ( localize(1812, "{0} to Apply, {1} to Preview", actionTitle, previewTitle));
281
302
  } else {
282
- data.container.title = ( localize(1794, "{0} to Apply", actionTitle));
303
+ data.container.title = ( localize(1813, "{0} to Apply", actionTitle));
283
304
  }
284
305
  } else {
285
306
  data.container.title = "";
@@ -289,7 +310,7 @@ let ActionItemRenderer = class ActionItemRenderer {
289
310
  if (element.onRemove) {
290
311
  toolbarActions.push(toAction({
291
312
  id: "actionList.remove",
292
- label: ( localize(1795, "Remove")),
313
+ label: ( localize(1814, "Remove")),
293
314
  class: ThemeIcon.asClassName(Codicon.close),
294
315
  run: async () => {
295
316
  await element.onRemove();
@@ -306,7 +327,7 @@ let ActionItemRenderer = class ActionItemRenderer {
306
327
  label: false
307
328
  });
308
329
  }
309
- if (element.submenuActions?.length && !element.hover?.content) {
330
+ if (hasSubmenuIndicator(element)) {
310
331
  data.submenuIndicator.className = "action-list-submenu-indicator has-submenu " + ThemeIcon.asClassName(Codicon.chevronRight);
311
332
  data.submenuIndicator.style.display = "";
312
333
  data.submenuIndicator.style.visibility = "";
@@ -316,7 +337,7 @@ let ActionItemRenderer = class ActionItemRenderer {
316
337
  this._onShowSubmenu?.(element);
317
338
  })
318
339
  );
319
- } else if (this._hasAnySubmenuActions) {
340
+ } else if (this._reservesSubmenuSpace()) {
320
341
  data.submenuIndicator.className = "action-list-submenu-indicator";
321
342
  data.submenuIndicator.style.display = "";
322
343
  data.submenuIndicator.style.visibility = "hidden";
@@ -324,13 +345,22 @@ let ActionItemRenderer = class ActionItemRenderer {
324
345
  data.submenuIndicator.className = "action-list-submenu-indicator";
325
346
  data.submenuIndicator.style.display = "none";
326
347
  }
348
+ if (hasExpandablePanel(element)) {
349
+ data.container.setAttribute("aria-haspopup", element.hover?.expandable ? "dialog" : "menu");
350
+ data.container.setAttribute("aria-expanded", "false");
351
+ } else {
352
+ data.container.removeAttribute("aria-haspopup");
353
+ if (!element.isSectionToggle) {
354
+ data.container.removeAttribute("aria-expanded");
355
+ }
356
+ }
327
357
  }
328
358
  disposeTemplate(templateData) {
329
359
  templateData.keybinding.dispose();
330
360
  templateData.elementDisposables.dispose();
331
361
  }
332
362
  };
333
- ActionItemRenderer = ( __decorate([( __param(7, IKeybindingService)), ( __param(8, IOpenerService))], ActionItemRenderer));
363
+ ActionItemRenderer = ( __decorate([( __param(8, IKeybindingService)), ( __param(9, IOpenerService))], ActionItemRenderer));
334
364
  class AcceptSelectedEvent extends UIEvent {
335
365
  constructor() {
336
366
  super("acceptSelectedAction");
@@ -370,14 +400,21 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
370
400
  this._separatorLineHeight = 8;
371
401
  this.cts = this._register(( new CancellationTokenSource()));
372
402
  this._submenuDisposables = this._register(( new DisposableStore()));
403
+ this._itemMoveAnimation = this._register(( new MutableDisposable()));
373
404
  this._collapsedSections = ( new Set());
374
405
  this._filterText = "";
406
+ this._imeSessionInProgress = false;
375
407
  this._suppressHover = false;
408
+ this._ignoreInitialHover = true;
376
409
  this._hasLaidOut = false;
377
410
  this._filterCts = this._register(( new MutableDisposable()));
378
411
  this._groupTitleByIndex = ( new Map());
412
+ this._standaloneToggles = ( new Map());
379
413
  this._onDidRequestLayout = this._register(( new Emitter()));
380
414
  this.onDidRequestLayout = this._onDidRequestLayout.event;
415
+ this._visibleMenuItems = items;
416
+ this._initialFocusItemId = this._options?.initialFocusItemId;
417
+ this._filterText = this._options?.showFilter ? this._options.initialFilterValue ?? "" : "";
381
418
  this.domNode = createElement("div");
382
419
  this.domNode.classList.add("actionList");
383
420
  if (this._options?.inlineDescription) {
@@ -393,14 +430,42 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
393
430
  this._submenuContainer = createElement("div");
394
431
  this._submenuContainer.className = "action-list-submenu-panel action-widget";
395
432
  this._submenuContainer.style.display = "none";
433
+ if (this._options?.persistentHover) {
434
+ this._submenuContainer.style.boxSizing = "border-box";
435
+ }
396
436
  this._submenuContainer.tabIndex = -1;
397
437
  this.domNode.append(this._submenuContainer);
438
+ this._register(addDisposableListener(this._submenuContainer, "keydown", e => {
439
+ if (e.key !== "ArrowLeft" && e.key !== "Escape") {
440
+ return;
441
+ }
442
+ EventHelper.stop(e, true);
443
+ this._hideSubmenu();
444
+ this._list.domFocus();
445
+ }));
398
446
  this._register(addDisposableListener(this._submenuContainer, "mouseenter", () => {
399
447
  this._cancelSubmenuHide();
448
+ if (this._options?.persistentHover) {
449
+ this._cancelSubmenuShow();
450
+ this._resetSubmenuPointer();
451
+ }
400
452
  }));
401
453
  this._register(addDisposableListener(this._submenuContainer, "mouseleave", () => {
402
454
  this._scheduleSubmenuHide();
403
455
  }));
456
+ this._register(addDisposableListener(this.domNode, EventType.MOUSE_LEAVE, () => {
457
+ this._cancelSubmenuShow();
458
+ this._resetSubmenuPointer();
459
+ }));
460
+ if (this._options?.persistentHover) {
461
+ this._register(
462
+ addDisposableListener(this.domNode, EventType.MOUSE_MOVE, event => {
463
+ if (isHTMLElement(event.target) && this._expandedTrigger?.contains(event.target)) {
464
+ this._updateSubmenuPointer(event);
465
+ }
466
+ })
467
+ );
468
+ }
404
469
  this._register(toDisposable(() => {
405
470
  this._cancelSubmenuHide();
406
471
  this._cancelSubmenuShow();
@@ -416,21 +481,31 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
416
481
  },
417
482
  getTemplateId: element => element.kind
418
483
  };
419
- const reserveSubmenuSpace = this._options?.reserveSubmenuSpace ?? true;
420
- const hasAnySubmenuActions = reserveSubmenuSpace && ( items.some(item => !!item.submenuActions?.length && !item.hover?.content));
484
+ const reservesSubmenuSpace = () => {
485
+ const reserve = this._options?.reserveSubmenuSpace ?? true;
486
+ return reserve === "always" || (reserve && ( this._allMenuItems.some(hasSubmenuIndicator)));
487
+ };
421
488
  this._list = this._register(( new List(user, this.domNode, virtualDelegate, [( new ActionItemRenderer(
422
489
  this._supportsPreview,
423
490
  item => this._removeItem(item),
424
491
  item => this._showSubmenuForItem(item),
425
- hasAnySubmenuActions,
492
+ reservesSubmenuSpace,
426
493
  this._groupTitleByIndex,
427
494
  this._options?.linkHandler,
428
495
  this._options?.hideDefaultKeybindingTooltip ?? false,
496
+ (item, toggle) => {
497
+ this._standaloneToggles.set(item, toggle);
498
+ return toDisposable(() => {
499
+ if (this._standaloneToggles.get(item) === toggle) {
500
+ this._standaloneToggles.delete(item);
501
+ }
502
+ });
503
+ },
429
504
  this._keybindingService,
430
505
  this._openerService
431
506
  )), ( new HeaderRenderer()), ( new SeparatorRenderer())], {
432
507
  keyboardSupport: false,
433
- typeNavigationEnabled: !this._options?.showFilter,
508
+ typeNavigationEnabled: !this._options?.showFilter && !this._options?.onType,
434
509
  keyboardNavigationLabelProvider: {
435
510
  getKeyboardNavigationLabel
436
511
  },
@@ -457,20 +532,26 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
457
532
  if (element.group?.title) {
458
533
  label = label + ", " + element.group.title;
459
534
  }
460
- if (element.inlineToggle) {
461
- label = label + ", " + (element.inlineToggle.checked ? ( localize(1796, "{0}, on", element.inlineToggle.label)) : ( localize(1797, "{0}, off", element.inlineToggle.label)));
535
+ const toggleConfig = element.standaloneToggle ?? element.inlineToggle;
536
+ if (toggleConfig) {
537
+ label = element.standaloneToggle ? (toggleConfig.checked ? ( localize(1815, "{0}, on", toggleConfig.label)) : ( localize(1816, "{0}, off", toggleConfig.label))) : label + ", " + (toggleConfig.checked ? ( localize(1817, "{0}, on", toggleConfig.label)) : ( localize(1818, "{0}, off", toggleConfig.label)));
462
538
  }
463
539
  if (element.disabled) {
464
- label = ( localize(1798, "{0}, Disabled Reason: {1}", label, element.disabled));
540
+ label = ( localize(1819, "{0}, Disabled Reason: {1}", label, element.disabled));
465
541
  }
466
542
  if (element.submenuActions?.length) {
467
- label = ( localize(1799, "{0}, use right arrow to access options", label));
543
+ label = ( localize(1820, "{0}, use right arrow to access options", label));
468
544
  }
469
545
  return label;
470
546
  }
471
547
  return null;
472
548
  },
473
- getWidgetAriaLabel: () => ( localize(1800, "Action Widget")),
549
+ getWidgetAriaLabel: () => ( localize(1821, "Action Widget")),
550
+ getSetSize: () => this._visibleMenuItems.filter(item => item.kind === ActionListItemKind.Action).length,
551
+ getPosInSet: (_element, index) => Math.max(
552
+ this._visibleMenuItems.slice(0, index + 1).filter(item => item.kind === ActionListItemKind.Action).length,
553
+ 1
554
+ ),
474
555
  getRole: e => {
475
556
  switch (e.kind) {
476
557
  case ActionListItemKind.Action:
@@ -487,9 +568,28 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
487
568
  })));
488
569
  this._list.style(defaultListStyles);
489
570
  this._register(this._list.onMouseClick(e => this.onListClick(e)));
490
- this._register(this._list.onMouseOver(e => this.onListHover(e)));
571
+ this._register(this._list.onMouseOver(e => {
572
+ if (!this._ignoreInitialHover) {
573
+ this.onListHover(e);
574
+ }
575
+ }));
576
+ const initialMouseMove = this._register(( new MutableDisposable()));
577
+ initialMouseMove.value = this._list.onMouseMove(e => {
578
+ if (e.browserEvent.movementX !== 0 || e.browserEvent.movementY !== 0) {
579
+ initialMouseMove.clear();
580
+ this._ignoreInitialHover = false;
581
+ this.onListHover(e);
582
+ }
583
+ });
584
+ this._register(this._list.onMouseDown(() => {
585
+ initialMouseMove.clear();
586
+ this._ignoreInitialHover = false;
587
+ }));
491
588
  this._register(this._list.onDidChangeFocus(() => this.onFocus()));
492
589
  this._register(this._list.onDidChangeSelection(e => this.onListSelection(e)));
590
+ if (this._options?.persistentHover) {
591
+ this._register(this._list.onDidScroll(() => this._layoutSubmenu?.()));
592
+ }
493
593
  this._allMenuItems = [...items];
494
594
  if (this._options?.showFilter || this._options?.secondaryHeading) {
495
595
  this._filterContainer = createElement("div");
@@ -499,9 +599,51 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
499
599
  this._filterInput = createElement("input");
500
600
  this._filterInput.type = "text";
501
601
  this._filterInput.className = "action-list-filter-input";
502
- this._filterInput.placeholder = this._options?.filterPlaceholder ?? ( localize(1801, "Search..."));
503
- this._filterInput.setAttribute("aria-label", ( localize(1802, "Filter items")));
602
+ this._filterInput.placeholder = this._options?.filterPlaceholder ?? ( localize(1822, "Search..."));
603
+ this._filterInput.value = this._filterText;
604
+ this._filterInput.setAttribute("aria-label", ( localize(1823, "Filter items")));
504
605
  filterRow.appendChild(this._filterInput);
606
+ if (this._options.filterAsCombobox) {
607
+ const listElement = this._list.getHTMLElement();
608
+ listElement.id = this._list.domId;
609
+ this._filterInput.setAttribute("role", "combobox");
610
+ this._filterInput.setAttribute("aria-label", this._filterInput.placeholder);
611
+ this._filterInput.setAttribute("aria-autocomplete", "list");
612
+ this._filterInput.setAttribute("aria-expanded", "true");
613
+ this._filterInput.setAttribute("aria-controls", listElement.id);
614
+ this._register(this._list.onDidChangeFocus(() => this._updateFilterActiveDescendant()));
615
+ this._register(
616
+ addDisposableListener(this._filterInput, "focus", () => this._updateFilterActiveDescendant())
617
+ );
618
+ this._register(
619
+ addDisposableListener(this._filterInput, "blur", () => this._updateFilterActiveDescendant())
620
+ );
621
+ this._register(addStandardDisposableListener(this._filterInput, "keydown", e => {
622
+ const isComposing = this._imeSessionInProgress || e.browserEvent.isComposing || e.keyCode === KeyCode.KEY_IN_COMPOSITION;
623
+ if (isComposing || e.keyCode === KeyCode.LeftArrow || e.keyCode === KeyCode.RightArrow || e.keyCode === KeyCode.Home || e.keyCode === KeyCode.End) {
624
+ e.stopPropagation();
625
+ return;
626
+ }
627
+ const isNavigation = e.keyCode === KeyCode.UpArrow || e.keyCode === KeyCode.DownArrow;
628
+ if (!isNavigation && e.keyCode !== KeyCode.Enter) {
629
+ return;
630
+ }
631
+ if (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey) {
632
+ if (isNavigation) {
633
+ e.stopPropagation();
634
+ }
635
+ return;
636
+ }
637
+ EventHelper.stop(e, true);
638
+ if (e.keyCode === KeyCode.UpArrow) {
639
+ this.focusPrevious();
640
+ } else if (e.keyCode === KeyCode.DownArrow) {
641
+ this.focusNext();
642
+ } else {
643
+ this.acceptSelected();
644
+ }
645
+ }));
646
+ }
505
647
  const filterActions = this._options?.filterActions ?? [];
506
648
  if (filterActions.length > 0) {
507
649
  const filterActionsContainer = append(filterRow, $(".action-list-filter-actions"));
@@ -511,10 +653,25 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
511
653
  label: false
512
654
  });
513
655
  }
514
- this._register(addDisposableListener(this._filterInput, "input", () => {
515
- this._filterText = this._filterInput.value;
656
+ const onFilterValueChanged = () => {
657
+ const value = this._filterInput.value;
658
+ if (this._imeSessionInProgress || value === this._filterText) {
659
+ return;
660
+ }
661
+ this._filterText = value;
516
662
  this._applyOrUpdateFilter();
663
+ };
664
+ this._register(addDisposableListener(this._filterInput, "compositionstart", () => {
665
+ this._imeSessionInProgress = true;
666
+ this._filterCts.value?.cancel();
667
+ }));
668
+ this._register(addDisposableListener(this._filterInput, "compositionend", () => {
669
+ this._imeSessionInProgress = false;
670
+ onFilterValueChanged();
517
671
  }));
672
+ this._register(
673
+ addDisposableListener(this._filterInput, "input", onFilterValueChanged)
674
+ );
518
675
  }
519
676
  if (this._options?.secondaryHeading) {
520
677
  const filterLabelEl = append(filterRow, $(".action-list-filter-label"));
@@ -536,6 +693,16 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
536
693
  }
537
694
  const text = append(this._headerContainer, $("span.action-list-header-text"));
538
695
  text.textContent = this._options.headerText;
696
+ this._register(
697
+ addDisposableListener(this._headerContainer, EventType.MOUSE_ENTER, () => {
698
+ if (this._options?.persistentHover) {
699
+ this._cancelSubmenuShow();
700
+ this._resetSubmenuPointer();
701
+ } else {
702
+ this._hideSubmenu();
703
+ }
704
+ })
705
+ );
539
706
  if (this._options.headerLink) {
540
707
  const {
541
708
  label,
@@ -553,7 +720,7 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
553
720
  dismissButton.appendChild($(ThemeIcon.asCSSSelector(Codicon.close)));
554
721
  dismissButton.tabIndex = 0;
555
722
  dismissButton.setAttribute("role", "button");
556
- dismissButton.setAttribute("aria-label", ( localize(1803, "Dismiss")));
723
+ dismissButton.setAttribute("aria-label", ( localize(1824, "Dismiss")));
557
724
  const dismiss = () => {
558
725
  onDismiss();
559
726
  this.focus();
@@ -575,42 +742,74 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
575
742
  this._focusCheckedOrFirst();
576
743
  }
577
744
  this._register(addDisposableListener(this.domNode, "keydown", e => {
578
- if (e.key === "ArrowRight") {
745
+ if (e.key === "ArrowRight" && !e.isComposing) {
579
746
  const focused = this._list.getFocus();
580
747
  if (focused.length > 0) {
581
748
  const element = this._list.element(focused[0]);
582
- if (element?.submenuActions?.length) {
749
+ if (element?.submenuActions?.length || element?.hover?.expandable) {
583
750
  EventHelper.stop(e, true);
584
751
  const rowElement = this._getRowElement(focused[0]);
585
752
  if (rowElement) {
586
753
  this._showSubmenuForElement(element, rowElement);
587
- this._currentSubmenuWidget?.focus();
754
+ if (this._currentSubmenuWidget) {
755
+ this._currentSubmenuWidget.focus();
756
+ } else {
757
+ this._submenuContainer.focus();
758
+ }
588
759
  }
589
760
  }
590
761
  }
591
762
  }
592
763
  }));
593
- if (this._filterInput) {
764
+ if (this._filterInput || this._options?.onType) {
594
765
  this._register(addDisposableListener(this.domNode, "keydown", e => {
595
- if (this._filterInput && !isActiveElement(this._filterInput) && e.key.length === 1 && e.key !== " " && !e.ctrlKey && !e.metaKey && !e.altKey) {
596
- this._filterInput.focus();
597
- this._filterInput.value = e.key;
598
- this._filterText = e.key;
599
- this._applyOrUpdateFilter();
766
+ const target = e.target;
767
+ if ((this._options?.onType || this._options?.filterAsCombobox) && isHTMLElement(target) && (isEditableElement(target) || target.closest("button, a, [contenteditable=\"true\"], .action-list-submenu-panel"))) {
768
+ return;
769
+ }
770
+ if ((!this._filterInput || !isActiveElement(this._filterInput)) && !e.isComposing && e.key.length === 1 && e.key !== " " && !e.ctrlKey && !e.metaKey && !e.altKey) {
600
771
  e.preventDefault();
601
772
  e.stopPropagation();
773
+ if (this._filterInput) {
774
+ this._filterInput.focus();
775
+ this._filterInput.value = e.key;
776
+ this._filterText = e.key;
777
+ this._applyOrUpdateFilter();
778
+ } else {
779
+ this._options?.onType?.(e.key);
780
+ }
602
781
  }
603
782
  }));
604
783
  }
605
784
  }
606
785
  _toggleSection(section) {
607
- if (( this._collapsedSections.has(section))) {
786
+ const expanding = ( this._collapsedSections.has(section));
787
+ if (expanding) {
608
788
  this._collapsedSections.delete(section);
609
789
  } else {
610
790
  this._collapsedSections.add(section);
791
+ const focusedItem = this.getFocusedElement();
792
+ if (focusedItem?.section === section && !focusedItem.isSectionToggle) {
793
+ const toggleIndex = this._visibleMenuItems.findIndex(item => item.section === section && item.isSectionToggle);
794
+ if (toggleIndex >= 0) {
795
+ this._list.setFocus([toggleIndex]);
796
+ }
797
+ }
611
798
  }
612
799
  this._options?.onDidToggleSection?.(section, ( this._collapsedSections.has(section)));
613
800
  this._applyFilter();
801
+ if (expanding) {
802
+ this._revealFirstItemOfSection(section);
803
+ }
804
+ }
805
+ _revealFirstItemOfSection(section) {
806
+ for (let index = 0; index < this._list.length; index++) {
807
+ const item = this._list.element(index);
808
+ if (item.section === section && !item.isSectionToggle) {
809
+ this._list.reveal(index);
810
+ return;
811
+ }
812
+ }
614
813
  }
615
814
  _applyOrUpdateFilter() {
616
815
  if (!this._delegate.onFilter) {
@@ -629,7 +828,8 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
629
828
  this._applyFilter(true);
630
829
  }).catch(() => {});
631
830
  }
632
- _applyFilter(skipTextFilter = false, fireLayout = true) {
831
+ _applyFilter(skipTextFilter = false, fireLayout = true, focusItemId) {
832
+ this._itemMoveAnimation.clear();
633
833
  const filterLower = skipTextFilter ? "" : this._filterText.toLowerCase();
634
834
  const isFiltering = !skipTextFilter && filterLower.length > 0;
635
835
  const visible = [];
@@ -744,6 +944,8 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
744
944
  this._recomputeGroupTitles(visible);
745
945
  }
746
946
  const filterInputHasFocus = this._filterInput && isActiveElement(this._filterInput);
947
+ const listHasFocus = isAncestorOfActiveElement(this._list.getHTMLElement());
948
+ this._visibleMenuItems = visible;
747
949
  this._list.splice(0, this._list.length, visible);
748
950
  if (fireLayout) {
749
951
  this._onDidRequestLayout.fire();
@@ -752,18 +954,21 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
752
954
  this._filterInput?.focus();
753
955
  this._focusCheckedOrFirst();
754
956
  } else if (this._hasLaidOut) {
755
- if (focusedItem) {
756
- const focusedItemId = focusedItem.item?.id;
957
+ if (focusedItem || focusItemId) {
958
+ const focusedItemId = focusItemId ?? focusedItem?.item?.id;
757
959
  if (focusedItemId) {
758
960
  for (let i = 0; i < this._list.length; i++) {
759
961
  const el = this._list.element(i);
760
962
  if (el.item?.id === focusedItemId) {
761
963
  this._list.setFocus([i]);
762
964
  this._list.reveal(i);
763
- this._list.domFocus();
764
965
  break;
765
966
  }
766
967
  }
968
+ if (listHasFocus) {
969
+ this._focusCheckedOrFirst();
970
+ this._list.domFocus();
971
+ }
767
972
  }
768
973
  }
769
974
  }
@@ -780,9 +985,23 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
780
985
  get filterInput() {
781
986
  return this._filterInput;
782
987
  }
988
+ get closeAnimation() {
989
+ return this._options?.closeAnimation;
990
+ }
783
991
  focusCondition(element) {
784
992
  return !element.disabled && element.kind === ActionListItemKind.Action;
785
993
  }
994
+ _updateFilterActiveDescendant() {
995
+ if (!this._filterInput) {
996
+ return;
997
+ }
998
+ const [focused] = this._list.getFocus();
999
+ if (isActiveElement(this._filterInput) && focused !== undefined) {
1000
+ this._filterInput.setAttribute("aria-activedescendant", this._list.getElementID(focused));
1001
+ } else {
1002
+ this._filterInput.removeAttribute("aria-activedescendant");
1003
+ }
1004
+ }
786
1005
  focus() {
787
1006
  if (this._filterInput && this._options?.focusFilterOnOpen) {
788
1007
  this._filterInput.focus();
@@ -802,13 +1021,92 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
802
1021
  }
803
1022
  return undefined;
804
1023
  }
805
- updateItems(items, focusItemId) {
1024
+ showHoverForCheckedItem() {
1025
+ const element = this._allMenuItems.find(item => item.kind === ActionListItemKind.Action && item.item?.checked) ?? (this._options?.persistentHover ? this.getFocusedElement() : undefined);
1026
+ if (!element) {
1027
+ return;
1028
+ }
1029
+ if (element.section && ( this._collapsedSections.has(element.section))) {
1030
+ this._toggleSection(element.section);
1031
+ }
1032
+ const index = this._list.indexOf(element);
1033
+ if (index >= 0) {
1034
+ this._list.setFocus([index]);
1035
+ this._list.reveal(index);
1036
+ this._showHoverForElement(element, index);
1037
+ }
1038
+ }
1039
+ updateItems(items, focusItemId, options) {
1040
+ const expandedItemId = this._currentSubmenuElement?.item?.id;
1041
+ const preservedItem = options?.preserveHover && expandedItemId ? items.find(item => item.item?.id === (focusItemId ?? expandedItemId)) : undefined;
1042
+ const content = preservedItem?.hover?.content;
1043
+ const preservedContent = typeof content === "function" ? content() : content;
1044
+ const preserveHover = !this._currentSubmenuWidget && isHTMLElement(preservedContent) && this._submenuContainer.contains(preservedContent);
1045
+ const previousRow = options?.animateItemMove && preserveHover && this._currentSubmenuElement ? this._getRowElement(this._list.indexOf(this._currentSubmenuElement))?.getBoundingClientRect() : undefined;
806
1046
  this._allMenuItems = [...items];
807
- this._applyFilter(false, false);
808
- if (focusItemId !== undefined) {
1047
+ if (preserveHover && preservedItem) {
1048
+ this._currentSubmenuElement = preservedItem;
1049
+ if (preservedItem.label && preservedItem.hover?.expandable) {
1050
+ this._submenuContainer.setAttribute("aria-label", preservedItem.label);
1051
+ }
1052
+ if (preservedItem.section) {
1053
+ this._collapsedSections.delete(preservedItem.section);
1054
+ }
1055
+ } else if ((options?.preserveHover || this._options?.persistentHover) && this._currentSubmenuElement && !this._allMenuItems.includes(this._currentSubmenuElement)) {
1056
+ this._hideSubmenu();
1057
+ }
1058
+ const previousVisibleCount = this._visibleMenuItems.length;
1059
+ const suppressHover = this._suppressHover;
1060
+ this._suppressHover ||= preserveHover || (!this._currentSubmenuElement && !this._options?.persistentHover);
1061
+ try {
1062
+ this._applyFilter(false, false, preserveHover ? focusItemId ?? expandedItemId : undefined);
1063
+ } finally {
1064
+ this._suppressHover = suppressHover;
1065
+ }
1066
+ if (this._visibleMenuItems.length !== previousVisibleCount) {
1067
+ this._onDidRequestLayout.fire();
1068
+ }
1069
+ if (preserveHover) {
1070
+ this._layoutSubmenu?.();
1071
+ if (previousRow && preservedItem) {
1072
+ this._animateItemMove(preservedItem, previousRow);
1073
+ }
1074
+ } else if (focusItemId !== undefined) {
809
1075
  this.focusItemById(focusItemId);
810
1076
  }
811
1077
  }
1078
+ _animateItemMove(item, previous) {
1079
+ if (this.domNode.closest(".monaco-reduce-motion") || getWindow(this.domNode).matchMedia("(prefers-reduced-motion: reduce)").matches) {
1080
+ return;
1081
+ }
1082
+ const row = this._getRowElement(this._list.indexOf(item));
1083
+ if (!row) {
1084
+ return;
1085
+ }
1086
+ const current = row.getBoundingClientRect();
1087
+ const bounds = this._list.getHTMLElement().getBoundingClientRect();
1088
+ if (previous.top < bounds.top || previous.bottom > bounds.bottom || current.top < bounds.top || current.bottom > bounds.bottom || Math.abs(previous.top - current.top) < 1) {
1089
+ return;
1090
+ }
1091
+ const zoom = getDomNodeZoomLevel(row);
1092
+ const background = getComputedStyle(row).backgroundColor;
1093
+ const frame = {
1094
+ zIndex: 1,
1095
+ backgroundColor: asCssVariable("menu.background"),
1096
+ backgroundImage: `linear-gradient(${background}, ${background})`
1097
+ };
1098
+ const animation = row.animate([{
1099
+ ...frame,
1100
+ transform: `translateY(${(previous.top - current.top) / zoom}px)`
1101
+ }, {
1102
+ ...frame,
1103
+ transform: "translateY(0)"
1104
+ }], {
1105
+ duration: 160,
1106
+ easing: "cubic-bezier(0.2, 0.8, 0.2, 1)"
1107
+ });
1108
+ this._itemMoveAnimation.value = toDisposable(() => animation.cancel());
1109
+ }
812
1110
  focusItemById(itemId) {
813
1111
  const focusItem = () => {
814
1112
  for (let i = 0; i < this._list.length; i++) {
@@ -829,11 +1127,32 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
829
1127
  });
830
1128
  }
831
1129
  _focusCheckedOrFirst() {
1130
+ const suppressHover = this._suppressHover;
832
1131
  this._suppressHover = true;
833
1132
  try {
1133
+ const initialFocusItemId = this._initialFocusItemId;
1134
+ this._initialFocusItemId = undefined;
1135
+ if (initialFocusItemId) {
1136
+ for (let i = 0; i < this._list.length; i++) {
1137
+ const element = this._list.element(i);
1138
+ if (this.focusCondition(element) && element.item?.id === initialFocusItemId) {
1139
+ this._list.setFocus([i]);
1140
+ this._list.reveal(i);
1141
+ return;
1142
+ }
1143
+ }
1144
+ }
1145
+ const [focusedIndex] = this._list.getFocus();
1146
+ if (focusedIndex !== undefined) {
1147
+ const focusedElement = this._list.element(focusedIndex);
1148
+ if (focusedElement && this.focusCondition(focusedElement)) {
1149
+ this._list.reveal(focusedIndex);
1150
+ return;
1151
+ }
1152
+ }
834
1153
  for (let i = 0; i < this._list.length; i++) {
835
1154
  const element = this._list.element(i);
836
- if (element.kind === ActionListItemKind.Action && element.item?.checked) {
1155
+ if (this.focusCondition(element) && element.item?.checked) {
837
1156
  this._list.setFocus([i]);
838
1157
  this._list.reveal(i);
839
1158
  return;
@@ -845,7 +1164,10 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
845
1164
  this._list.reveal(focused[0]);
846
1165
  }
847
1166
  } finally {
848
- this._suppressHover = false;
1167
+ this._suppressHover = suppressHover;
1168
+ if (this._options?.filterAsCombobox) {
1169
+ this._updateFilterActiveDescendant();
1170
+ }
849
1171
  }
850
1172
  }
851
1173
  hide(didCancel) {
@@ -874,6 +1196,9 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
874
1196
  return this._actionLineHeight;
875
1197
  }
876
1198
  _getItemHeight(item) {
1199
+ return this._itemHeightWith(item, this._options);
1200
+ }
1201
+ _itemHeightWith(item, options) {
877
1202
  switch (item.kind) {
878
1203
  case ActionListItemKind.Header:
879
1204
  return this._headerLineHeight;
@@ -881,17 +1206,23 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
881
1206
  return item.label ? this._actionLineHeight : this._separatorLineHeight;
882
1207
  default:
883
1208
  if (item.inlineToggle) {
884
- return this._options?.inlineToggleItemHeight ?? 70;
1209
+ return options?.inlineToggleItemHeight ?? 70;
885
1210
  }
886
- return item.detail ? (this._options?.detailItemHeight ?? 48) : this._actionLineHeight;
1211
+ return item.detail ? (options?.detailItemHeight ?? 48) : this._actionLineHeight;
887
1212
  }
888
1213
  }
889
1214
  computeFullHeight() {
890
- let fullHeight = 0;
891
- for (const item of this._allMenuItems) {
892
- fullHeight += this._getItemHeight(item);
1215
+ return this.computeHeightForItems(this._allMenuItems, undefined, this._options);
1216
+ }
1217
+ computeHeightForItems(items, collapsedSections, options) {
1218
+ let height = 0;
1219
+ for (const item of items) {
1220
+ if (collapsedSections && item.section && !item.isSectionToggle && ( collapsedSections.has(item.section))) {
1221
+ continue;
1222
+ }
1223
+ height += this._itemHeightWith(item, options);
893
1224
  }
894
- return fullHeight;
1225
+ return height;
895
1226
  }
896
1227
  computeListHeight() {
897
1228
  const visibleCount = this._list.length;
@@ -906,9 +1237,11 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
906
1237
  this._hasLaidOut = true;
907
1238
  this._list.layout(height, width);
908
1239
  this.domNode.style.height = `${height}px`;
909
- if (this._filterContainer && this._filterContainer.parentElement) {
910
- this._filterContainer.parentElement.insertBefore(this._filterContainer, this.domNode);
1240
+ const listParent = this.domNode.parentElement;
1241
+ if (listParent && this._filterContainer?.parentElement === listParent) {
1242
+ listParent.insertBefore(this._filterContainer, this.domNode);
911
1243
  }
1244
+ this._layoutSubmenu?.();
912
1245
  }
913
1246
  computeMaxWidth(minWidth) {
914
1247
  const visibleCount = this._list.length;
@@ -916,7 +1249,6 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
916
1249
  const rawMaxWidthCap = this._options?.maxWidth ?? Number.POSITIVE_INFINITY;
917
1250
  const maxWidthCap = Math.max(rawMaxWidthCap, effectiveMinWidth);
918
1251
  const clamp = w => Math.min(Math.max(w, effectiveMinWidth), maxWidthCap);
919
- let maxWidth = effectiveMinWidth;
920
1252
  const totalItemCount = this._allMenuItems.length;
921
1253
  if (totalItemCount >= 50) {
922
1254
  return clamp(380);
@@ -926,40 +1258,43 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
926
1258
  for (let i = 0; i < visibleCount; i++) {
927
1259
  visibleItems.push(this._list.element(i));
928
1260
  }
929
- const allItems = [...this._allMenuItems];
930
- this._list.splice(0, visibleCount, allItems);
931
- let allItemsHeight = 0;
932
- for (const item of allItems) {
933
- allItemsHeight += this._getItemHeight(item);
934
- }
935
- this._list.layout(allItemsHeight);
936
- const itemWidths = [];
937
- for (let i = 0; i < allItems.length; i++) {
938
- const element = this._getRowElement(i);
939
- if (element) {
940
- element.style.width = "auto";
941
- const width = element.getBoundingClientRect().width;
942
- element.style.width = "";
943
- itemWidths.push(width + this._computeToolbarWidth(allItems[i]));
1261
+ const height = this._list.renderHeight;
1262
+ const scrollTop = this._list.scrollTop;
1263
+ const focus = this._list.getFocus();
1264
+ try {
1265
+ const allItems = [...this._allMenuItems];
1266
+ this._list.splice(0, visibleCount, allItems);
1267
+ let allItemsHeight = 0;
1268
+ for (const item of allItems) {
1269
+ allItemsHeight += this._getItemHeight(item);
1270
+ }
1271
+ this._list.layout(allItemsHeight);
1272
+ const itemWidths = this._measureItemWidths(allItems);
1273
+ return clamp(Math.max(...itemWidths));
1274
+ } finally {
1275
+ this._list.splice(0, this._list.length, visibleItems);
1276
+ this._list.layout(height);
1277
+ this._list.scrollTop = scrollTop;
1278
+ const suppressHover = this._suppressHover;
1279
+ this._suppressHover = true;
1280
+ try {
1281
+ this._list.setFocus(focus);
1282
+ } finally {
1283
+ this._suppressHover = suppressHover;
944
1284
  }
945
1285
  }
946
- maxWidth = clamp(Math.max(...itemWidths));
947
- this._list.splice(0, allItems.length, visibleItems);
948
- return maxWidth;
949
1286
  }
950
- const itemWidths = [];
1287
+ const visibleItems = [];
951
1288
  for (let i = 0; i < visibleCount; i++) {
952
- const element = this._getRowElement(i);
953
- if (element) {
954
- element.style.width = "auto";
955
- const width = element.getBoundingClientRect().width;
956
- element.style.width = "";
957
- itemWidths.push(width + this._computeToolbarWidth(this._list.element(i)));
958
- }
1289
+ visibleItems.push(this._list.element(i));
959
1290
  }
1291
+ const itemWidths = this._measureItemWidths(visibleItems);
960
1292
  return clamp(Math.max(...itemWidths));
961
1293
  }
962
1294
  focusPrevious() {
1295
+ if (this._focusFilterResult("previous")) {
1296
+ return;
1297
+ }
963
1298
  if (this._filterInput && isActiveElement(this._filterInput)) {
964
1299
  this._list.domFocus();
965
1300
  const current = this._list.getFocus();
@@ -993,6 +1328,9 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
993
1328
  }
994
1329
  }
995
1330
  focusNext() {
1331
+ if (this._focusFilterResult("next")) {
1332
+ return;
1333
+ }
996
1334
  if (this._filterInput && isActiveElement(this._filterInput)) {
997
1335
  this._list.domFocus();
998
1336
  const current = this._list.getFocus();
@@ -1023,6 +1361,21 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1023
1361
  this._list.reveal(focused[0]);
1024
1362
  }
1025
1363
  }
1364
+ _focusFilterResult(direction) {
1365
+ if (!this._options?.filterAsCombobox || !this._filterInput || !isActiveElement(this._filterInput)) {
1366
+ return false;
1367
+ }
1368
+ if (direction === "previous") {
1369
+ this._list.focusPrevious(1, true, undefined, this.focusCondition);
1370
+ } else {
1371
+ this._list.focusNext(1, true, undefined, this.focusCondition);
1372
+ }
1373
+ const [focused] = this._list.getFocus();
1374
+ if (focused !== undefined) {
1375
+ this._list.reveal(focused);
1376
+ }
1377
+ return true;
1378
+ }
1026
1379
  collapseFocusedSection() {
1027
1380
  const section = this._getFocusedSection();
1028
1381
  if (section && !( this._collapsedSections.has(section))) {
@@ -1076,6 +1429,15 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1076
1429
  return;
1077
1430
  }
1078
1431
  const element = e.elements[0];
1432
+ if (element.standaloneToggle) {
1433
+ this._list.setSelection([]);
1434
+ const toggle = this._standaloneToggles.get(element);
1435
+ if (toggle && !toggle.disabled) {
1436
+ toggle.checked = !toggle.checked;
1437
+ element.standaloneToggle.onChange(toggle.checked);
1438
+ }
1439
+ return;
1440
+ }
1079
1441
  if (element.isSectionToggle && element.section) {
1080
1442
  this._list.setSelection([]);
1081
1443
  const section = element.section;
@@ -1107,6 +1469,11 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1107
1469
  const element = this._list.element(focusIndex);
1108
1470
  this._delegate.onFocus?.(element.item);
1109
1471
  if (!this._suppressHover) {
1472
+ if (this._options?.persistentHover) {
1473
+ this._cancelSubmenuShow();
1474
+ this._resetSubmenuPointer();
1475
+ this._list.reveal(focusIndex);
1476
+ }
1110
1477
  this._showHoverForElement(element, focusIndex);
1111
1478
  }
1112
1479
  }
@@ -1128,6 +1495,33 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1128
1495
  }
1129
1496
  }
1130
1497
  }
1498
+ _measureItemWidths(items) {
1499
+ const rows = [];
1500
+ for (let i = 0; i < items.length; i++) {
1501
+ const element = this._getRowElement(i);
1502
+ if (element) {
1503
+ element.style.width = "auto";
1504
+ rows.push({
1505
+ element,
1506
+ item: items[i]
1507
+ });
1508
+ }
1509
+ }
1510
+ try {
1511
+ return ( rows.map((
1512
+ {
1513
+ element,
1514
+ item
1515
+ }
1516
+ ) => element.getBoundingClientRect().width + (item.detail ? 0 : this._computeToolbarWidth(item))));
1517
+ } finally {
1518
+ for (const {
1519
+ element
1520
+ } of rows) {
1521
+ element.style.width = "";
1522
+ }
1523
+ }
1524
+ }
1131
1525
  _computeToolbarWidth(item) {
1132
1526
  let actionCount = item.toolbarActions?.length ?? 0;
1133
1527
  if (item.onRemove) {
@@ -1137,10 +1531,10 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1137
1531
  return 0;
1138
1532
  }
1139
1533
  const actionButtonWidth = 22;
1140
- return actionCount * actionButtonWidth + 6;
1534
+ return actionCount * actionButtonWidth + 6 + 10;
1141
1535
  }
1142
1536
  _getRowElement(index) {
1143
- if (!this.domNode.isConnected) {
1537
+ if (index < 0 || !this.domNode.isConnected) {
1144
1538
  return null;
1145
1539
  }
1146
1540
  return this.domNode.getRootNode().getElementById(this._list.getElementID(index));
@@ -1158,7 +1552,9 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1158
1552
  }
1159
1553
  return;
1160
1554
  }
1161
- this._hideSubmenu();
1555
+ if (!this._options?.persistentHover) {
1556
+ this._hideSubmenu();
1557
+ }
1162
1558
  }
1163
1559
  _showSubmenuForItem(item) {
1164
1560
  const index = this._list.indexOf(item);
@@ -1173,11 +1569,42 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1173
1569
  if (this._currentSubmenuElement === element) {
1174
1570
  return;
1175
1571
  }
1176
- this._submenuDisposables.clear();
1177
1572
  this._currentSubmenuElement = element;
1178
1573
  this._clearSubmenuContainer();
1574
+ anchor.setAttribute("aria-expanded", "true");
1575
+ this._expandedTrigger = anchor;
1576
+ this._submenuPanelClassName = element.hover?.panelClassName;
1577
+ if (this._submenuPanelClassName) {
1578
+ this._submenuContainer.classList.add(this._submenuPanelClassName);
1579
+ }
1580
+ const preserveVerticalPosition = element.hover?.preserveVerticalPosition;
1581
+ const content = preserveVerticalPosition ? $(".action-list-submenu-content") : this._submenuContainer;
1582
+ const viewport = preserveVerticalPosition ? $(".action-list-submenu-viewport", undefined, content) : undefined;
1583
+ const scrollbar = viewport ? this._submenuDisposables.add(( new DomScrollableElement(viewport, {
1584
+ horizontal: ScrollbarVisibility.Hidden,
1585
+ vertical: ScrollbarVisibility.Auto,
1586
+ consumeMouseWheelIfScrollbarIsNeeded: true,
1587
+ useShadows: false
1588
+ }))) : undefined;
1589
+ if (scrollbar && viewport) {
1590
+ this._submenuContainer.appendChild(scrollbar.getDomNode());
1591
+ this._submenuDisposables.add(
1592
+ addDisposableListener(viewport, EventType.SCROLL, () => scrollbar.scanDomNode())
1593
+ );
1594
+ this._submenuDisposables.add(
1595
+ addDisposableListener(this._submenuContainer, EventType.KEY_DOWN, e => {
1596
+ const event = ( new StandardKeyboardEvent(e));
1597
+ if (event.equals(KeyCode.PageDown) || event.equals(KeyCode.PageUp)) {
1598
+ EventHelper.stop(e, true);
1599
+ scrollbar.setScrollPosition({
1600
+ scrollTop: scrollbar.getScrollPosition().scrollTop + (event.equals(KeyCode.PageDown) ? 1 : -1) * viewport.clientHeight
1601
+ });
1602
+ }
1603
+ })
1604
+ );
1605
+ }
1179
1606
  let hoverHeader;
1180
- const hoverContent = element.hover?.content;
1607
+ const hoverContent = typeof element.hover?.content === "function" ? element.hover.content() : element.hover?.content;
1181
1608
  if (hoverContent) {
1182
1609
  if (isHTMLElement(hoverContent)) {
1183
1610
  hoverHeader = hoverContent;
@@ -1206,20 +1633,26 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1206
1633
  if (element.submenuActions?.length) {
1207
1634
  hoverHeader.classList.add("has-submenu");
1208
1635
  }
1209
- this._submenuContainer.appendChild(hoverHeader);
1636
+ content.appendChild(hoverHeader);
1210
1637
  }
1211
1638
  const hasSubmenuActions = !!element.submenuActions?.length;
1212
1639
  this._submenuContainer.style.display = "";
1213
1640
  this._submenuContainer.style.position = "absolute";
1214
- this._submenuContainer.removeAttribute("role");
1215
- const anchorRect = anchor.getBoundingClientRect();
1216
- const parentRect = this.domNode.getBoundingClientRect();
1641
+ if (element.hover?.expandable) {
1642
+ this._submenuContainer.setAttribute("role", "dialog");
1643
+ if (element.label) {
1644
+ this._submenuContainer.setAttribute("aria-label", element.label);
1645
+ }
1646
+ } else {
1647
+ this._submenuContainer.removeAttribute("role");
1648
+ }
1217
1649
  const targetWindow = getWindow(this.domNode);
1218
1650
  let totalHeight = 0;
1219
1651
  let maxWidth = hoverHeader ? hoverHeader.offsetWidth : 0;
1220
1652
  if (hasSubmenuActions) {
1221
1653
  const submenuItems = [];
1222
- const submenuGroups = element.submenuActions.filter(a => a instanceof SubmenuAction);
1654
+ const submenuActions = element.submenuActions;
1655
+ const submenuGroups = submenuActions.filter(a => a instanceof SubmenuAction);
1223
1656
  const groupsWithActions = submenuGroups.filter(g => g.actions.length > 0);
1224
1657
  for (let gi = 0; gi < groupsWithActions.length; gi++) {
1225
1658
  const group = groupsWithActions[gi];
@@ -1260,7 +1693,7 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1260
1693
  });
1261
1694
  }
1262
1695
  }
1263
- for (const action of element.submenuActions) {
1696
+ for (const action of submenuActions) {
1264
1697
  if (!(action instanceof SubmenuAction)) {
1265
1698
  const extendedAction = action;
1266
1699
  submenuItems.push({
@@ -1298,7 +1731,7 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1298
1731
  undefined,
1299
1732
  undefined
1300
1733
  ));
1301
- this._submenuContainer.appendChild(submenuWidget.domNode);
1734
+ content.appendChild(submenuWidget.domNode);
1302
1735
  this._currentSubmenuWidget = submenuWidget;
1303
1736
  submenuWidget.clearFocus();
1304
1737
  totalHeight = submenuWidget.computeListHeight();
@@ -1308,22 +1741,17 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1308
1741
  submenuWidget.layout(totalHeight, maxWidth);
1309
1742
  submenuWidget.domNode.style.width = `${maxWidth}px`;
1310
1743
  this._submenuDisposables.add(addDisposableListener(submenuWidget.domNode, "keydown", e => {
1311
- if (e.key === "ArrowLeft" || e.key === "Escape") {
1744
+ if (e.key === "Escape") {
1745
+ EventHelper.stop(e, true);
1746
+ this._hideSubmenu();
1747
+ this.hide();
1748
+ } else if (e.key === "ArrowLeft") {
1312
1749
  EventHelper.stop(e, true);
1313
1750
  this._hideSubmenu();
1314
1751
  this._list.domFocus();
1315
- } else if (e.key === "Enter") {
1752
+ } else if (e.key === "Enter" || e.key === " ") {
1316
1753
  EventHelper.stop(e, true);
1317
- const focused = submenuWidget.getFocusedElement();
1318
- if (focused?.item) {
1319
- focused.item.run();
1320
- const parentItem = this._currentSubmenuElement?.item;
1321
- this._hideSubmenu();
1322
- if (parentItem) {
1323
- this._delegate.onSelect(parentItem);
1324
- }
1325
- this.hide();
1326
- }
1754
+ submenuWidget.acceptSelected();
1327
1755
  } else if (e.key === "ArrowDown") {
1328
1756
  EventHelper.stop(e, true);
1329
1757
  submenuWidget.focusNext();
@@ -1333,47 +1761,129 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1333
1761
  }
1334
1762
  }));
1335
1763
  }
1336
- const viewportWidth = targetWindow.innerWidth;
1337
- const spaceRight = viewportWidth - anchorRect.right;
1338
- const spaceLeft = parentRect.left;
1339
- const panelWidth = maxWidth + 10;
1340
- const gap = 4;
1341
- if (spaceRight >= panelWidth || spaceRight >= spaceLeft) {
1342
- this._submenuContainer.style.left = `${parentRect.right - parentRect.left + gap}px`;
1343
- } else {
1344
- this._submenuContainer.style.left = `${-panelWidth - gap}px`;
1345
- }
1346
- const hoverHeaderHeight = hoverHeader ? hoverHeader.offsetHeight : 0;
1347
- const totalPanelHeight = totalHeight + hoverHeaderHeight;
1348
- const viewportHeight = targetWindow.innerHeight;
1349
- const anchorHeight = anchorRect.height;
1350
- let top = anchorRect.top - parentRect.top + (anchorHeight - totalPanelHeight) / 2;
1351
- const panelBottom = parentRect.top + top + totalPanelHeight;
1352
- if (panelBottom > viewportHeight) {
1353
- top -= (panelBottom - viewportHeight + 8);
1354
- }
1355
- if (parentRect.top + top < 0) {
1356
- top = -parentRect.top;
1764
+ let openingPanelHeight;
1765
+ let openingPanelTop;
1766
+ const layout = () => {
1767
+ const currentElement = this._currentSubmenuElement;
1768
+ if (!currentElement || this._layoutSubmenu !== layout) {
1769
+ return;
1770
+ }
1771
+ const index = this._list.indexOf(currentElement);
1772
+ const row = index >= 0 ? this._getRowElement(index) : null;
1773
+ const persistent = this._options?.persistentHover;
1774
+ if (!row && (!persistent || !this._allMenuItems.includes(currentElement))) {
1775
+ this._hideSubmenu();
1776
+ return;
1777
+ }
1778
+ if (this._expandedTrigger !== row) {
1779
+ if (this._expandedTrigger?.hasAttribute("aria-expanded")) {
1780
+ this._expandedTrigger.setAttribute("aria-expanded", "false");
1781
+ }
1782
+ this._expandedTrigger = row ?? undefined;
1783
+ }
1784
+ row?.setAttribute("aria-expanded", "true");
1785
+ const parentRect = this.domNode.getBoundingClientRect();
1786
+ const alignToParent = persistent || currentElement.hover?.alignToParent;
1787
+ const edgeRect = alignToParent ? this.domNode.parentElement?.closest(".action-widget")?.getBoundingClientRect() ?? parentRect : parentRect;
1788
+ const anchorRect = row?.getBoundingClientRect() ?? edgeRect;
1789
+ const zoom = alignToParent || preserveVerticalPosition ? getDomNodeZoomLevel(this.domNode) : 1;
1790
+ if (persistent) {
1791
+ this._submenuContainer.style.width = `${edgeRect.width / zoom}px`;
1792
+ }
1793
+ const panelRect = this._submenuContainer.getBoundingClientRect();
1794
+ const panelWidth = alignToParent ? panelRect.width : maxWidth + 10;
1795
+ const spaceRight = targetWindow.innerWidth - (alignToParent ? edgeRect.right : anchorRect.right);
1796
+ const spaceLeft = edgeRect.left;
1797
+ const gap = alignToParent ? 0 : 4;
1798
+ let showRight = spaceRight >= panelWidth || spaceRight >= spaceLeft;
1799
+ if (persistent && this._submenuSide && (this._submenuSide === "right" ? spaceRight : spaceLeft) >= panelWidth) {
1800
+ showRight = this._submenuSide === "right";
1801
+ }
1802
+ if (persistent) {
1803
+ this._submenuSide = showRight ? "right" : "left";
1804
+ }
1805
+ const left = showRight ? edgeRect.right - parentRect.left + gap : edgeRect.left - parentRect.left - panelWidth - gap;
1806
+ this._submenuContainer.style.left = `${left / zoom}px`;
1807
+ const panelHeight = alignToParent || preserveVerticalPosition ? panelRect.height : totalHeight + (hoverHeader?.offsetHeight ?? 0);
1808
+ if (preserveVerticalPosition) {
1809
+ openingPanelHeight ??= panelHeight / zoom;
1810
+ }
1811
+ const anchorHeight = openingPanelHeight !== undefined ? openingPanelHeight * zoom : panelHeight;
1812
+ let top = openingPanelTop !== undefined ? openingPanelTop * zoom : row ? anchorRect.top - parentRect.top + (anchorRect.height - anchorHeight) / 2 : panelRect.top - parentRect.top;
1813
+ const panelBottom = parentRect.top + top + anchorHeight;
1814
+ if (panelBottom > targetWindow.innerHeight) {
1815
+ top -= panelBottom - targetWindow.innerHeight + 8;
1816
+ }
1817
+ if (parentRect.top + top < 0) {
1818
+ top = -parentRect.top;
1819
+ }
1820
+ if (preserveVerticalPosition) {
1821
+ openingPanelTop ??= top / zoom;
1822
+ }
1823
+ if (viewport && scrollbar) {
1824
+ const chromeHeight = (panelRect.height - scrollbar.getDomNode().getBoundingClientRect().height) / zoom;
1825
+ const availableHeight = Math.max(
1826
+ 0,
1827
+ (targetWindow.innerHeight - parentRect.top - top - 8) / zoom - chromeHeight
1828
+ );
1829
+ viewport.style.height = `${Math.min(content.getBoundingClientRect().height / zoom, availableHeight)}px`;
1830
+ scrollbar.scanDomNode();
1831
+ }
1832
+ this._submenuContainer.style.top = `${top / zoom}px`;
1833
+ };
1834
+ this._layoutSubmenu = layout;
1835
+ layout();
1836
+ if ((this._options?.persistentHover || element.hover?.alignToParent || preserveVerticalPosition) && this._currentSubmenuElement === element) {
1837
+ const observer = this._submenuDisposables.add(
1838
+ new DisposableResizeObserver("ActionListWidget.hoverPanel", layout, targetWindow)
1839
+ );
1840
+ this._submenuDisposables.add(
1841
+ observer.observe(preserveVerticalPosition ? content : this._submenuContainer, {
1842
+ box: "border-box"
1843
+ })
1844
+ );
1845
+ if (this._options?.persistentHover || preserveVerticalPosition) {
1846
+ this._submenuDisposables.add(addDisposableListener(targetWindow, EventType.RESIZE, () => {
1847
+ this._cancelSubmenuShow();
1848
+ this._resetSubmenuPointer();
1849
+ layout();
1850
+ }));
1851
+ }
1357
1852
  }
1358
- this._submenuContainer.style.top = `${top}px`;
1359
1853
  }
1360
1854
  _hideSubmenu() {
1361
1855
  this._cancelSubmenuHide();
1362
1856
  this._cancelSubmenuShow();
1363
- this._submenuDisposables.clear();
1364
- this._currentSubmenuWidget = undefined;
1365
1857
  this._currentSubmenuElement = undefined;
1858
+ this._submenuSide = undefined;
1366
1859
  this._clearSubmenuContainer();
1367
1860
  this._submenuContainer.style.display = "none";
1368
1861
  }
1369
1862
  _clearSubmenuContainer() {
1863
+ this._layoutSubmenu = undefined;
1864
+ this._resetSubmenuPointer();
1370
1865
  if (this._submenuContainer.contains(getActiveElement())) {
1371
1866
  this._list.domFocus();
1372
1867
  }
1868
+ this._submenuDisposables.clear();
1869
+ this._currentSubmenuWidget = undefined;
1870
+ if (this._submenuPanelClassName) {
1871
+ this._submenuContainer.classList.remove(this._submenuPanelClassName);
1872
+ this._submenuPanelClassName = undefined;
1873
+ }
1874
+ this._submenuContainer.removeAttribute("role");
1875
+ this._submenuContainer.removeAttribute("aria-label");
1876
+ if (this._expandedTrigger?.hasAttribute("aria-expanded")) {
1877
+ this._expandedTrigger.setAttribute("aria-expanded", "false");
1878
+ }
1879
+ this._expandedTrigger = undefined;
1373
1880
  clearNode(this._submenuContainer);
1374
1881
  }
1375
1882
  _scheduleSubmenuHide() {
1376
1883
  this._cancelSubmenuHide();
1884
+ if (this._options?.persistentHover) {
1885
+ return;
1886
+ }
1377
1887
  this._submenuHideTimeout = setTimeout(() => {
1378
1888
  this._hideSubmenu();
1379
1889
  }, 300);
@@ -1384,15 +1894,45 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1384
1894
  this._submenuHideTimeout = undefined;
1385
1895
  }
1386
1896
  }
1387
- _scheduleSubmenuShow(element, index) {
1897
+ _scheduleSubmenuShow(element, pointer) {
1388
1898
  this._cancelSubmenuShow();
1389
- this._submenuShowTimeout = setTimeout(() => {
1899
+ let delay = 500;
1900
+ if (this._options?.persistentHover) {
1901
+ delay = 0;
1902
+ const origin = this._submenuPointerOrigin;
1903
+ if (origin && pointer.clientX !== origin.x && this._currentSubmenuElement && new SafeTriangle(origin.x, origin.y, this._submenuContainer).contains(pointer.clientX, pointer.clientY)) {
1904
+ const now = Date.now();
1905
+ this._submenuPointerGraceDeadline ??= now + 200;
1906
+ delay = Math.max(0, this._submenuPointerGraceDeadline - now);
1907
+ }
1908
+ }
1909
+ const show = () => {
1390
1910
  this._submenuShowTimeout = undefined;
1391
- const rowElement = typeof index === "number" ? this._getRowElement(index) : null;
1911
+ const index = this._list.indexOf(element);
1912
+ const rowElement = index >= 0 ? this._getRowElement(index) : null;
1392
1913
  if (rowElement) {
1393
1914
  this._showSubmenuForElement(element, rowElement);
1915
+ if (this._options?.persistentHover) {
1916
+ this._updateSubmenuPointer(pointer);
1917
+ }
1394
1918
  }
1395
- }, 500);
1919
+ };
1920
+ if (delay === 0) {
1921
+ show();
1922
+ } else {
1923
+ this._submenuShowTimeout = setTimeout(show, delay);
1924
+ }
1925
+ }
1926
+ _updateSubmenuPointer(event) {
1927
+ this._submenuPointerOrigin = {
1928
+ x: event.clientX,
1929
+ y: event.clientY
1930
+ };
1931
+ this._submenuPointerGraceDeadline = undefined;
1932
+ }
1933
+ _resetSubmenuPointer() {
1934
+ this._submenuPointerOrigin = undefined;
1935
+ this._submenuPointerGraceDeadline = undefined;
1396
1936
  }
1397
1937
  _cancelSubmenuShow() {
1398
1938
  if (this._submenuShowTimeout !== undefined) {
@@ -1412,20 +1952,27 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1412
1952
  return;
1413
1953
  }
1414
1954
  const hasPanel = !!(element.submenuActions?.length || element.hover?.content);
1415
- if (hasPanel) {
1955
+ const suppressHover = this._suppressHover;
1956
+ if (hasPanel || this._options?.persistentHover) {
1416
1957
  this._suppressHover = true;
1417
1958
  }
1418
- this._list.setFocus(typeof e.index === "number" ? [e.index] : []);
1419
- if (hasPanel) {
1420
- this._suppressHover = false;
1959
+ try {
1960
+ this._list.setFocus(typeof e.index === "number" ? [e.index] : []);
1961
+ } finally {
1962
+ this._suppressHover = suppressHover;
1421
1963
  }
1422
1964
  if (hasPanel) {
1423
1965
  if (this._currentSubmenuElement === element) {
1424
1966
  this._cancelSubmenuHide();
1425
1967
  this._cancelSubmenuShow();
1968
+ if (this._options?.persistentHover) {
1969
+ this._updateSubmenuPointer(e.browserEvent);
1970
+ }
1426
1971
  } else {
1427
- this._hideSubmenu();
1428
- this._scheduleSubmenuShow(element, e.index);
1972
+ if (!this._options?.persistentHover) {
1973
+ this._hideSubmenu();
1974
+ }
1975
+ this._scheduleSubmenuShow(element, e.browserEvent);
1429
1976
  }
1430
1977
  return;
1431
1978
  }
@@ -1433,7 +1980,9 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1433
1980
  this._cancelSubmenuHide();
1434
1981
  } else {
1435
1982
  this._cancelSubmenuShow();
1436
- this._hideSubmenu();
1983
+ if (!this._options?.persistentHover) {
1984
+ this._hideSubmenu();
1985
+ }
1437
1986
  }
1438
1987
  if (this._delegate.onHover && !element.disabled && element.kind === ActionListItemKind.Action && this._currentSubmenuElement !== element) {
1439
1988
  const result = await this._delegate.onHover(element.item, this.cts.token);
@@ -1451,8 +2000,10 @@ let ActionListWidget = ActionListWidget_1 = class ActionListWidget extends Dispo
1451
2000
  this._cancelSubmenuHide();
1452
2001
  this._cancelSubmenuShow();
1453
2002
  } else {
1454
- this._hideSubmenu();
1455
- this._scheduleSubmenuShow(element, e.index);
2003
+ if (!this._options?.persistentHover) {
2004
+ this._hideSubmenu();
2005
+ }
2006
+ this._scheduleSubmenuShow(element, e.browserEvent);
1456
2007
  }
1457
2008
  }
1458
2009
  }
@@ -1479,7 +2030,16 @@ let ActionList = class ActionList extends Disposable {
1479
2030
  get filterInput() {
1480
2031
  return this._widget.filterInput;
1481
2032
  }
2033
+ get closeAnimation() {
2034
+ return this._widget.closeAnimation;
2035
+ }
2036
+ get widgetClassName() {
2037
+ return this._widgetClassName;
2038
+ }
1482
2039
  get anchorPosition() {
2040
+ if (this._preferredAnchorPosition !== undefined) {
2041
+ return this._preferredAnchorPosition;
2042
+ }
1483
2043
  if (this._showAbove === undefined) {
1484
2044
  return undefined;
1485
2045
  }
@@ -1503,6 +2063,9 @@ let ActionList = class ActionList extends Disposable {
1503
2063
  this._lastMinWidth = 0;
1504
2064
  this._hasLaidOut = false;
1505
2065
  this._anchor = anchor;
2066
+ this._preferredAnchorPosition = options?.anchorPosition;
2067
+ this._useFullHeight = options?.useFullHeight ?? false;
2068
+ this._widgetClassName = options?.widgetClassName;
1506
2069
  this._widget = this._register(instantiationService.createInstance(
1507
2070
  ActionListWidget,
1508
2071
  user,
@@ -1522,9 +2085,14 @@ let ActionList = class ActionList extends Disposable {
1522
2085
  focus() {
1523
2086
  this._widget.focus();
1524
2087
  }
1525
- hide(didCancel) {
2088
+ showHoverForCheckedItem() {
2089
+ this._widget.showHoverForCheckedItem();
2090
+ }
2091
+ hide(didCancel, hideContextView = true) {
1526
2092
  this._widget.hide(didCancel);
1527
- this._contextViewService.hideContextView();
2093
+ if (hideContextView) {
2094
+ this._contextViewService.hideContextView();
2095
+ }
1528
2096
  }
1529
2097
  clearFilter() {
1530
2098
  return this._widget.clearFilter();
@@ -1547,8 +2115,11 @@ let ActionList = class ActionList extends Disposable {
1547
2115
  acceptSelected(preview) {
1548
2116
  this._widget.acceptSelected(preview);
1549
2117
  }
1550
- updateItems(items, focusItemId) {
1551
- this._widget.updateItems(items, focusItemId);
2118
+ updateItems(items, focusItemId, options) {
2119
+ this._widget.updateItems(items, focusItemId, options);
2120
+ }
2121
+ computeHeightForItems(items, collapsedSections, options) {
2122
+ return this._widget.computeHeightForItems(items, collapsedSections, options);
1552
2123
  }
1553
2124
  focusItemById(itemId) {
1554
2125
  this._widget.focusItemById(itemId);
@@ -1566,14 +2137,14 @@ let ActionList = class ActionList extends Disposable {
1566
2137
  return toPixels(style.paddingTop) + toPixels(style.paddingBottom) + toPixels(style.borderTopWidth) + toPixels(style.borderBottomWidth);
1567
2138
  }
1568
2139
  computeHeight() {
1569
- const listHeight = this._widget.computeListHeight();
2140
+ const listHeight = this._fixedContentHeight ?? this._widget.computeListHeight();
1570
2141
  const filterHeight = this._widget.filterContainer ? 36 : 0;
1571
2142
  const footerHeight = this._widget.footerContainer ? 32 : 0;
1572
2143
  const headerHeight = this._widget.headerContainer ? this._widget.headerContainer.offsetHeight || 36 : 0;
1573
2144
  const chromeHeight = filterHeight + footerHeight + headerHeight;
1574
2145
  const targetWindow = getWindow(this.domNode);
1575
2146
  let availableHeight;
1576
- if (this.hasDynamicHeight()) {
2147
+ if (this.hasDynamicHeight() || this._preferredAnchorPosition !== undefined) {
1577
2148
  const viewportHeight = targetWindow.innerHeight;
1578
2149
  const anchorRect = getAnchorRect(this._anchor);
1579
2150
  const anchorTopInViewport = anchorRect.top - targetWindow.pageYOffset;
@@ -1581,8 +2152,8 @@ let ActionList = class ActionList extends Disposable {
1581
2152
  const spaceBelow = viewportHeight - anchorTopInViewport - anchorRect.height - bottomGap;
1582
2153
  const spaceAbove = anchorTopInViewport;
1583
2154
  if (this._showAbove === undefined) {
1584
- const fullHeight = chromeHeight + this._widget.computeFullHeight();
1585
- this._showAbove = fullHeight > spaceBelow && spaceAbove > spaceBelow;
2155
+ const fullHeight = this._fixedContentHeight ?? this._widget.computeFullHeight();
2156
+ this._showAbove = this._preferredAnchorPosition !== undefined ? this._preferredAnchorPosition === AnchorPosition.ABOVE : (chromeHeight + fullHeight > spaceBelow && spaceAbove > spaceBelow);
1586
2157
  }
1587
2158
  availableHeight = Math.max(
1588
2159
  0,
@@ -1594,8 +2165,13 @@ let ActionList = class ActionList extends Disposable {
1594
2165
  const widgetTop = this.domNode.getBoundingClientRect().top;
1595
2166
  availableHeight = widgetTop > 0 ? windowHeight - widgetTop - padding : windowHeight * 0.7;
1596
2167
  }
1597
- const viewportMaxHeight = Math.floor(targetWindow.innerHeight * 0.6);
2168
+ const viewportMaxHeight = this._useFullHeight ? targetWindow.innerHeight : Math.floor(targetWindow.innerHeight * 0.6);
1598
2169
  const actionLineHeight = this._widget.lineHeight;
2170
+ if (this._preferredAnchorPosition !== undefined) {
2171
+ const maxHeight = Math.min(availableHeight, viewportMaxHeight);
2172
+ const height = Math.min(listHeight + chromeHeight, Math.max(0, maxHeight));
2173
+ return Math.max(0, height - chromeHeight);
2174
+ }
1599
2175
  const maxHeight = Math.min(
1600
2176
  Math.max(availableHeight, actionLineHeight * 3 + chromeHeight),
1601
2177
  viewportMaxHeight
@@ -1603,9 +2179,12 @@ let ActionList = class ActionList extends Disposable {
1603
2179
  const height = Math.min(listHeight + chromeHeight, maxHeight);
1604
2180
  return height - chromeHeight;
1605
2181
  }
1606
- layout(minWidth) {
2182
+ layout(minWidth, fixedContentHeight) {
1607
2183
  this._hasLaidOut = true;
1608
2184
  this._lastMinWidth = minWidth;
2185
+ if (fixedContentHeight !== undefined) {
2186
+ this._fixedContentHeight = fixedContentHeight;
2187
+ }
1609
2188
  const listHeight = this.computeHeight();
1610
2189
  this._widget.layout(listHeight);
1611
2190
  const computedWidth = this._widget.computeMaxWidth(minWidth);