@codingame/monaco-vscode-api 6.0.2 → 7.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 (450) hide show
  1. package/README.md +93 -73
  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/monaco.d.ts +1 -1
  7. package/monaco.js +1 -1
  8. package/package.json +9 -9
  9. package/service-override/extensions.d.ts +1 -2
  10. package/services.js +4 -2
  11. package/vscode/src/vs/base/browser/dnd.js +1 -1
  12. package/vscode/src/vs/base/browser/dom.js +116 -5
  13. package/vscode/src/vs/base/browser/domObservable.js +16 -0
  14. package/vscode/src/vs/base/browser/markdownRenderer.js +5 -3
  15. package/vscode/src/vs/base/browser/trustedTypes.js +1 -2
  16. package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.js +1 -1
  17. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +1 -1
  18. package/vscode/src/vs/base/browser/ui/button/button.js +2 -2
  19. package/vscode/src/vs/base/browser/ui/contextview/contextview.js +1 -4
  20. package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +1 -1
  21. package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +1 -1
  22. package/vscode/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.js +1 -1
  23. package/vscode/src/vs/base/browser/ui/hover/hover.d.ts +32 -16
  24. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate.d.ts +2 -2
  25. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate2.js +2 -2
  26. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.css.js +1 -1
  27. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.js +2 -0
  28. package/vscode/src/vs/base/browser/ui/iconLabel/iconLabel.js +1 -1
  29. package/vscode/src/vs/base/browser/ui/iconLabel/simpleIconLabel.js +1 -1
  30. package/vscode/src/vs/base/browser/ui/inputbox/inputBox.js +1 -1
  31. package/vscode/src/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +1 -1
  32. package/vscode/src/vs/base/browser/ui/list/listView.js +3 -5
  33. package/vscode/src/vs/base/browser/ui/list/rowCache.js +1 -8
  34. package/vscode/src/vs/base/browser/ui/sash/sash.js +1 -1
  35. package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +7 -11
  36. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +1 -1
  37. package/vscode/src/vs/base/browser/ui/splitview/splitview.js +1 -1
  38. package/vscode/src/vs/base/browser/ui/table/tableWidget.js +1 -1
  39. package/vscode/src/vs/base/browser/ui/toggle/toggle.js +1 -1
  40. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.d.ts +8 -1
  41. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +2 -3
  42. package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +1 -1
  43. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +0 -3
  44. package/vscode/src/vs/base/common/assert.js +1 -1
  45. package/vscode/src/vs/base/common/collections.js +49 -1
  46. package/vscode/src/vs/base/common/equals.js +55 -5
  47. package/vscode/src/vs/base/common/errors.js +14 -1
  48. package/vscode/src/vs/base/common/event.js +2 -1
  49. package/vscode/src/vs/base/common/history.js +7 -4
  50. package/vscode/src/vs/base/common/iterator.js +9 -1
  51. package/vscode/src/vs/base/common/map.d.ts +41 -0
  52. package/vscode/src/vs/base/common/numbers.js +18 -1
  53. package/vscode/src/vs/base/common/observableInternal/api.js +11 -0
  54. package/vscode/src/vs/base/common/observableInternal/autorun.js +18 -1
  55. package/vscode/src/vs/base/common/observableInternal/base.d.ts +8 -1
  56. package/vscode/src/vs/base/common/observableInternal/base.js +2 -5
  57. package/vscode/src/vs/base/common/observableInternal/derived.js +13 -3
  58. package/vscode/src/vs/base/common/observableInternal/lazyObservableValue.js +109 -0
  59. package/vscode/src/vs/base/common/observableInternal/promise.js +3 -0
  60. package/vscode/src/vs/base/common/observableInternal/utils.d.ts +7 -0
  61. package/vscode/src/vs/base/common/observableInternal/utils.js +64 -12
  62. package/vscode/src/vs/base/common/prefixTree.d.ts +52 -0
  63. package/vscode/src/vs/base/common/product.d.ts +1 -0
  64. package/vscode/src/vs/base/parts/ipc/common/ipc.js +1 -1
  65. package/vscode/src/vs/editor/browser/config/charWidthReader.js +1 -1
  66. package/vscode/src/vs/editor/browser/controller/textAreaHandler.js +1 -1
  67. package/vscode/src/vs/editor/browser/coreCommands.js +2 -1
  68. package/vscode/src/vs/editor/browser/observableCodeEditor.js +230 -0
  69. package/vscode/src/vs/editor/browser/services/abstractCodeEditorService.js +1 -1
  70. package/vscode/src/vs/editor/browser/services/hoverService/hoverService.js +26 -26
  71. package/vscode/src/vs/editor/browser/services/hoverService/updatableHoverWidget.js +2 -2
  72. package/vscode/src/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
  73. package/vscode/src/vs/editor/browser/view/viewLayer.js +4 -12
  74. package/vscode/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -1
  75. package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +1 -1
  76. package/vscode/src/vs/editor/browser/viewParts/viewZones/viewZones.js +2 -2
  77. package/vscode/src/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +15 -4
  78. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +8 -8
  79. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +4 -4
  80. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -1
  81. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +1 -1
  82. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +14 -2
  83. package/vscode/src/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
  84. package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
  85. package/vscode/src/vs/editor/browser/widget/diffEditor/registrations.contribution.js +2 -2
  86. package/vscode/src/vs/editor/browser/widget/diffEditor/utils/editorGutter.js +3 -3
  87. package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +2 -2
  88. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/colors.js +1 -1
  89. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +2 -2
  90. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +5 -0
  91. package/vscode/src/vs/editor/common/config/editorOptions.js +83 -65
  92. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +43 -43
  93. package/vscode/src/vs/editor/common/cursor/cursor.js +3 -2
  94. package/vscode/src/vs/editor/common/cursor/cursorTypeEditOperations.js +911 -0
  95. package/vscode/src/vs/editor/common/cursor/cursorTypeOperations.js +36 -799
  96. package/vscode/src/vs/editor/common/cursor/cursorWordOperations.js +6 -5
  97. package/vscode/src/vs/editor/common/languageFeatureRegistry.d.ts +1 -0
  98. package/vscode/src/vs/editor/common/languageFeatureRegistry.js +3 -0
  99. package/vscode/src/vs/editor/common/languages/autoIndent.js +23 -1
  100. package/vscode/src/vs/editor/common/languages.d.ts +20 -3
  101. package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js +6 -6
  102. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js +19 -0
  103. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js +3 -0
  104. package/vscode/src/vs/editor/common/model/textModel.js +6 -2
  105. package/vscode/src/vs/editor/common/model/tokenizationTextModelPart.js +5 -5
  106. package/vscode/src/vs/editor/common/model.d.ts +4 -0
  107. package/vscode/src/vs/editor/common/services/getIconClasses.js +1 -1
  108. package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.js +2 -15
  109. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +63 -62
  110. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +11 -8
  111. package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +1 -1
  112. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +2 -17
  113. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.css.js +1 -1
  114. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +18 -5
  115. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js +55 -27
  116. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js +7 -4
  117. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget.js +9 -9
  118. package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -1
  119. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +103 -47
  120. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -2
  121. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +18 -10
  122. package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +2 -4
  123. package/vscode/src/vs/editor/contrib/folding/browser/folding.css.js +1 -1
  124. package/vscode/src/vs/editor/contrib/folding/browser/folding.js +33 -13
  125. package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +12 -7
  126. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +1 -1
  127. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +2 -2
  128. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverController.js +161 -185
  129. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +321 -0
  130. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverStatusBar.js +4 -1
  131. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverTypes.js +6 -21
  132. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverWidget.js +39 -40
  133. package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +55 -46
  134. package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +12 -2
  135. package/vscode/src/vs/editor/contrib/hover/browser/hoverController.js +15 -9
  136. package/vscode/src/vs/editor/contrib/hover/browser/hoverTypes.js +11 -1
  137. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +141 -93
  138. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +24 -7
  139. package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +36 -1
  140. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +5 -3
  141. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js +1 -1
  142. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +25 -12
  143. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +88 -118
  144. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +1 -1
  145. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +34 -33
  146. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js +2 -2
  147. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/provideInlineCompletions.js +11 -4
  148. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/suggestWidgetInlineCompletionProvider.js +10 -19
  149. package/vscode/src/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js +1 -1
  150. package/vscode/src/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js +45 -27
  151. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditController.js +4 -4
  152. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js +1 -1
  153. package/vscode/src/vs/editor/contrib/inlineEdits/browser/commands.js +126 -0
  154. package/vscode/src/vs/editor/contrib/inlineEdits/browser/consts.js +9 -0
  155. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEdits.contribution.js +9 -0
  156. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsController.js +82 -0
  157. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsModel.js +240 -0
  158. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.css.js +4 -0
  159. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.js +322 -0
  160. package/vscode/src/vs/editor/contrib/inlineProgress/browser/inlineProgress.js +8 -4
  161. package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +3 -2
  162. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
  163. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +2 -2
  164. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +60 -0
  165. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.css.js +4 -0
  166. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +1 -1
  167. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScroll.css.js +1 -1
  168. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +38 -20
  169. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +3 -0
  170. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +9 -9
  171. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetStatus.js +10 -32
  172. package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +23 -138
  173. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +3 -0
  174. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +5 -5
  175. package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +13 -12
  176. package/vscode/src/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js +3 -3
  177. package/vscode/src/vs/editor/editor.api.d.ts +31 -5
  178. package/vscode/src/vs/platform/accessibility/browser/accessibilityService.js +21 -0
  179. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +5 -6
  180. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +1 -1
  181. package/vscode/src/vs/platform/actions/browser/buttonbar.js +27 -6
  182. package/vscode/src/vs/platform/actions/browser/floatingMenu.js +1 -1
  183. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css.js +1 -1
  184. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +33 -3
  185. package/vscode/src/vs/platform/actions/browser/toolbar.js +2 -1
  186. package/vscode/src/vs/platform/actions/common/actions.d.ts +3 -0
  187. package/vscode/src/vs/platform/actions/common/actions.js +3 -0
  188. package/vscode/src/vs/platform/actions/common/menuService.js +3 -2
  189. package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +1 -1
  190. package/vscode/src/vs/platform/configuration/common/configurationRegistry.d.ts +7 -5
  191. package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +109 -13
  192. package/vscode/src/vs/platform/diagnostics/common/diagnostics.d.ts +2 -0
  193. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +12 -6
  194. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +2 -0
  195. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.service.d.ts +3 -3
  196. package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +20 -10
  197. package/vscode/src/vs/platform/extensions/common/extensionValidator.js +46 -8
  198. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +1 -1
  199. package/vscode/src/vs/platform/extensions/common/extensions.js +12 -3
  200. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +368 -0
  201. package/vscode/src/vs/platform/files/common/watcher.js +21 -24
  202. package/vscode/src/vs/platform/list/browser/listService.js +2 -1
  203. package/vscode/src/vs/platform/observable/common/platformObservableUtils.js +2 -2
  204. package/vscode/src/vs/platform/opener/browser/link.js +1 -1
  205. package/vscode/src/vs/platform/product/common/product.js +1 -1
  206. package/vscode/src/vs/platform/quickinput/browser/quickInputTree.js +1 -1
  207. package/vscode/src/vs/platform/remote/common/remoteExtensionsScanner.service.d.ts +0 -2
  208. package/vscode/src/vs/platform/request/common/request.js +18 -8
  209. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +2 -6
  210. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel.d.ts +8 -1
  211. package/vscode/src/vs/platform/theme/common/colorUtils.d.ts +1 -1
  212. package/vscode/src/vs/platform/theme/common/colorUtils.js +25 -5
  213. package/vscode/src/vs/platform/theme/common/colors/baseColors.js +1 -1
  214. package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +6 -6
  215. package/vscode/src/vs/platform/theme/common/colors/editorColors.js +35 -35
  216. package/vscode/src/vs/platform/theme/common/colors/inputColors.js +9 -9
  217. package/vscode/src/vs/platform/theme/common/colors/listColors.js +11 -11
  218. package/vscode/src/vs/platform/theme/common/colors/menuColors.js +4 -4
  219. package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +5 -5
  220. package/vscode/src/vs/platform/theme/common/colors/miscColors.js +1 -1
  221. package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +5 -5
  222. package/vscode/src/vs/platform/tunnel/common/tunnel.js +4 -1
  223. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +75 -19
  224. package/vscode/src/vs/platform/window/common/window.d.ts +2 -2
  225. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +32 -25
  226. package/vscode/src/vs/workbench/api/common/extHost.common.services.js +2 -0
  227. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -0
  228. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +5 -11
  229. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +5 -15
  230. package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +2 -5
  231. package/vscode/src/vs/workbench/api/common/extHostComments.js +9 -3
  232. package/vscode/src/vs/workbench/api/common/extHostDebugService.js +32 -22
  233. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +3 -3
  234. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +109 -40
  235. package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +46 -0
  236. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +84 -35
  237. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
  238. package/vscode/src/vs/workbench/api/common/extHostSCM.js +50 -41
  239. package/vscode/src/vs/workbench/api/common/extHostSearch.js +2 -2
  240. package/vscode/src/vs/workbench/api/common/extHostSecrets.js +11 -8
  241. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +7 -6
  242. package/vscode/src/vs/workbench/api/common/extHostTesting.js +63 -70
  243. package/vscode/src/vs/workbench/api/common/extHostTextEditors.js +5 -3
  244. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +75 -16
  245. package/vscode/src/vs/workbench/api/common/extHostTypes.js +29 -4
  246. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
  247. package/vscode/src/vs/workbench/browser/actions/developerActions.js +1 -1
  248. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +127 -107
  249. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +2 -2
  250. package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +1 -1
  251. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +33 -21
  252. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -1
  253. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +5 -5
  254. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +1 -1
  255. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +2 -2
  256. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +2 -2
  257. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +23 -6
  258. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +3 -1
  259. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +3 -3
  260. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +1 -1
  261. package/vscode/src/vs/workbench/browser/web.api.js +8 -0
  262. package/vscode/src/vs/workbench/browser/workbench.contribution.js +199 -194
  263. package/vscode/src/vs/workbench/common/configuration.js +1 -1
  264. package/vscode/src/vs/workbench/common/contributions.js +8 -1
  265. package/vscode/src/vs/workbench/common/editor.js +5 -1
  266. package/vscode/src/vs/workbench/common/theme.js +79 -454
  267. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +221 -239
  268. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +17 -15
  269. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +1 -0
  270. package/vscode/src/vs/workbench/contrib/chat/browser/chatAgentHover.js +4 -0
  271. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollections.js +27 -0
  272. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCommandContentPart.js +35 -0
  273. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationContentPart.js +51 -0
  274. package/vscode/src/vs/workbench/contrib/chat/browser/{chatConfirmationWidget.js → chatContentParts/chatConfirmationWidget.js} +9 -9
  275. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownContentPart.js +131 -0
  276. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatProgressContentPart.js +37 -0
  277. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatReferencesContentPart.js +263 -0
  278. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTaskContentPart.js +37 -0
  279. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.js +160 -0
  280. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTreeContentPart.js +171 -0
  281. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatWarningContentPart.js +34 -0
  282. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatContentParts/media}/chatConfirmationWidget.css.js +1 -1
  283. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +91 -44
  284. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +292 -1019
  285. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +2 -2
  286. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownRenderer.js +1 -1
  287. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +22 -7
  288. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css.js +1 -1
  289. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +61 -54
  290. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +23 -16
  291. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
  292. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatAgentHover.css.js +1 -1
  293. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +8 -0
  294. package/vscode/src/vs/workbench/contrib/chat/common/chatColors.js +1 -1
  295. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +3 -3
  296. package/vscode/src/vs/workbench/contrib/chat/common/chatWordCounter.js +5 -4
  297. package/vscode/src/vs/workbench/contrib/chat/common/codeBlockModelCollection.js +16 -0
  298. package/vscode/src/vs/workbench/contrib/chat/common/languageModelToolsService.service.js +3 -0
  299. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +2 -2
  300. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +43 -16
  301. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +1 -1
  302. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +1 -3
  303. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js +1 -1
  304. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +7 -5
  305. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +7 -7
  306. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +3 -3
  307. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +3 -3
  308. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +2 -2
  309. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +1 -1
  310. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +2 -1
  311. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +2 -1
  312. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +1 -1
  313. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +8 -5
  314. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +1 -1
  315. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +1 -1
  316. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
  317. package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +1 -1
  318. package/vscode/src/vs/workbench/contrib/contextmenu/browser/contextmenu.contribution.js +5 -5
  319. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +14 -7
  320. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +4 -4
  321. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +8 -7
  322. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +19 -16
  323. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +13 -12
  324. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +19 -2
  325. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +9 -4
  326. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +10 -5
  327. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +4 -4
  328. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +235 -173
  329. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +1 -1
  330. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +2 -1
  331. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +17 -5
  332. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +62 -44
  333. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
  334. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -2
  335. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +114 -107
  336. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatContentWidget.js +33 -25
  337. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +71 -101
  338. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +38 -43
  339. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -33
  340. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +3 -4
  341. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +49 -86
  342. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +60 -71
  343. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css.js +1 -1
  344. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatContentWidget.css.js +1 -1
  345. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +116 -113
  346. package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +6 -10
  347. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -2
  348. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +1 -0
  349. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +2 -2
  350. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findFilters.js +12 -23
  351. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +0 -2
  352. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +7 -9
  353. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +88 -61
  354. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +1 -3
  355. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +39 -3
  356. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +2 -1
  357. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatController.js +12 -11
  358. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +1 -1
  359. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +1 -1
  360. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookBrowser.js +3 -2
  361. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +40 -105
  362. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +27 -26
  363. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +14 -5
  364. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +1 -1
  365. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.js +43 -46
  366. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDnd.js +1 -1
  367. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +4 -4
  368. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +12 -9
  369. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +19 -14
  370. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
  371. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +9 -6
  372. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +1 -1
  373. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +5 -3
  374. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +3 -3
  375. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +1 -1
  376. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +16 -6
  377. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/codeCellViewModel.js +8 -8
  378. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineDataSourceFactory.service.js +3 -0
  379. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +11 -12
  380. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +12 -13
  381. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +1 -1
  382. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookTopCellToolbar.js +5 -3
  383. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +9 -2
  384. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +37 -36
  385. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +18 -8
  386. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +1 -1
  387. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +14 -5
  388. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +17 -22
  389. package/vscode/src/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +1 -1
  390. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +7 -10
  391. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +7 -27
  392. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +3 -4
  393. package/vscode/src/vs/workbench/contrib/search/browser/notebookSearch/notebookSearchService.js +2 -2
  394. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +4 -0
  395. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +3 -3
  396. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +3 -0
  397. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +0 -1
  398. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +13 -37
  399. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.d.ts +88 -0
  400. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +48 -31
  401. package/vscode/src/vs/workbench/contrib/testing/common/testId.d.ts +115 -0
  402. package/vscode/src/vs/workbench/contrib/testing/common/testResult.d.ts +226 -0
  403. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.d.ts +319 -0
  404. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +2 -3
  405. package/vscode/src/vs/workbench/contrib/testing/common/testingStates.d.ts +10 -0
  406. package/vscode/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +21 -2
  407. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewIconManager.js +7 -8
  408. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +3 -3
  409. package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +10 -5
  410. package/vscode/src/vs/workbench/services/editor/common/customEditorLabelService.js +54 -21
  411. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.service.d.ts +1 -0
  412. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.d.ts +1 -2
  413. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -4
  414. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +5 -3
  415. package/vscode/src/vs/workbench/services/extensions/common/extensions.service.d.ts +3 -1
  416. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +59 -41
  417. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +1 -1
  418. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +3 -2
  419. package/vscode/src/vs/workbench/services/host/browser/host.service.d.ts +1 -0
  420. package/vscode/src/vs/workbench/services/language/common/languageService.js +7 -0
  421. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +1 -1
  422. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +2 -2
  423. package/vscode/src/vs/workbench/services/search/common/search.js +2 -1
  424. package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +2 -2
  425. package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +2 -2
  426. package/vscode/src/vs/workbench/services/textfile/common/encoding.js +69 -26
  427. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +23 -4
  428. package/vscode/src/vs/workbench/services/textfile/common/textfiles.d.ts +5 -1
  429. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
  430. package/vscode/src/vs/workbench/services/views/browser/viewsService.js +12 -5
  431. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +38 -19
  432. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyFileService.service.d.ts +2 -1
  433. package/vscode-dts/vscode.proposed.aiTextSearchProvider.d.ts +0 -196
  434. package/vscode-dts/vscode.proposed.attributableCoverage.d.ts +28 -10
  435. package/vscode-dts/vscode.proposed.authGetSessions.d.ts +30 -22
  436. package/vscode-dts/vscode.proposed.chatProvider.d.ts +17 -8
  437. package/vscode-dts/vscode.proposed.chatVariableResolver.d.ts +0 -9
  438. package/vscode-dts/vscode.proposed.commentReveal.d.ts +32 -0
  439. package/vscode-dts/vscode.proposed.commentThreadApplicability.d.ts +10 -0
  440. package/vscode-dts/vscode.proposed.createFileSystemWatcher.d.ts +1 -1
  441. package/vscode-dts/vscode.proposed.fileComments.d.ts +12 -53
  442. package/vscode-dts/vscode.proposed.fileSearchProvider.d.ts +6 -0
  443. package/vscode-dts/vscode.proposed.inlineCompletionsAdditions.d.ts +6 -0
  444. package/vscode-dts/vscode.proposed.lmTools.d.ts +91 -0
  445. package/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts +1 -1
  446. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +10 -6
  447. package/vscode-dts/vscode.proposed.terminalShellIntegration.d.ts +38 -13
  448. package/vscode/src/vs/editor/browser/observableUtilities.js +0 -58
  449. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProviderFactory.service.js +0 -3
  450. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +0 -122
@@ -1,4 +1,4 @@
1
- import { isFalsyOrEmpty, isNonEmptyArray, coalesce, asArray } from '../../../base/common/arrays.js';
1
+ import { isFalsyOrEmpty, coalesce, isNonEmptyArray, asArray } from '../../../base/common/arrays.js';
2
2
  import { raceCancellationError } from '../../../base/common/async.js';
3
3
  import { CancellationToken } from '../../../base/common/cancellation.js';
4
4
  import { isCancellationError, NotImplementedError } from '../../../base/common/errors.js';
@@ -9,15 +9,15 @@ import { StopWatch } from '../../../base/common/stopwatch.js';
9
9
  import { regExpLeadsToEndlessLoop } from '../../../base/common/strings.js';
10
10
  import { assertType, isObject } from '../../../base/common/types.js';
11
11
  import { URI } from '../../../base/common/uri.js';
12
- import { Range as Range$2 } from '../../../editor/common/core/range.js';
12
+ import { Range as Range$1 } from '../../../editor/common/core/range.js';
13
13
  import { Selection } from '../../../editor/common/core/selection.js';
14
14
  import { NewSymbolNameTriggerKind, CompletionItemInsertTextRule, InlineEditTriggerKind, InlineCompletionTriggerKind } from '../../../editor/common/languages.js';
15
15
  import { encodeSemanticTokensDto } from '../../../editor/common/services/semanticTokensDto.js';
16
16
  import { localizeWithPath } from '../../../nls.js';
17
17
  import { ExtensionIdentifier } from '../../../platform/extensions/common/extensions.js';
18
- import { Position, Hover, Selection as Selection$1, Range as Range$1, CodeActionTriggerKind, Diagnostic, WorkspaceEdit, DocumentSelector, DocumentSymbol as DocumentSymbol$1, SymbolKind, SymbolTag, EvaluatableExpression, InlineValueContext, InlineValue, DocumentHighlight, MultiDocumentHighlight, location, DataTransfer, TextEdit, WorkspaceSymbol, CompletionContext, CompletionItemKind, CompletionItemTag, MarkdownString, SignatureHelp, InlayHintKind, DocumentLink, Color, ColorPresentation, FoldingRange, SelectionRange, CallHierarchyItem, TypeHierarchyItem, DefinitionLink, PartialAcceptInfo } from './extHostTypeConverters.js';
19
- import { Range, CodeActionKind, NewSymbolNameTriggerKind as NewSymbolNameTriggerKind$1, Disposable, SyntaxTokenType, DocumentSymbol, InternalDataTransferItem, DocumentDropOrPasteEditKind, SemanticTokens, SemanticTokensEdits, SemanticTokensEdit, SnippetString, InlineEditTriggerKind as InlineEditTriggerKind$1, Location, CompletionList, InlineCompletionTriggerKind as InlineCompletionTriggerKind$1 } from './extHostTypes.js';
20
- import { isProposedApiEnabled } from '../../services/extensions/common/extensions.js';
18
+ import { DocumentSelector, DocumentSymbol as DocumentSymbol$1, SymbolKind, SymbolTag, Range, Position, Hover, EvaluatableExpression, InlineValueContext, InlineValue, DocumentHighlight, MultiDocumentHighlight, location, Selection as Selection$1, CodeActionTriggerKind, Diagnostic, WorkspaceEdit, DataTransfer, TextEdit, WorkspaceSymbol, CompletionContext, CompletionItemKind, CompletionItemTag, MarkdownString, SignatureHelp, InlayHintKind, DocumentLink, Color, ColorPresentation, FoldingRange, SelectionRange, CallHierarchyItem, TypeHierarchyItem, DefinitionLink, PartialAcceptInfo } from './extHostTypeConverters.js';
19
+ import { Disposable, SyntaxTokenType, DocumentSymbol, Range as Range$2, CodeActionKind, InternalDataTransferItem, DocumentDropOrPasteEditKind, NewSymbolNameTriggerKind as NewSymbolNameTriggerKind$1, SemanticTokens, SemanticTokensEdits, SemanticTokensEdit, SnippetString, InlineEditTriggerKind as InlineEditTriggerKind$1, Location, CompletionList, InlineCompletionTriggerKind as InlineCompletionTriggerKind$1 } from './extHostTypes.js';
20
+ import { isProposedApiEnabled, checkProposedApiEnabled } from '../../services/extensions/common/extensions.js';
21
21
  import { Cache } from './cache.js';
22
22
  import { MainContext, ISuggestResultDtoField, ISuggestDataDtoField } from './extHost.protocol.js';
23
23
  const _moduleId = "vs/workbench/api/common/extHostLanguageFeatures";
@@ -58,8 +58,8 @@ class DocumentSymbolAdapter {
58
58
  tags: info.tags?.map(SymbolTag.from) || [],
59
59
  detail: '',
60
60
  containerName: info.containerName,
61
- range: Range$1.from(info.location.range),
62
- selectionRange: Range$1.from(info.location.range),
61
+ range: Range.from(info.location.range),
62
+ selectionRange: Range.from(info.location.range),
63
63
  children: []
64
64
  };
65
65
  while (true) {
@@ -69,7 +69,7 @@ class DocumentSymbolAdapter {
69
69
  break;
70
70
  }
71
71
  const parent = parentStack[parentStack.length - 1];
72
- if (Range$2.containsRange(parent.range, element.range) && !Range$2.equalsRange(parent.range, element.range)) {
72
+ if (Range$1.containsRange(parent.range, element.range) && !Range$1.equalsRange(parent.range, element.range)) {
73
73
  parent.children?.push(element);
74
74
  parentStack.push(element);
75
75
  break;
@@ -107,7 +107,7 @@ class CodeLensAdapter {
107
107
  for (let i = 0; i < lenses.length; i++) {
108
108
  result.lenses.push({
109
109
  cacheId: [cacheId, i],
110
- range: Range$1.from(lenses[i].range),
110
+ range: Range.from(lenses[i].range),
111
111
  command: this._commands.toInternal(lenses[i].command, disposables)
112
112
  });
113
113
  }
@@ -242,7 +242,7 @@ class HoverAdapter {
242
242
  value.range = doc.getWordRangeAtPosition(pos);
243
243
  }
244
244
  if (!value.range) {
245
- value.range = ( (new Range(pos, pos)));
245
+ value.range = ( (new Range$2(pos, pos)));
246
246
  }
247
247
  const convertedHover = Hover.from(value);
248
248
  const id = this._hoverCounter;
@@ -284,7 +284,7 @@ class InlineValuesAdapter {
284
284
  }
285
285
  async provideInlineValues(resource, viewPort, context, token) {
286
286
  const doc = this._documents.getDocument(resource);
287
- const value = await this._provider.provideInlineValues(doc, Range$1.to(viewPort), InlineValueContext.to(context), token);
287
+ const value = await this._provider.provideInlineValues(doc, Range.to(viewPort), InlineValueContext.to(context), token);
288
288
  if (Array.isArray(value)) {
289
289
  return (
290
290
  (value.map(iv => InlineValue.from(iv)))
@@ -339,7 +339,7 @@ class LinkedEditingRangeAdapter {
339
339
  const value = await this._provider.provideLinkedEditingRanges(doc, pos, token);
340
340
  if (value && Array.isArray(value.ranges)) {
341
341
  return {
342
- ranges: coalesce(( (value.ranges.map(Range$1.from)))),
342
+ ranges: coalesce(( (value.ranges.map(Range.from)))),
343
343
  wordPattern: value.wordPattern
344
344
  };
345
345
  }
@@ -380,7 +380,7 @@ class CodeActionAdapter {
380
380
  const doc = this._documents.getDocument(resource);
381
381
  const ran = Selection.isISelection(rangeOrSelection)
382
382
  ? Selection$1.to(rangeOrSelection)
383
- : Range$1.to(rangeOrSelection);
383
+ : Range.to(rangeOrSelection);
384
384
  const allDiagnostics = [];
385
385
  for (const diagnostic of this._diagnostics.getDiagnostics(resource)) {
386
386
  if (ran.intersection(diagnostic.range)) {
@@ -419,10 +419,10 @@ class CodeActionAdapter {
419
419
  else {
420
420
  if (codeActionContext.only) {
421
421
  if (!candidate.kind) {
422
- this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${codeActionContext.only.value} 'requested but returned code action does not have a 'kind'. Code action will be dropped. Please set 'CodeAction.kind'.`);
422
+ this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${codeActionContext.only.value}' requested but returned code action does not have a 'kind'. Code action will be dropped. Please set 'CodeAction.kind'.`);
423
423
  }
424
424
  else if (!codeActionContext.only.contains(candidate.kind)) {
425
- this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${codeActionContext.only.value} 'requested but returned code action is of kind '${candidate.kind.value}'. Code action will be dropped. Please check 'CodeActionContext.only' to only return requested code actions.`);
425
+ this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${codeActionContext.only.value}' requested but returned code action is of kind '${candidate.kind.value}'. Code action will be dropped. Please check 'CodeActionContext.only' to only return requested code actions.`);
426
426
  }
427
427
  }
428
428
  const range = candidate.ranges ?? [];
@@ -435,7 +435,7 @@ class CodeActionAdapter {
435
435
  kind: candidate.kind && candidate.kind.value,
436
436
  isPreferred: candidate.isPreferred,
437
437
  isAI: isProposedApiEnabled(this._extension, 'codeActionAI') ? candidate.isAI : false,
438
- ranges: isProposedApiEnabled(this._extension, 'codeActionRanges') ? coalesce(( (range.map(Range$1.from)))) : undefined,
438
+ ranges: isProposedApiEnabled(this._extension, 'codeActionRanges') ? coalesce(( (range.map(Range.from)))) : undefined,
439
439
  disabled: candidate.disabled?.reason
440
440
  });
441
441
  }
@@ -488,7 +488,7 @@ class DocumentPasteEditProvider {
488
488
  return;
489
489
  }
490
490
  const doc = this._documents.getDocument(resource);
491
- const vscodeRanges = ( (ranges.map(range => Range$1.to(range))));
491
+ const vscodeRanges = ( (ranges.map(range => Range.to(range))));
492
492
  const dataTransfer = DataTransfer.toDataTransfer(dataTransferDto, () => {
493
493
  throw ( (new NotImplementedError()));
494
494
  });
@@ -504,7 +504,7 @@ class DocumentPasteEditProvider {
504
504
  return [];
505
505
  }
506
506
  const doc = this._documents.getDocument(resource);
507
- const vscodeRanges = ( (ranges.map(range => Range$1.to(range))));
507
+ const vscodeRanges = ( (ranges.map(range => Range.to(range))));
508
508
  const dataTransfer = DataTransfer.toDataTransfer(dataTransferDto, async (id) => {
509
509
  return (await this._proxy.$resolvePasteFileData(this._handle, requestId, id)).buffer;
510
510
  });
@@ -569,7 +569,7 @@ class RangeFormattingAdapter {
569
569
  }
570
570
  async provideDocumentRangeFormattingEdits(resource, range, options, token) {
571
571
  const document = this._documents.getDocument(resource);
572
- const ran = Range$1.to(range);
572
+ const ran = Range.to(range);
573
573
  const value = await this._provider.provideDocumentRangeFormattingEdits(document, ran, options, token);
574
574
  if (Array.isArray(value)) {
575
575
  return (
@@ -581,7 +581,7 @@ class RangeFormattingAdapter {
581
581
  async provideDocumentRangesFormattingEdits(resource, ranges, options, token) {
582
582
  assertType(typeof this._provider.provideDocumentRangesFormattingEdits === 'function', 'INVALID invocation of `provideDocumentRangesFormattingEdits`');
583
583
  const document = this._documents.getDocument(resource);
584
- const _ranges = ( (ranges.map(Range$1.to)));
584
+ const _ranges = ( (ranges.map(Range.to)));
585
585
  const value = await this._provider.provideDocumentRangesFormattingEdits(document, _ranges, options, token);
586
586
  if (Array.isArray(value)) {
587
587
  return (
@@ -695,7 +695,7 @@ class RenameAdapter {
695
695
  const rangeOrLocation = await this._provider.prepareRename(doc, pos, token);
696
696
  let range;
697
697
  let text;
698
- if (Range.isRange(rangeOrLocation)) {
698
+ if (Range$2.isRange(rangeOrLocation)) {
699
699
  range = rangeOrLocation;
700
700
  text = doc.getText(rangeOrLocation);
701
701
  }
@@ -710,7 +710,7 @@ class RenameAdapter {
710
710
  this._logService.warn('INVALID rename location: position line must be within range start/end lines');
711
711
  return undefined;
712
712
  }
713
- return { range: Range$1.from(range), text };
713
+ return { range: Range.from(range), text };
714
714
  }
715
715
  catch (err) {
716
716
  const rejectReason = RenameAdapter._asMessage(err);
@@ -749,7 +749,7 @@ class NewSymbolNamesAdapter {
749
749
  }
750
750
  async provideNewSymbolNames(resource, range, triggerKind, token) {
751
751
  const doc = this._documents.getDocument(resource);
752
- const pos = Range$1.to(range);
752
+ const pos = Range.to(range);
753
753
  try {
754
754
  const kind = NewSymbolNamesAdapter.languageTriggerKindToVSCodeTriggerKind[triggerKind];
755
755
  const value = await this._provider.provideNewSymbolNames(doc, pos, kind, token);
@@ -922,7 +922,7 @@ class DocumentRangeSemanticTokensAdapter {
922
922
  }
923
923
  async provideDocumentRangeSemanticTokens(resource, range, token) {
924
924
  const doc = this._documents.getDocument(resource);
925
- const value = await this._provider.provideDocumentRangeSemanticTokens(doc, Range$1.to(range), token);
925
+ const value = await this._provider.provideDocumentRangeSemanticTokens(doc, Range.to(range), token);
926
926
  if (!value) {
927
927
  return null;
928
928
  }
@@ -952,7 +952,7 @@ class CompletionsAdapter {
952
952
  async provideCompletionItems(resource, position, context, token) {
953
953
  const doc = this._documents.getDocument(resource);
954
954
  const pos = Position.to(position);
955
- const replaceRange = doc.getWordRangeAtPosition(pos) || ( (new Range(pos, pos)));
955
+ const replaceRange = doc.getWordRangeAtPosition(pos) || ( (new Range$2(pos, pos)));
956
956
  const insertRange = replaceRange.with({ end: pos });
957
957
  const sw = ( (new StopWatch()));
958
958
  const itemsOrList = await this._provider.provideCompletionItems(doc, pos, token, CompletionContext.to(context));
@@ -970,7 +970,7 @@ class CompletionsAdapter {
970
970
  const result = {
971
971
  x: pid,
972
972
  [ISuggestResultDtoField.completions]: completions,
973
- [ISuggestResultDtoField.defaultRanges]: { replace: Range$1.from(replaceRange), insert: Range$1.from(insertRange) },
973
+ [ISuggestResultDtoField.defaultRanges]: { replace: Range.from(replaceRange), insert: Range.from(insertRange) },
974
974
  [ISuggestResultDtoField.isIncomplete]: list.isIncomplete || undefined,
975
975
  [ISuggestResultDtoField.duration]: sw.elapsed()
976
976
  };
@@ -1062,13 +1062,13 @@ class CompletionsAdapter {
1062
1062
  else if (item.range) {
1063
1063
  range = item.range;
1064
1064
  }
1065
- if (Range.isRange(range)) {
1066
- result[ISuggestDataDtoField.range] = Range$1.from(range);
1065
+ if (Range$2.isRange(range)) {
1066
+ result[ISuggestDataDtoField.range] = Range.from(range);
1067
1067
  }
1068
1068
  else if (range && (!defaultInsertRange?.isEqual(range.inserting) || !defaultReplaceRange?.isEqual(range.replacing))) {
1069
1069
  result[ISuggestDataDtoField.range] = {
1070
- insert: Range$1.from(range.inserting),
1071
- replace: Range$1.from(range.replacing)
1070
+ insert: Range.from(range.inserting),
1071
+ replace: Range.from(range.replacing)
1072
1072
  };
1073
1073
  }
1074
1074
  return result;
@@ -1078,6 +1078,9 @@ class InlineCompletionAdapterBase {
1078
1078
  async provideInlineCompletions(resource, position, context, token) {
1079
1079
  return undefined;
1080
1080
  }
1081
+ async provideInlineEdits(resource, range, context, token) {
1082
+ return undefined;
1083
+ }
1081
1084
  disposeCompletions(pid) { }
1082
1085
  handleDidShowCompletionItem(pid, idx, updatedInsertText) { }
1083
1086
  handlePartialAccept(pid, idx, acceptedCharacters, info) { }
@@ -1107,7 +1110,7 @@ class InlineCompletionAdapter extends InlineCompletionAdapterBase {
1107
1110
  const result = await this._provider.provideInlineCompletionItems(doc, pos, {
1108
1111
  selectedCompletionInfo: context.selectedSuggestionInfo
1109
1112
  ? {
1110
- range: Range$1.to(context.selectedSuggestionInfo.range),
1113
+ range: Range.to(context.selectedSuggestionInfo.range),
1111
1114
  text: context.selectedSuggestionInfo.text
1112
1115
  }
1113
1116
  : undefined,
@@ -1143,7 +1146,70 @@ class InlineCompletionAdapter extends InlineCompletionAdapterBase {
1143
1146
  return ({
1144
1147
  insertText: typeof insertText === 'string' ? insertText : { snippet: insertText.value },
1145
1148
  filterText: item.filterText,
1146
- range: item.range ? Range$1.from(item.range) : undefined,
1149
+ range: item.range ? Range.from(item.range) : undefined,
1150
+ command,
1151
+ idx: idx,
1152
+ completeBracketPairs: this._isAdditionsProposedApiEnabled ? item.completeBracketPairs : false,
1153
+ });
1154
+ }))),
1155
+ commands: ( (commands.map(c => {
1156
+ if (!disposableStore) {
1157
+ disposableStore = ( (new DisposableStore()));
1158
+ }
1159
+ return this._commands.toInternal(c, disposableStore);
1160
+ }))),
1161
+ suppressSuggestions: false,
1162
+ enableForwardStability,
1163
+ };
1164
+ }
1165
+ async provideInlineEdits(resource, range, context, token) {
1166
+ if (!this._provider.provideInlineEdits) {
1167
+ return undefined;
1168
+ }
1169
+ checkProposedApiEnabled(this._extension, 'inlineCompletionsAdditions');
1170
+ const doc = this._documents.getDocument(resource);
1171
+ const r = Range.to(range);
1172
+ const result = await this._provider.provideInlineEdits(doc, r, {
1173
+ selectedCompletionInfo: context.selectedSuggestionInfo
1174
+ ? {
1175
+ range: Range.to(context.selectedSuggestionInfo.range),
1176
+ text: context.selectedSuggestionInfo.text
1177
+ }
1178
+ : undefined,
1179
+ triggerKind: this.languageTriggerKindToVSCodeTriggerKind[context.triggerKind],
1180
+ userPrompt: context.userPrompt,
1181
+ }, token);
1182
+ if (!result) {
1183
+ return undefined;
1184
+ }
1185
+ if (token.isCancellationRequested) {
1186
+ return undefined;
1187
+ }
1188
+ const normalizedResult = Array.isArray(result) ? result : result.items;
1189
+ const commands = this._isAdditionsProposedApiEnabled ? Array.isArray(result) ? [] : result.commands || [] : [];
1190
+ const enableForwardStability = this._isAdditionsProposedApiEnabled && !Array.isArray(result) ? result.enableForwardStability : undefined;
1191
+ let disposableStore = undefined;
1192
+ const pid = this._references.createReferenceId({
1193
+ dispose() {
1194
+ disposableStore?.dispose();
1195
+ },
1196
+ items: normalizedResult
1197
+ });
1198
+ return {
1199
+ pid,
1200
+ items: ( (normalizedResult.map((item, idx) => {
1201
+ let command = undefined;
1202
+ if (item.command) {
1203
+ if (!disposableStore) {
1204
+ disposableStore = ( (new DisposableStore()));
1205
+ }
1206
+ command = this._commands.toInternal(item.command, disposableStore);
1207
+ }
1208
+ const insertText = item.insertText;
1209
+ return ({
1210
+ insertText: typeof insertText === 'string' ? insertText : { snippet: insertText.value },
1211
+ filterText: item.filterText,
1212
+ range: item.range ? Range.from(item.range) : undefined,
1147
1213
  command,
1148
1214
  idx: idx,
1149
1215
  completeBracketPairs: this._isAdditionsProposedApiEnabled ? item.completeBracketPairs : false,
@@ -1217,7 +1283,7 @@ class InlineEditAdapter {
1217
1283
  const langResult = {
1218
1284
  pid,
1219
1285
  text: result.text,
1220
- range: Range$1.from(result.range),
1286
+ range: Range.from(result.range),
1221
1287
  accepted: acceptCommand,
1222
1288
  rejected: rejectCommand,
1223
1289
  };
@@ -1306,7 +1372,7 @@ class InlayHintsAdapter {
1306
1372
  }
1307
1373
  async provideInlayHints(resource, ran, token) {
1308
1374
  const doc = this._documents.getDocument(resource);
1309
- const range = Range$1.to(ran);
1375
+ const range = Range.to(ran);
1310
1376
  const hints = await this._provider.provideInlayHints(doc, range, token);
1311
1377
  if (!Array.isArray(hints) || hints.length === 0) {
1312
1378
  this._logService.trace(`[InlayHints] NO inlay hints from '${this._extension.identifier.value}' for range ${JSON.stringify(ran)}`);
@@ -1471,14 +1537,14 @@ class ColorProviderAdapter {
1471
1537
  const colorInfos = ( (colors.map(ci => {
1472
1538
  return {
1473
1539
  color: Color.from(ci.color),
1474
- range: Range$1.from(ci.range)
1540
+ range: Range.from(ci.range)
1475
1541
  };
1476
1542
  })));
1477
1543
  return colorInfos;
1478
1544
  }
1479
1545
  async provideColorPresentations(resource, raw, token) {
1480
1546
  const document = this._documents.getDocument(resource);
1481
- const range = Range$1.to(raw.range);
1547
+ const range = Range.to(raw.range);
1482
1548
  const color = Color.to(raw.color);
1483
1549
  const value = await this._provider.provideColorPresentations(color, { document, range }, token);
1484
1550
  if (!Array.isArray(value)) {
@@ -1581,7 +1647,7 @@ class CallHierarchyAdapter {
1581
1647
  (calls.map(call => {
1582
1648
  return {
1583
1649
  from: this._cacheAndConvertItem(sessionId, call.from),
1584
- fromRanges: ( (call.fromRanges.map(r => Range$1.from(r))))
1650
+ fromRanges: ( (call.fromRanges.map(r => Range.from(r))))
1585
1651
  };
1586
1652
  }))
1587
1653
  );
@@ -1599,7 +1665,7 @@ class CallHierarchyAdapter {
1599
1665
  (calls.map(call => {
1600
1666
  return {
1601
1667
  to: this._cacheAndConvertItem(sessionId, call.to),
1602
- fromRanges: ( (call.fromRanges.map(r => Range$1.from(r))))
1668
+ fromRanges: ( (call.fromRanges.map(r => Range.from(r))))
1603
1669
  };
1604
1670
  }))
1605
1671
  );
@@ -1750,7 +1816,7 @@ class MappedEditsAdapter {
1750
1816
  return {
1751
1817
  uri: URI.revive(r.uri),
1752
1818
  version: r.version,
1753
- ranges: ( (r.ranges.map((range) => Range$1.to(range)))),
1819
+ ranges: ( (r.ranges.map((range) => Range.to(range)))),
1754
1820
  };
1755
1821
  }))))));
1756
1822
  const ctx = {
@@ -2122,6 +2188,9 @@ class ExtHostLanguageFeatures {
2122
2188
  $provideInlineCompletions(handle, resource, position, context, token) {
2123
2189
  return this._withAdapter(handle, InlineCompletionAdapterBase, adapter => adapter.provideInlineCompletions(URI.revive(resource), position, context, token), undefined, token);
2124
2190
  }
2191
+ $provideInlineEdits(handle, resource, range, context, token) {
2192
+ return this._withAdapter(handle, InlineCompletionAdapterBase, adapter => adapter.provideInlineEdits(URI.revive(resource), range, context, token), undefined, token);
2193
+ }
2125
2194
  $handleInlineCompletionDidShow(handle, pid, idx, updatedInsertText) {
2126
2195
  this._withAdapter(handle, InlineCompletionAdapterBase, async (adapter) => {
2127
2196
  adapter.handleDidShowCompletionItem(pid, idx, updatedInsertText);
@@ -2290,7 +2359,7 @@ class ExtHostLanguageFeatures {
2290
2359
  $resolveDropEdit(handle, id, token) {
2291
2360
  return this._withAdapter(handle, DocumentDropEditAdapter, adapter => adapter.resolveDropEdit(id, token), {}, undefined);
2292
2361
  }
2293
- $releaseDropEdits(handle, cacheId) {
2362
+ $releaseDocumentOnDropEdits(handle, cacheId) {
2294
2363
  this._withAdapter(handle, DocumentDropEditAdapter, adapter => Promise.resolve(adapter.releaseDropEdits(cacheId)), undefined, undefined);
2295
2364
  }
2296
2365
  registerMappedEditsProvider(extension, selector, provider) {
@@ -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) {