@codingame/monaco-vscode-api 6.0.3 → 7.0.1

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 (447) hide show
  1. package/README.md +150 -117
  2. package/api.js +1 -1
  3. package/debugProtocol.d.ts +10 -1
  4. package/extensions.d.ts +2 -0
  5. package/missing-services.js +21 -2
  6. package/package.json +9 -9
  7. package/service-override/extensions.d.ts +1 -2
  8. package/services.js +4 -2
  9. package/vscode/src/vs/base/browser/dnd.js +1 -1
  10. package/vscode/src/vs/base/browser/dom.js +116 -5
  11. package/vscode/src/vs/base/browser/domObservable.js +16 -0
  12. package/vscode/src/vs/base/browser/markdownRenderer.js +5 -3
  13. package/vscode/src/vs/base/browser/trustedTypes.js +1 -2
  14. package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.js +1 -1
  15. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +1 -1
  16. package/vscode/src/vs/base/browser/ui/button/button.js +2 -2
  17. package/vscode/src/vs/base/browser/ui/contextview/contextview.js +1 -4
  18. package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +1 -1
  19. package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +1 -1
  20. package/vscode/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.js +1 -1
  21. package/vscode/src/vs/base/browser/ui/hover/hover.d.ts +32 -16
  22. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate.d.ts +2 -2
  23. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate2.js +2 -2
  24. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.css.js +1 -1
  25. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.js +2 -0
  26. package/vscode/src/vs/base/browser/ui/iconLabel/iconLabel.js +1 -1
  27. package/vscode/src/vs/base/browser/ui/iconLabel/simpleIconLabel.js +1 -1
  28. package/vscode/src/vs/base/browser/ui/inputbox/inputBox.js +1 -1
  29. package/vscode/src/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +1 -1
  30. package/vscode/src/vs/base/browser/ui/list/listView.js +3 -5
  31. package/vscode/src/vs/base/browser/ui/list/rowCache.js +1 -8
  32. package/vscode/src/vs/base/browser/ui/sash/sash.js +1 -1
  33. package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +7 -11
  34. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +1 -1
  35. package/vscode/src/vs/base/browser/ui/splitview/splitview.js +1 -1
  36. package/vscode/src/vs/base/browser/ui/table/tableWidget.js +1 -1
  37. package/vscode/src/vs/base/browser/ui/toggle/toggle.js +1 -1
  38. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.d.ts +8 -1
  39. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +2 -3
  40. package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +1 -1
  41. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +0 -3
  42. package/vscode/src/vs/base/common/assert.js +1 -1
  43. package/vscode/src/vs/base/common/collections.js +49 -1
  44. package/vscode/src/vs/base/common/equals.js +55 -5
  45. package/vscode/src/vs/base/common/errors.js +14 -1
  46. package/vscode/src/vs/base/common/event.js +2 -1
  47. package/vscode/src/vs/base/common/history.js +7 -4
  48. package/vscode/src/vs/base/common/iterator.js +9 -1
  49. package/vscode/src/vs/base/common/map.d.ts +41 -0
  50. package/vscode/src/vs/base/common/numbers.js +18 -1
  51. package/vscode/src/vs/base/common/observableInternal/api.js +11 -0
  52. package/vscode/src/vs/base/common/observableInternal/autorun.js +18 -1
  53. package/vscode/src/vs/base/common/observableInternal/base.d.ts +8 -1
  54. package/vscode/src/vs/base/common/observableInternal/base.js +2 -5
  55. package/vscode/src/vs/base/common/observableInternal/derived.js +13 -3
  56. package/vscode/src/vs/base/common/observableInternal/lazyObservableValue.js +109 -0
  57. package/vscode/src/vs/base/common/observableInternal/promise.js +3 -0
  58. package/vscode/src/vs/base/common/observableInternal/utils.d.ts +7 -0
  59. package/vscode/src/vs/base/common/observableInternal/utils.js +64 -12
  60. package/vscode/src/vs/base/common/prefixTree.d.ts +52 -0
  61. package/vscode/src/vs/base/common/product.d.ts +1 -0
  62. package/vscode/src/vs/base/parts/ipc/common/ipc.js +1 -1
  63. package/vscode/src/vs/editor/browser/config/charWidthReader.js +1 -1
  64. package/vscode/src/vs/editor/browser/controller/textAreaHandler.js +1 -1
  65. package/vscode/src/vs/editor/browser/coreCommands.js +2 -1
  66. package/vscode/src/vs/editor/browser/observableCodeEditor.js +230 -0
  67. package/vscode/src/vs/editor/browser/services/abstractCodeEditorService.js +1 -1
  68. package/vscode/src/vs/editor/browser/services/hoverService/hoverService.js +26 -26
  69. package/vscode/src/vs/editor/browser/services/hoverService/updatableHoverWidget.js +2 -2
  70. package/vscode/src/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
  71. package/vscode/src/vs/editor/browser/view/viewLayer.js +4 -12
  72. package/vscode/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -1
  73. package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +1 -1
  74. package/vscode/src/vs/editor/browser/viewParts/viewZones/viewZones.js +2 -2
  75. package/vscode/src/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +15 -4
  76. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +8 -8
  77. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +4 -4
  78. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -1
  79. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +1 -1
  80. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +14 -2
  81. package/vscode/src/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
  82. package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
  83. package/vscode/src/vs/editor/browser/widget/diffEditor/registrations.contribution.js +2 -2
  84. package/vscode/src/vs/editor/browser/widget/diffEditor/utils/editorGutter.js +3 -3
  85. package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +2 -2
  86. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/colors.js +1 -1
  87. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +2 -2
  88. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +5 -0
  89. package/vscode/src/vs/editor/common/config/editorOptions.js +83 -65
  90. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +43 -43
  91. package/vscode/src/vs/editor/common/cursor/cursor.js +3 -2
  92. package/vscode/src/vs/editor/common/cursor/cursorTypeEditOperations.js +911 -0
  93. package/vscode/src/vs/editor/common/cursor/cursorTypeOperations.js +36 -799
  94. package/vscode/src/vs/editor/common/cursor/cursorWordOperations.js +6 -5
  95. package/vscode/src/vs/editor/common/languageFeatureRegistry.d.ts +1 -0
  96. package/vscode/src/vs/editor/common/languageFeatureRegistry.js +3 -0
  97. package/vscode/src/vs/editor/common/languages/autoIndent.js +23 -1
  98. package/vscode/src/vs/editor/common/languages.d.ts +20 -3
  99. package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js +6 -6
  100. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js +19 -0
  101. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js +3 -0
  102. package/vscode/src/vs/editor/common/model/textModel.js +6 -2
  103. package/vscode/src/vs/editor/common/model/tokenizationTextModelPart.js +5 -5
  104. package/vscode/src/vs/editor/common/model.d.ts +4 -0
  105. package/vscode/src/vs/editor/common/services/getIconClasses.js +1 -1
  106. package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.js +2 -15
  107. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +63 -62
  108. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +11 -8
  109. package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +1 -1
  110. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +2 -17
  111. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.css.js +1 -1
  112. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +18 -5
  113. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js +55 -27
  114. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js +7 -4
  115. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget.js +9 -9
  116. package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -1
  117. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +103 -47
  118. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -2
  119. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +18 -10
  120. package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +2 -4
  121. package/vscode/src/vs/editor/contrib/folding/browser/folding.css.js +1 -1
  122. package/vscode/src/vs/editor/contrib/folding/browser/folding.js +33 -13
  123. package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +12 -7
  124. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +1 -1
  125. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +2 -2
  126. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverController.js +161 -185
  127. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +321 -0
  128. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverStatusBar.js +4 -1
  129. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverTypes.js +6 -21
  130. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverWidget.js +39 -40
  131. package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +55 -46
  132. package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +12 -2
  133. package/vscode/src/vs/editor/contrib/hover/browser/hoverController.js +15 -9
  134. package/vscode/src/vs/editor/contrib/hover/browser/hoverTypes.js +11 -1
  135. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +141 -93
  136. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +24 -7
  137. package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +36 -1
  138. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +5 -3
  139. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js +1 -1
  140. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +25 -12
  141. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +88 -118
  142. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +1 -1
  143. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +34 -33
  144. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js +2 -2
  145. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/provideInlineCompletions.js +11 -4
  146. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/suggestWidgetInlineCompletionProvider.js +10 -19
  147. package/vscode/src/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js +1 -1
  148. package/vscode/src/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js +45 -27
  149. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditController.js +4 -4
  150. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js +1 -1
  151. package/vscode/src/vs/editor/contrib/inlineEdits/browser/commands.js +126 -0
  152. package/vscode/src/vs/editor/contrib/inlineEdits/browser/consts.js +9 -0
  153. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEdits.contribution.js +9 -0
  154. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsController.js +82 -0
  155. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsModel.js +240 -0
  156. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.css.js +4 -0
  157. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.js +322 -0
  158. package/vscode/src/vs/editor/contrib/inlineProgress/browser/inlineProgress.js +8 -4
  159. package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +3 -2
  160. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
  161. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +2 -2
  162. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +60 -0
  163. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.css.js +4 -0
  164. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +1 -1
  165. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScroll.css.js +1 -1
  166. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +38 -20
  167. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +3 -0
  168. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +9 -9
  169. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetStatus.js +10 -32
  170. package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +23 -138
  171. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +3 -0
  172. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +5 -5
  173. package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +13 -12
  174. package/vscode/src/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js +3 -3
  175. package/vscode/src/vs/platform/accessibility/browser/accessibilityService.js +21 -0
  176. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +5 -6
  177. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +1 -1
  178. package/vscode/src/vs/platform/actions/browser/buttonbar.js +27 -6
  179. package/vscode/src/vs/platform/actions/browser/floatingMenu.js +1 -1
  180. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css.js +1 -1
  181. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +33 -3
  182. package/vscode/src/vs/platform/actions/browser/toolbar.js +2 -1
  183. package/vscode/src/vs/platform/actions/common/actions.d.ts +3 -0
  184. package/vscode/src/vs/platform/actions/common/actions.js +3 -0
  185. package/vscode/src/vs/platform/actions/common/menuService.js +3 -2
  186. package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +1 -1
  187. package/vscode/src/vs/platform/configuration/common/configurationRegistry.d.ts +7 -5
  188. package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +109 -13
  189. package/vscode/src/vs/platform/diagnostics/common/diagnostics.d.ts +2 -0
  190. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +12 -6
  191. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +2 -0
  192. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.service.d.ts +3 -3
  193. package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +20 -10
  194. package/vscode/src/vs/platform/extensions/common/extensionValidator.js +46 -8
  195. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +1 -1
  196. package/vscode/src/vs/platform/extensions/common/extensions.js +12 -3
  197. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +368 -0
  198. package/vscode/src/vs/platform/files/common/watcher.js +21 -24
  199. package/vscode/src/vs/platform/list/browser/listService.js +2 -1
  200. package/vscode/src/vs/platform/observable/common/platformObservableUtils.js +2 -2
  201. package/vscode/src/vs/platform/opener/browser/link.js +1 -1
  202. package/vscode/src/vs/platform/product/common/product.js +1 -1
  203. package/vscode/src/vs/platform/quickinput/browser/quickInputTree.js +1 -1
  204. package/vscode/src/vs/platform/remote/common/remoteExtensionsScanner.service.d.ts +0 -2
  205. package/vscode/src/vs/platform/request/common/request.js +18 -8
  206. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +2 -6
  207. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel.d.ts +8 -1
  208. package/vscode/src/vs/platform/theme/common/colorUtils.d.ts +1 -1
  209. package/vscode/src/vs/platform/theme/common/colorUtils.js +25 -5
  210. package/vscode/src/vs/platform/theme/common/colors/baseColors.js +1 -1
  211. package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +6 -6
  212. package/vscode/src/vs/platform/theme/common/colors/editorColors.js +35 -35
  213. package/vscode/src/vs/platform/theme/common/colors/inputColors.js +9 -9
  214. package/vscode/src/vs/platform/theme/common/colors/listColors.js +11 -11
  215. package/vscode/src/vs/platform/theme/common/colors/menuColors.js +4 -4
  216. package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +5 -5
  217. package/vscode/src/vs/platform/theme/common/colors/miscColors.js +1 -1
  218. package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +5 -5
  219. package/vscode/src/vs/platform/tunnel/common/tunnel.js +4 -1
  220. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +75 -19
  221. package/vscode/src/vs/platform/window/common/window.d.ts +2 -2
  222. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +32 -25
  223. package/vscode/src/vs/workbench/api/common/extHost.common.services.js +2 -0
  224. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -0
  225. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +5 -11
  226. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +5 -15
  227. package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +2 -5
  228. package/vscode/src/vs/workbench/api/common/extHostComments.js +9 -3
  229. package/vscode/src/vs/workbench/api/common/extHostDebugService.js +32 -22
  230. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +3 -3
  231. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +109 -40
  232. package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +46 -0
  233. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +84 -35
  234. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
  235. package/vscode/src/vs/workbench/api/common/extHostSCM.js +50 -41
  236. package/vscode/src/vs/workbench/api/common/extHostSearch.js +2 -2
  237. package/vscode/src/vs/workbench/api/common/extHostSecrets.js +11 -8
  238. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +7 -6
  239. package/vscode/src/vs/workbench/api/common/extHostTesting.js +63 -70
  240. package/vscode/src/vs/workbench/api/common/extHostTextEditors.js +5 -3
  241. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +75 -16
  242. package/vscode/src/vs/workbench/api/common/extHostTypes.js +29 -4
  243. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
  244. package/vscode/src/vs/workbench/browser/actions/developerActions.js +1 -1
  245. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +127 -107
  246. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +2 -2
  247. package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +1 -1
  248. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +33 -21
  249. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -1
  250. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +5 -5
  251. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +1 -1
  252. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +2 -2
  253. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +2 -2
  254. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +23 -6
  255. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +3 -1
  256. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +3 -3
  257. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +1 -1
  258. package/vscode/src/vs/workbench/browser/web.api.js +8 -0
  259. package/vscode/src/vs/workbench/browser/workbench.contribution.js +199 -194
  260. package/vscode/src/vs/workbench/common/configuration.js +1 -1
  261. package/vscode/src/vs/workbench/common/contributions.js +8 -1
  262. package/vscode/src/vs/workbench/common/editor.js +5 -1
  263. package/vscode/src/vs/workbench/common/theme.js +79 -454
  264. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +221 -239
  265. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +17 -15
  266. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +1 -0
  267. package/vscode/src/vs/workbench/contrib/chat/browser/chatAgentHover.js +4 -0
  268. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollections.js +27 -0
  269. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCommandContentPart.js +35 -0
  270. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationContentPart.js +51 -0
  271. package/vscode/src/vs/workbench/contrib/chat/browser/{chatConfirmationWidget.js → chatContentParts/chatConfirmationWidget.js} +9 -9
  272. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownContentPart.js +131 -0
  273. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatProgressContentPart.js +37 -0
  274. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatReferencesContentPart.js +263 -0
  275. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTaskContentPart.js +37 -0
  276. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.js +160 -0
  277. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTreeContentPart.js +171 -0
  278. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatWarningContentPart.js +34 -0
  279. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatContentParts/media}/chatConfirmationWidget.css.js +1 -1
  280. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +91 -44
  281. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +292 -1019
  282. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +2 -2
  283. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownRenderer.js +1 -1
  284. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +22 -7
  285. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css.js +1 -1
  286. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +61 -54
  287. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +23 -16
  288. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
  289. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatAgentHover.css.js +1 -1
  290. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +8 -0
  291. package/vscode/src/vs/workbench/contrib/chat/common/chatColors.js +1 -1
  292. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +3 -3
  293. package/vscode/src/vs/workbench/contrib/chat/common/chatWordCounter.js +5 -4
  294. package/vscode/src/vs/workbench/contrib/chat/common/codeBlockModelCollection.js +16 -0
  295. package/vscode/src/vs/workbench/contrib/chat/common/languageModelToolsService.service.js +3 -0
  296. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +2 -2
  297. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +43 -16
  298. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +1 -1
  299. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +1 -3
  300. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js +1 -1
  301. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +7 -5
  302. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +7 -7
  303. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +3 -3
  304. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +3 -3
  305. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +2 -2
  306. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +1 -1
  307. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +2 -1
  308. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +2 -1
  309. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +1 -1
  310. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +8 -5
  311. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +1 -1
  312. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +1 -1
  313. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
  314. package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +1 -1
  315. package/vscode/src/vs/workbench/contrib/contextmenu/browser/contextmenu.contribution.js +5 -5
  316. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +14 -7
  317. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +4 -4
  318. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +8 -7
  319. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +19 -16
  320. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +13 -12
  321. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +19 -2
  322. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +9 -4
  323. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +10 -5
  324. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +4 -4
  325. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +235 -173
  326. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +1 -1
  327. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +2 -1
  328. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +17 -5
  329. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +62 -44
  330. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
  331. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -2
  332. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +114 -107
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatContentWidget.js +33 -25
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +71 -101
  335. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +38 -43
  336. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -33
  337. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +3 -4
  338. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +49 -86
  339. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +60 -71
  340. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css.js +1 -1
  341. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatContentWidget.css.js +1 -1
  342. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +116 -113
  343. package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +6 -10
  344. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -2
  345. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +1 -0
  346. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +2 -2
  347. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findFilters.js +12 -23
  348. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +0 -2
  349. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +7 -9
  350. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +88 -61
  351. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +1 -3
  352. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +39 -3
  353. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +2 -1
  354. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatController.js +12 -11
  355. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +1 -1
  356. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +1 -1
  357. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookBrowser.js +3 -2
  358. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +40 -105
  359. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +27 -26
  360. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +14 -5
  361. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +1 -1
  362. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.js +43 -46
  363. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDnd.js +1 -1
  364. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +4 -4
  365. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +12 -9
  366. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +19 -14
  367. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
  368. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +9 -6
  369. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +1 -1
  370. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +5 -3
  371. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +3 -3
  372. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +1 -1
  373. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +16 -6
  374. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/codeCellViewModel.js +8 -8
  375. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineDataSourceFactory.service.js +3 -0
  376. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +11 -12
  377. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +12 -13
  378. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +1 -1
  379. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookTopCellToolbar.js +5 -3
  380. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +9 -2
  381. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +37 -36
  382. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +18 -8
  383. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +1 -1
  384. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +14 -5
  385. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +17 -22
  386. package/vscode/src/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +1 -1
  387. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +7 -10
  388. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +7 -27
  389. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +3 -4
  390. package/vscode/src/vs/workbench/contrib/search/browser/notebookSearch/notebookSearchService.js +2 -2
  391. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +4 -0
  392. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +3 -3
  393. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +3 -0
  394. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +0 -1
  395. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +13 -37
  396. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.d.ts +88 -0
  397. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +48 -31
  398. package/vscode/src/vs/workbench/contrib/testing/common/testId.d.ts +115 -0
  399. package/vscode/src/vs/workbench/contrib/testing/common/testResult.d.ts +226 -0
  400. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.d.ts +319 -0
  401. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +2 -3
  402. package/vscode/src/vs/workbench/contrib/testing/common/testingStates.d.ts +10 -0
  403. package/vscode/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +21 -2
  404. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewIconManager.js +7 -8
  405. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +3 -3
  406. package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +10 -5
  407. package/vscode/src/vs/workbench/services/editor/common/customEditorLabelService.js +54 -21
  408. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.service.d.ts +1 -0
  409. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.d.ts +1 -2
  410. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -4
  411. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +5 -3
  412. package/vscode/src/vs/workbench/services/extensions/common/extensions.service.d.ts +3 -1
  413. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +59 -41
  414. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +1 -1
  415. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +3 -2
  416. package/vscode/src/vs/workbench/services/host/browser/host.service.d.ts +1 -0
  417. package/vscode/src/vs/workbench/services/language/common/languageService.js +7 -0
  418. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +1 -1
  419. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +2 -2
  420. package/vscode/src/vs/workbench/services/search/common/search.js +2 -1
  421. package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +2 -2
  422. package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +2 -2
  423. package/vscode/src/vs/workbench/services/textfile/common/encoding.js +69 -26
  424. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +23 -4
  425. package/vscode/src/vs/workbench/services/textfile/common/textfiles.d.ts +5 -1
  426. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
  427. package/vscode/src/vs/workbench/services/views/browser/viewsService.js +12 -5
  428. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +38 -19
  429. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyFileService.service.d.ts +2 -1
  430. package/vscode-dts/vscode.proposed.aiTextSearchProvider.d.ts +0 -196
  431. package/vscode-dts/vscode.proposed.attributableCoverage.d.ts +28 -10
  432. package/vscode-dts/vscode.proposed.authGetSessions.d.ts +30 -22
  433. package/vscode-dts/vscode.proposed.chatProvider.d.ts +17 -8
  434. package/vscode-dts/vscode.proposed.chatVariableResolver.d.ts +0 -9
  435. package/vscode-dts/vscode.proposed.commentReveal.d.ts +32 -0
  436. package/vscode-dts/vscode.proposed.commentThreadApplicability.d.ts +10 -0
  437. package/vscode-dts/vscode.proposed.createFileSystemWatcher.d.ts +1 -1
  438. package/vscode-dts/vscode.proposed.fileComments.d.ts +12 -53
  439. package/vscode-dts/vscode.proposed.fileSearchProvider.d.ts +6 -0
  440. package/vscode-dts/vscode.proposed.inlineCompletionsAdditions.d.ts +6 -0
  441. package/vscode-dts/vscode.proposed.lmTools.d.ts +91 -0
  442. package/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts +1 -1
  443. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +10 -6
  444. package/vscode-dts/vscode.proposed.terminalShellIntegration.d.ts +38 -13
  445. package/vscode/src/vs/editor/browser/observableUtilities.js +0 -58
  446. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProviderFactory.service.js +0 -3
  447. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +0 -122
@@ -0,0 +1,46 @@
1
+ import { toDisposable } from '../../../base/common/lifecycle.js';
2
+ import { MainContext } from './extHost.protocol.js';
3
+ import { LanguageModelToolDescription } from './extHostTypeConverters.js';
4
+ class ExtHostLanguageModelTools {
5
+ constructor(mainContext) {
6
+ this._registeredTools = ( new Map());
7
+ this._allTools = ( new Map());
8
+ this._proxy = ( mainContext.getProxy(MainContext.MainThreadLanguageModelTools));
9
+ this._proxy.$getTools().then(tools => {
10
+ for (const tool of tools) {
11
+ this._allTools.set(tool.name, tool);
12
+ }
13
+ });
14
+ }
15
+ async invokeTool(name, parameters, token) {
16
+ return await this._proxy.$invokeTool(name, parameters, token);
17
+ }
18
+ async $acceptToolDelta(delta) {
19
+ if (delta.added) {
20
+ this._allTools.set(delta.added.name, delta.added);
21
+ }
22
+ if (delta.removed) {
23
+ this._allTools.delete(delta.removed);
24
+ }
25
+ }
26
+ get tools() {
27
+ return ( Array.from(( this._allTools.values()))
28
+ .map(tool => LanguageModelToolDescription.to(tool)));
29
+ }
30
+ async $invokeTool(name, parameters, token) {
31
+ const item = this._registeredTools.get(name);
32
+ if (!item) {
33
+ throw ( new Error(`Unknown tool ${name}`));
34
+ }
35
+ return await item.tool.invoke(parameters, token);
36
+ }
37
+ registerTool(extension, name, tool) {
38
+ this._registeredTools.set(name, { extension, tool });
39
+ this._proxy.$registerTool(name);
40
+ return toDisposable(() => {
41
+ this._registeredTools.delete(name);
42
+ this._proxy.$unregisterTool(name);
43
+ });
44
+ }
45
+ }
46
+ export { ExtHostLanguageModelTools };
@@ -1,7 +1,8 @@
1
1
  import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
- import { Barrier, AsyncIterableSource } from '../../../base/common/async.js';
2
+ import { AsyncIterableSource, AsyncIterableObject } from '../../../base/common/async.js';
3
3
  import { CancellationToken } from '../../../base/common/cancellation.js';
4
- import { CancellationError } from '../../../base/common/errors.js';
4
+ import { toErrorMessage } from '../../../base/common/errorMessage.js';
5
+ import { transformErrorForSerialization, CancellationError, transformErrorFromSerialization } from '../../../base/common/errors.js';
5
6
  import { Emitter, Event } from '../../../base/common/event.js';
6
7
  import { Iterable } from '../../../base/common/iterator.js';
7
8
  import { toDisposable } from '../../../base/common/lifecycle.js';
@@ -14,7 +15,7 @@ import { MainContext } from './extHost.protocol.js';
14
15
  import { IExtHostAuthentication } from './extHostAuthentication.js';
15
16
  import { IExtHostRpcService } from './extHostRpcService.js';
16
17
  import { LanguageModelChatMessage } from './extHostTypeConverters.js';
17
- import { LanguageModelError, LanguageModelChatMessageRole } from './extHostTypes.js';
18
+ import { LanguageModelError, LanguageModelChatMessageRole, LanguageModelFunctionResultPart, LanguageModelTextPart, LanguageModelFunctionUsePart } from './extHostTypes.js';
18
19
  import { INTERNAL_AUTH_PROVIDER_PREFIX } from '../../services/authentication/common/authentication.js';
19
20
  import { checkProposedApiEnabled } from '../../services/extensions/common/extensions.js';
20
21
  var ExtHostLanguageModels_1;
@@ -32,10 +33,21 @@ class LanguageModelResponse {
32
33
  this._responseStreams = ( (new Map()));
33
34
  this._defaultStream = ( (new AsyncIterableSource()));
34
35
  this._isDone = false;
35
- this._isStreaming = false;
36
36
  const that = this;
37
37
  this.apiObject = {
38
- text: that._defaultStream.asyncIterable,
38
+ get stream() {
39
+ return that._defaultStream.asyncIterable;
40
+ },
41
+ get text() {
42
+ return ( (AsyncIterableObject.map(that._defaultStream.asyncIterable, part => {
43
+ if (part instanceof LanguageModelTextPart) {
44
+ return part.value;
45
+ }
46
+ else {
47
+ return undefined;
48
+ }
49
+ }))).coalesce();
50
+ },
39
51
  };
40
52
  }
41
53
  *_streams() {
@@ -52,7 +64,6 @@ class LanguageModelResponse {
52
64
  if (this._isDone) {
53
65
  return;
54
66
  }
55
- this._isStreaming = true;
56
67
  let res = this._responseStreams.get(fragment.index);
57
68
  if (!res) {
58
69
  if (this._responseStreams.size === 0) {
@@ -63,10 +74,14 @@ class LanguageModelResponse {
63
74
  }
64
75
  this._responseStreams.set(fragment.index, res);
65
76
  }
66
- res.stream.emitOne(fragment.part);
67
- }
68
- get isStreaming() {
69
- return this._isStreaming;
77
+ let out;
78
+ if (fragment.part.type === 'text') {
79
+ out = new LanguageModelTextPart(fragment.part.value);
80
+ }
81
+ else {
82
+ out = new LanguageModelFunctionUsePart(fragment.part.name, fragment.part.parameters);
83
+ }
84
+ res.stream.emitOne(out);
70
85
  }
71
86
  reject(err) {
72
87
  this._isDone = true;
@@ -132,19 +147,44 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
132
147
  responseReceivedListener?.dispose();
133
148
  });
134
149
  }
135
- async $provideLanguageModelResponse(handle, requestId, from, messages, options, token) {
150
+ async $startChatRequest(handle, requestId, from, messages, options, token) {
136
151
  const data = this._languageModels.get(handle);
137
152
  if (!data) {
138
- return;
153
+ throw ( (new Error('Provider not found')));
139
154
  }
140
155
  const progress = ( (new Progress(async (fragment) => {
141
156
  if (token.isCancellationRequested) {
142
157
  this._logService.warn(`[CHAT](${data.extension.value}) CANNOT send progress because the REQUEST IS CANCELLED`);
143
158
  return;
144
159
  }
145
- this._proxy.$handleProgressChunk(requestId, { index: fragment.index, part: fragment.part });
160
+ let part;
161
+ if (fragment.part instanceof LanguageModelFunctionUsePart) {
162
+ part = { type: 'function_use', name: fragment.part.name, parameters: fragment.part.parameters };
163
+ }
164
+ else if (fragment.part instanceof LanguageModelTextPart) {
165
+ part = { type: 'text', value: fragment.part.value };
166
+ }
167
+ if (!part) {
168
+ this._logService.warn(`[CHAT](${data.extension.value}) UNKNOWN part ${JSON.stringify(fragment)}`);
169
+ return;
170
+ }
171
+ this._proxy.$reportResponsePart(requestId, { index: fragment.index, part });
146
172
  })));
147
- return data.provider.provideLanguageModelResponse(( (messages.map(LanguageModelChatMessage.to))), options, ExtensionIdentifier.toKey(from), progress, token);
173
+ let p;
174
+ if (data.provider.provideLanguageModelResponse2) {
175
+ p = Promise.resolve(data.provider.provideLanguageModelResponse2(( (messages.map(LanguageModelChatMessage.to))), options, ExtensionIdentifier.toKey(from), progress, token));
176
+ }
177
+ else {
178
+ const progress2 = ( (new Progress(async (fragment) => {
179
+ progress.report({ index: fragment.index, part: new LanguageModelTextPart(fragment.part) });
180
+ })));
181
+ p = Promise.resolve(data.provider.provideLanguageModelResponse(( (messages.map(LanguageModelChatMessage.to))), options?.modelOptions ?? {}, ExtensionIdentifier.toKey(from), progress2, token));
182
+ }
183
+ p.then(() => {
184
+ this._proxy.$reportResponseDone(requestId, undefined);
185
+ }, err => {
186
+ this._proxy.$reportResponseDone(requestId, transformErrorForSerialization(err));
187
+ });
148
188
  }
149
189
  $provideTokenLength(handle, value, token) {
150
190
  const data = this._languageModels.get(handle);
@@ -226,32 +266,25 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
226
266
  throw LanguageModelError.NoPermissions(`Language model '${languageModelId}' cannot be used by '${from.value}'.`);
227
267
  }
228
268
  }
229
- const requestId = (Math.random() * 1e6) | 0;
230
- const requestPromise = this._proxy.$fetchResponse(from, languageModelId, requestId, internalMessages, options.modelOptions ?? {}, token);
231
- const barrier = ( (new Barrier()));
232
- const res = ( (new LanguageModelResponse()));
233
- this._pendingRequest.set(requestId, { languageModelId, res });
234
- let error;
235
- requestPromise.catch(err => {
236
- if (barrier.isOpen()) {
237
- res.reject(err);
269
+ try {
270
+ const requestId = (Math.random() * 1e6) | 0;
271
+ const res = ( (new LanguageModelResponse()));
272
+ this._pendingRequest.set(requestId, { languageModelId, res });
273
+ try {
274
+ await this._proxy.$tryStartChatRequest(from, languageModelId, requestId, internalMessages, options, token);
238
275
  }
239
- else {
240
- error = err;
276
+ catch (error) {
277
+ this._pendingRequest.delete(requestId);
278
+ throw error;
241
279
  }
242
- }).finally(() => {
243
- this._pendingRequest.delete(requestId);
244
- res.resolve();
245
- barrier.open();
246
- });
247
- await barrier.wait();
248
- if (error) {
280
+ return res.apiObject;
281
+ }
282
+ catch (error) {
249
283
  if (error.name === LanguageModelError.name) {
250
284
  throw error;
251
285
  }
252
- throw new LanguageModelError(`Language model '${languageModelId}' errored, check cause for more details`, 'Unknown', error);
286
+ throw new LanguageModelError(`Language model '${languageModelId}' errored: ${toErrorMessage(error)}`, 'Unknown', error);
253
287
  }
254
- return res.apiObject;
255
288
  }
256
289
  _convertMessages(extension, messages) {
257
290
  const internalMessages = [];
@@ -259,16 +292,32 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
259
292
  if (message.role === LanguageModelChatMessageRole.System) {
260
293
  checkProposedApiEnabled(extension, 'languageModelSystem');
261
294
  }
295
+ if (message.content2 instanceof LanguageModelFunctionResultPart) {
296
+ checkProposedApiEnabled(extension, 'lmTools');
297
+ }
262
298
  internalMessages.push(LanguageModelChatMessage.from(message));
263
299
  }
264
300
  return internalMessages;
265
301
  }
266
- async $handleResponseFragment(requestId, chunk) {
302
+ async $acceptResponsePart(requestId, chunk) {
267
303
  const data = this._pendingRequest.get(requestId);
268
304
  if (data) {
269
305
  data.res.handleFragment(chunk);
270
306
  }
271
307
  }
308
+ async $acceptResponseDone(requestId, error) {
309
+ const data = this._pendingRequest.get(requestId);
310
+ if (!data) {
311
+ return;
312
+ }
313
+ this._pendingRequest.delete(requestId);
314
+ if (error) {
315
+ data.res.reject(transformErrorFromSerialization(error));
316
+ }
317
+ else {
318
+ data.res.resolve();
319
+ }
320
+ }
272
321
  async _getAuthAccess(from, to, justification, silent) {
273
322
  const providerId = INTERNAL_AUTH_PROVIDER_PREFIX + to.identifier.value;
274
323
  const session = await this._extHostAuthentication.getSession(from, providerId, [], { silent: true });
@@ -21,7 +21,7 @@ import { Schemas } from '../../../base/common/network.js';
21
21
  import { QueryType } from '../../services/search/common/search.js';
22
22
  import { CellSearchModel } from '../../contrib/search/common/cellSearchModel.js';
23
23
  import { genericCellMatchesToTextSearchMatches } from '../../contrib/search/common/searchNotebookHelpers.js';
24
- import { globMatchesResource } from '../../services/editor/common/editorResolverService.js';
24
+ import { RegisteredEditorPriority, globMatchesResource } from '../../services/editor/common/editorResolverService.js';
25
25
  const _moduleId = "vs/workbench/api/common/extHostNotebook";
26
26
  class ExtHostNotebookController {
27
27
  static { this._notebookStatusBarItemProviderHandlePool = 0; }
@@ -120,7 +120,7 @@ class ExtHostNotebookController {
120
120
  providerDisplayName: extension.displayName || extension.name,
121
121
  displayName: registration.displayName,
122
122
  filenamePattern: viewOptionsFilenamePattern,
123
- exclusive: registration.exclusive || false
123
+ priority: registration.exclusive ? RegisteredEditorPriority.exclusive : undefined
124
124
  };
125
125
  }
126
126
  registerNotebookCellStatusBarItemProvider(extension, notebookType, provider) {
@@ -3,9 +3,9 @@ import { URI } from '../../../base/common/uri.js';
3
3
  import { Emitter, Event } from '../../../base/common/event.js';
4
4
  import { debounce } from '../../../base/common/decorators.js';
5
5
  import { DisposableStore, MutableDisposable } from '../../../base/common/lifecycle.js';
6
- import { asPromise, Sequencer } from '../../../base/common/async.js';
6
+ import { asPromise } from '../../../base/common/async.js';
7
7
  import { MainContext } from './extHost.protocol.js';
8
- import { sortedDiff, equals } from '../../../base/common/arrays.js';
8
+ import { equals, sortedDiff } from '../../../base/common/arrays.js';
9
9
  import { comparePaths } from '../../../base/common/comparers.js';
10
10
  import { ILogService } from '../../../platform/log/common/log.service.js';
11
11
  import { ExtensionIdentifierMap } from '../../../platform/extensions/common/extensions.js';
@@ -42,21 +42,26 @@ function getIconResource(decorations) {
42
42
  return undefined;
43
43
  }
44
44
  }
45
- function getHistoryItemIconDto(historyItem) {
46
- if (!historyItem.icon) {
45
+ function getHistoryItemIconDto(icon) {
46
+ if (!icon) {
47
47
  return undefined;
48
48
  }
49
- else if (URI.isUri(historyItem.icon)) {
50
- return historyItem.icon;
49
+ else if (URI.isUri(icon)) {
50
+ return icon;
51
51
  }
52
- else if (ThemeIcon.isThemeIcon(historyItem.icon)) {
53
- return historyItem.icon;
52
+ else if (ThemeIcon.isThemeIcon(icon)) {
53
+ return icon;
54
54
  }
55
55
  else {
56
- const icon = historyItem.icon;
57
- return { light: icon.light, dark: icon.dark };
56
+ const iconDto = icon;
57
+ return { light: iconDto.light, dark: iconDto.dark };
58
58
  }
59
59
  }
60
+ function toSCMHistoryItemDto(historyItem) {
61
+ const icon = getHistoryItemIconDto(historyItem.icon);
62
+ const labels = historyItem.labels?.map(l => ({ title: l.title, icon: getHistoryItemIconDto(l.icon) }));
63
+ return { ...historyItem, icon, labels };
64
+ }
60
65
  function compareResourceThemableDecorations(a, b) {
61
66
  if (!a.iconPath && !b.iconPath) {
62
67
  return 0;
@@ -223,7 +228,7 @@ class ExtHostSCMInputBox {
223
228
  }
224
229
  set value(value) {
225
230
  value = value ?? '';
226
- this._sequencer.queue(async () => this.#proxy.$setInputBoxValue(this._sourceControlHandle, value));
231
+ this.#proxy.$setInputBoxValue(this._sourceControlHandle, value);
227
232
  this.updateValue(value);
228
233
  }
229
234
  get onDidChange() {
@@ -233,7 +238,7 @@ class ExtHostSCMInputBox {
233
238
  return this._placeholder;
234
239
  }
235
240
  set placeholder(placeholder) {
236
- this._sequencer.queue(async () => this.#proxy.$setInputBoxPlaceholder(this._sourceControlHandle, placeholder));
241
+ this.#proxy.$setInputBoxPlaceholder(this._sourceControlHandle, placeholder);
237
242
  this._placeholder = placeholder;
238
243
  }
239
244
  get validateInput() {
@@ -248,7 +253,7 @@ class ExtHostSCMInputBox {
248
253
  ));
249
254
  }
250
255
  this._validateInput = fn;
251
- this._sequencer.queue(async () => this.#proxy.$setValidationProviderIsEnabled(this._sourceControlHandle, !!fn));
256
+ this.#proxy.$setValidationProviderIsEnabled(this._sourceControlHandle, !!fn);
252
257
  }
253
258
  get enabled() {
254
259
  return this._enabled;
@@ -259,7 +264,7 @@ class ExtHostSCMInputBox {
259
264
  return;
260
265
  }
261
266
  this._enabled = enabled;
262
- this._sequencer.queue(async () => this.#proxy.$setInputBoxEnablement(this._sourceControlHandle, enabled));
267
+ this.#proxy.$setInputBoxEnablement(this._sourceControlHandle, enabled);
263
268
  }
264
269
  get visible() {
265
270
  return this._visible;
@@ -270,15 +275,14 @@ class ExtHostSCMInputBox {
270
275
  return;
271
276
  }
272
277
  this._visible = visible;
273
- this._sequencer.queue(async () => this.#proxy.$setInputBoxVisibility(this._sourceControlHandle, visible));
278
+ this.#proxy.$setInputBoxVisibility(this._sourceControlHandle, visible);
274
279
  }
275
280
  get document() {
276
281
  checkProposedApiEnabled(this._extension, 'scmTextDocument');
277
282
  return this.#extHostDocuments.getDocument(this._documentUri);
278
283
  }
279
- constructor(_extension, _extHostDocuments, proxy, _sequencer, _sourceControlHandle, _documentUri) {
284
+ constructor(_extension, _extHostDocuments, proxy, _sourceControlHandle, _documentUri) {
280
285
  this._extension = _extension;
281
- this._sequencer = _sequencer;
282
286
  this._sourceControlHandle = _sourceControlHandle;
283
287
  this._documentUri = _documentUri;
284
288
  this._value = '';
@@ -291,7 +295,7 @@ class ExtHostSCMInputBox {
291
295
  }
292
296
  showValidationMessage(message, type) {
293
297
  checkProposedApiEnabled(this._extension, 'scmValidation');
294
- this._sequencer.queue(async () => this.#proxy.$showValidationMessage(this._sourceControlHandle, message, type));
298
+ this.#proxy.$showValidationMessage(this._sourceControlHandle, message, type);
295
299
  }
296
300
  $onInputBoxValueChange(value) {
297
301
  this.updateValue(value);
@@ -308,12 +312,12 @@ class ExtHostSourceControlResourceGroup {
308
312
  get label() { return this._label; }
309
313
  set label(label) {
310
314
  this._label = label;
311
- this._sequencer.queue(async () => this._proxy.$updateGroupLabel(this._sourceControlHandle, this.handle, label));
315
+ this._proxy.$updateGroupLabel(this._sourceControlHandle, this.handle, label);
312
316
  }
313
317
  get hideWhenEmpty() { return this._hideWhenEmpty; }
314
318
  set hideWhenEmpty(hideWhenEmpty) {
315
319
  this._hideWhenEmpty = hideWhenEmpty;
316
- this._sequencer.queue(async () => this._proxy.$updateGroup(this._sourceControlHandle, this.handle, this.features));
320
+ this._proxy.$updateGroup(this._sourceControlHandle, this.handle, this.features);
317
321
  }
318
322
  get features() {
319
323
  return {
@@ -325,10 +329,9 @@ class ExtHostSourceControlResourceGroup {
325
329
  this._resourceStates = [...resources];
326
330
  this._onDidUpdateResourceStates.fire();
327
331
  }
328
- constructor(_proxy, _commands, _sequencer, _sourceControlHandle, _id, _label, multiDiffEditorEnableViewChanges, _extension) {
332
+ constructor(_proxy, _commands, _sourceControlHandle, _id, _label, multiDiffEditorEnableViewChanges, _extension) {
329
333
  this._proxy = _proxy;
330
334
  this._commands = _commands;
331
- this._sequencer = _sequencer;
332
335
  this._sourceControlHandle = _sourceControlHandle;
333
336
  this._id = _id;
334
337
  this._label = _label;
@@ -436,7 +439,7 @@ class ExtHostSourceControl {
436
439
  return;
437
440
  }
438
441
  this._count = count;
439
- this._sequencer.queue(async () => this.#proxy.$updateSourceControl(this.handle, { count }));
442
+ this.#proxy.$updateSourceControl(this.handle, { count });
440
443
  }
441
444
  get quickDiffProvider() {
442
445
  return this._quickDiffProvider;
@@ -447,7 +450,7 @@ class ExtHostSourceControl {
447
450
  if (isProposedApiEnabled(this._extension, 'quickDiffProvider')) {
448
451
  quickDiffLabel = quickDiffProvider?.label;
449
452
  }
450
- this._sequencer.queue(async () => this.#proxy.$updateSourceControl(this.handle, { hasQuickDiffProvider: !!quickDiffProvider, quickDiffLabel }));
453
+ this.#proxy.$updateSourceControl(this.handle, { hasQuickDiffProvider: !!quickDiffProvider, quickDiffLabel });
451
454
  }
452
455
  get historyProvider() {
453
456
  checkProposedApiEnabled(this._extension, 'scmHistoryProvider');
@@ -457,11 +460,11 @@ class ExtHostSourceControl {
457
460
  checkProposedApiEnabled(this._extension, 'scmHistoryProvider');
458
461
  this._historyProvider = historyProvider;
459
462
  this._historyProviderDisposable.value = ( new DisposableStore());
460
- this._sequencer.queue(async () => this.#proxy.$updateSourceControl(this.handle, { hasHistoryProvider: !!historyProvider }));
463
+ this.#proxy.$updateSourceControl(this.handle, { hasHistoryProvider: !!historyProvider });
461
464
  if (historyProvider) {
462
465
  this._historyProviderDisposable.value.add(historyProvider.onDidChangeCurrentHistoryItemGroup(() => {
463
466
  this._historyProviderCurrentHistoryItemGroup = historyProvider?.currentHistoryItemGroup;
464
- this._sequencer.queue(async () => this.#proxy.$onDidChangeHistoryProviderCurrentHistoryItemGroup(this.handle, this._historyProviderCurrentHistoryItemGroup));
467
+ this.#proxy.$onDidChangeHistoryProviderCurrentHistoryItemGroup(this.handle, this._historyProviderCurrentHistoryItemGroup);
465
468
  }));
466
469
  }
467
470
  }
@@ -473,7 +476,7 @@ class ExtHostSourceControl {
473
476
  return;
474
477
  }
475
478
  this._commitTemplate = commitTemplate;
476
- this._sequencer.queue(async () => this.#proxy.$updateSourceControl(this.handle, { commitTemplate }));
479
+ this.#proxy.$updateSourceControl(this.handle, { commitTemplate });
477
480
  }
478
481
  get acceptInputCommand() {
479
482
  return this._acceptInputCommand;
@@ -482,7 +485,7 @@ class ExtHostSourceControl {
482
485
  this._acceptInputDisposables.value = ( new DisposableStore());
483
486
  this._acceptInputCommand = acceptInputCommand;
484
487
  const internal = this._commands.converter.toInternal(acceptInputCommand, this._acceptInputDisposables.value);
485
- this._sequencer.queue(async () => this.#proxy.$updateSourceControl(this.handle, { acceptInputCommand: internal }));
488
+ this.#proxy.$updateSourceControl(this.handle, { acceptInputCommand: internal });
486
489
  }
487
490
  get actionButton() {
488
491
  checkProposedApiEnabled(this._extension, 'scmActionButton');
@@ -503,13 +506,15 @@ class ExtHostSourceControl {
503
506
  description: actionButton.description,
504
507
  enabled: actionButton.enabled
505
508
  } : undefined;
506
- this._sequencer.queue(async () => this.#proxy.$updateSourceControl(this.handle, { actionButton: internal ?? null }));
509
+ this.#proxy.$updateSourceControl(this.handle, { actionButton: internal ?? null });
507
510
  }
508
511
  get statusBarCommands() {
509
512
  return this._statusBarCommands;
510
513
  }
511
514
  set statusBarCommands(statusBarCommands) {
515
+ this.logService.trace('ExtHostSourceControl#statusBarCommands', ( (statusBarCommands ?? []).map(c => c.command)).join(', '));
512
516
  if (this._statusBarCommands && statusBarCommands && commandListEquals(this._statusBarCommands, statusBarCommands)) {
517
+ this.logService.trace('ExtHostSourceControl#statusBarCommands are equal');
513
518
  return;
514
519
  }
515
520
  this._statusBarDisposables.value = ( new DisposableStore());
@@ -517,18 +522,18 @@ class ExtHostSourceControl {
517
522
  const internal = ( (statusBarCommands || []).map(
518
523
  c => this._commands.converter.toInternal(c, this._statusBarDisposables.value)
519
524
  ));
520
- this._sequencer.queue(async () => this.#proxy.$updateSourceControl(this.handle, { statusBarCommands: internal }));
525
+ this.#proxy.$updateSourceControl(this.handle, { statusBarCommands: internal });
521
526
  }
522
527
  get selected() {
523
528
  return this._selected;
524
529
  }
525
- constructor(_extension, _extHostDocuments, proxy, _commands, _id, _label, _rootUri) {
530
+ constructor(_extension, _extHostDocuments, proxy, _commands, logService, _id, _label, _rootUri) {
526
531
  this._extension = _extension;
527
532
  this._commands = _commands;
533
+ this.logService = logService;
528
534
  this._id = _id;
529
535
  this._label = _label;
530
536
  this._rootUri = _rootUri;
531
- this._sequencer = ( new Sequencer());
532
537
  this._groups = ( new Map());
533
538
  this._count = undefined;
534
539
  this._quickDiffProvider = undefined;
@@ -551,22 +556,20 @@ class ExtHostSourceControl {
551
556
  path: `${_id}/scm${this.handle}/input`,
552
557
  query: _rootUri ? `rootUri=${encodeURIComponent(( _rootUri.toString()))}` : undefined
553
558
  }));
554
- this._sequencer.queue(() => this.#proxy.$registerSourceControl(this.handle, _id, _label, _rootUri, inputBoxDocumentUri));
555
559
  this._inputBox = ( new ExtHostSCMInputBox(
556
560
  _extension,
557
561
  _extHostDocuments,
558
562
  this.#proxy,
559
- this._sequencer,
560
563
  this.handle,
561
564
  inputBoxDocumentUri
562
565
  ));
566
+ this.#proxy.$registerSourceControl(this.handle, _id, _label, _rootUri, inputBoxDocumentUri);
563
567
  }
564
568
  createResourceGroup(id, label, options) {
565
569
  const multiDiffEditorEnableViewChanges = isProposedApiEnabled(this._extension, 'scmMultiDiffEditor') && options?.multiDiffEditorEnableViewChanges === true;
566
570
  const group = ( new ExtHostSourceControlResourceGroup(
567
571
  this.#proxy,
568
572
  this._commands,
569
- this._sequencer,
570
573
  this.handle,
571
574
  id,
572
575
  label,
@@ -591,7 +594,7 @@ class ExtHostSourceControl {
591
594
  this.updatedResourceGroups.delete(group);
592
595
  updateListener.dispose();
593
596
  this._groups.delete(group.handle);
594
- this._sequencer.queue(async () => this.#proxy.$unregisterGroup(this.handle, group.handle));
597
+ this.#proxy.$unregisterGroup(this.handle, group.handle);
595
598
  });
596
599
  groups.push([group.handle, group.id, group.label, group.features, group.multiDiffEditorEnableViewChanges]);
597
600
  const snapshot = group._takeResourceStateSnapshot();
@@ -600,7 +603,7 @@ class ExtHostSourceControl {
600
603
  }
601
604
  this._groups.set(group.handle, group);
602
605
  }
603
- this._sequencer.queue(async () => this.#proxy.$registerGroups(this.handle, groups, splices));
606
+ this.#proxy.$registerGroups(this.handle, groups, splices);
604
607
  this.createdResourceGroups.clear();
605
608
  }
606
609
  eventuallyUpdateResourceStates() {
@@ -613,7 +616,7 @@ class ExtHostSourceControl {
613
616
  splices.push([group.handle, snapshot]);
614
617
  });
615
618
  if (splices.length > 0) {
616
- this._sequencer.queue(async () => this.#proxy.$spliceResourceStates(this.handle, splices));
619
+ this.#proxy.$spliceResourceStates(this.handle, splices);
617
620
  }
618
621
  this.updatedResourceGroups.clear();
619
622
  }
@@ -629,7 +632,7 @@ class ExtHostSourceControl {
629
632
  this._actionButtonDisposables.dispose();
630
633
  this._statusBarDisposables.dispose();
631
634
  this._groups.forEach(group => group.dispose());
632
- this._sequencer.queue(async () => this.#proxy.$unregisterSourceControl(this.handle));
635
+ this.#proxy.$unregisterSourceControl(this.handle);
633
636
  }
634
637
  }
635
638
  ExtHostSourceControl.__decorator = ( __decorate([
@@ -693,6 +696,7 @@ let ExtHostSCM = class ExtHostSCM {
693
696
  this._extHostDocuments,
694
697
  this._proxy,
695
698
  this._commands,
699
+ this.logService,
696
700
  id,
697
701
  label,
698
702
  rootUri
@@ -778,7 +782,12 @@ let ExtHostSCM = class ExtHostSCM {
778
782
  async $provideHistoryItems(sourceControlHandle, historyItemGroupId, options, token) {
779
783
  const historyProvider = this._sourceControls.get(sourceControlHandle)?.historyProvider;
780
784
  const historyItems = await historyProvider?.provideHistoryItems(historyItemGroupId, options, token);
781
- return historyItems?.map(item => ({ ...item, icon: getHistoryItemIconDto(item) })) ?? undefined;
785
+ return historyItems?.map(item => toSCMHistoryItemDto(item)) ?? undefined;
786
+ }
787
+ async $provideHistoryItems2(sourceControlHandle, options, token) {
788
+ const historyProvider = this._sourceControls.get(sourceControlHandle)?.historyProvider;
789
+ const historyItems = await historyProvider?.provideHistoryItems2(options, token);
790
+ return historyItems?.map(item => toSCMHistoryItemDto(item)) ?? undefined;
782
791
  }
783
792
  async $provideHistoryItemSummary(sourceControlHandle, historyItemId, historyItemParentId, token) {
784
793
  const historyProvider = this._sourceControls.get(sourceControlHandle)?.historyProvider;
@@ -786,7 +795,7 @@ let ExtHostSCM = class ExtHostSCM {
786
795
  return undefined;
787
796
  }
788
797
  const historyItem = await historyProvider.provideHistoryItemSummary(historyItemId, historyItemParentId, token);
789
- return historyItem ? { ...historyItem, icon: getHistoryItemIconDto(historyItem) } : undefined;
798
+ return historyItem ? toSCMHistoryItemDto(historyItem) : undefined;
790
799
  }
791
800
  async $provideHistoryItemChanges(sourceControlHandle, historyItemId, historyItemParentId, token) {
792
801
  const historyProvider = this._sourceControls.get(sourceControlHandle)?.historyProvider;
@@ -93,7 +93,7 @@ let ExtHostSearch = class ExtHostSearch {
93
93
  $provideTextSearchResults(handle, session, rawQuery, token) {
94
94
  const provider = this._textSearchProvider.get(handle);
95
95
  if (!provider || !provider.provideTextSearchResults) {
96
- throw ( new Error(`2 Unknown provider ${handle}`));
96
+ throw ( new Error(`Unknown Text Search Provider ${handle}`));
97
97
  }
98
98
  const query = reviveQuery(rawQuery);
99
99
  const engine = this.createTextSearchManager(query, provider);
@@ -102,7 +102,7 @@ let ExtHostSearch = class ExtHostSearch {
102
102
  $provideAITextSearchResults(handle, session, rawQuery, token) {
103
103
  const provider = this._aiTextSearchProvider.get(handle);
104
104
  if (!provider || !provider.provideAITextSearchResults) {
105
- throw ( new Error(`1 Unknown provider ${handle}`));
105
+ throw ( new Error(`Unknown AI Text Search Provider ${handle}`));
106
106
  }
107
107
  const query = reviveQuery(rawQuery);
108
108
  const engine = this.createAITextSearchManager(query, provider);
@@ -1,17 +1,20 @@
1
1
  import { ExtensionIdentifier } from '../../../platform/extensions/common/extensions.js';
2
- import { Emitter } from '../../../base/common/event.js';
2
+ import { Event } from '../../../base/common/event.js';
3
+ import { DisposableStore } from '../../../base/common/lifecycle.js';
3
4
  class ExtensionSecrets {
4
5
  #secretState;
5
6
  constructor(extensionDescription, secretState) {
6
- this._onDidChange = ( new Emitter());
7
- this.onDidChange = this._onDidChange.event;
7
+ this.disposables = ( new DisposableStore());
8
8
  this._id = ExtensionIdentifier.toKey(extensionDescription.identifier);
9
9
  this.#secretState = secretState;
10
- this.#secretState.onDidChangePassword(e => {
11
- if (e.extensionId === this._id) {
12
- this._onDidChange.fire({ key: e.key });
13
- }
14
- });
10
+ this.onDidChange = ( Event.map(
11
+ Event.filter(this.#secretState.onDidChangePassword, e => e.extensionId === this._id),
12
+ e => ({ key: e.key }),
13
+ this.disposables
14
+ ));
15
+ }
16
+ dispose() {
17
+ this.disposables.dispose();
15
18
  }
16
19
  get(key) {
17
20
  return this.#secretState.get(this._id, key);