@codingame/monaco-vscode-chat-service-override 27.0.0 → 28.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/index.js +5 -2
- package/package.json +5 -5
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +54 -4
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +179 -11
- package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +5 -1
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +6 -1
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +25 -10
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +67 -0
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +263 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +6 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +25 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +13 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +49 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +58 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +537 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.js +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/media/agentPluginEditor.css +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +17 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +89 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +4 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +146 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +56 -54
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +25 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +13 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +189 -145
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +42 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +20 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +210 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +14 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +122 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +87 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +62 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +702 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +279 -214
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +21 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +12 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +63 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +62 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +28 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +2 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +32 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +4 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +49 -49
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +26 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +103 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +61 -61
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +66 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +245 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.d.ts +78 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.js +234 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +31 -126
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +229 -524
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.js +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +54 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +11 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +112 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +99 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +489 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +348 -285
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +18 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +107 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +55 -38
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +20 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +148 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +29 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +72 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +11 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +72 -23
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +19 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +37 -8
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +36 -3
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +71 -25
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +217 -91
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +85 -3
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +257 -63
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +3 -16
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +7 -50
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +32 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +7 -6
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +26 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +287 -88
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +10 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +75 -20
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +121 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +1422 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +81 -41
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +8 -6
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.d.ts +14 -2
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +54 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +6 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +38 -22
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +8 -8
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +36 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +27 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.d.ts +0 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +0 -67
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { registerCss } from '@codingame/monaco-vscode-api/css';
|
|
3
3
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
4
4
|
import * as aiCustomizationManagement from './media/aiCustomizationManagement.css';
|
|
5
|
-
import { $ as $$1, append, addDisposableListener } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
5
|
+
import { $ as $$1, append, addDisposableListener, getWindow } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
6
6
|
import { DisposableStore, Disposable, isDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
7
7
|
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
8
8
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
@@ -26,14 +26,15 @@ import { Delayer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/asyn
|
|
|
26
26
|
import { Separator } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
|
|
27
27
|
import { getContextMenuActions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/browser/mcpServerActions';
|
|
28
28
|
import { LocalMcpServerScope } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/mcp/common/mcpWorkbenchManagementService';
|
|
29
|
-
import { workspaceIcon, userIcon } from './aiCustomizationIcons.js';
|
|
29
|
+
import { workspaceIcon, userIcon, extensionIcon } from './aiCustomizationIcons.js';
|
|
30
30
|
import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
|
|
31
|
+
import { IAICustomizationWorkspaceService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.service';
|
|
31
32
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
32
33
|
|
|
33
34
|
registerCss(aiCustomizationManagement);
|
|
34
35
|
const $ = $$1;
|
|
35
|
-
const MCP_ITEM_HEIGHT =
|
|
36
|
-
const MCP_GROUP_HEADER_HEIGHT =
|
|
36
|
+
const MCP_ITEM_HEIGHT = 36;
|
|
37
|
+
const MCP_GROUP_HEADER_HEIGHT = 36;
|
|
37
38
|
const MCP_GROUP_HEADER_HEIGHT_WITH_SEPARATOR = 40;
|
|
38
39
|
class McpServerItemDelegate {
|
|
39
40
|
getHeight(element) {
|
|
@@ -46,6 +47,9 @@ class McpServerItemDelegate {
|
|
|
46
47
|
if (element.type === "group-header") {
|
|
47
48
|
return "mcpGroupHeader";
|
|
48
49
|
}
|
|
50
|
+
if (element.type === "builtin-item") {
|
|
51
|
+
return "mcpServerItem";
|
|
52
|
+
}
|
|
49
53
|
const server = element.server;
|
|
50
54
|
return server.gallery && !server.local ? "mcpGalleryItem" : "mcpServerItem";
|
|
51
55
|
}
|
|
@@ -103,21 +107,19 @@ class McpGroupHeaderRenderer {
|
|
|
103
107
|
}
|
|
104
108
|
}
|
|
105
109
|
let McpServerItemRenderer = class McpServerItemRenderer {
|
|
106
|
-
constructor(mcpService) {
|
|
110
|
+
constructor(mcpService, workspaceService) {
|
|
107
111
|
this.mcpService = mcpService;
|
|
112
|
+
this.workspaceService = workspaceService;
|
|
108
113
|
this.templateId = "mcpServerItem";
|
|
109
114
|
}
|
|
110
115
|
renderTemplate(container) {
|
|
111
116
|
container.classList.add("mcp-server-item");
|
|
112
|
-
const icon = append(container, $(".mcp-server-icon"));
|
|
113
|
-
icon.classList.add(...ThemeIcon.asClassNameArray(Codicon.server));
|
|
114
117
|
const details = append(container, $(".mcp-server-details"));
|
|
115
118
|
const name = append(details, $(".mcp-server-name"));
|
|
116
119
|
const description = append(details, $(".mcp-server-description"));
|
|
117
120
|
const status = append(container, $(".mcp-server-status"));
|
|
118
121
|
return {
|
|
119
122
|
container,
|
|
120
|
-
icon,
|
|
121
123
|
name,
|
|
122
124
|
description,
|
|
123
125
|
status,
|
|
@@ -126,8 +128,26 @@ let McpServerItemRenderer = class McpServerItemRenderer {
|
|
|
126
128
|
}
|
|
127
129
|
renderElement(element, index, templateData) {
|
|
128
130
|
templateData.disposables.clear();
|
|
131
|
+
if (element.type === "builtin-item") {
|
|
132
|
+
templateData.container.classList.add("builtin");
|
|
133
|
+
templateData.name.textContent = element.label;
|
|
134
|
+
if (element.description) {
|
|
135
|
+
templateData.description.textContent = element.description;
|
|
136
|
+
templateData.description.style.display = "";
|
|
137
|
+
} else {
|
|
138
|
+
templateData.description.style.display = "none";
|
|
139
|
+
}
|
|
140
|
+
templateData.status.style.display = "none";
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
templateData.container.classList.remove("builtin");
|
|
129
144
|
templateData.name.textContent = element.server.label;
|
|
130
|
-
|
|
145
|
+
if (element.server.description) {
|
|
146
|
+
templateData.description.textContent = element.server.description;
|
|
147
|
+
templateData.description.style.display = "";
|
|
148
|
+
} else {
|
|
149
|
+
templateData.description.style.display = "none";
|
|
150
|
+
}
|
|
131
151
|
const server = this.mcpService.servers.get().find(s => s.definition.id === element.server.id);
|
|
132
152
|
templateData.disposables.add(autorun(reader => {
|
|
133
153
|
const connectionState = server?.connectionState.read(reader);
|
|
@@ -136,22 +156,27 @@ let McpServerItemRenderer = class McpServerItemRenderer {
|
|
|
136
156
|
}
|
|
137
157
|
updateStatus(statusElement, state) {
|
|
138
158
|
statusElement.className = "mcp-server-status";
|
|
159
|
+
if (this.workspaceService.isSessionsWindow) {
|
|
160
|
+
statusElement.style.display = "none";
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
statusElement.style.display = "";
|
|
139
164
|
switch (state) {
|
|
140
165
|
case McpConnectionState.Kind.Running:
|
|
141
|
-
statusElement.textContent = ( localize(
|
|
166
|
+
statusElement.textContent = ( localize(5320, "Running"));
|
|
142
167
|
statusElement.classList.add("running");
|
|
143
168
|
break;
|
|
144
169
|
case McpConnectionState.Kind.Starting:
|
|
145
|
-
statusElement.textContent = ( localize(
|
|
170
|
+
statusElement.textContent = ( localize(5321, "Starting"));
|
|
146
171
|
statusElement.classList.add("starting");
|
|
147
172
|
break;
|
|
148
173
|
case McpConnectionState.Kind.Error:
|
|
149
|
-
statusElement.textContent = ( localize(
|
|
174
|
+
statusElement.textContent = ( localize(5322, "Error"));
|
|
150
175
|
statusElement.classList.add("error");
|
|
151
176
|
break;
|
|
152
177
|
case McpConnectionState.Kind.Stopped:
|
|
153
178
|
default:
|
|
154
|
-
statusElement.textContent = ( localize(
|
|
179
|
+
statusElement.textContent = ( localize(5323, "Stopped"));
|
|
155
180
|
statusElement.classList.add("stopped");
|
|
156
181
|
break;
|
|
157
182
|
}
|
|
@@ -160,7 +185,7 @@ let McpServerItemRenderer = class McpServerItemRenderer {
|
|
|
160
185
|
templateData.disposables.dispose();
|
|
161
186
|
}
|
|
162
187
|
};
|
|
163
|
-
McpServerItemRenderer = ( __decorate([( __param(0, IMcpService))], McpServerItemRenderer));
|
|
188
|
+
McpServerItemRenderer = ( __decorate([( __param(0, IMcpService)), ( __param(1, IAICustomizationWorkspaceService))], McpServerItemRenderer));
|
|
164
189
|
class McpGalleryItemRenderer {
|
|
165
190
|
constructor(mcpWorkbenchService) {
|
|
166
191
|
this.mcpWorkbenchService = mcpWorkbenchService;
|
|
@@ -168,8 +193,6 @@ class McpGalleryItemRenderer {
|
|
|
168
193
|
}
|
|
169
194
|
renderTemplate(container) {
|
|
170
195
|
container.classList.add("mcp-server-item", "mcp-gallery-item");
|
|
171
|
-
const icon = append(container, $(".mcp-server-icon"));
|
|
172
|
-
icon.classList.add(...ThemeIcon.asClassNameArray(Codicon.server));
|
|
173
196
|
const details = append(container, $(".mcp-server-details"));
|
|
174
197
|
const nameRow = append(details, $(".mcp-gallery-name-row"));
|
|
175
198
|
const name = append(nameRow, $(".mcp-server-name"));
|
|
@@ -185,7 +208,6 @@ class McpGalleryItemRenderer {
|
|
|
185
208
|
templateDisposables.add(installButton);
|
|
186
209
|
return {
|
|
187
210
|
container,
|
|
188
|
-
icon,
|
|
189
211
|
name,
|
|
190
212
|
publisher,
|
|
191
213
|
description,
|
|
@@ -203,7 +225,7 @@ class McpGalleryItemRenderer {
|
|
|
203
225
|
templateData.elementDisposables.add(templateData.installButton.onDidClick(async () => {
|
|
204
226
|
const canInstall = this.mcpWorkbenchService.canInstall(element.server);
|
|
205
227
|
if (canInstall === true) {
|
|
206
|
-
templateData.installButton.label = ( localize(
|
|
228
|
+
templateData.installButton.label = ( localize(5324, "Installing..."));
|
|
207
229
|
templateData.installButton.enabled = false;
|
|
208
230
|
await this.mcpWorkbenchService.install(element.server);
|
|
209
231
|
}
|
|
@@ -217,15 +239,15 @@ class McpGalleryItemRenderer {
|
|
|
217
239
|
updateInstallButton(button, server) {
|
|
218
240
|
switch (server.installState) {
|
|
219
241
|
case McpServerInstallState.Installed:
|
|
220
|
-
button.label = ( localize(
|
|
242
|
+
button.label = ( localize(5325, "Installed"));
|
|
221
243
|
button.enabled = false;
|
|
222
244
|
break;
|
|
223
245
|
case McpServerInstallState.Installing:
|
|
224
|
-
button.label = ( localize(
|
|
246
|
+
button.label = ( localize(5324, "Installing..."));
|
|
225
247
|
button.enabled = false;
|
|
226
248
|
break;
|
|
227
249
|
default:
|
|
228
|
-
button.label = ( localize(
|
|
250
|
+
button.label = ( localize(5326, "Install"));
|
|
229
251
|
button.enabled = true;
|
|
230
252
|
break;
|
|
231
253
|
}
|
|
@@ -277,7 +299,7 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
277
299
|
this.searchAndButtonContainer = append(this.element, $(".list-search-and-button-container"));
|
|
278
300
|
const searchContainer = append(this.searchAndButtonContainer, $(".list-search-container"));
|
|
279
301
|
this.searchInput = this._register(( new InputBox(searchContainer, this.contextViewService, {
|
|
280
|
-
placeholder: ( localize(
|
|
302
|
+
placeholder: ( localize(5327, "Type to search...")),
|
|
281
303
|
inputBoxStyles: defaultInputBoxStyles
|
|
282
304
|
})));
|
|
283
305
|
this._register(this.searchInput.onDidChange(() => {
|
|
@@ -295,7 +317,7 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
295
317
|
secondary: true,
|
|
296
318
|
supportIcons: true
|
|
297
319
|
})));
|
|
298
|
-
this.browseButton.label = `$(${Codicon.library.id}) ${( localize(
|
|
320
|
+
this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5328, "Browse Marketplace"))}`;
|
|
299
321
|
this.browseButton.element.classList.add("list-add-button");
|
|
300
322
|
this._register(this.browseButton.onDidClick(() => {
|
|
301
323
|
this.toggleBrowseMode(!this.browseMode);
|
|
@@ -305,7 +327,7 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
305
327
|
...defaultButtonStyles,
|
|
306
328
|
supportIcons: true
|
|
307
329
|
})));
|
|
308
|
-
this.addButton.label = `$(${Codicon.add.id}) ${( localize(
|
|
330
|
+
this.addButton.label = `$(${Codicon.add.id}) ${( localize(5329, "Add Server"))}`;
|
|
309
331
|
this.addButton.element.classList.add("list-add-button");
|
|
310
332
|
this._register(this.addButton.onDidClick(() => {
|
|
311
333
|
this.commandService.executeCommand(McpCommandIds.AddConfiguration);
|
|
@@ -313,11 +335,11 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
313
335
|
this.backLink = append(this.element, $(".mcp-back-link"));
|
|
314
336
|
this.backLink.setAttribute("role", "button");
|
|
315
337
|
this.backLink.tabIndex = 0;
|
|
316
|
-
this.backLink.setAttribute("aria-label", ( localize(
|
|
338
|
+
this.backLink.setAttribute("aria-label", ( localize(5330, "Back to installed servers")));
|
|
317
339
|
const backIcon = append(this.backLink, $("span"));
|
|
318
340
|
backIcon.classList.add(...ThemeIcon.asClassNameArray(Codicon.arrowLeft));
|
|
319
341
|
const backText = append(this.backLink, $("span"));
|
|
320
|
-
backText.textContent = ( localize(
|
|
342
|
+
backText.textContent = ( localize(5331, "Back to installed servers"));
|
|
321
343
|
this._register(addDisposableListener(this.backLink, "click", () => {
|
|
322
344
|
this.toggleBrowseMode(false);
|
|
323
345
|
}));
|
|
@@ -337,11 +359,11 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
337
359
|
this.sectionHeader = append(this.element, $(".section-footer"));
|
|
338
360
|
this.sectionDescription = append(this.sectionHeader, $("p.section-footer-description"));
|
|
339
361
|
this.sectionDescription.textContent = ( localize(
|
|
340
|
-
|
|
362
|
+
5332,
|
|
341
363
|
"An open standard that lets AI use external tools and services. MCP servers provide tools for file operations, databases, APIs, and more."
|
|
342
364
|
));
|
|
343
365
|
this.sectionLink = append(this.sectionHeader, $("a.section-footer-link"));
|
|
344
|
-
this.sectionLink.textContent = ( localize(
|
|
366
|
+
this.sectionLink.textContent = ( localize(5333, "Learn more about MCP servers"));
|
|
345
367
|
this.sectionLink.href = "https://code.visualstudio.com/docs/copilot/chat/mcp-servers";
|
|
346
368
|
this._register(addDisposableListener(this.sectionLink, "click", e => {
|
|
347
369
|
e.preventDefault();
|
|
@@ -368,23 +390,32 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
368
390
|
getAriaLabel(element) {
|
|
369
391
|
if (element.type === "group-header") {
|
|
370
392
|
return localize(
|
|
371
|
-
|
|
393
|
+
5334,
|
|
372
394
|
"{0}, {1} items, {2}",
|
|
373
395
|
element.label,
|
|
374
396
|
element.count,
|
|
375
|
-
element.collapsed ? ( localize(
|
|
397
|
+
element.collapsed ? ( localize(5335, "collapsed")) : ( localize(5336, "expanded"))
|
|
376
398
|
);
|
|
377
399
|
}
|
|
400
|
+
if (element.type === "builtin-item") {
|
|
401
|
+
return element.label;
|
|
402
|
+
}
|
|
378
403
|
return element.server.label;
|
|
379
404
|
},
|
|
380
405
|
getWidgetAriaLabel() {
|
|
381
|
-
return localize(
|
|
406
|
+
return localize(5337, "MCP Servers");
|
|
382
407
|
}
|
|
383
408
|
},
|
|
384
409
|
openOnSingleClick: true,
|
|
385
410
|
identityProvider: {
|
|
386
411
|
getId(element) {
|
|
387
|
-
|
|
412
|
+
if (element.type === "group-header") {
|
|
413
|
+
return element.id;
|
|
414
|
+
}
|
|
415
|
+
if (element.type === "builtin-item") {
|
|
416
|
+
return element.id;
|
|
417
|
+
}
|
|
418
|
+
return element.server.id;
|
|
388
419
|
}
|
|
389
420
|
}
|
|
390
421
|
}
|
|
@@ -393,7 +424,7 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
393
424
|
if (e.element) {
|
|
394
425
|
if (e.element.type === "group-header") {
|
|
395
426
|
this.toggleGroup(e.element);
|
|
396
|
-
} else {
|
|
427
|
+
} else if (e.element.type === "server-item") {
|
|
397
428
|
this._onDidSelectServer.fire(e.element.server);
|
|
398
429
|
}
|
|
399
430
|
}
|
|
@@ -426,7 +457,7 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
426
457
|
this.backLink.style.display = browse ? "" : "none";
|
|
427
458
|
this.addButton.element.parentElement.style.display = browse ? "none" : "";
|
|
428
459
|
this.browseButton.element.parentElement.style.display = browse ? "none" : "";
|
|
429
|
-
this.searchInput.setPlaceHolder(browse ? ( localize(
|
|
460
|
+
this.searchInput.setPlaceHolder(browse ? ( localize(5338, "Search MCP marketplace...")) : ( localize(5327, "Type to search...")));
|
|
430
461
|
if (browse) {
|
|
431
462
|
void this.queryGallery();
|
|
432
463
|
} else {
|
|
@@ -440,7 +471,7 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
440
471
|
const cts = this.galleryCts = ( new CancellationTokenSource());
|
|
441
472
|
this.emptyContainer.style.display = "flex";
|
|
442
473
|
this.listContainer.style.display = "none";
|
|
443
|
-
this.emptyText.textContent = ( localize(
|
|
474
|
+
this.emptyText.textContent = ( localize(5339, "Loading marketplace..."));
|
|
444
475
|
this.emptySubtext.textContent = "";
|
|
445
476
|
try {
|
|
446
477
|
const pager = await this.mcpWorkbenchService.queryGallery({
|
|
@@ -456,8 +487,8 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
456
487
|
this.galleryServers = [];
|
|
457
488
|
this.emptyContainer.style.display = "flex";
|
|
458
489
|
this.listContainer.style.display = "none";
|
|
459
|
-
this.emptyText.textContent = ( localize(
|
|
460
|
-
this.emptySubtext.textContent = ( localize(
|
|
490
|
+
this.emptyText.textContent = ( localize(5340, "Unable to load marketplace"));
|
|
491
|
+
this.emptySubtext.textContent = ( localize(5341, "Check your connection and try again"));
|
|
461
492
|
}
|
|
462
493
|
}
|
|
463
494
|
}
|
|
@@ -466,10 +497,10 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
466
497
|
this.emptyContainer.style.display = "flex";
|
|
467
498
|
this.listContainer.style.display = "none";
|
|
468
499
|
if (this.searchQuery.trim()) {
|
|
469
|
-
this.emptyText.textContent = ( localize(
|
|
470
|
-
this.emptySubtext.textContent = ( localize(
|
|
500
|
+
this.emptyText.textContent = ( localize(5342, "No servers match '{0}'", this.searchQuery));
|
|
501
|
+
this.emptySubtext.textContent = ( localize(5343, "Try a different search term"));
|
|
471
502
|
} else {
|
|
472
|
-
this.emptyText.textContent = ( localize(
|
|
503
|
+
this.emptyText.textContent = ( localize(5344, "No MCP servers available"));
|
|
473
504
|
this.emptySubtext.textContent = "";
|
|
474
505
|
}
|
|
475
506
|
} else {
|
|
@@ -491,15 +522,17 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
491
522
|
} else {
|
|
492
523
|
this.filteredServers = [...this.mcpWorkbenchService.local];
|
|
493
524
|
}
|
|
494
|
-
|
|
525
|
+
const localIds = ( new Set(( this.filteredServers.map(s => s.id))));
|
|
526
|
+
const builtinServers = this.mcpService.servers.get().filter(s => !( localIds.has(s.definition.id))).filter(s => !query || s.definition.label.toLowerCase().includes(query));
|
|
527
|
+
if (this.filteredServers.length === 0 && builtinServers.length === 0) {
|
|
495
528
|
this.emptyContainer.style.display = "flex";
|
|
496
529
|
this.listContainer.style.display = "none";
|
|
497
530
|
if (this.searchQuery.trim()) {
|
|
498
|
-
this.emptyText.textContent = ( localize(
|
|
499
|
-
this.emptySubtext.textContent = ( localize(
|
|
531
|
+
this.emptyText.textContent = ( localize(5345, "No servers match '{0}'", this.searchQuery));
|
|
532
|
+
this.emptySubtext.textContent = ( localize(5343, "Try a different search term"));
|
|
500
533
|
} else {
|
|
501
|
-
this.emptyText.textContent = ( localize(
|
|
502
|
-
this.emptySubtext.textContent = ( localize(
|
|
534
|
+
this.emptyText.textContent = ( localize(5346, "No MCP servers configured"));
|
|
535
|
+
this.emptySubtext.textContent = ( localize(5347, "Add an MCP server configuration to get started"));
|
|
503
536
|
}
|
|
504
537
|
} else {
|
|
505
538
|
this.emptyContainer.style.display = "none";
|
|
@@ -507,19 +540,19 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
507
540
|
}
|
|
508
541
|
const groups = [{
|
|
509
542
|
scope: LocalMcpServerScope.Workspace,
|
|
510
|
-
label: ( localize(
|
|
543
|
+
label: ( localize(5348, "Workspace")),
|
|
511
544
|
icon: workspaceIcon,
|
|
512
545
|
description: ( localize(
|
|
513
|
-
|
|
546
|
+
5349,
|
|
514
547
|
"MCP servers configured in your workspace settings, shared with your team via version control."
|
|
515
548
|
)),
|
|
516
549
|
servers: []
|
|
517
550
|
}, {
|
|
518
551
|
scope: LocalMcpServerScope.User,
|
|
519
|
-
label: ( localize(
|
|
552
|
+
label: ( localize(5350, "User")),
|
|
520
553
|
icon: userIcon,
|
|
521
554
|
description: ( localize(
|
|
522
|
-
|
|
555
|
+
5351,
|
|
523
556
|
"MCP servers configured in your user settings. Private to you and available across all projects."
|
|
524
557
|
)),
|
|
525
558
|
servers: []
|
|
@@ -560,6 +593,30 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
560
593
|
}
|
|
561
594
|
isFirst = false;
|
|
562
595
|
}
|
|
596
|
+
if (builtinServers.length > 0) {
|
|
597
|
+
const collapsed = ( this.collapsedGroups.has("builtin"));
|
|
598
|
+
entries.push({
|
|
599
|
+
type: "group-header",
|
|
600
|
+
id: "mcp-group-builtin",
|
|
601
|
+
scope: "builtin",
|
|
602
|
+
label: ( localize(5352, "Built-in")),
|
|
603
|
+
icon: extensionIcon,
|
|
604
|
+
count: builtinServers.length,
|
|
605
|
+
isFirst,
|
|
606
|
+
description: ( localize(5353, "MCP servers built into VS Code. These are available automatically.")),
|
|
607
|
+
collapsed
|
|
608
|
+
});
|
|
609
|
+
if (!collapsed) {
|
|
610
|
+
for (const server of builtinServers) {
|
|
611
|
+
entries.push({
|
|
612
|
+
type: "builtin-item",
|
|
613
|
+
id: `builtin-${server.definition.id}`,
|
|
614
|
+
label: server.definition.label,
|
|
615
|
+
description: ""
|
|
616
|
+
});
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
}
|
|
563
620
|
this.displayEntries = entries;
|
|
564
621
|
this.list.splice(0, this.list.length, this.displayEntries);
|
|
565
622
|
}
|
|
@@ -572,13 +629,25 @@ let McpListWidget = class McpListWidget extends Disposable {
|
|
|
572
629
|
this.filterServers();
|
|
573
630
|
}
|
|
574
631
|
layout(height, width) {
|
|
575
|
-
const sectionFooterHeight = this.sectionHeader.offsetHeight ||
|
|
576
|
-
const searchBarHeight = this.searchAndButtonContainer.offsetHeight ||
|
|
632
|
+
const sectionFooterHeight = this.sectionHeader.offsetHeight || 0;
|
|
633
|
+
const searchBarHeight = this.searchAndButtonContainer.offsetHeight || 52;
|
|
577
634
|
const backLinkHeight = this.browseMode ? (this.backLink.offsetHeight || 28) : 0;
|
|
578
|
-
const
|
|
579
|
-
const listHeight = height - sectionFooterHeight - searchBarHeight - backLinkHeight - margins;
|
|
635
|
+
const listHeight = height - sectionFooterHeight - searchBarHeight - backLinkHeight;
|
|
580
636
|
this.listContainer.style.height = `${Math.max(0, listHeight)}px`;
|
|
581
637
|
this.list.layout(Math.max(0, listHeight), width);
|
|
638
|
+
if (sectionFooterHeight === 0) {
|
|
639
|
+
getWindow(this.listContainer).requestAnimationFrame(() => {
|
|
640
|
+
if (this._store.isDisposed) {
|
|
641
|
+
return;
|
|
642
|
+
}
|
|
643
|
+
const actualFooterHeight = this.sectionHeader.offsetHeight;
|
|
644
|
+
if (actualFooterHeight > 0) {
|
|
645
|
+
const correctedHeight = height - actualFooterHeight - searchBarHeight - backLinkHeight;
|
|
646
|
+
this.listContainer.style.height = `${Math.max(0, correctedHeight)}px`;
|
|
647
|
+
this.list.layout(Math.max(0, correctedHeight), width);
|
|
648
|
+
}
|
|
649
|
+
});
|
|
650
|
+
}
|
|
582
651
|
}
|
|
583
652
|
focusSearch() {
|
|
584
653
|
this.searchInput.focus();
|
|
@@ -31,7 +31,65 @@
|
|
|
31
31
|
overflow: hidden;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
/* Folder picker footer (sessions window only) */
|
|
35
|
+
.ai-customization-management-editor .sidebar-folder-picker {
|
|
36
|
+
flex-shrink: 0;
|
|
37
|
+
display: flex;
|
|
38
|
+
align-items: center;
|
|
39
|
+
gap: 2px;
|
|
40
|
+
padding: 6px 4px;
|
|
41
|
+
border-top: 1px solid var(--vscode-sideBarSectionHeader-border, transparent);
|
|
42
|
+
}
|
|
34
43
|
|
|
44
|
+
.ai-customization-management-editor .folder-picker-button {
|
|
45
|
+
display: flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
gap: 6px;
|
|
48
|
+
flex: 1;
|
|
49
|
+
min-width: 0;
|
|
50
|
+
padding: 4px 6px;
|
|
51
|
+
border: none;
|
|
52
|
+
border-radius: 4px;
|
|
53
|
+
background: transparent;
|
|
54
|
+
color: var(--vscode-descriptionForeground);
|
|
55
|
+
cursor: pointer;
|
|
56
|
+
font-size: 11px;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.ai-customization-management-editor .folder-picker-button:hover {
|
|
60
|
+
background-color: var(--vscode-list-hoverBackground);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.ai-customization-management-editor .folder-picker-icon {
|
|
64
|
+
flex-shrink: 0;
|
|
65
|
+
font-size: 14px;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.ai-customization-management-editor .folder-picker-label {
|
|
69
|
+
overflow: hidden;
|
|
70
|
+
text-overflow: ellipsis;
|
|
71
|
+
white-space: nowrap;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.ai-customization-management-editor .folder-picker-clear {
|
|
75
|
+
flex-shrink: 0;
|
|
76
|
+
display: flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
justify-content: center;
|
|
79
|
+
width: 22px;
|
|
80
|
+
height: 22px;
|
|
81
|
+
padding: 0;
|
|
82
|
+
border: none;
|
|
83
|
+
border-radius: 4px;
|
|
84
|
+
background: transparent;
|
|
85
|
+
color: var(--vscode-descriptionForeground);
|
|
86
|
+
cursor: pointer;
|
|
87
|
+
font-size: 12px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.ai-customization-management-editor .folder-picker-clear:hover {
|
|
91
|
+
background-color: var(--vscode-list-hoverBackground);
|
|
92
|
+
}
|
|
35
93
|
|
|
36
94
|
/* Section list items */
|
|
37
95
|
.ai-customization-management-editor .section-list-item {
|
|
@@ -108,7 +166,7 @@
|
|
|
108
166
|
align-items: center;
|
|
109
167
|
gap: 8px;
|
|
110
168
|
flex-shrink: 0;
|
|
111
|
-
|
|
169
|
+
padding: 6px 0;
|
|
112
170
|
}
|
|
113
171
|
|
|
114
172
|
.ai-customization-list-widget .list-search-container,
|
|
@@ -137,7 +195,8 @@
|
|
|
137
195
|
|
|
138
196
|
.ai-customization-list-widget .list-container {
|
|
139
197
|
flex: 1;
|
|
140
|
-
|
|
198
|
+
min-height: 0;
|
|
199
|
+
overflow: auto;
|
|
141
200
|
}
|
|
142
201
|
|
|
143
202
|
.ai-customization-list-widget .list-empty-message {
|
|
@@ -193,11 +252,9 @@
|
|
|
193
252
|
border-radius: 4px;
|
|
194
253
|
}
|
|
195
254
|
|
|
196
|
-
/*
|
|
255
|
+
/* Spacing above non-first group headers */
|
|
197
256
|
.ai-customization-group-header.has-previous-group {
|
|
198
|
-
border-top: 1px solid var(--vscode-sideBarSectionHeader-border, var(--vscode-panel-border));
|
|
199
257
|
margin-top: 4px;
|
|
200
|
-
padding-top: 12px;
|
|
201
258
|
}
|
|
202
259
|
|
|
203
260
|
.ai-customization-group-header:hover {
|
|
@@ -499,6 +556,7 @@
|
|
|
499
556
|
/* Content container visibility */
|
|
500
557
|
.ai-customization-management-editor .prompts-content-container,
|
|
501
558
|
.ai-customization-management-editor .mcp-content-container,
|
|
559
|
+
.ai-customization-management-editor .plugin-content-container,
|
|
502
560
|
.ai-customization-management-editor .models-content-container {
|
|
503
561
|
height: 100%;
|
|
504
562
|
display: flex;
|
|
@@ -517,6 +575,18 @@
|
|
|
517
575
|
overflow: hidden;
|
|
518
576
|
}
|
|
519
577
|
|
|
578
|
+
/* Embedded plugin detail view */
|
|
579
|
+
.ai-customization-management-editor .plugin-detail-container {
|
|
580
|
+
height: 100%;
|
|
581
|
+
display: flex;
|
|
582
|
+
flex-direction: column;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
.ai-customization-management-editor .plugin-detail-editor-container {
|
|
586
|
+
flex: 1;
|
|
587
|
+
overflow: hidden;
|
|
588
|
+
}
|
|
589
|
+
|
|
520
590
|
/* Models section footer */
|
|
521
591
|
.ai-customization-management-editor .models-content-container .section-footer {
|
|
522
592
|
flex-shrink: 0;
|
|
@@ -590,7 +660,8 @@
|
|
|
590
660
|
|
|
591
661
|
.mcp-list-widget .mcp-list-container {
|
|
592
662
|
flex: 1;
|
|
593
|
-
|
|
663
|
+
min-height: 0;
|
|
664
|
+
overflow: auto;
|
|
594
665
|
}
|
|
595
666
|
|
|
596
667
|
/* MCP Empty State */
|
|
@@ -632,17 +703,23 @@
|
|
|
632
703
|
.mcp-server-item {
|
|
633
704
|
display: flex;
|
|
634
705
|
align-items: center;
|
|
635
|
-
padding: 8px
|
|
706
|
+
padding: 6px 8px 6px 24px;
|
|
636
707
|
cursor: pointer;
|
|
637
708
|
border-radius: 4px;
|
|
638
709
|
margin: 2px 0;
|
|
639
|
-
|
|
710
|
+
min-height: 32px;
|
|
711
|
+
gap: 10px;
|
|
640
712
|
}
|
|
641
713
|
|
|
642
714
|
.mcp-server-item:hover {
|
|
643
715
|
background-color: var(--vscode-list-hoverBackground);
|
|
644
716
|
}
|
|
645
717
|
|
|
718
|
+
.mcp-server-item.builtin {
|
|
719
|
+
cursor: default;
|
|
720
|
+
opacity: 0.85;
|
|
721
|
+
}
|
|
722
|
+
|
|
646
723
|
.mcp-server-item .mcp-server-icon {
|
|
647
724
|
flex-shrink: 0;
|
|
648
725
|
width: 24px;
|
|
@@ -663,10 +740,10 @@
|
|
|
663
740
|
|
|
664
741
|
.mcp-server-item .mcp-server-name {
|
|
665
742
|
font-size: 13px;
|
|
666
|
-
font-weight: 500;
|
|
667
743
|
overflow: hidden;
|
|
668
744
|
text-overflow: ellipsis;
|
|
669
745
|
white-space: nowrap;
|
|
746
|
+
line-height: 18px;
|
|
670
747
|
}
|
|
671
748
|
|
|
672
749
|
.mcp-server-item .mcp-server-description {
|
|
@@ -675,6 +752,7 @@
|
|
|
675
752
|
overflow: hidden;
|
|
676
753
|
text-overflow: ellipsis;
|
|
677
754
|
white-space: nowrap;
|
|
755
|
+
line-height: 14px;
|
|
678
756
|
}
|
|
679
757
|
|
|
680
758
|
.mcp-server-item .mcp-server-status {
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
3
|
+
import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
|
|
4
|
+
import { IContextMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service";
|
|
5
|
+
import { IContextViewService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service";
|
|
6
|
+
import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
|
|
7
|
+
import { IAgentPluginService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService.service";
|
|
8
|
+
import { IPluginMarketplaceService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.service";
|
|
9
|
+
import { IPluginInstallService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginInstallService.service";
|
|
10
|
+
import { IAgentPluginItem } from "../agentPluginEditor/agentPluginItems.js";
|
|
11
|
+
import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service";
|
|
12
|
+
/**
|
|
13
|
+
* Widget that displays a list of agent plugins with marketplace browsing.
|
|
14
|
+
* Follows the same patterns as {@link McpListWidget}.
|
|
15
|
+
*/
|
|
16
|
+
export declare class PluginListWidget extends Disposable {
|
|
17
|
+
private readonly instantiationService;
|
|
18
|
+
private readonly agentPluginService;
|
|
19
|
+
private readonly pluginMarketplaceService;
|
|
20
|
+
private readonly pluginInstallService;
|
|
21
|
+
private readonly openerService;
|
|
22
|
+
private readonly contextViewService;
|
|
23
|
+
private readonly contextMenuService;
|
|
24
|
+
private readonly hoverService;
|
|
25
|
+
private readonly labelService;
|
|
26
|
+
readonly element: HTMLElement;
|
|
27
|
+
private readonly _onDidSelectPlugin;
|
|
28
|
+
readonly onDidSelectPlugin: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<IAgentPluginItem>;
|
|
29
|
+
private sectionHeader;
|
|
30
|
+
private sectionDescription;
|
|
31
|
+
private sectionLink;
|
|
32
|
+
private searchAndButtonContainer;
|
|
33
|
+
private searchInput;
|
|
34
|
+
private listContainer;
|
|
35
|
+
private list;
|
|
36
|
+
private emptyContainer;
|
|
37
|
+
private emptyText;
|
|
38
|
+
private emptySubtext;
|
|
39
|
+
private browseButton;
|
|
40
|
+
private backLink;
|
|
41
|
+
private installedItems;
|
|
42
|
+
private displayEntries;
|
|
43
|
+
private marketplaceItems;
|
|
44
|
+
private searchQuery;
|
|
45
|
+
private browseMode;
|
|
46
|
+
private readonly collapsedGroups;
|
|
47
|
+
private marketplaceCts;
|
|
48
|
+
private readonly delayedFilter;
|
|
49
|
+
private readonly delayedMarketplaceSearch;
|
|
50
|
+
constructor(instantiationService: IInstantiationService, agentPluginService: IAgentPluginService, pluginMarketplaceService: IPluginMarketplaceService, pluginInstallService: IPluginInstallService, openerService: IOpenerService, contextViewService: IContextViewService, contextMenuService: IContextMenuService, hoverService: IHoverService, labelService: ILabelService);
|
|
51
|
+
private create;
|
|
52
|
+
private refresh;
|
|
53
|
+
private toggleBrowseMode;
|
|
54
|
+
private queryMarketplace;
|
|
55
|
+
private updateMarketplaceList;
|
|
56
|
+
private filterPlugins;
|
|
57
|
+
private toggleGroup;
|
|
58
|
+
layout(height: number, width: number): void;
|
|
59
|
+
focusSearch(): void;
|
|
60
|
+
focus(): void;
|
|
61
|
+
private onContextMenu;
|
|
62
|
+
}
|