@codingame/monaco-vscode-chat-service-override 37.0.0 → 37.1.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 +11 -0
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/browser/agentHostProtocolClient.js +1 -1
- package/vscode/src/vs/platform/agentHost/common/agentHostCustomizationConfig.d.ts +74 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostCustomizationConfig.js +90 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostSlashCommand.d.ts +8 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostSlashCommand.js +16 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.js +53 -53
- package/vscode/src/vs/platform/agentHost/common/agentHostWorkingDirectories.d.ts +16 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostWorkingDirectories.js +14 -0
- package/vscode/src/vs/platform/agentHost/common/agentMerge.js +7 -7
- package/vscode/src/vs/platform/agentHost/common/agentModelByokMeta.d.ts +24 -0
- package/vscode/src/vs/platform/agentHost/common/agentModelByokMeta.js +13 -0
- package/vscode/src/vs/platform/agentHost/common/agentModelNotices.d.ts +22 -0
- package/vscode/src/vs/platform/agentHost/common/agentModelNotices.js +21 -0
- package/vscode/src/vs/platform/agentHost/common/agentModelPricing.d.ts +114 -0
- package/vscode/src/vs/platform/agentHost/common/agentModelPricing.js +56 -0
- package/vscode/src/vs/platform/agentHost/common/changesetUri.js +15 -1
- package/vscode/src/vs/platform/agentHost/common/copilotConfigSlashCommands.d.ts +73 -0
- package/vscode/src/vs/platform/agentHost/common/copilotConfigSlashCommands.js +141 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentCompletionAttachmentMeta.js +42 -1
- package/vscode/src/vs/platform/agentHost/common/meta/agentCustomizationMeta.d.ts +27 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentCustomizationMeta.js +14 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentEphemeralSessionMeta.d.ts +14 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentEphemeralSessionMeta.js +11 -0
- package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.js +13 -13
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +4 -1
- package/vscode/src/vs/platform/agentHost/common/toolSearchConstants.d.ts +4 -0
- package/vscode/src/vs/platform/agentHost/common/toolSearchConstants.js +6 -0
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +1 -1
- package/vscode/src/vs/workbench/browser/chatChangesPill.js +2 -2
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoice.contribution.js +28 -28
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceSessionsPicker.js +2 -2
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidget.js +18 -18
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidgetBinding.js +3 -3
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/confirmationComponent.js +3 -3
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/feedbackDialog.js +6 -6
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/headerComponent.js +11 -11
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/onboardingComponent.js +11 -11
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/sessionListComponent.js +9 -9
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/statusRowsComponent.js +5 -5
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/voiceBarComponent.js +2 -2
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscripts.contribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscriptsView.js +7 -7
- package/vscode/src/vs/workbench/contrib/agentsVoice/browser/voiceModeOnboarding.js +28 -28
- package/vscode/src/vs/workbench/contrib/agentsVoice/common/voiceTranscriptStore.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +93 -93
- 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 +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFindActions.js +7 -7
- 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 +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/openAgentHostStateFileAction.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginCommands.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationContentExpander.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationContentExpander.js +229 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationItemProvider.d.ts +57 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationItemProvider.js +460 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHost.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHost.contribution.js +92 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAllowSignedOutWhenUsableContribution.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAllowSignedOutWhenUsableContribution.js +46 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAuth.d.ts +142 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAuth.js +746 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatContribution.d.ts +77 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatContribution.js +474 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostConfigEditor.d.ts +169 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostConfigEditor.js +261 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCopilotCliSettingsContribution.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCopilotCliSettingsContribution.js +90 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostDownloadProgress.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostDownloadProgress.js +73 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostExistingSessionHarnessPickerEnablement.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostExistingSessionHarnessPickerEnablement.js +61 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLanguageModelProvider.d.ts +112 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLanguageModelProvider.js +192 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPromptCacheNotification.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPromptCacheNotification.js +137 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostResponseFileChanges.js +301 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostRootConfigForwarder.d.ts +84 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostRootConfigForwarder.js +96 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionHandler.d.ts +884 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionHandler.js +5868 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionInputPills.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListContribution.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListContribution.js +129 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListController.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListController.js +221 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListStore.d.ts +125 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionListStore.js +345 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectorySynchronizer.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSettings.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSettings.contribution.js +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSettingsFileSystemProvider.d.ts +62 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSettingsFileSystemProvider.js +163 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSignedOutModelsNotification.d.ts +54 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSignedOutModelsNotification.js +219 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSubagentProgress.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSubagentProgress.js +50 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostTerminalContribution.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostTerminalContribution.js +132 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentSessionSettings.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentSessionSettings.contribution.js +85 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentSessionSettingsFileSystemProvider.d.ts +79 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentSessionSettingsFileSystemProvider.js +161 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/applyAgentHostSubmitConfig.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/applyAgentHostSubmitConfig.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/copilotConfigSlashSubmitHandler.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/copilotConfigSlashSubmitHandler.js +71 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/openSessionLinkOpener.contribution.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/openSessionLinkOpener.contribution.js +205 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +50 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +3 -3
- 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 +4 -4
- 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 +22 -22
- 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/agentSessions/externalSessionsFilterMenu.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionSummaryHover.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessionsConfiguration.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +126 -126
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +44 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +137 -137
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationPresentation.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +37 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCardList.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationAccessibility.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationCategories.js +145 -145
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationDashboard.js +29 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationMigrationServiceImpl.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +40 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +75 -75
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +115 -115
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.js +50 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +344 -344
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostChatDebugProvider.js +37 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostLogSources.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +124 -124
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheInsights.js +72 -72
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEnablement.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -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 +22 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -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 +35 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugWireLogView.js +40 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
- 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/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPills.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +63 -63
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievements.contribution.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievementsEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievementsEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPetAchievementsWidget.js +35 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPromoNotification.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.js +25 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +19 -19
- 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 +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +62 -62
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorOverlay.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +27 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolSetsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
- 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/promptTimeline/promptTimeline.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptTimeline/promptTimelineCard.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptTimeline/promptTimelineGutterRail.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptTimeline/promptTimelineModel.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptTimeline/promptTimelineRulerRail.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptTimeline/promptTimelineStickyHeader.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/sessionChatPillOptions.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/sessionPullRequestPill.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/clientToolSetsContribution.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +25 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/voiceInputMode/voiceInputMode.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentOpenChat.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatFind/chatFindAccessibilityHelp.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +3 -3
- 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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +154 -154
- package/vscode/src/vs/workbench/contrib/chat/common/sessionChatPills.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +10 -10
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +10 -10
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditReviewSession.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
- 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/terminalChat.js +10 -10
- 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/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.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +73 -73
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +10 -10
- 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.js +4 -4
- package/vscode/src/vs/workbench/services/agentEditorComments/browser/agentEditorCommentsOverlayWidget.js +3 -3
- package/vscode/src/vs/platform/agentHost/common/state/legacyProtocolCompatibility.d.ts +0 -30
- package/vscode/src/vs/platform/agentHost/common/state/legacyProtocolCompatibility.js +0 -87
- package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.d.ts +0 -205
- package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.js +0 -1580
|
@@ -184,8 +184,8 @@ class PluginInstalledItemRenderer {
|
|
|
184
184
|
templateData.disposables.clear();
|
|
185
185
|
templateData.currentIndex = index;
|
|
186
186
|
templateData.name.textContent = formatDisplayName(element.item.name);
|
|
187
|
-
templateData.source.textContent = element.item.marketplace ? "" : ( localize(
|
|
188
|
-
templateData.source.title = element.item.marketplace ? "" : ( localize(
|
|
187
|
+
templateData.source.textContent = element.item.marketplace ? "" : ( localize(7063, "Local"));
|
|
188
|
+
templateData.source.title = element.item.marketplace ? "" : ( localize(7064, "Installed from a local source"));
|
|
189
189
|
templateData.source.style.display = element.item.marketplace ? "none" : "";
|
|
190
190
|
if (element.item.description) {
|
|
191
191
|
templateData.description.textContent = truncateToFirstLine(element.item.description);
|
|
@@ -204,7 +204,7 @@ class PluginInstalledItemRenderer {
|
|
|
204
204
|
templateData.syncCheckboxContainer.style.display = "";
|
|
205
205
|
const pluginUri = element.item.plugin.uri;
|
|
206
206
|
const disabled = syncProvider.isDisabled(pluginUri);
|
|
207
|
-
const title = disabled ? ( localize(
|
|
207
|
+
const title = disabled ? ( localize(7065, "Enable {0} for sync", element.item.name)) : ( localize(7066, "Disable {0} from sync", element.item.name));
|
|
208
208
|
const checkbox = templateData.disposables.add(( new Checkbox(title, !disabled, defaultCheckboxStyles)));
|
|
209
209
|
templateData.syncCheckboxContainer.replaceChildren(checkbox.domNode);
|
|
210
210
|
templateData.disposables.add(checkbox.onChange(() => {
|
|
@@ -286,7 +286,7 @@ class PluginRemoteItemRenderer {
|
|
|
286
286
|
templateData.description.style.display = "none";
|
|
287
287
|
}
|
|
288
288
|
templateData.container.classList.toggle("disabled", element.item.enabled === false);
|
|
289
|
-
templateData.metadata.textContent = ( localize(
|
|
289
|
+
templateData.metadata.textContent = ( localize(7067, "Remote agent host"));
|
|
290
290
|
templateData.status.className = "plugin-list-item-status";
|
|
291
291
|
if (element.item.enabled === false) {
|
|
292
292
|
templateData.status.textContent = getRemotePluginDisabledLabel(element.item);
|
|
@@ -356,7 +356,7 @@ class PluginMarketplaceItemRenderer {
|
|
|
356
356
|
const nameRow = append(details, $(".plugin-list-item-name-row"));
|
|
357
357
|
const name = append(nameRow, $(".plugin-list-item-name"));
|
|
358
358
|
const recommendedBadge = append(nameRow, $(".inline-badge.plugin-recommended-badge"));
|
|
359
|
-
recommendedBadge.textContent = ( localize(
|
|
359
|
+
recommendedBadge.textContent = ( localize(7068, "Recommended"));
|
|
360
360
|
const description = append(details, $(".plugin-list-item-description"));
|
|
361
361
|
const publisher = append(details, $(".plugin-list-item-source"));
|
|
362
362
|
const metadata = append(details, $(".plugin-list-item-metadata"));
|
|
@@ -405,17 +405,17 @@ class PluginMarketplaceItemRenderer {
|
|
|
405
405
|
});
|
|
406
406
|
const isAlreadyInstalled = ( this.agentPluginService.plugins.get().some(p => isEqual(p.uri, installUri)));
|
|
407
407
|
if (isAlreadyInstalled) {
|
|
408
|
-
templateData.installButton.label = ( localize(
|
|
408
|
+
templateData.installButton.label = ( localize(7069, "Installed"));
|
|
409
409
|
templateData.installButton.enabled = false;
|
|
410
410
|
this.updateInstallButtonTabbability(templateData);
|
|
411
411
|
return;
|
|
412
412
|
}
|
|
413
|
-
templateData.installButton.label = ( localize(
|
|
413
|
+
templateData.installButton.label = ( localize(7070, "Install"));
|
|
414
414
|
templateData.installButton.enabled = true;
|
|
415
415
|
this.updateInstallButtonTabbability(templateData);
|
|
416
416
|
templateData.elementDisposables.add(templateData.installButton.onDidClick(async event => {
|
|
417
417
|
EventHelper.stop(event, true);
|
|
418
|
-
templateData.installButton.label = ( localize(
|
|
418
|
+
templateData.installButton.label = ( localize(7071, "Installing..."));
|
|
419
419
|
templateData.installButton.enabled = false;
|
|
420
420
|
try {
|
|
421
421
|
await this.pluginInstallService.installPlugin({
|
|
@@ -429,13 +429,13 @@ class PluginMarketplaceItemRenderer {
|
|
|
429
429
|
marketplaceType: element.item.marketplaceType,
|
|
430
430
|
readmeUri: element.item.readmeUri
|
|
431
431
|
});
|
|
432
|
-
templateData.installButton.label = ( localize(
|
|
432
|
+
templateData.installButton.label = ( localize(7069, "Installed"));
|
|
433
433
|
this.updateInstallButtonTabbability(templateData);
|
|
434
434
|
} catch (error) {
|
|
435
|
-
templateData.installButton.label = ( localize(
|
|
435
|
+
templateData.installButton.label = ( localize(7070, "Install"));
|
|
436
436
|
templateData.installButton.enabled = true;
|
|
437
437
|
this.updateInstallButtonTabbability(templateData);
|
|
438
|
-
this.notificationService.error(( localize(
|
|
438
|
+
this.notificationService.error(( localize(7072, "Unable to install plugin: {0}", getErrorMessage(error))));
|
|
439
439
|
}
|
|
440
440
|
}));
|
|
441
441
|
}
|
|
@@ -504,34 +504,34 @@ function getInstalledPluginContributionEntries(item) {
|
|
|
504
504
|
const entries = [];
|
|
505
505
|
appendContributionEntry(
|
|
506
506
|
entries,
|
|
507
|
-
formatContributionLabel(plugin.agents.get().length, ( localize(
|
|
507
|
+
formatContributionLabel(plugin.agents.get().length, ( localize(7073, "1 agent")), ( localize(7074, "{0} agents", plugin.agents.get().length))),
|
|
508
508
|
plugin.agents.get()
|
|
509
509
|
);
|
|
510
510
|
appendContributionEntry(
|
|
511
511
|
entries,
|
|
512
|
-
formatContributionLabel(plugin.skills.get().length, ( localize(
|
|
512
|
+
formatContributionLabel(plugin.skills.get().length, ( localize(7075, "1 skill")), ( localize(7076, "{0} skills", plugin.skills.get().length))),
|
|
513
513
|
plugin.skills.get()
|
|
514
514
|
);
|
|
515
515
|
appendContributionEntry(
|
|
516
516
|
entries,
|
|
517
|
-
formatContributionLabel(plugin.commands.get().length, ( localize(
|
|
517
|
+
formatContributionLabel(plugin.commands.get().length, ( localize(7077, "1 command")), ( localize(7078, "{0} commands", plugin.commands.get().length))),
|
|
518
518
|
plugin.commands.get()
|
|
519
519
|
);
|
|
520
520
|
appendContributionEntry(
|
|
521
521
|
entries,
|
|
522
|
-
formatContributionLabel(plugin.instructions.get().length, ( localize(
|
|
522
|
+
formatContributionLabel(plugin.instructions.get().length, ( localize(7079, "1 instruction")), ( localize(7080, "{0} instructions", plugin.instructions.get().length))),
|
|
523
523
|
plugin.instructions.get()
|
|
524
524
|
);
|
|
525
525
|
appendContributionEntry(
|
|
526
526
|
entries,
|
|
527
|
-
formatContributionLabel(plugin.mcpServerDefinitions.get().length, ( localize(
|
|
527
|
+
formatContributionLabel(plugin.mcpServerDefinitions.get().length, ( localize(7081, "1 MCP server")), ( localize(7082, "{0} MCP servers", plugin.mcpServerDefinitions.get().length))),
|
|
528
528
|
( plugin.mcpServerDefinitions.get().map(server => ({
|
|
529
529
|
name: server.name
|
|
530
530
|
})))
|
|
531
531
|
);
|
|
532
|
-
appendContributionEntry(entries, formatContributionLabel(plugin.hooks.get().length, ( localize(
|
|
532
|
+
appendContributionEntry(entries, formatContributionLabel(plugin.hooks.get().length, ( localize(7083, "1 hook")), ( localize(7084, "{0} hooks", plugin.hooks.get().length))), ( plugin.hooks.get().map(hook => ({
|
|
533
533
|
name: hook.originalId,
|
|
534
|
-
description: ( localize(
|
|
534
|
+
description: ( localize(7085, "{0} commands", hook.hooks.length))
|
|
535
535
|
}))));
|
|
536
536
|
return entries;
|
|
537
537
|
}
|
|
@@ -555,13 +555,13 @@ function getRemotePluginStatusLabel(item) {
|
|
|
555
555
|
}
|
|
556
556
|
switch (item.status) {
|
|
557
557
|
case "loading":
|
|
558
|
-
return localize(
|
|
558
|
+
return localize(7086, "Loading");
|
|
559
559
|
case "loaded":
|
|
560
|
-
return localize(
|
|
560
|
+
return localize(7087, "Loaded");
|
|
561
561
|
case "degraded":
|
|
562
|
-
return localize(
|
|
562
|
+
return localize(7088, "Warning");
|
|
563
563
|
case "error":
|
|
564
|
-
return localize(
|
|
564
|
+
return localize(7089, "Error");
|
|
565
565
|
default:
|
|
566
566
|
return "";
|
|
567
567
|
}
|
|
@@ -674,16 +674,16 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
674
674
|
this.sectionTitleHeader = append(this.element, $(".section-title-header"));
|
|
675
675
|
const titleRow = append(this.sectionTitleHeader, $(".section-title-row"));
|
|
676
676
|
const sectionTitle = append(titleRow, $("h2.section-title"));
|
|
677
|
-
sectionTitle.textContent = ( localize(
|
|
677
|
+
sectionTitle.textContent = ( localize(7090, "Plugins"));
|
|
678
678
|
const sectionTitleDescription = append(this.sectionTitleHeader, $("p.section-title-description"));
|
|
679
679
|
const sectionTitleDescriptionText = append(sectionTitleDescription, $("span.section-title-description-text"));
|
|
680
680
|
sectionTitleDescriptionText.textContent = ( localize(
|
|
681
|
-
|
|
681
|
+
7091,
|
|
682
682
|
"Extend your AI agent with plugins that add commands, skills, agents, hooks, and MCP servers from reusable packages."
|
|
683
683
|
));
|
|
684
684
|
sectionTitleDescription.appendChild(createTextNode(" "));
|
|
685
685
|
this.sectionLink = append(sectionTitleDescription, $("a.section-title-link"));
|
|
686
|
-
this.sectionLink.textContent = ( localize(
|
|
686
|
+
this.sectionLink.textContent = ( localize(7092, "Learn more about agent plugins"));
|
|
687
687
|
this.sectionLink.href = "https://code.visualstudio.com/docs/agent-customization/agent-plugins?referrer=in-product";
|
|
688
688
|
this._register(addDisposableListener(this.sectionLink, "click", e => {
|
|
689
689
|
e.preventDefault();
|
|
@@ -708,7 +708,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
708
708
|
this._register(headerObserver.observe(this.sectionTitleHeader));
|
|
709
709
|
this.marketplaceBackContainer = append(this.element, $(".plugin-marketplace-back-container"));
|
|
710
710
|
this.marketplaceBackContainer.style.display = "none";
|
|
711
|
-
const backToInstalledLabel = ( localize(
|
|
711
|
+
const backToInstalledLabel = ( localize(7093, "Back to Installed"));
|
|
712
712
|
this.backButtonContainer = append(this.marketplaceBackContainer, $(".list-add-button-container"));
|
|
713
713
|
this.backButton = this._register(( new Button(this.backButtonContainer, {
|
|
714
714
|
...getButtonStyles({
|
|
@@ -728,7 +728,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
728
728
|
this.searchAndButtonContainer = append(this.element, $(".list-search-and-button-container"));
|
|
729
729
|
const searchContainer = append(this.searchAndButtonContainer, $(".list-search-container"));
|
|
730
730
|
this.searchInput = this._register(( new InputBox(searchContainer, this.contextViewService, {
|
|
731
|
-
placeholder: ( localize(
|
|
731
|
+
placeholder: ( localize(7094, "Type to search...")),
|
|
732
732
|
inputBoxStyles: defaultInputBoxStyles
|
|
733
733
|
})));
|
|
734
734
|
this._register(this.searchInput.onDidChange(() => {
|
|
@@ -748,7 +748,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
748
748
|
}));
|
|
749
749
|
this.buttonContainer = append(this.searchAndButtonContainer, $(".list-button-group"));
|
|
750
750
|
const browseButtonContainer = append(this.buttonContainer, $(".list-add-button-container"));
|
|
751
|
-
const browseMarketplaceLabel = ( localize(
|
|
751
|
+
const browseMarketplaceLabel = ( localize(7095, "Browse Marketplace"));
|
|
752
752
|
this.browseButton = this._register(( new Button(browseButtonContainer, {
|
|
753
753
|
...defaultButtonStyles,
|
|
754
754
|
secondary: true,
|
|
@@ -759,7 +759,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
759
759
|
this.browseButton.element.classList.add("list-add-button");
|
|
760
760
|
browseButtonContainer.style.display = "none";
|
|
761
761
|
this.addButtonContainer = append(this.buttonContainer, $(".list-add-button-container"));
|
|
762
|
-
const addPluginLabel = ( localize(
|
|
762
|
+
const addPluginLabel = ( localize(7096, "Add Plugin"));
|
|
763
763
|
this.addButtonSimple = this._register(( new Button(this.addButtonContainer, {
|
|
764
764
|
...defaultButtonStyles,
|
|
765
765
|
secondary: true,
|
|
@@ -781,7 +781,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
781
781
|
})));
|
|
782
782
|
this.addButton.element.classList.add("list-add-button");
|
|
783
783
|
this._register(this.addButton.onDidClick(() => this.runPrimaryAddAction()));
|
|
784
|
-
const updatePluginsLabel = ( localize(
|
|
784
|
+
const updatePluginsLabel = ( localize(7097, "Update Plugins"));
|
|
785
785
|
this.updatePluginsButton = this._register(( new Button(this.buttonContainer, {
|
|
786
786
|
...defaultButtonStyles,
|
|
787
787
|
secondary: true,
|
|
@@ -800,7 +800,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
800
800
|
const disabledHeader = append(this.disabledContainer, $(".empty-state-header"));
|
|
801
801
|
this.disabledIcon = append(disabledHeader, $(".empty-icon"));
|
|
802
802
|
const disabledText = append(disabledHeader, $(".empty-text"));
|
|
803
|
-
disabledText.textContent = ( localize(
|
|
803
|
+
disabledText.textContent = ( localize(7098, "Plugins are disabled"));
|
|
804
804
|
this.disabledMessage = append(this.disabledContainer, $(".empty-subtext"));
|
|
805
805
|
this.cardContainer = $(".plugin-card-container");
|
|
806
806
|
this.cardScrollable = this._register(( new DomScrollableElement(this.cardContainer, {
|
|
@@ -855,11 +855,11 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
855
855
|
getAriaLabel: element => {
|
|
856
856
|
if (element.type === "group-header") {
|
|
857
857
|
return localize(
|
|
858
|
-
|
|
858
|
+
7099,
|
|
859
859
|
"{0}, {1} items, {2}",
|
|
860
860
|
element.label,
|
|
861
861
|
element.count,
|
|
862
|
-
element.collapsed ? ( localize(
|
|
862
|
+
element.collapsed ? ( localize(7100, "collapsed")) : ( localize(7101, "expanded"))
|
|
863
863
|
);
|
|
864
864
|
}
|
|
865
865
|
if (element.type === "search-header") {
|
|
@@ -867,26 +867,26 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
867
867
|
}
|
|
868
868
|
const name = formatDisplayName(element.item.name);
|
|
869
869
|
const description = element.item.description ? truncateToFirstLine(element.item.description) : undefined;
|
|
870
|
-
const nameAndDesc = description ? ( localize(
|
|
870
|
+
const nameAndDesc = description ? ( localize(7102, "{0}. {1}", name, description)) : name;
|
|
871
871
|
if (element.type === "plugin-item") {
|
|
872
872
|
const enabled = isContributionEnabled(element.item.plugin.enablement.get());
|
|
873
873
|
const metadata = getInstalledPluginMetadata(element.item);
|
|
874
|
-
const withMetadata = metadata ? ( localize(
|
|
875
|
-
return enabled ? ( localize(
|
|
874
|
+
const withMetadata = metadata ? ( localize(7103, "{0}. {1}", nameAndDesc, metadata)) : nameAndDesc;
|
|
875
|
+
return enabled ? ( localize(7104, "{0}. Enabled", withMetadata)) : ( localize(7105, "{0}. Disabled", withMetadata));
|
|
876
876
|
}
|
|
877
877
|
if (element.type === "remote-item") {
|
|
878
878
|
const status = getRemotePluginStatusLabel(element.item);
|
|
879
|
-
return status ? ( localize(
|
|
879
|
+
return status ? ( localize(7106, "{0}. Remote agent host. Status: {1}", nameAndDesc, status)) : ( localize(7107, "{0}. Remote agent host", nameAndDesc));
|
|
880
880
|
}
|
|
881
881
|
if (element.type === "marketplace-item") {
|
|
882
882
|
const recommended = ( this.pluginMarketplaceService.recommendedPlugins.get().has(getMarketplaceRecommendationKey(element.item)));
|
|
883
|
-
const label = ( localize(
|
|
884
|
-
return recommended ? ( localize(
|
|
883
|
+
const label = ( localize(7108, "{0}. From {1}", nameAndDesc, element.item.marketplace));
|
|
884
|
+
return recommended ? ( localize(7109, "{0}. Recommended for this workspace", label)) : label;
|
|
885
885
|
}
|
|
886
886
|
return nameAndDesc;
|
|
887
887
|
},
|
|
888
888
|
getWidgetAriaLabel: () => {
|
|
889
|
-
return localize(
|
|
889
|
+
return localize(7110, "Plugins");
|
|
890
890
|
}
|
|
891
891
|
},
|
|
892
892
|
openOnSingleClick: true,
|
|
@@ -995,13 +995,13 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
995
995
|
this.disabledLinkListener.clear();
|
|
996
996
|
if (policyLocked) {
|
|
997
997
|
this.disabledMessage.textContent = ( localize(
|
|
998
|
-
|
|
998
|
+
7111,
|
|
999
999
|
"Plugin integration in chat is disabled by your organization. Contact your organization administrator for more information."
|
|
1000
1000
|
));
|
|
1001
1001
|
} else {
|
|
1002
|
-
this.disabledMessage.appendChild(createTextNode(( localize(
|
|
1002
|
+
this.disabledMessage.appendChild(createTextNode(( localize(7112, "Plugins are disabled in settings. "))));
|
|
1003
1003
|
const link = append(this.disabledMessage, $("a.mcp-disabled-settings-link"));
|
|
1004
|
-
link.textContent = ( localize(
|
|
1004
|
+
link.textContent = ( localize(7113, "Configure in settings."));
|
|
1005
1005
|
link.href = "#";
|
|
1006
1006
|
link.setAttribute("role", "button");
|
|
1007
1007
|
this.disabledLinkListener.value = addDisposableListener(link, "click", e => {
|
|
@@ -1027,9 +1027,9 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1027
1027
|
}
|
|
1028
1028
|
this.marketplaceBackContainer.style.display = this.browseMode ? "" : "none";
|
|
1029
1029
|
this.browseButton.element.parentElement.style.display = "none";
|
|
1030
|
-
this.browseButton.label = `$(${Codicon.library.id}) ${( localize(
|
|
1030
|
+
this.browseButton.label = `$(${Codicon.library.id}) ${( localize(7095, "Browse Marketplace"))}`;
|
|
1031
1031
|
this.browseButton.enabled = browseMarketplaceAvailable;
|
|
1032
|
-
const browseTitle = browseMarketplaceAvailable ? ( localize(
|
|
1032
|
+
const browseTitle = browseMarketplaceAvailable ? ( localize(7095, "Browse Marketplace")) : ( localize(7114, "Browse Marketplace is not available in VS Code for the Web."));
|
|
1033
1033
|
this.browseButton.setTitle(browseTitle);
|
|
1034
1034
|
this.browseButton.element.setAttribute("aria-label", browseTitle);
|
|
1035
1035
|
this.addButton.element.style.display = "none";
|
|
@@ -1039,7 +1039,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1039
1039
|
}
|
|
1040
1040
|
updateInstalledCreateButtonLabel() {
|
|
1041
1041
|
if (this.installedCreateButton) {
|
|
1042
|
-
this.installedCreateButton.label = this.narrowLayout ? ( localize(
|
|
1042
|
+
this.installedCreateButton.label = this.narrowLayout ? ( localize(7115, "Create")) : ( localize(7116, "Create Plugin"));
|
|
1043
1043
|
}
|
|
1044
1044
|
}
|
|
1045
1045
|
updateResponsiveLayout(width) {
|
|
@@ -1064,8 +1064,8 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1064
1064
|
buildAddActions() {
|
|
1065
1065
|
return [...this.pluginActions, {
|
|
1066
1066
|
id: "plugin.installFromSource",
|
|
1067
|
-
label: ( localize(
|
|
1068
|
-
tooltip: ( localize(
|
|
1067
|
+
label: ( localize(7117, "Install from Source")),
|
|
1068
|
+
tooltip: ( localize(7118, "Install Plugin from Source")),
|
|
1069
1069
|
run: async () => {
|
|
1070
1070
|
const installed = await this.commandService.executeCommand("workbench.action.chat.installPluginFromSource", {
|
|
1071
1071
|
skipReveal: true
|
|
@@ -1256,26 +1256,26 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1256
1256
|
}
|
|
1257
1257
|
const name = formatDisplayName(element.item.name);
|
|
1258
1258
|
const description = element.item.description ? truncateToFirstLine(element.item.description) : undefined;
|
|
1259
|
-
const nameAndDescription = description ? ( localize(
|
|
1259
|
+
const nameAndDescription = description ? ( localize(7102, "{0}. {1}", name, description)) : name;
|
|
1260
1260
|
if (element.type === "plugin-item") {
|
|
1261
1261
|
const metadata = getInstalledPluginMetadata(element.item);
|
|
1262
|
-
const withMetadata = metadata ? ( localize(
|
|
1262
|
+
const withMetadata = metadata ? ( localize(7103, "{0}. {1}", nameAndDescription, metadata)) : nameAndDescription;
|
|
1263
1263
|
return derived(
|
|
1264
1264
|
this,
|
|
1265
|
-
reader => isContributionEnabled(element.item.plugin.enablement.read(reader)) ? ( localize(
|
|
1265
|
+
reader => isContributionEnabled(element.item.plugin.enablement.read(reader)) ? ( localize(7104, "{0}. Enabled", withMetadata)) : ( localize(7105, "{0}. Disabled", withMetadata))
|
|
1266
1266
|
);
|
|
1267
1267
|
}
|
|
1268
1268
|
if (element.type === "remote-item") {
|
|
1269
1269
|
const statusLabel = getRemotePluginStatusLabel(element.item);
|
|
1270
1270
|
return statusLabel ? ( localize(
|
|
1271
|
-
|
|
1271
|
+
7106,
|
|
1272
1272
|
"{0}. Remote agent host. Status: {1}",
|
|
1273
1273
|
nameAndDescription,
|
|
1274
1274
|
statusLabel
|
|
1275
|
-
)) : ( localize(
|
|
1275
|
+
)) : ( localize(7107, "{0}. Remote agent host", nameAndDescription));
|
|
1276
1276
|
}
|
|
1277
|
-
const marketplaceLabel = ( localize(
|
|
1278
|
-
return ( this.pluginMarketplaceService.recommendedPlugins.get().has(getMarketplaceRecommendationKey(element.item))) ? ( localize(
|
|
1277
|
+
const marketplaceLabel = ( localize(7108, "{0}. From {1}", nameAndDescription, element.item.marketplace));
|
|
1278
|
+
return ( this.pluginMarketplaceService.recommendedPlugins.get().has(getMarketplaceRecommendationKey(element.item))) ? ( localize(7109, "{0}. Recommended for this workspace", marketplaceLabel)) : marketplaceLabel;
|
|
1279
1279
|
}
|
|
1280
1280
|
getPluginEntryId(element) {
|
|
1281
1281
|
if (element.type === "group-header" || element.type === "search-header") {
|
|
@@ -1303,10 +1303,10 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1303
1303
|
renderedState = state;
|
|
1304
1304
|
const checked = isContributionEnabled(state);
|
|
1305
1305
|
const workspaceScope = state === ContributionEnablementState.EnabledWorkspace || state === ContributionEnablementState.DisabledWorkspace;
|
|
1306
|
-
const toggleLabel = checked ? (workspaceScope ? ( localize(
|
|
1306
|
+
const toggleLabel = checked ? (workspaceScope ? ( localize(7119, "Exclude {0} from Workspace", item.name)) : ( localize(7120, "Exclude {0} from Profile", item.name))) : (workspaceScope ? ( localize(7121, "Include {0} in Workspace", item.name)) : ( localize(7122, "Include {0} for Profile", item.name)));
|
|
1307
1307
|
toggle.disabled = blocked;
|
|
1308
1308
|
toggle.checked = checked;
|
|
1309
|
-
toggle.setAriaLabel(blocked ? ( localize(
|
|
1309
|
+
toggle.setAriaLabel(blocked ? ( localize(7123, "{0} is managed by your organization", item.name)) : toggleLabel, blocked ? ( localize(7124, "This plugin is managed by your organization.")) : toggleLabel);
|
|
1310
1310
|
row.classList.toggle("disabled", !checked || blocked);
|
|
1311
1311
|
};
|
|
1312
1312
|
disposables.add(autorun(reader => update(
|
|
@@ -1317,7 +1317,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1317
1317
|
const nextState = getToggledPluginEnablementState(renderedState);
|
|
1318
1318
|
update(nextState, isPluginPolicyBlocked(item.plugin));
|
|
1319
1319
|
this.agentPluginService.enablementModel.setEnabled(( item.plugin.uri.toString()), nextState);
|
|
1320
|
-
status(( localize(
|
|
1320
|
+
status(( localize(7125, "{0}. {1}.", item.name, getPluginInclusionLabel(item.plugin))));
|
|
1321
1321
|
}));
|
|
1322
1322
|
const more = disposables.add(( new Button(actions, {
|
|
1323
1323
|
...getButtonStyles({
|
|
@@ -1326,7 +1326,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1326
1326
|
}),
|
|
1327
1327
|
secondary: true,
|
|
1328
1328
|
supportIcons: true,
|
|
1329
|
-
ariaLabel: ( localize(
|
|
1329
|
+
ariaLabel: ( localize(7126, "More actions for {0}", item.name))
|
|
1330
1330
|
})));
|
|
1331
1331
|
more.element.classList.add("plugin-card-icon-button");
|
|
1332
1332
|
more.label = `$(${Codicon.ellipsis.id})`;
|
|
@@ -1351,7 +1351,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1351
1351
|
}),
|
|
1352
1352
|
secondary: true,
|
|
1353
1353
|
supportIcons: true,
|
|
1354
|
-
ariaLabel: ( localize(
|
|
1354
|
+
ariaLabel: ( localize(7126, "More actions for {0}", item.name))
|
|
1355
1355
|
})));
|
|
1356
1356
|
more.element.classList.add("plugin-card-icon-button");
|
|
1357
1357
|
more.label = `$(${Codicon.ellipsis.id})`;
|
|
@@ -1412,13 +1412,13 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1412
1412
|
)) {
|
|
1413
1413
|
void this.queryMarketplaceSnapshot();
|
|
1414
1414
|
}
|
|
1415
|
-
const installedList = this.renderCardSection(content, ( localize(
|
|
1415
|
+
const installedList = this.renderCardSection(content, ( localize(7127, "Installed")), undefined, "installed-plugins-section", installedPlugins.length, header => this.renderInstalledSectionActions(header, hasMarketplaceInstalledPlugins));
|
|
1416
1416
|
installedList.classList.add("plugin-inventory-list");
|
|
1417
1417
|
if (installedPlugins.length === 0) {
|
|
1418
1418
|
const empty = append(installedList, $(".plugin-inventory-empty"));
|
|
1419
|
-
empty.textContent = ( localize(
|
|
1419
|
+
empty.textContent = ( localize(7128, "No plugins are installed."));
|
|
1420
1420
|
} else {
|
|
1421
|
-
this.createPluginSectionList(installedList, ( localize(
|
|
1421
|
+
this.createPluginSectionList(installedList, ( localize(7127, "Installed")), ( installedPlugins.map(item => ({
|
|
1422
1422
|
type: "plugin-item",
|
|
1423
1423
|
item
|
|
1424
1424
|
}))));
|
|
@@ -1428,9 +1428,9 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1428
1428
|
item => item.groupKey !== "remote-client" && (!item.name || !( installedNames.has(item.name.toLowerCase())))
|
|
1429
1429
|
);
|
|
1430
1430
|
if (remoteItems.length > 0) {
|
|
1431
|
-
const remoteList = this.renderCardSection(content, ( localize(
|
|
1431
|
+
const remoteList = this.renderCardSection(content, ( localize(7129, "Remote session plugins")), ( localize(7130, "Plugins configured directly on the active remote agent host.")), "remote-plugins-section", remoteItems.length);
|
|
1432
1432
|
remoteList.classList.add("plugin-inventory-list");
|
|
1433
|
-
this.createPluginSectionList(remoteList, ( localize(
|
|
1433
|
+
this.createPluginSectionList(remoteList, ( localize(7129, "Remote session plugins")), ( remoteItems.map(item => ({
|
|
1434
1434
|
type: "remote-item",
|
|
1435
1435
|
item
|
|
1436
1436
|
}))));
|
|
@@ -1444,7 +1444,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1444
1444
|
}
|
|
1445
1445
|
renderInstalledSectionActions(header, hasInstalledPlugins) {
|
|
1446
1446
|
const actions = append(header, $(".plugin-card-section-actions"));
|
|
1447
|
-
const createLabel = ( localize(
|
|
1447
|
+
const createLabel = ( localize(7116, "Create Plugin"));
|
|
1448
1448
|
const create = this.installedCreateButton = this.cardDisposables.add(( new Button(actions, {
|
|
1449
1449
|
...defaultButtonStyles,
|
|
1450
1450
|
secondary: true,
|
|
@@ -1455,7 +1455,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1455
1455
|
this.rememberCardFocusElement(create.element);
|
|
1456
1456
|
this.cardDisposables.add(create.onDidClick(() => this.runCreatePluginAction()));
|
|
1457
1457
|
if (hasInstalledPlugins) {
|
|
1458
|
-
const updateLabel = ( localize(
|
|
1458
|
+
const updateLabel = ( localize(7131, "Check for and apply updates"));
|
|
1459
1459
|
const update = this.cardDisposables.add(( new Button(actions, {
|
|
1460
1460
|
...defaultButtonStyles,
|
|
1461
1461
|
secondary: true,
|
|
@@ -1472,8 +1472,8 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1472
1472
|
parent,
|
|
1473
1473
|
items,
|
|
1474
1474
|
showActions,
|
|
1475
|
-
title = ( localize(
|
|
1476
|
-
description = ( localize(
|
|
1475
|
+
title = ( localize(7132, "Available")),
|
|
1476
|
+
description = ( localize(7133, "Browse and install plugins from your marketplaces."))
|
|
1477
1477
|
) {
|
|
1478
1478
|
const availableList = this.renderCardSection(
|
|
1479
1479
|
parent,
|
|
@@ -1486,10 +1486,10 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1486
1486
|
availableList.classList.add("plugin-inventory-list");
|
|
1487
1487
|
if (items.length === 0) {
|
|
1488
1488
|
if (this.marketplaceSnapshot.state === "loading") {
|
|
1489
|
-
renderVirtualizedSectionLoadingPlaceholder(availableList, ( localize(
|
|
1489
|
+
renderVirtualizedSectionLoadingPlaceholder(availableList, ( localize(7134, "Loading marketplace...")), PLUGIN_MARKETPLACE_ITEM_HEIGHT);
|
|
1490
1490
|
} else {
|
|
1491
1491
|
const empty = append(availableList, $(".plugin-inventory-empty"));
|
|
1492
|
-
empty.textContent = ( localize(
|
|
1492
|
+
empty.textContent = ( localize(7135, "No marketplace plugins are available."));
|
|
1493
1493
|
}
|
|
1494
1494
|
this.cardListControllers.get(availableList)?.finalize();
|
|
1495
1495
|
return;
|
|
@@ -1501,8 +1501,8 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1501
1501
|
}
|
|
1502
1502
|
renderAvailableSectionActions(header) {
|
|
1503
1503
|
const actions = append(header, $(".plugin-card-section-actions"));
|
|
1504
|
-
const installLabel = ( localize(
|
|
1505
|
-
const installTooltip = ( localize(
|
|
1504
|
+
const installLabel = ( localize(7117, "Install from Source"));
|
|
1505
|
+
const installTooltip = ( localize(7118, "Install Plugin from Source"));
|
|
1506
1506
|
if (this.pluginActions.length > 0) {
|
|
1507
1507
|
const install = this.cardDisposables.add(( new ButtonWithDropdown(actions, {
|
|
1508
1508
|
...defaultButtonStyles,
|
|
@@ -1541,7 +1541,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1541
1541
|
}
|
|
1542
1542
|
appendInstalledPluginRow(parent, item) {
|
|
1543
1543
|
const row = append(parent, $(".plugin-list-item.plugin-home-row.plugin-installed-item"));
|
|
1544
|
-
const primaryAction = this.addSurfaceActivation(row, ( localize(
|
|
1544
|
+
const primaryAction = this.addSurfaceActivation(row, ( localize(7136, "{0}. {1}", item.name, getPluginInclusionLabel(item.plugin))), () => this._onDidSelectPlugin.fire(item));
|
|
1545
1545
|
const details = append(primaryAction, $(".plugin-list-item-details"));
|
|
1546
1546
|
const nameRow = append(details, $(".plugin-list-item-name-row"));
|
|
1547
1547
|
const name = append(nameRow, $(".plugin-list-item-name"));
|
|
@@ -1549,11 +1549,11 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1549
1549
|
name.title = item.name;
|
|
1550
1550
|
if (!item.marketplace) {
|
|
1551
1551
|
const source = append(nameRow, $(".inline-badge.plugin-source-badge"));
|
|
1552
|
-
source.textContent = ( localize(
|
|
1553
|
-
source.title = ( localize(
|
|
1552
|
+
source.textContent = ( localize(7063, "Local"));
|
|
1553
|
+
source.title = ( localize(7064, "Installed from a local source"));
|
|
1554
1554
|
}
|
|
1555
1555
|
const description = append(details, $(".plugin-list-item-description"));
|
|
1556
|
-
description.textContent = truncateToFirstLine(item.description || ( localize(
|
|
1556
|
+
description.textContent = truncateToFirstLine(item.description || ( localize(7137, "No description provided.")));
|
|
1557
1557
|
const metadata = append(details, $(".plugin-list-item-metadata"));
|
|
1558
1558
|
metadata.textContent = getInstalledPluginMetadata(item);
|
|
1559
1559
|
metadata.style.display = metadata.textContent ? "" : "none";
|
|
@@ -1566,7 +1566,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1566
1566
|
}),
|
|
1567
1567
|
secondary: true,
|
|
1568
1568
|
supportIcons: true,
|
|
1569
|
-
ariaLabel: ( localize(
|
|
1569
|
+
ariaLabel: ( localize(7126, "More actions for {0}", item.name))
|
|
1570
1570
|
})));
|
|
1571
1571
|
more.element.classList.add("plugin-card-icon-button");
|
|
1572
1572
|
more.label = `$(${Codicon.ellipsis.id})`;
|
|
@@ -1590,13 +1590,13 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1590
1590
|
renderedState = state;
|
|
1591
1591
|
const checked = isContributionEnabled(state);
|
|
1592
1592
|
const workspaceScope = state === ContributionEnablementState.EnabledWorkspace || state === ContributionEnablementState.DisabledWorkspace;
|
|
1593
|
-
const toggleLabel = checked ? (workspaceScope ? ( localize(
|
|
1594
|
-
const accessibleLabel = blocked ? ( localize(
|
|
1593
|
+
const toggleLabel = checked ? (workspaceScope ? ( localize(7119, "Exclude {0} from Workspace", item.name)) : ( localize(7120, "Exclude {0} from Profile", item.name))) : (workspaceScope ? ( localize(7121, "Include {0} in Workspace", item.name)) : ( localize(7122, "Include {0} for Profile", item.name)));
|
|
1594
|
+
const accessibleLabel = blocked ? ( localize(7123, "{0} is managed by your organization", item.name)) : toggleLabel;
|
|
1595
1595
|
toggle.disabled = blocked;
|
|
1596
1596
|
toggle.checked = checked;
|
|
1597
|
-
toggle.setAriaLabel(accessibleLabel, blocked ? ( localize(
|
|
1597
|
+
toggle.setAriaLabel(accessibleLabel, blocked ? ( localize(7124, "This plugin is managed by your organization.")) : toggleLabel);
|
|
1598
1598
|
row.classList.toggle("disabled", !checked || blocked);
|
|
1599
|
-
primaryAction.setAttribute("aria-label", ( localize(
|
|
1599
|
+
primaryAction.setAttribute("aria-label", ( localize(7136, "{0}. {1}", item.name, getPluginInclusionLabel(item.plugin))));
|
|
1600
1600
|
};
|
|
1601
1601
|
this.cardDisposables.add(autorun(reader => {
|
|
1602
1602
|
const state = item.plugin.enablement.read(reader);
|
|
@@ -1607,26 +1607,26 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1607
1607
|
const nextState = getToggledPluginEnablementState(renderedState);
|
|
1608
1608
|
update(nextState, isPluginPolicyBlocked(item.plugin));
|
|
1609
1609
|
this.agentPluginService.enablementModel.setEnabled(( item.plugin.uri.toString()), nextState);
|
|
1610
|
-
status(( localize(
|
|
1610
|
+
status(( localize(7125, "{0}. {1}.", item.name, getPluginInclusionLabel(item.plugin))));
|
|
1611
1611
|
}));
|
|
1612
1612
|
return switchElement;
|
|
1613
1613
|
}
|
|
1614
1614
|
appendRemotePluginRow(parent, item) {
|
|
1615
1615
|
const row = append(parent, $(".plugin-list-item.plugin-home-row.plugin-remote-item"));
|
|
1616
1616
|
row.setAttribute("role", "listitem");
|
|
1617
|
-
row.setAttribute("aria-label", ( localize(
|
|
1617
|
+
row.setAttribute("aria-label", ( localize(7138, "{0}. Remote plugin", item.name)));
|
|
1618
1618
|
row.classList.toggle("disabled", item.enabled === false);
|
|
1619
1619
|
const details = append(row, $(".plugin-list-item-details"));
|
|
1620
1620
|
const nameRow = append(details, $(".plugin-list-item-name-row"));
|
|
1621
1621
|
const name = append(nameRow, $(".plugin-list-item-name"));
|
|
1622
1622
|
name.textContent = formatDisplayName(item.name);
|
|
1623
1623
|
const source = append(nameRow, $(".inline-badge.plugin-source-badge"));
|
|
1624
|
-
source.textContent = ( localize(
|
|
1625
|
-
source.title = ( localize(
|
|
1624
|
+
source.textContent = ( localize(7139, "Remote"));
|
|
1625
|
+
source.title = ( localize(7067, "Remote agent host"));
|
|
1626
1626
|
const description = append(details, $(".plugin-list-item-description"));
|
|
1627
|
-
description.textContent = item.description || ( localize(
|
|
1627
|
+
description.textContent = item.description || ( localize(7137, "No description provided."));
|
|
1628
1628
|
const metadata = append(details, $(".plugin-list-item-metadata"));
|
|
1629
|
-
metadata.textContent = ( localize(
|
|
1629
|
+
metadata.textContent = ( localize(7140, "Configured on the active remote agent host"));
|
|
1630
1630
|
const status = append(row, $(".plugin-list-item-status"));
|
|
1631
1631
|
const statusLabel = getRemotePluginStatusLabel(item);
|
|
1632
1632
|
if (statusLabel) {
|
|
@@ -1645,7 +1645,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1645
1645
|
...defaultButtonStyles,
|
|
1646
1646
|
secondary: true,
|
|
1647
1647
|
supportIcons: true,
|
|
1648
|
-
ariaLabel: ( localize(
|
|
1648
|
+
ariaLabel: ( localize(7126, "More actions for {0}", item.name))
|
|
1649
1649
|
})));
|
|
1650
1650
|
moreButton.element.classList.add("plugin-card-icon-button");
|
|
1651
1651
|
moreButton.label = `$(${Codicon.ellipsis.id})`;
|
|
@@ -1665,21 +1665,21 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1665
1665
|
}
|
|
1666
1666
|
appendMarketplacePluginRow(parent, item) {
|
|
1667
1667
|
const row = append(parent, $(".plugin-list-item.plugin-home-row.plugin-marketplace-home-row"));
|
|
1668
|
-
const primaryAction = this.addSurfaceActivation(row, ( localize(
|
|
1668
|
+
const primaryAction = this.addSurfaceActivation(row, ( localize(7141, "{0}. Available to install from {1}.", item.name, item.marketplace)), () => this._onDidSelectPlugin.fire(item));
|
|
1669
1669
|
const details = append(primaryAction, $(".plugin-list-item-details"));
|
|
1670
1670
|
const nameRow = append(details, $(".plugin-list-item-name-row"));
|
|
1671
1671
|
const name = append(nameRow, $(".plugin-list-item-name"));
|
|
1672
1672
|
name.textContent = item.name;
|
|
1673
1673
|
name.title = item.name;
|
|
1674
1674
|
const description = append(details, $(".plugin-list-item-description"));
|
|
1675
|
-
description.textContent = truncateToFirstLine(item.description || ( localize(
|
|
1675
|
+
description.textContent = truncateToFirstLine(item.description || ( localize(7137, "No description provided.")));
|
|
1676
1676
|
const actions = append(row, $(".plugin-list-item-action"));
|
|
1677
1677
|
const install = this.cardDisposables.add(( new Button(actions, {
|
|
1678
1678
|
...defaultButtonStyles,
|
|
1679
|
-
ariaLabel: ( localize(
|
|
1679
|
+
ariaLabel: ( localize(7142, "Install {0}", item.name))
|
|
1680
1680
|
})));
|
|
1681
1681
|
install.element.classList.add("plugin-list-item-install-button");
|
|
1682
|
-
install.label = ( localize(
|
|
1682
|
+
install.label = ( localize(7070, "Install"));
|
|
1683
1683
|
this.cardDisposables.add(install.onDidClick(() => this.installMarketplacePlugin(item, install)));
|
|
1684
1684
|
this.cardListControllers.get(parent)?.addItem({
|
|
1685
1685
|
row,
|
|
@@ -1701,7 +1701,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1701
1701
|
const marketplaceItems = this.getUninstalledMarketplaceItems();
|
|
1702
1702
|
if (marketplaceItems.length === 0) {
|
|
1703
1703
|
this.showEmptySurface();
|
|
1704
|
-
this.emptyText.textContent = ( localize(
|
|
1704
|
+
this.emptyText.textContent = ( localize(7143, "No plugins available"));
|
|
1705
1705
|
this.emptySubtext.textContent = "";
|
|
1706
1706
|
return;
|
|
1707
1707
|
}
|
|
@@ -1711,16 +1711,16 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1711
1711
|
const recommended = marketplaceItems.filter(item => ( recommendedKeys.has(getMarketplaceRecommendationKey(item))));
|
|
1712
1712
|
const allPlugins = marketplaceItems.filter(item => !( recommendedKeys.has(getMarketplaceRecommendationKey(item))));
|
|
1713
1713
|
if (recommended.length > 0) {
|
|
1714
|
-
const recommendedGrid = this.renderCardSection(content, ( localize(
|
|
1714
|
+
const recommendedGrid = this.renderCardSection(content, ( localize(7144, "Recommended for this workspace")), ( localize(7145, "Plugins recommended by workspace configuration.")), "plugin-marketplace-recommended-section");
|
|
1715
1715
|
recommendedGrid.classList.add("plugin-inventory-list");
|
|
1716
|
-
this.createPluginSectionList(recommendedGrid, ( localize(
|
|
1716
|
+
this.createPluginSectionList(recommendedGrid, ( localize(7144, "Recommended for this workspace")), ( recommended.map(item => ({
|
|
1717
1717
|
type: "marketplace-item",
|
|
1718
1718
|
item
|
|
1719
1719
|
}))));
|
|
1720
1720
|
}
|
|
1721
|
-
const allGrid = this.renderCardSection(content, ( localize(
|
|
1721
|
+
const allGrid = this.renderCardSection(content, ( localize(7146, "All plugins")), ( localize(7147, "Plugins available from configured marketplaces.")), "plugin-marketplace-all-section");
|
|
1722
1722
|
allGrid.classList.add("plugin-inventory-list");
|
|
1723
|
-
this.createPluginSectionList(allGrid, ( localize(
|
|
1723
|
+
this.createPluginSectionList(allGrid, ( localize(7146, "All plugins")), ( allPlugins.map(item => ({
|
|
1724
1724
|
type: "marketplace-item",
|
|
1725
1725
|
item
|
|
1726
1726
|
}))));
|
|
@@ -1745,7 +1745,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1745
1745
|
});
|
|
1746
1746
|
}
|
|
1747
1747
|
async installMarketplacePlugin(item, button) {
|
|
1748
|
-
button.label = ( localize(
|
|
1748
|
+
button.label = ( localize(7071, "Installing..."));
|
|
1749
1749
|
button.enabled = false;
|
|
1750
1750
|
try {
|
|
1751
1751
|
await this.pluginInstallService.installPlugin({
|
|
@@ -1759,12 +1759,12 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1759
1759
|
marketplaceType: item.marketplaceType,
|
|
1760
1760
|
readmeUri: item.readmeUri
|
|
1761
1761
|
});
|
|
1762
|
-
button.label = ( localize(
|
|
1762
|
+
button.label = ( localize(7069, "Installed"));
|
|
1763
1763
|
void this.refresh();
|
|
1764
1764
|
} catch (error) {
|
|
1765
|
-
button.label = ( localize(
|
|
1765
|
+
button.label = ( localize(7070, "Install"));
|
|
1766
1766
|
button.enabled = true;
|
|
1767
|
-
this.notificationService.error(( localize(
|
|
1767
|
+
this.notificationService.error(( localize(7072, "Unable to install plugin: {0}", getErrorMessage(error))));
|
|
1768
1768
|
}
|
|
1769
1769
|
}
|
|
1770
1770
|
async queryMarketplaceSnapshot() {
|
|
@@ -1821,7 +1821,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1821
1821
|
this.searchInput.value = "";
|
|
1822
1822
|
this.searchQuery = "";
|
|
1823
1823
|
this.updateToolbarActions();
|
|
1824
|
-
this.searchInput.setPlaceHolder(browse ? ( localize(
|
|
1824
|
+
this.searchInput.setPlaceHolder(browse ? ( localize(7148, "Search plugin marketplace...")) : ( localize(7094, "Type to search...")));
|
|
1825
1825
|
if (browse) {
|
|
1826
1826
|
void this.queryMarketplace();
|
|
1827
1827
|
} else {
|
|
@@ -1838,7 +1838,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1838
1838
|
const query = this.searchQuery.toLowerCase().trim();
|
|
1839
1839
|
const browseMode = this.browseMode;
|
|
1840
1840
|
this.showEmptySurface();
|
|
1841
|
-
this.emptyText.textContent = ( localize(
|
|
1841
|
+
this.emptyText.textContent = ( localize(7134, "Loading marketplace..."));
|
|
1842
1842
|
this.emptySubtext.textContent = "";
|
|
1843
1843
|
try {
|
|
1844
1844
|
const plugins = await this.pluginMarketplaceService.fetchMarketplacePlugins(cts.token);
|
|
@@ -1874,8 +1874,8 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1874
1874
|
if (this.isCurrentMarketplaceRequest(cts, query, browseMode)) {
|
|
1875
1875
|
this.marketplaceItems = [];
|
|
1876
1876
|
this.showEmptySurface();
|
|
1877
|
-
this.emptyText.textContent = ( localize(
|
|
1878
|
-
this.emptySubtext.textContent = ( localize(
|
|
1877
|
+
this.emptyText.textContent = ( localize(7149, "Unable to load marketplace"));
|
|
1878
|
+
this.emptySubtext.textContent = ( localize(7150, "Check your connection and try again"));
|
|
1879
1879
|
}
|
|
1880
1880
|
}
|
|
1881
1881
|
}
|
|
@@ -1925,7 +1925,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1925
1925
|
this.marketplaceItems = [];
|
|
1926
1926
|
this.searchInput.showMessage({
|
|
1927
1927
|
content: ( localize(
|
|
1928
|
-
|
|
1928
|
+
7151,
|
|
1929
1929
|
"Marketplace results are unavailable. Showing installed plugins only."
|
|
1930
1930
|
)),
|
|
1931
1931
|
type: MessageType.WARNING
|
|
@@ -1952,10 +1952,10 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1952
1952
|
if (this.marketplaceItems.length === 0) {
|
|
1953
1953
|
this.showEmptySurface();
|
|
1954
1954
|
if (this.searchQuery.trim()) {
|
|
1955
|
-
this.emptyText.textContent = ( localize(
|
|
1956
|
-
this.emptySubtext.textContent = ( localize(
|
|
1955
|
+
this.emptyText.textContent = ( localize(7152, "No plugins match '{0}'", this.searchQuery));
|
|
1956
|
+
this.emptySubtext.textContent = ( localize(7153, "Try a different search term"));
|
|
1957
1957
|
} else {
|
|
1958
|
-
this.emptyText.textContent = ( localize(
|
|
1958
|
+
this.emptyText.textContent = ( localize(7143, "No plugins available"));
|
|
1959
1959
|
this.emptySubtext.textContent = "";
|
|
1960
1960
|
}
|
|
1961
1961
|
this.list.splice(0, this.list.length, []);
|
|
@@ -1978,8 +1978,8 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1978
1978
|
const installedCount = this.installedItems.length + remoteItems.length;
|
|
1979
1979
|
if (installedCount === 0 && this.marketplaceItems.length === 0) {
|
|
1980
1980
|
this.showEmptySurface();
|
|
1981
|
-
this.emptyText.textContent = ( localize(
|
|
1982
|
-
this.emptySubtext.textContent = ( localize(
|
|
1981
|
+
this.emptyText.textContent = ( localize(7154, "No plugins match '{0}'", this.searchQuery));
|
|
1982
|
+
this.emptySubtext.textContent = ( localize(7153, "Try a different search term"));
|
|
1983
1983
|
this.list.splice(0, this.list.length, []);
|
|
1984
1984
|
return;
|
|
1985
1985
|
}
|
|
@@ -1992,9 +1992,9 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
1992
1992
|
this.showCardSurface();
|
|
1993
1993
|
const content = this.createCardScrollContent("plugin-search-results", "distributed-section-layout");
|
|
1994
1994
|
if (installedCount > 0) {
|
|
1995
|
-
const installedList = this.renderCardSection(content, ( localize(
|
|
1995
|
+
const installedList = this.renderCardSection(content, ( localize(7155, "Installed")), undefined, "installed-plugins-section", installedCount);
|
|
1996
1996
|
installedList.classList.add("plugin-inventory-list");
|
|
1997
|
-
this.createPluginSectionList(installedList, ( localize(
|
|
1997
|
+
this.createPluginSectionList(installedList, ( localize(7155, "Installed")), [...( this.installedItems.map(item => ({
|
|
1998
1998
|
type: "plugin-item",
|
|
1999
1999
|
item
|
|
2000
2000
|
}))), ...( remoteItems.map(item => ({
|
|
@@ -2003,7 +2003,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
|
|
|
2003
2003
|
})))]);
|
|
2004
2004
|
}
|
|
2005
2005
|
if (this.marketplaceItems.length > 0) {
|
|
2006
|
-
this.renderAvailablePlugins(content, this.marketplaceItems, false, ( localize(
|
|
2006
|
+
this.renderAvailablePlugins(content, this.marketplaceItems, false, ( localize(7156, "Available to install")), undefined);
|
|
2007
2007
|
}
|
|
2008
2008
|
this.schedulePluginSectionLayout();
|
|
2009
2009
|
this.list.splice(0, this.list.length, []);
|