@codingame/monaco-vscode-chat-service-override 32.0.2 → 33.0.5
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.d.ts +1 -1
- package/index.js +15 -5
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +170 -24
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +372 -66
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +18 -1
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +160 -31
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.d.ts +8 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.js +19 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +134 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +257 -0
- package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +84 -3
- package/vscode/src/vs/platform/agentHost/common/agentService.js +9 -1
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +61 -1
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +61 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.js +3 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.js +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +4 -4
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +1 -1
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.d.ts +2 -7
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +8 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +60 -60
- 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 +10 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +10 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +180 -174
- 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 +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
- 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 +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +64 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +330 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +77 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
- 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 +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +51 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +267 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +53 -53
- 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 +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.d.ts +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +30 -28
- 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/localAgentSessionsController.js +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +150 -119
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +45 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +58 -76
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +25 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +2 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +88 -70
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +82 -56
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +10 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +2 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +89 -71
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +2 -2843
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +2934 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +99 -99
- 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/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 +13 -13
- 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 +33 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
- 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 +4 -4
- 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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +53 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +131 -61
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +23 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +91 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -21
- 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 +29 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +15 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +203 -163
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +31 -54
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +88 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +17 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +91 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.d.ts +52 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +82 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.d.ts +21 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +55 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.d.ts +51 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.js +106 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +38 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +59 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +25 -25
- 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 +6 -6
- 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/promptFileContributions.js +4 -6
- 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/promptsDebugContribution.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +38 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.js +106 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +75 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/{toolInvocationParts/chatToolOutputStateCache.d.ts → chatOutputPartStateCache.d.ts} +5 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/{toolInvocationParts/chatToolOutputStateCache.js → chatOutputPartStateCache.js} +19 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +58 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +9 -9
- 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 +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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +18 -9
- 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 +13 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +6 -2
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +19 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +6 -7
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +14 -15
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +155 -156
- package/vscode/src/vs/workbench/contrib/chat/common/tools/copilotToolIds.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/copilotToolIds.js +12 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.d.ts +88 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.js +25 -0
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +237 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.d.ts +66 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +600 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.js +47 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselTypes.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselTypes.js +7 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/media/imageCarousel.css +298 -0
- 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/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/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/terminal.chatAgentTools.contribution.js +3 -3
- 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.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +78 -7
- 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/runInTerminalConfirmationTool.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +15 -11
- 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 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandParser.d.ts +60 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandParser.js +286 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCache.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCache.js +285 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.d.ts +19 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.js +415 -47
- package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.d.ts +2 -7
- package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.js +1 -1
- package/vscode/src/vs/base/common/defaultAccount.d.ts +0 -69
- package/vscode/src/vs/base/common/defaultAccount.js +0 -12
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +0 -15
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +0 -85
package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
2
|
+
import { Action2 } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions";
|
|
3
|
+
import { IFileDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
|
|
4
|
+
import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
|
|
5
|
+
import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
6
|
+
import { IAgentHostDebugLogsExportService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.service";
|
|
7
|
+
/**
|
|
8
|
+
* Description of the agent-host session whose logs should be exported. If
|
|
9
|
+
* not provided, the action exports all agent-host-related logs for the
|
|
10
|
+
* current window (no session-specific scoping or events file).
|
|
11
|
+
*/
|
|
12
|
+
export interface IActiveAgentHostSessionForExport {
|
|
13
|
+
/** The chat session resource. */
|
|
14
|
+
readonly resource: URI;
|
|
15
|
+
/** Optional display title used to derive the default zip filename. */
|
|
16
|
+
readonly title: string | undefined;
|
|
17
|
+
/** True for local agent-host sessions (`agent-host-*` scheme). */
|
|
18
|
+
readonly isLocal: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface IAgentHostDebugLogsExport {
|
|
21
|
+
readonly files: {
|
|
22
|
+
path: string;
|
|
23
|
+
contents: string;
|
|
24
|
+
}[];
|
|
25
|
+
readonly exportName: string;
|
|
26
|
+
}
|
|
27
|
+
export declare class BrowserAgentHostDebugLogsExportService implements IAgentHostDebugLogsExportService {
|
|
28
|
+
private readonly fileDialogService;
|
|
29
|
+
private readonly fileService;
|
|
30
|
+
readonly _serviceBrand: undefined;
|
|
31
|
+
constructor(fileDialogService: IFileDialogService, fileService: IFileService);
|
|
32
|
+
save(exportName: string, files: readonly {
|
|
33
|
+
path: string;
|
|
34
|
+
contents: string;
|
|
35
|
+
}[]): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Shared implementation of "Export Agent Host Debug Logs". Collects the
|
|
39
|
+
* Copilot CLI session events file (if available), the window/shared/agent-host
|
|
40
|
+
* output channel logs, and the AHP transport JSONL logs.
|
|
41
|
+
*
|
|
42
|
+
* Both the workbench-side action (resolves the active session via
|
|
43
|
+
* `IChatWidgetService`) and the sessions-app-side action (resolves it via
|
|
44
|
+
* `ISessionsManagementService`) call into this helper.
|
|
45
|
+
*/
|
|
46
|
+
export declare function collectAgentHostDebugLogs(accessor: ServicesAccessor, activeSession: IActiveAgentHostSessionForExport | undefined): Promise<IAgentHostDebugLogsExport | undefined>;
|
|
47
|
+
export declare function exportAgentHostDebugLogs(accessor: ServicesAccessor, activeSession: IActiveAgentHostSessionForExport | undefined): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Workbench-side action. Uses the last-focused chat widget's view model to
|
|
50
|
+
* find the active Copilot CLI chat session. Suitable for vscode where the
|
|
51
|
+
* agents-window-specific `ISessionsManagementService` is not present.
|
|
52
|
+
*/
|
|
53
|
+
export declare class ExportAgentHostDebugLogsAction extends Action2 {
|
|
54
|
+
static readonly ID = "workbench.action.chat.exportAgentHostDebugLogs";
|
|
55
|
+
constructor();
|
|
56
|
+
run(accessor: ServicesAccessor): Promise<void>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Translates a chat session URI scheme into an agent-host session context,
|
|
60
|
+
* or `undefined` if the scheme does not belong to a Copilot CLI agent-host
|
|
61
|
+
* session (i.e. local AH or remote AH; the EH CLI extension's own
|
|
62
|
+
* `copilotcli:` sessions are excluded).
|
|
63
|
+
*/
|
|
64
|
+
export declare function toActiveAgentHostSession(resource: URI, title: string | undefined): IActiveAgentHostSessionForExport | undefined;
|
package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js
ADDED
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { VSBuffer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
|
|
4
|
+
import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
5
|
+
import { joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
6
|
+
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
7
|
+
import { localize, localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
8
|
+
import { Categories } from '@codingame/monaco-vscode-api/vscode/vs/platform/action/common/actionCommonCategories';
|
|
9
|
+
import { Action2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
10
|
+
import { agentHostAuthority, toAgentHostUri } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/agentHostUri';
|
|
11
|
+
import { AgentHostEnabledSettingId } from '../../../../../platform/agentHost/common/agentService.js';
|
|
12
|
+
import { IAgentHostService } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/agentService.service';
|
|
13
|
+
import { IRemoteAgentHostService } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService.service';
|
|
14
|
+
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
15
|
+
import { IFileDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
|
|
16
|
+
import { IEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service';
|
|
17
|
+
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
18
|
+
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
19
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification';
|
|
20
|
+
import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
|
|
21
|
+
import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
|
|
22
|
+
import { ITextModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service';
|
|
23
|
+
import { IOutputService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/output/common/output.service';
|
|
24
|
+
import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service';
|
|
25
|
+
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
26
|
+
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
27
|
+
import { resolveEventsUri, COPILOT_CLI_LOCAL_AH_SCHEME, parseRemoteAuthorityFromScheme } from '../copilotCliEventsUri.js';
|
|
28
|
+
import { IAgentHostDebugLogsExportService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.service';
|
|
29
|
+
import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
|
|
30
|
+
|
|
31
|
+
const AGENT_HOST_LOGGER_CHANNEL_ID = "agenthost";
|
|
32
|
+
const WINDOW_LOG_CHANNEL_ID = "rendererLog";
|
|
33
|
+
const SHARED_PROCESS_LOG_CHANNEL_ID = "shared";
|
|
34
|
+
let BrowserAgentHostDebugLogsExportService = class BrowserAgentHostDebugLogsExportService {
|
|
35
|
+
constructor(fileDialogService, fileService) {
|
|
36
|
+
this.fileDialogService = fileDialogService;
|
|
37
|
+
this.fileService = fileService;
|
|
38
|
+
}
|
|
39
|
+
async save(exportName, files) {
|
|
40
|
+
await exportFilesToLocalFolder(this.fileDialogService, this.fileService, exportName, files);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
BrowserAgentHostDebugLogsExportService = ( __decorate([( __param(0, IFileDialogService)), ( __param(1, IFileService))], BrowserAgentHostDebugLogsExportService));
|
|
44
|
+
async function collectAgentHostDebugLogs(accessor, activeSession) {
|
|
45
|
+
const pathService = accessor.get(IPathService);
|
|
46
|
+
const agentHostService = accessor.get(IAgentHostService);
|
|
47
|
+
const remoteAgentHostService = accessor.get(IRemoteAgentHostService);
|
|
48
|
+
const outputService = accessor.get(IOutputService);
|
|
49
|
+
const fileService = accessor.get(IFileService);
|
|
50
|
+
const notificationService = accessor.get(INotificationService);
|
|
51
|
+
const textModelService = accessor.get(ITextModelService);
|
|
52
|
+
const productService = accessor.get(IProductService);
|
|
53
|
+
const logService = accessor.get(ILogService);
|
|
54
|
+
const environmentService = accessor.get(IEnvironmentService);
|
|
55
|
+
const userHome = pathService.userHome({
|
|
56
|
+
preferLocal: true
|
|
57
|
+
});
|
|
58
|
+
const eventsResult = resolveEventsUri(
|
|
59
|
+
activeSession?.resource,
|
|
60
|
+
userHome,
|
|
61
|
+
authority => remoteAgentHostService.connections.find(c => agentHostAuthority(c.address) === authority)
|
|
62
|
+
);
|
|
63
|
+
const channelIds = ( new Set());
|
|
64
|
+
let remoteConnection;
|
|
65
|
+
let ahpLogNameFilter;
|
|
66
|
+
if (activeSession) {
|
|
67
|
+
if (activeSession.isLocal) {
|
|
68
|
+
channelIds.add(AGENT_HOST_LOGGER_CHANNEL_ID);
|
|
69
|
+
channelIds.add(`agenthost.${agentHostService.clientId}`);
|
|
70
|
+
const localClientId = sanitizeFilePart(agentHostService.clientId);
|
|
71
|
+
ahpLogNameFilter = name => name.includes(localClientId);
|
|
72
|
+
} else {
|
|
73
|
+
remoteConnection = getRemoteConnectionForSession(activeSession.resource, remoteAgentHostService.connections);
|
|
74
|
+
if (remoteConnection) {
|
|
75
|
+
channelIds.add(`agenthost.${remoteConnection.clientId}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
} else {
|
|
79
|
+
channelIds.add(AGENT_HOST_LOGGER_CHANNEL_ID);
|
|
80
|
+
channelIds.add(`agenthost.${agentHostService.clientId}`);
|
|
81
|
+
for (const connection of remoteAgentHostService.connections) {
|
|
82
|
+
channelIds.add(`agenthost.${connection.clientId}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
channelIds.add(WINDOW_LOG_CHANNEL_ID);
|
|
86
|
+
channelIds.add(SHARED_PROCESS_LOG_CHANNEL_ID);
|
|
87
|
+
const files = [];
|
|
88
|
+
if (eventsResult.kind === "ok") {
|
|
89
|
+
try {
|
|
90
|
+
const content = await fileService.readFile(eventsResult.resource);
|
|
91
|
+
files.push({
|
|
92
|
+
path: "events.jsonl",
|
|
93
|
+
contents: ( content.value.toString())
|
|
94
|
+
});
|
|
95
|
+
} catch {}
|
|
96
|
+
}
|
|
97
|
+
for (const channelId of channelIds) {
|
|
98
|
+
const channel = outputService.getChannel(channelId);
|
|
99
|
+
const descriptor = outputService.getChannelDescriptor(channelId);
|
|
100
|
+
if (!channel || !descriptor) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const modelRef = await textModelService.createModelReference(channel.uri);
|
|
104
|
+
try {
|
|
105
|
+
const filename = `${descriptor.label.replace(/[/\\:*?"<>|]/g, "-")}.log`;
|
|
106
|
+
files.push({
|
|
107
|
+
path: filename,
|
|
108
|
+
contents: modelRef.object.textEditorModel.getValue()
|
|
109
|
+
});
|
|
110
|
+
} finally {
|
|
111
|
+
modelRef.dispose();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const ahpDir = joinPath(environmentService.logsHome, "ahp");
|
|
116
|
+
const stat = await fileService.resolve(ahpDir, {
|
|
117
|
+
resolveMetadata: true
|
|
118
|
+
});
|
|
119
|
+
for (const child of stat.children ?? []) {
|
|
120
|
+
if (child.isDirectory || !child.name.endsWith(".jsonl") || ahpLogNameFilter && !ahpLogNameFilter(child.name)) {
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
try {
|
|
124
|
+
const content = await fileService.readFile(child.resource);
|
|
125
|
+
files.push({
|
|
126
|
+
path: `ahp/${child.name}`,
|
|
127
|
+
contents: ( content.value.toString())
|
|
128
|
+
});
|
|
129
|
+
} catch (error) {
|
|
130
|
+
logService.warn(
|
|
131
|
+
`[ExportAgentHostDebugLogs] Failed to read AHP log '${child.name}': ${error instanceof Error ? error.message : String(error)}`
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
} catch {}
|
|
136
|
+
if (remoteConnection?.defaultDirectory) {
|
|
137
|
+
try {
|
|
138
|
+
const remoteLog = await readRemoteAgentHostLog(remoteConnection, productService.serverDataFolderName, fileService);
|
|
139
|
+
if (remoteLog) {
|
|
140
|
+
files.push({
|
|
141
|
+
path: "remote-agenthost.log",
|
|
142
|
+
contents: remoteLog
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
} catch (error) {
|
|
146
|
+
logService.warn(
|
|
147
|
+
`[ExportAgentHostDebugLogs] Failed to download remote agenthost.log: ${error instanceof Error ? error.message : String(error)}`
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (files.length === 0) {
|
|
152
|
+
notificationService.notify({
|
|
153
|
+
severity: Severity.Warning,
|
|
154
|
+
message: activeSession ? ( localize(5163, "No log files were found for the active Agent Host session.")) : ( localize(5164, "No Agent Host log files were found for the current window."))
|
|
155
|
+
});
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
158
|
+
const titleSlug = activeSession?.title ? `-${activeSession.title.replace(/[/\\:*?"<>|\s]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 40)}` : "";
|
|
159
|
+
return {
|
|
160
|
+
files,
|
|
161
|
+
exportName: `ah-logs${titleSlug}`
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
async function exportAgentHostDebugLogs(accessor, activeSession) {
|
|
165
|
+
const exportService = accessor.get(IAgentHostDebugLogsExportService);
|
|
166
|
+
const notificationService = accessor.get(INotificationService);
|
|
167
|
+
const logs = await collectAgentHostDebugLogs(accessor, activeSession);
|
|
168
|
+
if (!logs) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
await exportService.save(logs.exportName, logs.files);
|
|
173
|
+
} catch (error) {
|
|
174
|
+
notificationService.notify({
|
|
175
|
+
severity: Severity.Error,
|
|
176
|
+
message: ( localize(
|
|
177
|
+
5165,
|
|
178
|
+
"Failed to save debug logs: {0}",
|
|
179
|
+
error instanceof Error ? error.message : String(error)
|
|
180
|
+
))
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
class ExportAgentHostDebugLogsAction extends Action2 {
|
|
185
|
+
static {
|
|
186
|
+
this.ID = "workbench.action.chat.exportAgentHostDebugLogs";
|
|
187
|
+
}
|
|
188
|
+
constructor() {
|
|
189
|
+
super({
|
|
190
|
+
id: ExportAgentHostDebugLogsAction.ID,
|
|
191
|
+
title: ( localize2(5166, "Export Agent Host Debug Logs...")),
|
|
192
|
+
f1: true,
|
|
193
|
+
category: Categories.Developer,
|
|
194
|
+
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.equals(`config.${AgentHostEnabledSettingId}`, true))))
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
async run(accessor) {
|
|
198
|
+
const chatWidgetService = accessor.get(IChatWidgetService);
|
|
199
|
+
const widget = chatWidgetService.lastFocusedWidget;
|
|
200
|
+
const model = widget?.viewModel?.model;
|
|
201
|
+
const activeSession = model ? toActiveAgentHostSession(model.sessionResource, model.title) : undefined;
|
|
202
|
+
await exportAgentHostDebugLogs(accessor, activeSession);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
function toActiveAgentHostSession(resource, title) {
|
|
206
|
+
if (resource.scheme === COPILOT_CLI_LOCAL_AH_SCHEME) {
|
|
207
|
+
return {
|
|
208
|
+
resource,
|
|
209
|
+
title,
|
|
210
|
+
isLocal: true
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
if (parseRemoteAuthorityFromScheme(resource.scheme)) {
|
|
214
|
+
return {
|
|
215
|
+
resource,
|
|
216
|
+
title,
|
|
217
|
+
isLocal: false
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
222
|
+
function getRemoteConnectionForSession(sessionResource, connections) {
|
|
223
|
+
return connections.find(
|
|
224
|
+
connection => sessionResource.scheme.startsWith(`remote-${agentHostAuthority(connection.address)}-`)
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
function sanitizeFilePart(value) {
|
|
228
|
+
return value.replace(/[\\/:\*\?"<>|\s]+/g, "-").replace(/^-+|-+$/g, "") || "connection";
|
|
229
|
+
}
|
|
230
|
+
async function exportFilesToLocalFolder(fileDialogService, fileService, exportName, files) {
|
|
231
|
+
const folders = await fileDialogService.showOpenDialog({
|
|
232
|
+
title: ( localize(5167, "Select Folder for Agent Host Debug Logs")),
|
|
233
|
+
canSelectFiles: false,
|
|
234
|
+
canSelectFolders: true,
|
|
235
|
+
canSelectMany: false,
|
|
236
|
+
availableFileSystems: [Schemas.file]
|
|
237
|
+
});
|
|
238
|
+
const parentFolder = folders?.[0];
|
|
239
|
+
if (!parentFolder) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const exportFolder = joinPath(parentFolder, exportName);
|
|
243
|
+
await fileService.createFolder(exportFolder);
|
|
244
|
+
for (const file of files) {
|
|
245
|
+
const segments = toSafeRelativePathSegments(file.path);
|
|
246
|
+
if (segments.length === 0) {
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
let folder = exportFolder;
|
|
250
|
+
for (const segment of segments.slice(0, -1)) {
|
|
251
|
+
folder = joinPath(folder, segment);
|
|
252
|
+
await fileService.createFolder(folder);
|
|
253
|
+
}
|
|
254
|
+
await fileService.writeFile(
|
|
255
|
+
joinPath(folder, segments[segments.length - 1]),
|
|
256
|
+
VSBuffer.fromString(file.contents)
|
|
257
|
+
);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
function toSafeRelativePathSegments(path) {
|
|
261
|
+
return (path.replace(/\\/g, "/").split("/").filter(segment => {
|
|
262
|
+
return segment.length > 0 && segment !== "." && segment !== "..";
|
|
263
|
+
}).map(segment => segment.replace(/[/\\:*?"<>|]/g, "-")));
|
|
264
|
+
}
|
|
265
|
+
async function readRemoteAgentHostLog(connection, serverDataFolderName, fileService) {
|
|
266
|
+
const homePath = connection.defaultDirectory;
|
|
267
|
+
if (!homePath) {
|
|
268
|
+
return undefined;
|
|
269
|
+
}
|
|
270
|
+
const authority = agentHostAuthority(connection.address);
|
|
271
|
+
const homeUri = toAgentHostUri(( URI.from({
|
|
272
|
+
scheme: "file",
|
|
273
|
+
path: homePath
|
|
274
|
+
})), authority);
|
|
275
|
+
const candidates = ( new Set());
|
|
276
|
+
if (serverDataFolderName) {
|
|
277
|
+
candidates.add(serverDataFolderName);
|
|
278
|
+
if (serverDataFolderName.endsWith("-dev")) {
|
|
279
|
+
candidates.add(serverDataFolderName.slice(0, -"-dev".length));
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
candidates.add(".vscode-server");
|
|
283
|
+
candidates.add(".vscode-server-insiders");
|
|
284
|
+
candidates.add(".vscode-server-oss");
|
|
285
|
+
candidates.add(".vscode-server-exploration");
|
|
286
|
+
let best;
|
|
287
|
+
for (const folderName of candidates) {
|
|
288
|
+
const logsDirUri = joinPath(homeUri, folderName, "data", "logs");
|
|
289
|
+
let entries;
|
|
290
|
+
try {
|
|
291
|
+
const stat = await fileService.resolve(logsDirUri, {
|
|
292
|
+
resolveMetadata: true
|
|
293
|
+
});
|
|
294
|
+
entries = stat.children;
|
|
295
|
+
} catch {
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
if (!entries) {
|
|
299
|
+
continue;
|
|
300
|
+
}
|
|
301
|
+
for (const dir of entries) {
|
|
302
|
+
if (!dir.isDirectory) {
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
const logUri = joinPath(dir.resource, "agenthost.log");
|
|
306
|
+
let logStat;
|
|
307
|
+
try {
|
|
308
|
+
logStat = await fileService.resolve(logUri, {
|
|
309
|
+
resolveMetadata: true
|
|
310
|
+
});
|
|
311
|
+
} catch {
|
|
312
|
+
continue;
|
|
313
|
+
}
|
|
314
|
+
const mtime = logStat.mtime ?? 0;
|
|
315
|
+
if (!best || mtime > best.mtime) {
|
|
316
|
+
best = {
|
|
317
|
+
uri: logUri,
|
|
318
|
+
mtime
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
if (!best) {
|
|
324
|
+
return undefined;
|
|
325
|
+
}
|
|
326
|
+
const content = await fileService.readFile(best.uri);
|
|
327
|
+
return ( content.value.toString());
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
export { BrowserAgentHostDebugLogsExportService, ExportAgentHostDebugLogsAction, collectAgentHostDebugLogs, exportAgentHostDebugLogs, toActiveAgentHostSession };
|
package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
2
|
+
import { Action2 } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions";
|
|
3
|
+
import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
4
|
+
/**
|
|
5
|
+
* Shared implementation of "Open Copilot CLI State File". Resolves the
|
|
6
|
+
* `events.jsonl` URI for the given chat session resource and opens it in
|
|
7
|
+
* an editor, or shows a notification explaining why it could not be
|
|
8
|
+
* opened.
|
|
9
|
+
*
|
|
10
|
+
* Both the workbench-side action (uses `IChatWidgetService`) and the
|
|
11
|
+
* sessions-app-side action (uses `ISessionsManagementService`) call into
|
|
12
|
+
* this helper after resolving the active Copilot CLI session resource.
|
|
13
|
+
*/
|
|
14
|
+
export declare function openCopilotCliStateFile(accessor: ServicesAccessor, sessionResource: URI | undefined): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Workbench-side action. Uses the last-focused chat widget's view model to
|
|
17
|
+
* find the active Copilot CLI chat session. Suitable for vscode where the
|
|
18
|
+
* agents-window-specific `ISessionsManagementService` is not present.
|
|
19
|
+
*/
|
|
20
|
+
export declare class OpenCopilotCliStateFileAction extends Action2 {
|
|
21
|
+
static readonly ID = "workbench.action.chat.openCopilotCliStateFile";
|
|
22
|
+
constructor();
|
|
23
|
+
run(accessor: ServicesAccessor): Promise<void>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
|
|
2
|
+
import { localize, localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
3
|
+
import { Categories } from '@codingame/monaco-vscode-api/vscode/vs/platform/action/common/actionCommonCategories';
|
|
4
|
+
import { Action2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
5
|
+
import { agentHostAuthority } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/agentHostUri';
|
|
6
|
+
import { IRemoteAgentHostService } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService.service';
|
|
7
|
+
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
8
|
+
import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
|
|
9
|
+
import { IsSessionsWindowContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
10
|
+
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
11
|
+
import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service';
|
|
12
|
+
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
13
|
+
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
14
|
+
import { resolveEventsUri } from '../copilotCliEventsUri.js';
|
|
15
|
+
|
|
16
|
+
async function openCopilotCliStateFile(accessor, sessionResource) {
|
|
17
|
+
const pathService = accessor.get(IPathService);
|
|
18
|
+
const remoteAgentHostService = accessor.get(IRemoteAgentHostService);
|
|
19
|
+
const editorService = accessor.get(IEditorService);
|
|
20
|
+
const notificationService = accessor.get(INotificationService);
|
|
21
|
+
const userHome = pathService.userHome({
|
|
22
|
+
preferLocal: true
|
|
23
|
+
});
|
|
24
|
+
const result = resolveEventsUri(
|
|
25
|
+
sessionResource,
|
|
26
|
+
userHome,
|
|
27
|
+
authority => remoteAgentHostService.connections.find(c => agentHostAuthority(c.address) === authority)
|
|
28
|
+
);
|
|
29
|
+
switch (result.kind) {
|
|
30
|
+
case "ok":
|
|
31
|
+
await editorService.openEditor({
|
|
32
|
+
resource: result.resource
|
|
33
|
+
});
|
|
34
|
+
return;
|
|
35
|
+
case "no-session":
|
|
36
|
+
notificationService.info(( localize(5168, "No Copilot CLI session is active.")));
|
|
37
|
+
return;
|
|
38
|
+
case "unsupported-scheme":
|
|
39
|
+
notificationService.info(( localize(5169, "The active chat session is not a Copilot CLI session.")));
|
|
40
|
+
return;
|
|
41
|
+
case "remote-not-connected":
|
|
42
|
+
notificationService.warn(( localize(
|
|
43
|
+
5170,
|
|
44
|
+
"No active connection found for remote agent host '{0}'.",
|
|
45
|
+
result.authority
|
|
46
|
+
)));
|
|
47
|
+
return;
|
|
48
|
+
case "remote-no-home":
|
|
49
|
+
notificationService.warn(( localize(
|
|
50
|
+
5171,
|
|
51
|
+
"Remote agent host '{0}' did not report a home directory.",
|
|
52
|
+
result.authority
|
|
53
|
+
)));
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
class OpenCopilotCliStateFileAction extends Action2 {
|
|
58
|
+
static {
|
|
59
|
+
this.ID = "workbench.action.chat.openCopilotCliStateFile";
|
|
60
|
+
}
|
|
61
|
+
constructor() {
|
|
62
|
+
super({
|
|
63
|
+
id: OpenCopilotCliStateFileAction.ID,
|
|
64
|
+
title: ( localize2(5172, "Open Copilot CLI State File")),
|
|
65
|
+
f1: true,
|
|
66
|
+
category: Categories.Developer,
|
|
67
|
+
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( IsSessionsWindowContext.negate())))
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
async run(accessor) {
|
|
71
|
+
const chatWidgetService = accessor.get(IChatWidgetService);
|
|
72
|
+
const sessionResource = chatWidgetService.lastFocusedWidget?.viewModel?.sessionResource;
|
|
73
|
+
await openCopilotCliStateFile(accessor, sessionResource);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { OpenCopilotCliStateFileAction, openCopilotCliStateFile };
|
|
@@ -17,7 +17,7 @@ import { hasKey } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types
|
|
|
17
17
|
|
|
18
18
|
let InstallPluginAction = class InstallPluginAction extends Action {
|
|
19
19
|
constructor(item, pluginInstallService) {
|
|
20
|
-
super("agentPlugin.install", ( localize(
|
|
20
|
+
super("agentPlugin.install", ( localize(5173, "Install")), "extension-action label prominent install", true, () => pluginInstallService.installPlugin({
|
|
21
21
|
name: item.name,
|
|
22
22
|
description: item.description,
|
|
23
23
|
version: "",
|
|
@@ -33,7 +33,7 @@ let InstallPluginAction = class InstallPluginAction extends Action {
|
|
|
33
33
|
InstallPluginAction = ( __decorate([( __param(1, IPluginInstallService))], InstallPluginAction));
|
|
34
34
|
class UninstallPluginAction extends Action {
|
|
35
35
|
constructor(plugin) {
|
|
36
|
-
super("agentPlugin.uninstall", ( localize(
|
|
36
|
+
super("agentPlugin.uninstall", ( localize(5174, "Uninstall")), "extension-action label uninstall", true, () => {
|
|
37
37
|
plugin.remove();
|
|
38
38
|
return Promise.resolve();
|
|
39
39
|
});
|
|
@@ -41,7 +41,7 @@ class UninstallPluginAction extends Action {
|
|
|
41
41
|
}
|
|
42
42
|
let OpenPluginFolderAction = class OpenPluginFolderAction extends Action {
|
|
43
43
|
constructor(plugin, commandService, openerService) {
|
|
44
|
-
super("agentPlugin.openFolder", ( localize(
|
|
44
|
+
super("agentPlugin.openFolder", ( localize(5175, "Open Plugin Folder")), undefined, true, async () => {
|
|
45
45
|
try {
|
|
46
46
|
await commandService.executeCommand("revealFileInOS", plugin.uri);
|
|
47
47
|
} catch {
|
|
@@ -53,7 +53,7 @@ let OpenPluginFolderAction = class OpenPluginFolderAction extends Action {
|
|
|
53
53
|
OpenPluginFolderAction = ( __decorate([( __param(1, ICommandService)), ( __param(2, IOpenerService))], OpenPluginFolderAction));
|
|
54
54
|
let OpenPluginReadmeAction = class OpenPluginReadmeAction extends Action {
|
|
55
55
|
constructor(readmeUri, openerService) {
|
|
56
|
-
super("agentPlugin.openReadme", ( localize(
|
|
56
|
+
super("agentPlugin.openReadme", ( localize(5176, "Open README")), undefined, true, () => openerService.open(readmeUri));
|
|
57
57
|
}
|
|
58
58
|
};
|
|
59
59
|
OpenPluginReadmeAction = ( __decorate([( __param(1, IOpenerService))], OpenPluginReadmeAction));
|
|
@@ -168,11 +168,11 @@ class EnablementDropdownActionViewItem extends ActionWithDropdownActionViewItem
|
|
|
168
168
|
function createEnablePluginDropDown(plugin, enablementModel, workspaceContextService) {
|
|
169
169
|
const key = ( plugin.uri.toString());
|
|
170
170
|
const hasWorkspace = workspaceContextService.getWorkbenchState() !== WorkbenchState.EMPTY;
|
|
171
|
-
const enable = ( new EnablementSubAction("agentPlugin.enable", ( localize(
|
|
171
|
+
const enable = ( new EnablementSubAction("agentPlugin.enable", ( localize(5177, "Enable")), "extension-action label prominent", isContributionDisabled(plugin.enablement.get()), () => {
|
|
172
172
|
enablementModel.setEnabled(key, ContributionEnablementState.EnabledProfile);
|
|
173
173
|
return Promise.resolve();
|
|
174
174
|
}));
|
|
175
|
-
const enableWorkspace = ( new EnablementSubAction("agentPlugin.enableForWorkspace", ( localize(
|
|
175
|
+
const enableWorkspace = ( new EnablementSubAction("agentPlugin.enableForWorkspace", ( localize(5178, "Enable (Workspace)")), "extension-action label", isContributionDisabled(plugin.enablement.get()) && hasWorkspace, () => {
|
|
176
176
|
enablementModel.setEnabled(key, ContributionEnablementState.EnabledWorkspace);
|
|
177
177
|
return Promise.resolve();
|
|
178
178
|
}));
|
|
@@ -181,11 +181,11 @@ function createEnablePluginDropDown(plugin, enablementModel, workspaceContextSer
|
|
|
181
181
|
function createDisablePluginDropDown(plugin, enablementModel, workspaceContextService) {
|
|
182
182
|
const key = ( plugin.uri.toString());
|
|
183
183
|
const hasWorkspace = workspaceContextService.getWorkbenchState() !== WorkbenchState.EMPTY;
|
|
184
|
-
const disable = ( new EnablementSubAction("agentPlugin.disable", ( localize(
|
|
184
|
+
const disable = ( new EnablementSubAction("agentPlugin.disable", ( localize(5179, "Disable")), "extension-action label disable", isContributionEnabled(plugin.enablement.get()), () => {
|
|
185
185
|
enablementModel.setEnabled(key, ContributionEnablementState.DisabledProfile);
|
|
186
186
|
return Promise.resolve();
|
|
187
187
|
}));
|
|
188
|
-
const disableWorkspace = ( new EnablementSubAction("agentPlugin.disableForWorkspace", ( localize(
|
|
188
|
+
const disableWorkspace = ( new EnablementSubAction("agentPlugin.disableForWorkspace", ( localize(5180, "Disable (Workspace)")), "extension-action label disable", isContributionEnabled(plugin.enablement.get()) && hasWorkspace, () => {
|
|
189
189
|
enablementModel.setEnabled(key, ContributionEnablementState.DisabledWorkspace);
|
|
190
190
|
return Promise.resolve();
|
|
191
191
|
}));
|
|
@@ -357,7 +357,7 @@ let AgentPluginEditor = class AgentPluginEditor extends EditorPane {
|
|
|
357
357
|
this.contentDisposables.add(toDisposable(insert(this.layoutParticipants, {
|
|
358
358
|
layout
|
|
359
359
|
})));
|
|
360
|
-
return this.openMarkdown(this.pluginReadme.get(), ( localize(
|
|
360
|
+
return this.openMarkdown(this.pluginReadme.get(), ( localize(5181, "No README available.")), readmeContainer, WebviewIndex.Readme, ( localize(5182, "Readme")), token);
|
|
361
361
|
}
|
|
362
362
|
async openMarkdown(cacheResult, noContentCopy, container, webviewIndex, title, token) {
|
|
363
363
|
try {
|
|
@@ -529,7 +529,7 @@ let UpdatePluginEditorAction = class UpdatePluginEditorAction extends Action {
|
|
|
529
529
|
pluginInstallService,
|
|
530
530
|
pluginMarketplaceService
|
|
531
531
|
) {
|
|
532
|
-
super(UpdatePluginEditorAction_1.ID, ( localize(
|
|
532
|
+
super(UpdatePluginEditorAction_1.ID, ( localize(5183, "Update")), "extension-action label prominent install");
|
|
533
533
|
this.plugin = plugin;
|
|
534
534
|
this.liveMarketplacePlugin = liveMarketplacePlugin;
|
|
535
535
|
this.pluginInstallService = pluginInstallService;
|
package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js
CHANGED
|
@@ -8,7 +8,7 @@ import { EditorInputCapabilities } from '@codingame/monaco-vscode-api/vscode/vs/
|
|
|
8
8
|
import { EditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor/editorInput';
|
|
9
9
|
import { AgentPluginItemKind } from './agentPluginItems.js';
|
|
10
10
|
|
|
11
|
-
const AgentPluginEditorIcon = registerIcon("agent-plugin-editor-icon", Codicon.extensions, ( localize(
|
|
11
|
+
const AgentPluginEditorIcon = registerIcon("agent-plugin-editor-icon", Codicon.extensions, ( localize(5184, "Icon of the Agent Plugin editor.")));
|
|
12
12
|
function getPluginId(item) {
|
|
13
13
|
if (item.kind === AgentPluginItemKind.Installed) {
|
|
14
14
|
return ( item.plugin.uri.toString());
|
|
@@ -39,7 +39,7 @@ class AgentPluginEditorInput extends EditorInput {
|
|
|
39
39
|
return this._item;
|
|
40
40
|
}
|
|
41
41
|
getName() {
|
|
42
|
-
return localize(
|
|
42
|
+
return localize(5185, "Plugin: {0}", this._item.name);
|
|
43
43
|
}
|
|
44
44
|
getIcon() {
|
|
45
45
|
return AgentPluginEditorIcon;
|
|
@@ -98,7 +98,7 @@ let AgentPluginRepositoryService = class AgentPluginRepositoryService {
|
|
|
98
98
|
if (marketplace.kind === MarketplaceReferenceKind.LocalFileUri) {
|
|
99
99
|
throw ( new Error(`Local marketplace repository does not exist: ${repoDir.fsPath}`));
|
|
100
100
|
}
|
|
101
|
-
const progressTitle = options?.progressTitle ?? ( localize(
|
|
101
|
+
const progressTitle = options?.progressTitle ?? ( localize(5186, "Preparing plugin marketplace '{0}'...", marketplace.displayLabel));
|
|
102
102
|
const failureLabel = options?.failureLabel ?? marketplace.displayLabel;
|
|
103
103
|
await this._cloneRepository(repoDir, marketplace.cloneUrl, progressTitle, failureLabel);
|
|
104
104
|
this._updateMarketplaceIndex(marketplace, repoDir, options?.marketplaceType);
|
|
@@ -123,7 +123,7 @@ let AgentPluginRepositoryService = class AgentPluginRepositoryService {
|
|
|
123
123
|
try {
|
|
124
124
|
return await this._progressService.withProgress({
|
|
125
125
|
location: ProgressLocation.Notification,
|
|
126
|
-
title: ( localize(
|
|
126
|
+
title: ( localize(5187, "Updating plugin '{0}'...", updateLabel)),
|
|
127
127
|
cancellable: true
|
|
128
128
|
}, () => this._pluginGit.pull(repoDir, cts.token), () => cts.dispose(true));
|
|
129
129
|
} finally {
|
|
@@ -138,13 +138,13 @@ let AgentPluginRepositoryService = class AgentPluginRepositoryService {
|
|
|
138
138
|
this._notificationService.notify({
|
|
139
139
|
severity: Severity.Error,
|
|
140
140
|
message: ( localize(
|
|
141
|
-
|
|
141
|
+
5188,
|
|
142
142
|
"Failed to update plugin '{0}': {1}",
|
|
143
143
|
options?.failureLabel ?? updateLabel,
|
|
144
144
|
err?.message ?? String(err)
|
|
145
145
|
)),
|
|
146
146
|
actions: {
|
|
147
|
-
primary: [( new Action("showGitOutput", ( localize(
|
|
147
|
+
primary: [( new Action("showGitOutput", ( localize(5189, "Show Git Output")), undefined, true, () => {
|
|
148
148
|
this._commandService.executeCommand("git.showOutput");
|
|
149
149
|
}))]
|
|
150
150
|
}
|
|
@@ -223,13 +223,13 @@ let AgentPluginRepositoryService = class AgentPluginRepositoryService {
|
|
|
223
223
|
this._notificationService.notify({
|
|
224
224
|
severity: Severity.Error,
|
|
225
225
|
message: ( localize(
|
|
226
|
-
|
|
226
|
+
5190,
|
|
227
227
|
"Failed to install plugin '{0}': {1}",
|
|
228
228
|
failureLabel,
|
|
229
229
|
err?.message ?? String(err)
|
|
230
230
|
)),
|
|
231
231
|
actions: {
|
|
232
|
-
primary: [( new Action("showGitOutput", ( localize(
|
|
232
|
+
primary: [( new Action("showGitOutput", ( localize(5189, "Show Git Output")), undefined, true, () => {
|
|
233
233
|
this._commandService.executeCommand("git.showOutput");
|
|
234
234
|
}))]
|
|
235
235
|
}
|