@codingame/monaco-vscode-api 21.5.1 → 22.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.
- package/README.md +0 -5
- package/missing-services.js +68 -78
- package/package.json +8 -8
- package/services.d.ts +4 -4
- package/services.js +5 -4
- package/vscode/product.json.js +1 -1
- package/vscode/src/vs/base/browser/dom.js +6 -3
- package/vscode/src/vs/base/browser/domSanitize.d.ts +8 -0
- package/vscode/src/vs/base/browser/domSanitize.js +49 -27
- package/vscode/src/vs/base/browser/domStylesheets.js +5 -1
- package/vscode/src/vs/base/browser/markdownRenderer.js +7 -5
- package/vscode/src/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/vscode/src/vs/base/browser/ui/contextview/contextview.js +2 -2
- package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +1 -1
- package/vscode/src/vs/base/browser/ui/menu/menu.js +1 -0
- package/vscode/src/vs/base/browser/ui/progressbar/progressbar.d.ts +1 -1
- package/vscode/src/vs/base/common/async.js +6 -0
- package/vscode/src/vs/base/common/cancellation.d.ts +21 -0
- package/vscode/src/vs/base/common/cancellation.js +42 -1
- package/vscode/src/vs/base/common/codicons.d.ts +3 -0
- package/vscode/src/vs/base/common/codiconsLibrary.d.ts +3 -0
- package/vscode/src/vs/base/common/codiconsLibrary.js +3 -0
- package/vscode/src/vs/base/common/decorators/cancelPreviousCalls.d.ts +84 -0
- package/vscode/src/vs/base/common/decorators.d.ts +1 -1
- package/vscode/src/vs/base/common/htmlContent.d.ts +2 -0
- package/vscode/src/vs/base/common/htmlContent.js +9 -6
- package/vscode/src/vs/base/common/lifecycle.js +21 -7
- package/vscode/src/vs/base/common/numbers.d.ts +0 -45
- package/vscode/src/vs/base/common/oauth.d.ts +33 -0
- package/vscode/src/vs/base/common/oauth.js +79 -3
- package/vscode/src/vs/base/common/observableInternal/base.d.ts +4 -0
- package/vscode/src/vs/base/common/observableInternal/index.js +3 -0
- package/vscode/src/vs/base/common/observableInternal/logging/debugGetDependencyGraph.d.ts +4 -0
- package/vscode/src/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js +98 -0
- package/vscode/src/vs/base/common/observableInternal/observables/baseObservable.d.ts +4 -0
- package/vscode/src/vs/base/common/observableInternal/observables/baseObservable.js +8 -1
- package/vscode/src/vs/base/common/observableInternal/observables/derivedImpl.d.ts +1 -0
- package/vscode/src/vs/base/common/observableInternal/observables/derivedImpl.js +10 -0
- package/vscode/src/vs/base/common/observableInternal/observables/observableFromEvent.d.ts +4 -0
- package/vscode/src/vs/base/common/observableInternal/observables/observableFromEvent.js +3 -0
- package/vscode/src/vs/base/common/observableInternal/reactions/autorunImpl.d.ts +1 -0
- package/vscode/src/vs/base/common/observableInternal/reactions/autorunImpl.js +9 -0
- package/vscode/src/vs/base/common/product.d.ts +7 -1
- package/vscode/src/vs/base/common/strings.d.ts +0 -1
- package/vscode/src/vs/base/common/strings.js +9 -4
- package/vscode/src/vs/base/common/uriIpc.js +24 -1
- package/vscode/src/vs/editor/browser/controller/editContext/native/screenReaderContentRich.js +26 -16
- package/vscode/src/vs/editor/browser/controller/editContext/native/screenReaderContentSimple.js +3 -3
- package/vscode/src/vs/editor/browser/services/hoverService/hover.css +1 -1
- package/vscode/src/vs/editor/browser/widget/diffEditor/commands.d.ts +3 -1
- package/vscode/src/vs/editor/browser/widget/diffEditor/commands.js +12 -1
- package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +8 -8
- package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +4 -4
- package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.d.ts +1 -0
- package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +26 -1
- package/vscode/src/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
- package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +1 -1
- package/vscode/src/vs/editor/common/config/editorOptions.d.ts +93 -85
- package/vscode/src/vs/editor/common/config/editorOptions.js +386 -351
- package/vscode/src/vs/editor/common/core/editorColorRegistry.js +71 -71
- package/vscode/src/vs/editor/common/core/ranges/lineRange.d.ts +3 -3
- package/vscode/src/vs/editor/common/editorContextKeys.js +46 -46
- package/vscode/src/vs/editor/common/languages/modesRegistry.js +1 -1
- package/vscode/src/vs/editor/common/languages.d.ts +5 -1
- package/vscode/src/vs/editor/common/languages.js +56 -56
- package/vscode/src/vs/editor/common/model/editStack.js +1 -1
- package/vscode/src/vs/editor/common/standalone/standaloneEnums.d.ts +86 -85
- package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +86 -85
- package/vscode/src/vs/editor/common/standaloneStrings.js +47 -47
- package/vscode/src/vs/editor/common/textModelEditSource.d.ts +1 -0
- package/vscode/src/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
- package/vscode/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.js +9 -7
- package/vscode/src/vs/editor/common/viewModel/screenReaderSimpleModel.d.ts +1 -0
- package/vscode/src/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
- package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
- package/vscode/src/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
- package/vscode/src/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
- package/vscode/src/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
- package/vscode/src/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
- package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
- package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
- package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
- package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
- package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
- package/vscode/src/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
- package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
- package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
- package/vscode/src/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
- package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
- package/vscode/src/vs/editor/contrib/comment/browser/comment.js +6 -6
- package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
- package/vscode/src/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
- package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
- package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
- package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
- package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
- package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
- package/vscode/src/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
- package/vscode/src/vs/editor/contrib/find/browser/findController.js +16 -16
- package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +26 -26
- package/vscode/src/vs/editor/contrib/floatingMenu/browser/floatingMenu.contribution.d.ts +1 -0
- package/vscode/src/vs/editor/contrib/floatingMenu/browser/floatingMenu.contribution.js +8 -0
- package/vscode/src/vs/editor/contrib/floatingMenu/browser/floatingMenu.css +44 -0
- package/vscode/src/vs/editor/contrib/floatingMenu/browser/floatingMenu.d.ts +10 -0
- package/vscode/src/vs/editor/contrib/floatingMenu/browser/floatingMenu.js +81 -0
- package/vscode/src/vs/editor/contrib/folding/browser/folding.js +21 -20
- package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
- package/vscode/src/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
- package/vscode/src/vs/editor/contrib/format/browser/format.js +3 -0
- package/vscode/src/vs/editor/contrib/format/browser/formatActions.js +2 -2
- package/vscode/src/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
- package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
- package/vscode/src/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
- package/vscode/src/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.d.ts +4 -1
- package/vscode/src/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js +20 -11
- package/vscode/src/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
- package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
- package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
- package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
- package/vscode/src/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
- package/vscode/src/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
- package/vscode/src/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverController.js +2 -1
- package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +3 -3
- package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +2 -2
- package/vscode/src/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
- package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
- package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
- package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
- package/vscode/src/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
- package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +20 -20
- package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHints.js +2 -7
- package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +19 -19
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +18 -13
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.d.ts +3 -1
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +14 -6
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.d.ts +7 -1
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +154 -5
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.d.ts +1 -0
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js +3 -0
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.d.ts +7 -3
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js +18 -3
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/telemetry.d.ts +45 -0
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/telemetry.js +7 -0
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +16 -15
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +5 -2
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +2 -2
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +24 -21
- package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/view.css +13 -4
- package/vscode/src/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
- package/vscode/src/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
- package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.d.ts +2 -1
- package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +36 -35
- package/vscode/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
- package/vscode/src/vs/editor/contrib/links/browser/links.js +11 -11
- package/vscode/src/vs/editor/contrib/message/browser/messageController.js +1 -1
- package/vscode/src/vs/editor/contrib/middleScroll/browser/middleScrollController.js +3 -3
- package/vscode/src/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
- package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
- package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
- package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +18 -18
- package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
- package/vscode/src/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
- package/vscode/src/vs/editor/contrib/rename/browser/rename.js +11 -11
- package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +6 -6
- package/vscode/src/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
- package/vscode/src/vs/editor/contrib/snippet/browser/snippetController2.d.ts +3 -0
- package/vscode/src/vs/editor/contrib/snippet/browser/snippetController2.js +13 -4
- package/vscode/src/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
- package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
- package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +12 -19
- package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollProvider.js +10 -1
- package/vscode/src/vs/editor/contrib/suggest/browser/suggest.js +8 -8
- package/vscode/src/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
- package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +18 -18
- package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
- package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
- package/vscode/src/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
- package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
- package/vscode/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
- package/vscode/src/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
- package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
- package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +26 -26
- package/vscode/src/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
- package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
- package/vscode/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
- package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
- package/vscode/src/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js +1 -1
- package/vscode/src/vs/editor/standalone/browser/standaloneServices.js +0 -1
- package/vscode/src/vs/editor/standalone/browser/standaloneThemeService.js +1 -0
- package/vscode/src/vs/platform/accessibility/browser/accessibleView.d.ts +1 -1
- package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
- package/vscode/src/vs/platform/action/common/actionCommonCategories.js +6 -6
- package/vscode/src/vs/platform/actionWidget/browser/actionList.js +9 -6
- package/vscode/src/vs/platform/actionWidget/browser/actionWidget.css +13 -14
- package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +7 -7
- package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
- package/vscode/src/vs/platform/actions/browser/toolbar.d.ts +1 -1
- package/vscode/src/vs/platform/actions/browser/toolbar.js +5 -5
- package/vscode/src/vs/platform/actions/common/actions.d.ts +2 -0
- package/vscode/src/vs/platform/actions/common/actions.js +2 -0
- package/vscode/src/vs/platform/actions/common/menuResetAction.js +1 -1
- package/vscode/src/vs/platform/actions/common/menuService.js +2 -2
- package/vscode/src/vs/platform/assignment/common/assignment.d.ts +6 -1
- package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +2 -2
- package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +10 -10
- package/vscode/src/vs/platform/contextkey/browser/contextKeyService.d.ts +2 -0
- package/vscode/src/vs/platform/contextkey/browser/contextKeyService.js +32 -3
- package/vscode/src/vs/platform/contextkey/common/contextkey.js +11 -11
- package/vscode/src/vs/platform/contextkey/common/contextkeys.d.ts +0 -1
- package/vscode/src/vs/platform/contextkey/common/contextkeys.js +10 -11
- package/vscode/src/vs/platform/contextkey/common/scanner.js +5 -5
- package/vscode/src/vs/platform/dataChannel/browser/forwardingTelemetryService.d.ts +32 -0
- package/vscode/src/vs/platform/dataChannel/browser/forwardingTelemetryService.js +86 -0
- package/vscode/src/vs/platform/dialogs/common/dialogs.service.d.ts +1 -1
- package/vscode/src/vs/platform/dnd/browser/dnd.js +1 -1
- package/vscode/src/vs/platform/environment/common/argv.d.ts +1 -0
- package/vscode/src/vs/platform/environment/common/environment.service.d.ts +0 -1
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +19 -19
- package/vscode/src/vs/platform/extensionManagement/common/extensionNls.js +1 -1
- package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +7 -7
- package/vscode/src/vs/platform/extensionManagement/common/implicitActivationEvents.d.ts +1 -3
- package/vscode/src/vs/platform/extensionManagement/common/implicitActivationEvents.js +1 -1
- package/vscode/src/vs/platform/extensions/common/extensionValidator.js +20 -20
- package/vscode/src/vs/platform/extensions/common/extensions.d.ts +2 -1
- package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.d.ts +4 -3
- package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +4 -3
- package/vscode/src/vs/platform/files/browser/htmlFileSystemProvider.js +2 -2
- package/vscode/src/vs/platform/files/common/files.js +6 -6
- package/vscode/src/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
- package/vscode/src/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
- package/vscode/src/vs/platform/list/browser/listService.js +27 -27
- package/vscode/src/vs/platform/log/common/log.js +6 -6
- package/vscode/src/vs/platform/markers/common/markerService.js +2 -2
- package/vscode/src/vs/platform/markers/common/markers.js +6 -6
- package/vscode/src/vs/platform/mcp/common/mcpGalleryManifest.d.ts +10 -2
- package/vscode/src/vs/platform/mcp/common/mcpGalleryManifest.js +10 -2
- package/vscode/src/vs/platform/mcp/common/mcpManagement.service.d.ts +3 -3
- package/vscode/src/vs/platform/notification/common/notification.js +3 -3
- package/vscode/src/vs/platform/product/common/product.js +3 -3
- package/vscode/src/vs/platform/quickinput/browser/quickInput.d.ts +1 -0
- package/vscode/src/vs/platform/quickinput/browser/quickInput.js +23 -15
- package/vscode/src/vs/platform/quickinput/browser/quickInputActions.js +47 -13
- package/vscode/src/vs/platform/quickinput/browser/quickInputController.js +10 -61
- package/vscode/src/vs/platform/quickinput/browser/quickInputList.js +1 -1
- package/vscode/src/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
- package/vscode/src/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
- package/vscode/src/vs/platform/quickinput/browser/tree/quickInputTreeController.d.ts +6 -0
- package/vscode/src/vs/platform/quickinput/browser/tree/quickInputTreeController.js +10 -0
- package/vscode/src/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js +10 -5
- package/vscode/src/vs/platform/quickinput/browser/tree/quickTree.js +4 -1
- package/vscode/src/vs/platform/quickinput/common/quickInput.d.ts +10 -1
- package/vscode/src/vs/platform/request/common/request.js +34 -18
- package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +1 -1
- package/vscode/src/vs/platform/terminal/common/terminal.d.ts +2 -3
- package/vscode/src/vs/platform/terminal/common/terminal.js +6 -7
- package/vscode/src/vs/platform/theme/common/colorUtils.js +2 -2
- package/vscode/src/vs/platform/theme/common/colors/baseColors.js +17 -17
- package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +8 -8
- package/vscode/src/vs/platform/theme/common/colors/editorColors.js +95 -95
- package/vscode/src/vs/platform/theme/common/colors/inputColors.js +47 -47
- package/vscode/src/vs/platform/theme/common/colors/listColors.js +36 -36
- package/vscode/src/vs/platform/theme/common/colors/menuColors.js +7 -7
- package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +11 -11
- package/vscode/src/vs/platform/theme/common/colors/miscColors.js +15 -15
- package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +9 -9
- package/vscode/src/vs/platform/theme/common/colors/searchColors.js +3 -3
- package/vscode/src/vs/platform/theme/common/iconRegistry.js +6 -6
- package/vscode/src/vs/platform/undoRedo/common/undoRedoService.js +20 -20
- package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +1 -1
- package/vscode/src/vs/platform/userDataSync/common/userDataSync.js +5 -5
- package/vscode/src/vs/platform/workspace/common/workspace.js +1 -1
- package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +11 -10
- package/vscode/src/vs/workbench/api/common/extHost.protocol.d.ts +25 -24
- package/vscode/src/vs/workbench/api/common/extHostAuthentication.d.ts +4 -4
- package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +10 -18
- package/vscode/src/vs/workbench/api/common/extHostChatAgents2.d.ts +5 -0
- package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +16 -4
- package/vscode/src/vs/workbench/api/common/extHostChatSessions.d.ts +1 -3
- package/vscode/src/vs/workbench/api/common/extHostChatSessions.js +9 -5
- package/vscode/src/vs/workbench/api/common/extHostCustomEditors.d.ts +1 -1
- package/vscode/src/vs/workbench/api/common/extHostDebugService.js +0 -3
- package/vscode/src/vs/workbench/api/common/extHostDiagnostics.js +1 -1
- package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +2 -2
- package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +2 -2
- package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +9 -4
- package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +7 -2
- package/vscode/src/vs/workbench/api/common/extHostLogService.js +1 -1
- package/vscode/src/vs/workbench/api/common/extHostMcp.d.ts +97 -9
- package/vscode/src/vs/workbench/api/common/extHostMcp.js +66 -62
- package/vscode/src/vs/workbench/api/common/extHostNotebook.d.ts +1 -1
- package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
- package/vscode/src/vs/workbench/api/common/extHostSCM.d.ts +2 -0
- package/vscode/src/vs/workbench/api/common/extHostSCM.js +22 -0
- package/vscode/src/vs/workbench/api/common/extHostSecrets.d.ts +0 -1
- package/vscode/src/vs/workbench/api/common/extHostSecrets.js +0 -3
- package/vscode/src/vs/workbench/api/common/extHostStatusBar.js +2 -2
- package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +1 -1
- package/vscode/src/vs/workbench/api/common/extHostTerminalService.d.ts +2 -2
- package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +8 -8
- package/vscode/src/vs/workbench/api/common/extHostTreeViews.js +53 -3
- package/vscode/src/vs/workbench/api/common/extHostTunnelService.d.ts +2 -0
- package/vscode/src/vs/workbench/api/common/extHostTunnelService.js +5 -2
- package/vscode/src/vs/workbench/api/common/extHostTypeConverters.d.ts +6 -2
- package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +60 -9
- package/vscode/src/vs/workbench/api/common/extHostTypes.d.ts +18 -14
- package/vscode/src/vs/workbench/api/common/extHostTypes.js +7 -7
- package/vscode/src/vs/workbench/api/common/extHostWebviewPanels.d.ts +1 -1
- package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
- package/vscode/src/vs/workbench/api/common/jsonValidationExtensionPoint.js +12 -12
- package/vscode/src/vs/workbench/browser/actions/developerActions.js +262 -31
- package/vscode/src/vs/workbench/browser/actions/textInputActions.js +6 -6
- package/vscode/src/vs/workbench/browser/contextkeys.d.ts +5 -7
- package/vscode/src/vs/workbench/browser/contextkeys.js +15 -43
- package/vscode/src/vs/workbench/common/configuration.js +9 -9
- package/vscode/src/vs/workbench/common/contextkeys.js +73 -73
- package/vscode/src/vs/workbench/common/editor/diffEditorInput.js +1 -1
- package/vscode/src/vs/workbench/common/editor/editorInput.d.ts +1 -1
- package/vscode/src/vs/workbench/common/editor/sideBySideEditorInput.js +1 -1
- package/vscode/src/vs/workbench/common/editor/textEditorModel.js +1 -1
- package/vscode/src/vs/workbench/common/editor.js +4 -4
- package/vscode/src/vs/workbench/common/theme.js +167 -167
- package/vscode/src/vs/workbench/common/views.js +4 -4
- package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +175 -158
- package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.service.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.service.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContextPickService.service.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys.js +15 -9
- package/vscode/src/vs/workbench/contrib/chat/common/chatContextKeys.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatContextKeys.js +61 -66
- package/vscode/src/vs/workbench/contrib/chat/common/chatEditingService.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatEditingService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatLayoutService.service.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatService.d.ts +24 -8
- package/vscode/src/vs/workbench/contrib/chat/common/chatService.service.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.d.ts +6 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionsService.service.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatVariableEntries.d.ts +28 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatVariableEntries.js +35 -6
- package/vscode/src/vs/workbench/contrib/chat/common/constants.d.ts +16 -6
- package/vscode/src/vs/workbench/contrib/chat/common/constants.js +11 -8
- package/vscode/src/vs/workbench/contrib/chat/common/languageModelToolsService.d.ts +9 -2
- package/vscode/src/vs/workbench/contrib/chat/common/languageModelToolsService.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/languageModelToolsService.service.d.ts +10 -3
- package/vscode/src/vs/workbench/contrib/chat/common/languageModels.d.ts +8 -4
- package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +50 -42
- package/vscode/src/vs/workbench/contrib/chat/common/modelPicker/modelPickerWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service.d.ts +23 -8
- package/vscode/src/vs/workbench/contrib/chat/common/tools/manageTodoListTool.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/common/tools/manageTodoListTool.js +29 -29
- package/vscode/src/vs/workbench/contrib/chat/common/tools/tools.js +4 -3
- package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.js +4 -4
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorAccessibilityHelp.js +5 -5
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +3 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +3 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +7 -6
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMinimap.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +4 -4
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderControlCharacter.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderWhitespace.js +2 -2
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +5 -5
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsAccessibility.js +12 -12
- package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +11 -11
- package/vscode/src/vs/workbench/contrib/debug/common/abstractDebugAdapter.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/common/debug.js +65 -65
- package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/commands.js +2 -2
- package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/configurationSchema.js +4 -4
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryService.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/common/searchExtensionsTool.js +4 -4
- package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +6 -6
- package/vscode/src/vs/workbench/contrib/folding/browser/folding.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +20 -20
- package/vscode/src/vs/workbench/contrib/format/browser/formatActionsNone.js +4 -4
- package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +4 -4
- package/vscode/src/vs/workbench/contrib/list/browser/listResizeColumnAction.js +2 -2
- package/vscode/src/vs/workbench/contrib/list/browser/tableColumnResizeQuickPick.js +5 -5
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpRegistryTypes.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.d.ts +33 -0
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.js +16 -5
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.service.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocol.d.ts +217 -60
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService.service.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/scm/common/history.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +3 -3
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +9 -9
- package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +29 -29
- package/vscode/src/vs/workbench/contrib/tasks/common/constants.js +1 -1
- package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +7 -7
- package/vscode/src/vs/workbench/contrib/tasks/common/taskService.service.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/tasks/common/tasks.d.ts +16 -3
- package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +18 -6
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.service.d.ts +42 -8
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.service.js +2 -1
- package/vscode/src/vs/workbench/contrib/testing/common/constants.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/testing/common/constants.js +12 -11
- package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +3 -3
- package/vscode/src/vs/workbench/services/accounts/common/defaultAccount.js +2 -2
- package/vscode/src/vs/workbench/services/activity/common/activity.service.d.ts +1 -1
- package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +4 -4
- package/vscode/src/vs/workbench/services/authentication/common/authentication.js +2 -2
- package/vscode/src/vs/workbench/services/authentication/common/authentication.service.d.ts +6 -6
- package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.d.ts +286 -0
- package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.js +861 -0
- package/vscode/src/vs/workbench/{contrib → services}/chat/common/chatEntitlementService.service.d.ts +8 -2
- package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
- package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +1 -1
- package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +87 -87
- package/vscode/src/vs/workbench/services/language/common/languageService.js +30 -30
- package/vscode/src/vs/workbench/services/lifecycle/common/lifecycle.service.d.ts +1 -0
- package/vscode/src/vs/workbench/services/lifecycle/common/lifecycleService.d.ts +1 -0
- package/vscode/src/vs/workbench/services/lifecycle/common/lifecycleService.js +4 -1
- package/vscode/src/vs/workbench/services/log/common/logConstants.js +1 -1
- package/vscode/src/vs/workbench/services/preferences/common/preferences.service.d.ts +1 -1
- package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +8 -8
- package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +6 -6
- package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +1 -1
- package/vscode/src/vs/workbench/services/textfile/common/encoding.js +1 -1
- package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +22 -22
- package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +13 -13
- package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +13 -13
- package/vscode-dts/vscode.d.ts +92 -47
- package/vscode-dts/vscode.proposed.authenticationChallenges.d.ts +7 -80
- package/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts +14 -1
- package/vscode-dts/vscode.proposed.chatParticipantPrivate.d.ts +12 -0
- package/vscode-dts/vscode.proposed.chatProvider.d.ts +19 -0
- package/vscode-dts/vscode.proposed.chatSessionsProvider.d.ts +19 -11
- package/vscode-dts/vscode.proposed.d.ts +1 -1
- package/vscode-dts/{vscode.proposed.secretStorageKeys.d.ts → vscode.proposed.devDeviceId.d.ts} +3 -4
- package/vscode-dts/vscode.proposed.languageModelCapabilities.d.ts +5 -0
- package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +2 -0
- package/vscode-dts/vscode.proposed.terminalCompletionProvider.d.ts +70 -16
- package/vscode/src/vs/workbench/contrib/chat/common/chatLayoutService.d.ts +0 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/tokens.d.ts +0 -20
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/types.d.ts +0 -55
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/types.d.ts +0 -91
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +0 -125
- /package/vscode/src/vs/workbench/{contrib → services}/chat/common/chatEntitlementService.service.js +0 -0
|
@@ -129,7 +129,7 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
|
|
|
129
129
|
}
|
|
130
130
|
this._clearModelCache(vendor);
|
|
131
131
|
const modelInformation = (data.provider.provideLanguageModelChatInformation ? await data.provider.provideLanguageModelChatInformation(options, token) : await data.provider.prepareLanguageModelChatInformation(options, token)) ?? [];
|
|
132
|
-
const modelMetadataAndIdentifier = ( modelInformation.map(m => {
|
|
132
|
+
const modelMetadataAndIdentifier = ( modelInformation.map((m) => {
|
|
133
133
|
let auth;
|
|
134
134
|
if (m.requiresAuthorization && isProposedApiEnabled(data.extension, 'chatProvider')) {
|
|
135
135
|
auth = {
|
|
@@ -137,6 +137,9 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
|
|
|
137
137
|
accountLabel: typeof m.requiresAuthorization === 'object' ? m.requiresAuthorization.label : undefined
|
|
138
138
|
};
|
|
139
139
|
}
|
|
140
|
+
if (m.capabilities.editTools) {
|
|
141
|
+
checkProposedApiEnabled(data.extension, 'chatProvider');
|
|
142
|
+
}
|
|
140
143
|
return {
|
|
141
144
|
metadata: {
|
|
142
145
|
extension: data.extension.identifier,
|
|
@@ -156,6 +159,7 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
|
|
|
156
159
|
modelPickerCategory: m.category ?? DEFAULT_MODEL_PICKER_CATEGORY,
|
|
157
160
|
capabilities: m.capabilities ? {
|
|
158
161
|
vision: m.capabilities.imageInput,
|
|
162
|
+
editTools: m.capabilities.editTools,
|
|
159
163
|
toolCalling: !!m.capabilities.toolCalling,
|
|
160
164
|
agentMode: !!m.capabilities.toolCalling
|
|
161
165
|
} : undefined,
|
|
@@ -284,6 +288,7 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
|
|
|
284
288
|
capabilities: {
|
|
285
289
|
supportsImageToText: model.metadata.capabilities?.vision ?? false,
|
|
286
290
|
supportsToolCalling: !!model.metadata.capabilities?.toolCalling,
|
|
291
|
+
editToolsHint: model.metadata.capabilities?.editTools,
|
|
287
292
|
},
|
|
288
293
|
maxInputTokens: model.metadata.maxInputTokens,
|
|
289
294
|
countTokens(text, token) {
|
|
@@ -380,7 +385,7 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
|
|
|
380
385
|
}
|
|
381
386
|
try {
|
|
382
387
|
const detail = justification
|
|
383
|
-
? ( localize(
|
|
388
|
+
? ( localize(2638, "Justification: {1}", to.displayName, justification))
|
|
384
389
|
: undefined;
|
|
385
390
|
await this._extHostAuthentication.getSession(from, providerId, [], { forceNewSession: { detail } });
|
|
386
391
|
this.$updateModelAccesslist([{ from: from.identifier, to: to.identifier, enabled: true }]);
|
|
@@ -8,7 +8,7 @@ import { IExtHostInitDataService } from './extHostInitDataService.js';
|
|
|
8
8
|
let ExtHostLogService = class ExtHostLogService extends LogService {
|
|
9
9
|
constructor(isWorker, loggerService, initData) {
|
|
10
10
|
const id = initData.remote.isRemote ? 'remoteexthost' : isWorker ? 'workerexthost' : 'exthost';
|
|
11
|
-
const name = initData.remote.isRemote ? ( localize(
|
|
11
|
+
const name = initData.remote.isRemote ? ( localize(2639, "Extension Host (Remote)")) : isWorker ? ( localize(2640, "Extension Host (Worker)")) : ( localize(2641, "Extension Host"));
|
|
12
12
|
super(loggerService.createLogger(id, { name }));
|
|
13
13
|
}
|
|
14
14
|
};
|
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
import * as vscode from "vscode";
|
|
2
|
-
import { Disposable, IDisposable } from "../../../base/common/lifecycle.js";
|
|
2
|
+
import { Disposable, DisposableMap, IDisposable } from "../../../base/common/lifecycle.js";
|
|
3
|
+
import { URI, UriComponents } from "../../../base/common/uri.js";
|
|
3
4
|
import { IExtensionDescription } from "../../../platform/extensions/common/extensions.js";
|
|
4
5
|
import { ILogService } from "../../../platform/log/common/log.service.js";
|
|
5
|
-
import { McpServerLaunch } from "../../contrib/mcp/common/mcpTypes.js";
|
|
6
|
-
import { ExtHostMcpShape, MainThreadMcpShape } from "./extHost.protocol.js";
|
|
7
|
-
import { IExtHostRpcService } from "./extHostRpcService.js";
|
|
6
|
+
import { McpServerLaunch, McpServerTransportHTTP } from "../../contrib/mcp/common/mcpTypes.js";
|
|
7
|
+
import { ExtHostMcpShape, IStartMcpOptions, MainThreadMcpShape } from "./extHost.protocol.js";
|
|
8
8
|
import { IExtHostInitDataService } from "./extHostInitDataService.js";
|
|
9
|
+
import { IExtHostRpcService } from "./extHostRpcService.js";
|
|
10
|
+
import { IExtHostVariableResolverProvider } from "./extHostVariableResolverService.js";
|
|
11
|
+
import { IExtHostWorkspace } from "./extHostWorkspace.js";
|
|
9
12
|
export declare const IExtHostMpcService: import("../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IExtHostMpcService>;
|
|
10
13
|
export interface IExtHostMpcService extends ExtHostMcpShape {
|
|
11
14
|
registerMcpConfigurationProvider(extension: IExtensionDescription, id: string, provider: vscode.McpServerDefinitionProvider): IDisposable;
|
|
12
15
|
}
|
|
13
16
|
export declare class ExtHostMcpService extends Disposable implements IExtHostMpcService {
|
|
14
|
-
|
|
17
|
+
protected readonly _logService: ILogService;
|
|
15
18
|
private readonly _extHostInitData;
|
|
19
|
+
protected readonly _workspaceService: IExtHostWorkspace;
|
|
20
|
+
private readonly _variableResolver;
|
|
16
21
|
protected _proxy: MainThreadMcpShape;
|
|
17
22
|
private readonly _initialProviderPromises;
|
|
18
|
-
|
|
23
|
+
protected readonly _sseEventSources: DisposableMap<number, McpHTTPHandle>;
|
|
19
24
|
private readonly _unresolvedMcpServers;
|
|
20
|
-
constructor(extHostRpc: IExtHostRpcService, _logService: ILogService, _extHostInitData: IExtHostInitDataService);
|
|
21
|
-
$startMcp(id: number,
|
|
22
|
-
protected _startMcp(id: number, launch: McpServerLaunch): void;
|
|
25
|
+
constructor(extHostRpc: IExtHostRpcService, _logService: ILogService, _extHostInitData: IExtHostInitDataService, _workspaceService: IExtHostWorkspace, _variableResolver: IExtHostVariableResolverProvider);
|
|
26
|
+
$startMcp(id: number, opts: IStartMcpOptions): void;
|
|
27
|
+
protected _startMcp(id: number, launch: McpServerLaunch, _defaultCwd?: URI, errorOnUserInteraction?: boolean): void;
|
|
28
|
+
$substituteVariables<T>(_workspaceFolder: UriComponents | undefined, value: T): Promise<T>;
|
|
23
29
|
$stopMcp(id: number): void;
|
|
24
30
|
$sendMessage(id: number, message: string): void;
|
|
25
31
|
$waitForInitialCollectionProviders(): Promise<void>;
|
|
@@ -27,3 +33,85 @@ export declare class ExtHostMcpService extends Disposable implements IExtHostMpc
|
|
|
27
33
|
/** {@link vscode.lm.registerMcpServerDefinitionProvider} */
|
|
28
34
|
registerMcpConfigurationProvider(extension: IExtensionDescription, id: string, provider: vscode.McpServerDefinitionProvider): IDisposable;
|
|
29
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Implementation of both MCP HTTP Streaming as well as legacy SSE.
|
|
38
|
+
*
|
|
39
|
+
* The first request will POST to the endpoint, assuming HTTP streaming. If the
|
|
40
|
+
* server is legacy SSE, it should return some 4xx status in that case,
|
|
41
|
+
* and we'll automatically fall back to SSE and res
|
|
42
|
+
*/
|
|
43
|
+
export declare class McpHTTPHandle extends Disposable {
|
|
44
|
+
private readonly _id;
|
|
45
|
+
private readonly _launch;
|
|
46
|
+
private readonly _proxy;
|
|
47
|
+
private readonly _logService;
|
|
48
|
+
private readonly _errorOnUserInteraction?;
|
|
49
|
+
private readonly _requestSequencer;
|
|
50
|
+
private readonly _postEndpoint;
|
|
51
|
+
private _mode;
|
|
52
|
+
private readonly _cts;
|
|
53
|
+
private readonly _abortCtrl;
|
|
54
|
+
private _authMetadata?;
|
|
55
|
+
constructor(_id: number, _launch: McpServerTransportHTTP, _proxy: MainThreadMcpShape, _logService: ILogService, _errorOnUserInteraction?: boolean | undefined);
|
|
56
|
+
send(message: string): Promise<void>;
|
|
57
|
+
_send(message: string): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Sends a streamable-HTTP request.
|
|
60
|
+
* 1. Posts to the endpoint
|
|
61
|
+
* 2. Updates internal state as needed. Falls back to SSE if appropriate.
|
|
62
|
+
* 3. If the response body is empty, JSON, or a JSON stream, handle it appropriately.
|
|
63
|
+
*/
|
|
64
|
+
private _sendStreamableHttp;
|
|
65
|
+
private _sseFallbackWithMessage;
|
|
66
|
+
private _populateAuthMetadata;
|
|
67
|
+
private _getAuthorizationServerMetadata;
|
|
68
|
+
private _handleSuccessfulStreamableHttp;
|
|
69
|
+
/**
|
|
70
|
+
* Attaches the SSE backchannel that streamable HTTP servers can use
|
|
71
|
+
* for async notifications. This is a "MAY" support, so if the server gives
|
|
72
|
+
* us a 4xx code, we'll stop trying to connect..
|
|
73
|
+
*/
|
|
74
|
+
private _attachStreamableBackchannel;
|
|
75
|
+
/**
|
|
76
|
+
* Starts a legacy SSE attachment, where the SSE response is the session lifetime.
|
|
77
|
+
* Unlike `_attachStreamableBackchannel`, this fails the server if it disconnects.
|
|
78
|
+
*/
|
|
79
|
+
private _attachSSE;
|
|
80
|
+
/**
|
|
81
|
+
* Sends a legacy SSE message to the server. The response is always empty and
|
|
82
|
+
* is otherwise received in {@link _attachSSE}'s loop.
|
|
83
|
+
*/
|
|
84
|
+
private _sendLegacySSE;
|
|
85
|
+
/** Generic handle to pipe a response into an SSE parser. */
|
|
86
|
+
private _doSSE;
|
|
87
|
+
private _addAuthHeader;
|
|
88
|
+
private _log;
|
|
89
|
+
private _getErrText;
|
|
90
|
+
/**
|
|
91
|
+
* Helper method to perform fetch with 401 authentication retry logic.
|
|
92
|
+
* If the initial request returns 401 and we don't have auth metadata,
|
|
93
|
+
* it will populate the auth metadata and retry once.
|
|
94
|
+
*/
|
|
95
|
+
private _fetchWithAuthRetry;
|
|
96
|
+
private _fetch;
|
|
97
|
+
protected _fetchInternal(url: string, init?: CommonRequestInit): Promise<CommonResponse>;
|
|
98
|
+
}
|
|
99
|
+
interface MinimalRequestInit {
|
|
100
|
+
method: string;
|
|
101
|
+
headers: Record<string, string>;
|
|
102
|
+
body?: Uint8Array<ArrayBuffer>;
|
|
103
|
+
}
|
|
104
|
+
export interface CommonRequestInit extends MinimalRequestInit {
|
|
105
|
+
signal?: AbortSignal;
|
|
106
|
+
redirect?: RequestRedirect;
|
|
107
|
+
}
|
|
108
|
+
export interface CommonResponse {
|
|
109
|
+
status: number;
|
|
110
|
+
statusText: string;
|
|
111
|
+
headers: Headers;
|
|
112
|
+
body?: ReadableStream | null;
|
|
113
|
+
url: string;
|
|
114
|
+
json(): Promise<any>;
|
|
115
|
+
text(): Promise<string>;
|
|
116
|
+
}
|
|
117
|
+
export {};
|
|
@@ -2,45 +2,59 @@
|
|
|
2
2
|
import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
|
|
3
3
|
import { Sequencer, DeferredPromise, timeout, raceCancellationError } from '../../../base/common/async.js';
|
|
4
4
|
import { CancellationToken, CancellationTokenSource } from '../../../base/common/cancellation.js';
|
|
5
|
+
import { CancellationError } from '../../../base/common/errors.js';
|
|
5
6
|
import { Disposable, DisposableMap, DisposableStore, toDisposable } from '../../../base/common/lifecycle.js';
|
|
7
|
+
import { parseWWWAuthenticateHeader, fetchResourceMetadata, getDefaultMetadataForUrl, AUTH_SERVER_METADATA_DISCOVERY_PATH, OPENID_CONNECT_DISCOVERY_PATH, isAuthorizationServerMetadata } from '../../../base/common/oauth.js';
|
|
6
8
|
import { SSEParser } from '../../../base/common/sseParser.js';
|
|
9
|
+
import { URI } from '../../../base/common/uri.js';
|
|
10
|
+
import { ConfigurationTarget } from '../../../platform/configuration/common/configuration.js';
|
|
7
11
|
import { ExtensionIdentifier } from '../../../platform/extensions/common/extensions.js';
|
|
8
12
|
import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';
|
|
9
13
|
import { LogLevel, canLog } from '../../../platform/log/common/log.js';
|
|
10
14
|
import { ILogService } from '../../../platform/log/common/log.service.js';
|
|
11
15
|
import { StorageScope } from '../../../platform/storage/common/storage.js';
|
|
12
|
-
import { McpServerLaunch, McpServerTransportType, McpConnectionState, extensionPrefixedIdentifier } from '../../contrib/mcp/common/mcpTypes.js';
|
|
16
|
+
import { McpServerLaunch, McpServerTransportType, McpConnectionState, extensionPrefixedIdentifier, UserInteractionRequiredError } from '../../contrib/mcp/common/mcpTypes.js';
|
|
17
|
+
import { MCP } from '../../contrib/mcp/common/modelContextProtocol.js';
|
|
13
18
|
import { MainContext } from './extHost.protocol.js';
|
|
19
|
+
import { IExtHostInitDataService } from './extHostInitDataService.js';
|
|
14
20
|
import { IExtHostRpcService } from './extHostRpcService.js';
|
|
15
21
|
import { McpServerDefinition } from './extHostTypeConverters.js';
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import { MCP } from '../../contrib/mcp/common/modelContextProtocol.js';
|
|
19
|
-
import { CancellationError } from '../../../base/common/errors.js';
|
|
20
|
-
import { ConfigurationTarget } from '../../../platform/configuration/common/configuration.js';
|
|
21
|
-
import { IExtHostInitDataService } from './extHostInitDataService.js';
|
|
22
|
+
import { IExtHostVariableResolverProvider } from './extHostVariableResolverService.js';
|
|
23
|
+
import { IExtHostWorkspace } from './extHostWorkspace.js';
|
|
22
24
|
|
|
23
25
|
const IExtHostMpcService = ( createDecorator('IExtHostMpcService'));
|
|
24
26
|
let ExtHostMcpService = class ExtHostMcpService extends Disposable {
|
|
25
|
-
constructor(extHostRpc, _logService, _extHostInitData) {
|
|
27
|
+
constructor(extHostRpc, _logService, _extHostInitData, _workspaceService, _variableResolver) {
|
|
26
28
|
super();
|
|
27
29
|
this._logService = _logService;
|
|
28
30
|
this._extHostInitData = _extHostInitData;
|
|
31
|
+
this._workspaceService = _workspaceService;
|
|
32
|
+
this._variableResolver = _variableResolver;
|
|
29
33
|
this._initialProviderPromises = ( new Set());
|
|
30
34
|
this._sseEventSources = this._register(( new DisposableMap()));
|
|
31
35
|
this._unresolvedMcpServers = ( new Map());
|
|
32
36
|
this._proxy = ( extHostRpc.getProxy(MainContext.MainThreadMcp));
|
|
33
37
|
}
|
|
34
|
-
$startMcp(id,
|
|
35
|
-
this._startMcp(id, McpServerLaunch.fromSerialized(launch));
|
|
38
|
+
$startMcp(id, opts) {
|
|
39
|
+
this._startMcp(id, McpServerLaunch.fromSerialized(opts.launch), opts.defaultCwd && URI.revive(opts.defaultCwd), opts.errorOnUserInteraction);
|
|
36
40
|
}
|
|
37
|
-
_startMcp(id, launch) {
|
|
41
|
+
_startMcp(id, launch, _defaultCwd, errorOnUserInteraction) {
|
|
38
42
|
if (launch.type === McpServerTransportType.HTTP) {
|
|
39
|
-
this._sseEventSources.set(id, ( new McpHTTPHandle(id, launch, this._proxy, this._logService)));
|
|
43
|
+
this._sseEventSources.set(id, ( new McpHTTPHandle(id, launch, this._proxy, this._logService, errorOnUserInteraction)));
|
|
40
44
|
return;
|
|
41
45
|
}
|
|
42
46
|
throw ( new Error('not implemented'));
|
|
43
47
|
}
|
|
48
|
+
async $substituteVariables(_workspaceFolder, value) {
|
|
49
|
+
const folderURI = URI.revive(_workspaceFolder);
|
|
50
|
+
const folder = folderURI && (await this._workspaceService.resolveWorkspaceFolder(folderURI));
|
|
51
|
+
const variableResolver = await this._variableResolver.getResolver();
|
|
52
|
+
return variableResolver.resolveAsync(folder && {
|
|
53
|
+
uri: folder.uri,
|
|
54
|
+
name: folder.name,
|
|
55
|
+
index: folder.index,
|
|
56
|
+
}, value);
|
|
57
|
+
}
|
|
44
58
|
$stopMcp(id) {
|
|
45
59
|
if (( this._sseEventSources.has(id))) {
|
|
46
60
|
this._sseEventSources.deleteAndDispose(id);
|
|
@@ -133,7 +147,9 @@ let ExtHostMcpService = class ExtHostMcpService extends Disposable {
|
|
|
133
147
|
ExtHostMcpService = ( __decorate([
|
|
134
148
|
( __param(0, IExtHostRpcService)),
|
|
135
149
|
( __param(1, ILogService)),
|
|
136
|
-
( __param(2, IExtHostInitDataService))
|
|
150
|
+
( __param(2, IExtHostInitDataService)),
|
|
151
|
+
( __param(3, IExtHostWorkspace)),
|
|
152
|
+
( __param(4, IExtHostVariableResolverProvider))
|
|
137
153
|
], ExtHostMcpService));
|
|
138
154
|
var HttpMode;
|
|
139
155
|
(function (HttpMode) {
|
|
@@ -144,12 +160,13 @@ var HttpMode;
|
|
|
144
160
|
const MAX_FOLLOW_REDIRECTS = 5;
|
|
145
161
|
const REDIRECT_STATUS_CODES = [301, 302, 303, 307, 308];
|
|
146
162
|
class McpHTTPHandle extends Disposable {
|
|
147
|
-
constructor(_id, _launch, _proxy, _logService) {
|
|
163
|
+
constructor(_id, _launch, _proxy, _logService, _errorOnUserInteraction) {
|
|
148
164
|
super();
|
|
149
165
|
this._id = _id;
|
|
150
166
|
this._launch = _launch;
|
|
151
167
|
this._proxy = _proxy;
|
|
152
168
|
this._logService = _logService;
|
|
169
|
+
this._errorOnUserInteraction = _errorOnUserInteraction;
|
|
153
170
|
this._requestSequencer = ( new Sequencer());
|
|
154
171
|
this._postEndpoint = ( new DeferredPromise());
|
|
155
172
|
this._mode = { value: HttpMode.Unknown };
|
|
@@ -236,13 +253,14 @@ class McpHTTPHandle extends Disposable {
|
|
|
236
253
|
await this._sendLegacySSE(endpoint, message);
|
|
237
254
|
}
|
|
238
255
|
}
|
|
239
|
-
async _populateAuthMetadata(
|
|
256
|
+
async _populateAuthMetadata(mcpUrl, originalResponse) {
|
|
240
257
|
let resourceMetadataChallenge;
|
|
241
258
|
if (( originalResponse.headers.has('WWW-Authenticate'))) {
|
|
242
259
|
const authHeader = originalResponse.headers.get('WWW-Authenticate');
|
|
243
260
|
const challenges = parseWWWAuthenticateHeader(authHeader);
|
|
244
261
|
for (const challenge of challenges) {
|
|
245
262
|
if (challenge.scheme === 'Bearer' && challenge.params['resource_metadata']) {
|
|
263
|
+
this._log(LogLevel.Debug, `Found resource_metadata challenge in WWW-Authenticate header: ${challenge.params['resource_metadata']}`);
|
|
246
264
|
resourceMetadataChallenge = challenge.params['resource_metadata'];
|
|
247
265
|
break;
|
|
248
266
|
}
|
|
@@ -251,17 +269,22 @@ class McpHTTPHandle extends Disposable {
|
|
|
251
269
|
let serverMetadataUrl;
|
|
252
270
|
let scopesSupported;
|
|
253
271
|
let resource;
|
|
254
|
-
|
|
255
|
-
const resourceMetadata = await
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
272
|
+
try {
|
|
273
|
+
const resourceMetadata = await fetchResourceMetadata(mcpUrl, resourceMetadataChallenge, {
|
|
274
|
+
sameOriginHeaders: {
|
|
275
|
+
...Object.fromEntries(this._launch.headers),
|
|
276
|
+
'MCP-Protocol-Version': MCP.LATEST_PROTOCOL_VERSION
|
|
277
|
+
},
|
|
278
|
+
fetch: (url, init) => this._fetch(url, init)
|
|
279
|
+
});
|
|
261
280
|
serverMetadataUrl = resourceMetadata.authorization_servers?.[0];
|
|
281
|
+
this._log(LogLevel.Debug, `Using auth server metadata url: ${serverMetadataUrl}`);
|
|
262
282
|
scopesSupported = resourceMetadata.scopes_supported;
|
|
263
283
|
resource = resourceMetadata;
|
|
264
284
|
}
|
|
285
|
+
catch (e) {
|
|
286
|
+
this._log(LogLevel.Debug, `Could not fetch resource metadata: ${String(e)}`);
|
|
287
|
+
}
|
|
265
288
|
const baseUrl = ( new URL(originalResponse.url)).origin;
|
|
266
289
|
let addtionalHeaders = {};
|
|
267
290
|
if (!serverMetadataUrl) {
|
|
@@ -272,6 +295,7 @@ class McpHTTPHandle extends Disposable {
|
|
|
272
295
|
}
|
|
273
296
|
try {
|
|
274
297
|
const serverMetadataResponse = await this._getAuthorizationServerMetadata(serverMetadataUrl, addtionalHeaders);
|
|
298
|
+
this._log(LogLevel.Info, 'Populated auth metadata');
|
|
275
299
|
this._authMetadata = {
|
|
276
300
|
authorizationServer: ( URI.parse(serverMetadataUrl)),
|
|
277
301
|
serverMetadata: serverMetadataResponse,
|
|
@@ -280,7 +304,7 @@ class McpHTTPHandle extends Disposable {
|
|
|
280
304
|
return;
|
|
281
305
|
}
|
|
282
306
|
catch (e) {
|
|
283
|
-
this._log(LogLevel.Warning, `Error populating auth metadata: ${String(e)}`);
|
|
307
|
+
this._log(LogLevel.Warning, `Error populating auth server metadata for ${serverMetadataUrl}: ${String(e)}`);
|
|
284
308
|
}
|
|
285
309
|
const defaultMetadata = getDefaultMetadataForUrl(( new URL(baseUrl)));
|
|
286
310
|
defaultMetadata.scopes_supported = scopesSupported ?? defaultMetadata.scopes_supported ?? [];
|
|
@@ -289,43 +313,13 @@ class McpHTTPHandle extends Disposable {
|
|
|
289
313
|
serverMetadata: defaultMetadata,
|
|
290
314
|
resourceMetadata: resource
|
|
291
315
|
};
|
|
292
|
-
|
|
293
|
-
async _getResourceMetadata(resourceMetadata) {
|
|
294
|
-
const resourceMetadataUrl = ( new URL(resourceMetadata));
|
|
295
|
-
const mcpServerUrl = ( new URL(( this._launch.uri.toString(true))));
|
|
296
|
-
let additionalHeaders = {};
|
|
297
|
-
if (resourceMetadataUrl.origin === mcpServerUrl.origin) {
|
|
298
|
-
additionalHeaders = {
|
|
299
|
-
...Object.fromEntries(this._launch.headers)
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
const resourceMetadataResponse = await this._fetch(resourceMetadata, {
|
|
303
|
-
method: 'GET',
|
|
304
|
-
headers: {
|
|
305
|
-
...additionalHeaders,
|
|
306
|
-
'Accept': 'application/json',
|
|
307
|
-
'MCP-Protocol-Version': MCP.LATEST_PROTOCOL_VERSION
|
|
308
|
-
}
|
|
309
|
-
});
|
|
310
|
-
if (resourceMetadataResponse.status !== 200) {
|
|
311
|
-
throw ( new Error(
|
|
312
|
-
`Failed to fetch resource metadata: ${resourceMetadataResponse.status} ${await this._getErrText(resourceMetadataResponse)}`
|
|
313
|
-
));
|
|
314
|
-
}
|
|
315
|
-
const body = await resourceMetadataResponse.json();
|
|
316
|
-
if (isAuthorizationProtectedResourceMetadata(body)) {
|
|
317
|
-
return body;
|
|
318
|
-
}
|
|
319
|
-
else {
|
|
320
|
-
throw ( new Error(
|
|
321
|
-
`Invalid resource metadata. Expected to follow shape of https://datatracker.ietf.org/doc/html/rfc9728#name-protected-resource-metadata (Hints: is scopes_supported an array? Is resource a string?). Current payload: ${JSON.stringify(body)}`
|
|
322
|
-
));
|
|
323
|
-
}
|
|
316
|
+
this._log(LogLevel.Info, 'Using default auth metadata');
|
|
324
317
|
}
|
|
325
318
|
async _getAuthorizationServerMetadata(authorizationServer, addtionalHeaders) {
|
|
326
319
|
const authorizationServerUrl = ( new URL(authorizationServer));
|
|
327
320
|
const extraPath = authorizationServerUrl.pathname === '/' ? '' : authorizationServerUrl.pathname;
|
|
328
321
|
const pathToFetch = ( ( new URL(AUTH_SERVER_METADATA_DISCOVERY_PATH, authorizationServer)).toString()) + extraPath;
|
|
322
|
+
this._log(LogLevel.Debug, `Fetching auth server metadata url with path insertion: ${pathToFetch} ...`);
|
|
329
323
|
let authServerMetadataResponse = await this._fetch(pathToFetch, {
|
|
330
324
|
method: 'GET',
|
|
331
325
|
headers: {
|
|
@@ -336,6 +330,7 @@ class McpHTTPHandle extends Disposable {
|
|
|
336
330
|
});
|
|
337
331
|
if (authServerMetadataResponse.status !== 200) {
|
|
338
332
|
const openidPathInsertionUrl = ( ( new URL(OPENID_CONNECT_DISCOVERY_PATH, authorizationServer)).toString()) + extraPath;
|
|
333
|
+
this._log(LogLevel.Debug, `Fetching fallback openid connect discovery url with path insertion: ${openidPathInsertionUrl} ...`);
|
|
339
334
|
authServerMetadataResponse = await this._fetch(openidPathInsertionUrl, {
|
|
340
335
|
method: 'GET',
|
|
341
336
|
headers: {
|
|
@@ -345,7 +340,9 @@ class McpHTTPHandle extends Disposable {
|
|
|
345
340
|
}
|
|
346
341
|
});
|
|
347
342
|
if (authServerMetadataResponse.status !== 200) {
|
|
348
|
-
|
|
343
|
+
const openidPathAdditionUrl = ( URI.joinPath(( URI.parse(authorizationServer)), OPENID_CONNECT_DISCOVERY_PATH).toString(true));
|
|
344
|
+
this._log(LogLevel.Debug, `Fetching fallback openid connect discovery url with path addition: ${openidPathAdditionUrl} ...`);
|
|
345
|
+
authServerMetadataResponse = await this._fetch(openidPathAdditionUrl, {
|
|
349
346
|
method: 'GET',
|
|
350
347
|
headers: {
|
|
351
348
|
...addtionalHeaders,
|
|
@@ -531,12 +528,16 @@ class McpHTTPHandle extends Disposable {
|
|
|
531
528
|
async _addAuthHeader(headers) {
|
|
532
529
|
if (this._authMetadata) {
|
|
533
530
|
try {
|
|
534
|
-
const token = await this._proxy.$getTokenFromServerMetadata(this._id, this._authMetadata.authorizationServer, this._authMetadata.serverMetadata, this._authMetadata.resourceMetadata);
|
|
531
|
+
const token = await this._proxy.$getTokenFromServerMetadata(this._id, this._authMetadata.authorizationServer, this._authMetadata.serverMetadata, this._authMetadata.resourceMetadata, this._errorOnUserInteraction);
|
|
535
532
|
if (token) {
|
|
536
533
|
headers['Authorization'] = `Bearer ${token}`;
|
|
537
534
|
}
|
|
538
535
|
}
|
|
539
536
|
catch (e) {
|
|
537
|
+
if (UserInteractionRequiredError.is(e)) {
|
|
538
|
+
this._proxy.$onDidChangeState(this._id, { state: McpConnectionState.Kind.Stopped, reason: 'needs-user-interaction' });
|
|
539
|
+
throw ( new CancellationError());
|
|
540
|
+
}
|
|
540
541
|
this._log(LogLevel.Warning, `Error getting token from server metadata: ${String(e)}`);
|
|
541
542
|
}
|
|
542
543
|
}
|
|
@@ -555,12 +556,12 @@ class McpHTTPHandle extends Disposable {
|
|
|
555
556
|
return res.statusText;
|
|
556
557
|
}
|
|
557
558
|
}
|
|
558
|
-
async _fetchWithAuthRetry(
|
|
559
|
-
const doFetch = () => this._fetch(
|
|
559
|
+
async _fetchWithAuthRetry(mcpUrl, init, headers) {
|
|
560
|
+
const doFetch = () => this._fetch(mcpUrl, init);
|
|
560
561
|
let res = await doFetch();
|
|
561
562
|
if (res.status === 401) {
|
|
562
563
|
if (!this._authMetadata) {
|
|
563
|
-
await this._populateAuthMetadata(
|
|
564
|
+
await this._populateAuthMetadata(mcpUrl, res);
|
|
564
565
|
await this._addAuthHeader(headers);
|
|
565
566
|
if (headers['Authorization']) {
|
|
566
567
|
init.headers = headers;
|
|
@@ -584,7 +585,7 @@ class McpHTTPHandle extends Disposable {
|
|
|
584
585
|
let currentUrl = url;
|
|
585
586
|
let response;
|
|
586
587
|
for (let redirectCount = 0; redirectCount < MAX_FOLLOW_REDIRECTS; redirectCount++) {
|
|
587
|
-
response = await
|
|
588
|
+
response = await this._fetchInternal(currentUrl, {
|
|
588
589
|
...init,
|
|
589
590
|
signal: this._abortCtrl.signal,
|
|
590
591
|
redirect: 'manual'
|
|
@@ -614,6 +615,9 @@ class McpHTTPHandle extends Disposable {
|
|
|
614
615
|
}
|
|
615
616
|
return response;
|
|
616
617
|
}
|
|
618
|
+
_fetchInternal(url, init) {
|
|
619
|
+
return fetch(url, init);
|
|
620
|
+
}
|
|
617
621
|
}
|
|
618
622
|
function isJSON(str) {
|
|
619
623
|
try {
|
|
@@ -625,4 +629,4 @@ function isJSON(str) {
|
|
|
625
629
|
}
|
|
626
630
|
}
|
|
627
631
|
|
|
628
|
-
export { ExtHostMcpService, IExtHostMpcService };
|
|
632
|
+
export { ExtHostMcpService, IExtHostMpcService, McpHTTPHandle };
|
|
@@ -17,7 +17,7 @@ import { IExtHostConsumerFileSystem } from "./extHostFileSystemConsumer.js";
|
|
|
17
17
|
import { ITextQuery } from "../../services/search/common/search.js";
|
|
18
18
|
import { IExtHostSearch } from "./extHostSearch.js";
|
|
19
19
|
import { IRawClosedNotebookFileMatch } from "../../contrib/search/common/searchNotebookHelpers.js";
|
|
20
|
-
import { NotebookPriorityInfo } from "@codingame/monaco-vscode-
|
|
20
|
+
import { NotebookPriorityInfo } from "@codingame/monaco-vscode-5084de40-f866-5cb5-9d9b-33a10f6f235d-common/vscode/vs/workbench/contrib/search/common/search";
|
|
21
21
|
import { ILogService } from "../../../platform/log/common/log.service.js";
|
|
22
22
|
export declare class ExtHostNotebookController implements ExtHostNotebookShape {
|
|
23
23
|
private _textDocumentsAndEditors;
|
|
@@ -265,7 +265,7 @@ class ExtHostNotebookController {
|
|
|
265
265
|
));
|
|
266
266
|
}
|
|
267
267
|
if (!this._extHostFileSystem.value.isWritableFileSystem(uri.scheme)) {
|
|
268
|
-
throw new FileOperationError(( localize(
|
|
268
|
+
throw new FileOperationError(( localize(2642, "Unable to modify read-only file '{0}'", this._resourceForError(uri))), FileOperationResult.FILE_PERMISSION_DENIED);
|
|
269
269
|
}
|
|
270
270
|
const data = {
|
|
271
271
|
metadata: filter(document.apiNotebook.metadata, key => !(serializer.options?.transientDocumentMetadata ?? {})[key]),
|
|
@@ -444,7 +444,7 @@ class ExtHostNotebookController {
|
|
|
444
444
|
if (typeof options?.mtime === 'number' && typeof options.etag === 'string' && options.etag !== ETAG_DISABLED &&
|
|
445
445
|
typeof stat.mtime === 'number' && typeof stat.size === 'number' &&
|
|
446
446
|
options.mtime < stat.mtime && options.etag !== etag({ mtime: options.mtime , size: stat.size })) {
|
|
447
|
-
throw new FileOperationError(( localize(
|
|
447
|
+
throw new FileOperationError(( localize(2643, "File Modified Since")), FileOperationResult.FILE_MODIFIED_SINCE, options);
|
|
448
448
|
}
|
|
449
449
|
return;
|
|
450
450
|
}
|
|
@@ -62,7 +62,9 @@ export declare class ExtHostSCM implements ExtHostSCMShape {
|
|
|
62
62
|
number
|
|
63
63
|
] | undefined>;
|
|
64
64
|
$setSelectedSourceControl(selectedSourceControlHandle: number | undefined): Promise<void>;
|
|
65
|
+
$resolveHistoryItem(sourceControlHandle: number, historyItemId: string, token: CancellationToken): Promise<SCMHistoryItemDto | undefined>;
|
|
65
66
|
$resolveHistoryItemChatContext(sourceControlHandle: number, historyItemId: string, token: CancellationToken): Promise<string | undefined>;
|
|
67
|
+
$resolveHistoryItemChangeRangeChatContext(sourceControlHandle: number, historyItemId: string, historyItemParentId: string, path: string, token: CancellationToken): Promise<string | undefined>;
|
|
66
68
|
$resolveHistoryItemRefsCommonAncestor(sourceControlHandle: number, historyItemRefs: string[], token: CancellationToken): Promise<string | undefined>;
|
|
67
69
|
$provideHistoryItemRefs(sourceControlHandle: number, historyItemRefs: string[] | undefined, token: CancellationToken): Promise<SCMHistoryItemRefDto[] | undefined>;
|
|
68
70
|
$provideHistoryItems(sourceControlHandle: number, options: vscode.SourceControlHistoryOptions, token: CancellationToken): Promise<SCMHistoryItemDto[] | undefined>;
|
|
@@ -851,6 +851,17 @@ let ExtHostSCM = class ExtHostSCM {
|
|
|
851
851
|
this._selectedSourceControlHandle = selectedSourceControlHandle;
|
|
852
852
|
return Promise.resolve(undefined);
|
|
853
853
|
}
|
|
854
|
+
async $resolveHistoryItem(sourceControlHandle, historyItemId, token) {
|
|
855
|
+
try {
|
|
856
|
+
const historyProvider = this._sourceControls.get(sourceControlHandle)?.historyProvider;
|
|
857
|
+
const historyItem = await historyProvider?.resolveHistoryItem(historyItemId, token);
|
|
858
|
+
return historyItem ? toSCMHistoryItemDto(historyItem) : undefined;
|
|
859
|
+
}
|
|
860
|
+
catch (err) {
|
|
861
|
+
this.logService.error('ExtHostSCM#$resolveHistoryItem', err);
|
|
862
|
+
return undefined;
|
|
863
|
+
}
|
|
864
|
+
}
|
|
854
865
|
async $resolveHistoryItemChatContext(sourceControlHandle, historyItemId, token) {
|
|
855
866
|
try {
|
|
856
867
|
const historyProvider = this._sourceControls.get(sourceControlHandle)?.historyProvider;
|
|
@@ -862,6 +873,17 @@ let ExtHostSCM = class ExtHostSCM {
|
|
|
862
873
|
return undefined;
|
|
863
874
|
}
|
|
864
875
|
}
|
|
876
|
+
async $resolveHistoryItemChangeRangeChatContext(sourceControlHandle, historyItemId, historyItemParentId, path, token) {
|
|
877
|
+
try {
|
|
878
|
+
const historyProvider = this._sourceControls.get(sourceControlHandle)?.historyProvider;
|
|
879
|
+
const chatContext = await historyProvider?.resolveHistoryItemChangeRangeChatContext?.(historyItemId, historyItemParentId, path, token);
|
|
880
|
+
return chatContext ?? undefined;
|
|
881
|
+
}
|
|
882
|
+
catch (err) {
|
|
883
|
+
this.logService.error('ExtHostSCM#$resolveHistoryItemChangeRangeChatContext', err);
|
|
884
|
+
return undefined;
|
|
885
|
+
}
|
|
886
|
+
}
|
|
865
887
|
async $resolveHistoryItemRefsCommonAncestor(sourceControlHandle, historyItemRefs, token) {
|
|
866
888
|
try {
|
|
867
889
|
const historyProvider = this._sourceControls.get(sourceControlHandle)?.historyProvider;
|
|
@@ -5,7 +5,6 @@ import { Event } from "../../../base/common/event.js";
|
|
|
5
5
|
import { DisposableStore } from "../../../base/common/lifecycle.js";
|
|
6
6
|
export declare class ExtensionSecrets implements vscode.SecretStorage {
|
|
7
7
|
#private;
|
|
8
|
-
private readonly _extensionDescription;
|
|
9
8
|
protected readonly _id: string;
|
|
10
9
|
readonly onDidChange: Event<vscode.SecretStorageChangeEvent>;
|
|
11
10
|
readonly disposables: DisposableStore;
|
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
import { ExtensionIdentifier } from '../../../platform/extensions/common/extensions.js';
|
|
3
3
|
import { Event } from '../../../base/common/event.js';
|
|
4
4
|
import { DisposableStore } from '../../../base/common/lifecycle.js';
|
|
5
|
-
import { checkProposedApiEnabled } from '../../services/extensions/common/extensions.js';
|
|
6
5
|
|
|
7
6
|
class ExtensionSecrets {
|
|
8
7
|
#secretState;
|
|
9
8
|
constructor(extensionDescription, secretState) {
|
|
10
9
|
this.disposables = ( new DisposableStore());
|
|
11
|
-
this._extensionDescription = extensionDescription;
|
|
12
10
|
this._id = ExtensionIdentifier.toKey(extensionDescription.identifier);
|
|
13
11
|
this.#secretState = secretState;
|
|
14
12
|
this.onDidChange = ( Event.map(
|
|
@@ -30,7 +28,6 @@ class ExtensionSecrets {
|
|
|
30
28
|
return this.#secretState.delete(this._id, key);
|
|
31
29
|
}
|
|
32
30
|
keys() {
|
|
33
|
-
checkProposedApiEnabled(this._extensionDescription, 'secretStorageKeys');
|
|
34
31
|
return ( this.#secretState.keys(this._id)) || [];
|
|
35
32
|
}
|
|
36
33
|
}
|
|
@@ -188,7 +188,7 @@ class ExtHostStatusBarEntry {
|
|
|
188
188
|
}
|
|
189
189
|
else {
|
|
190
190
|
name = ( localize(
|
|
191
|
-
|
|
191
|
+
2644,
|
|
192
192
|
"{0} (Extension)",
|
|
193
193
|
this._extension.displayName || this._extension.name
|
|
194
194
|
));
|
|
@@ -221,7 +221,7 @@ class StatusBarMessage {
|
|
|
221
221
|
constructor(statusBar) {
|
|
222
222
|
this._messages = [];
|
|
223
223
|
this._item = statusBar.createStatusBarEntry(undefined, 'status.extensionMessage', StatusBarAlignment.Left, Number.MIN_VALUE);
|
|
224
|
-
this._item.name = ( localize(
|
|
224
|
+
this._item.name = ( localize(2645, "Extension Status"));
|
|
225
225
|
}
|
|
226
226
|
dispose() {
|
|
227
227
|
this._messages.length = 0;
|
|
@@ -28,7 +28,7 @@ let ExtHostTelemetry = class ExtHostTelemetry extends Disposable {
|
|
|
28
28
|
const id = initData.remote.isRemote ? 'remoteExtHostTelemetry' : isWorker ? 'workerExtHostTelemetry' : 'extHostTelemetry';
|
|
29
29
|
this._outputLogger = this._register(loggerService.createLogger(id, {
|
|
30
30
|
name: ( localize(
|
|
31
|
-
|
|
31
|
+
2646,
|
|
32
32
|
"Extension Telemetry{0}",
|
|
33
33
|
this._inLoggingOnlyMode ? ' (Not Sent)' : ''
|
|
34
34
|
)),
|
|
@@ -34,7 +34,7 @@ export interface IExtHostTerminalService extends ExtHostTerminalServiceShape, ID
|
|
|
34
34
|
getEnvironmentVariableCollection(extension: IExtensionDescription): IEnvironmentVariableCollection;
|
|
35
35
|
getTerminalById(id: number): ExtHostTerminal | null;
|
|
36
36
|
getTerminalIdByApiObject(apiTerminal: vscode.Terminal): number | null;
|
|
37
|
-
registerTerminalCompletionProvider(extension: IExtensionDescription, provider: vscode.TerminalCompletionProvider<vscode.TerminalCompletionItem>, ...triggerCharacters: string[]): vscode.Disposable;
|
|
37
|
+
registerTerminalCompletionProvider(extension: IExtensionDescription, id: string, provider: vscode.TerminalCompletionProvider<vscode.TerminalCompletionItem>, ...triggerCharacters: string[]): vscode.Disposable;
|
|
38
38
|
}
|
|
39
39
|
interface IEnvironmentVariableCollection extends vscode.EnvironmentVariableCollection {
|
|
40
40
|
getScoped(scope: vscode.EnvironmentVariableScope): vscode.EnvironmentVariableCollection;
|
|
@@ -165,7 +165,7 @@ export declare abstract class BaseExtHostTerminalService extends Disposable impl
|
|
|
165
165
|
$acceptProcessRequestCwd(id: number): void;
|
|
166
166
|
$acceptProcessRequestLatency(id: number): Promise<number>;
|
|
167
167
|
registerProfileProvider(extension: IExtensionDescription, id: string, provider: vscode.TerminalProfileProvider): vscode.Disposable;
|
|
168
|
-
registerTerminalCompletionProvider(extension: IExtensionDescription, provider: vscode.TerminalCompletionProvider<TerminalCompletionItem>, ...triggerCharacters: string[]): vscode.Disposable;
|
|
168
|
+
registerTerminalCompletionProvider(extension: IExtensionDescription, id: string, provider: vscode.TerminalCompletionProvider<TerminalCompletionItem>, ...triggerCharacters: string[]): vscode.Disposable;
|
|
169
169
|
$provideTerminalCompletions(id: string, options: ITerminalCompletionContextDto): Promise<TerminalCompletionListDto | undefined>;
|
|
170
170
|
$acceptTerminalShellType(id: number, shellType: TerminalShellType | undefined): void;
|
|
171
171
|
registerTerminalQuickFixProvider(id: string, extensionId: string, provider: vscode.TerminalQuickFixProvider): vscode.Disposable;
|