@codingame/monaco-vscode-chat-service-override 29.1.0 → 30.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +5 -2
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +37 -39
- package/vscode/src/vs/platform/agentHost/common/agentService.js +3 -1
- package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +11 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +4 -4
- package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +132 -42
- package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +54 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +15 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +5 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +188 -51
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +7 -6
- package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +7 -2
- package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.d.ts +6 -0
- package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +14 -0
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +18 -0
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +37 -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 +59 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +10 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +37 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +6 -6
- 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 +20 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +18 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.d.ts +36 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +482 -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.d.ts +10 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +43 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +74 -76
- 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.js +27 -35
- 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.d.ts +5 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +86 -80
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +38 -4
- 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 +38 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +427 -167
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +37 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +108 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +28 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +3 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +65 -68
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +64 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +288 -195
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +21 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.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 +21 -21
- 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 +21 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +28 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +10 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +19 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +54 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +9 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +50 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +86 -17
- 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 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +65 -65
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +24 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
- 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/languageModelsConfigurationService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +3 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +54 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +24 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +72 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
- 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 +181 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +3 -3
- 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 +8 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +37 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +28 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletionUtils.js +62 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +1 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +148 -88
- 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.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +16 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +158 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +8 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +155 -76
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +7 -6
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +31 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +228 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.d.ts +66 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.js +190 -0
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +25 -3
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +130 -107
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +19 -18
- 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 +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.d.ts +2 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +169 -266
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +12 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +149 -206
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +27 -22
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +20 -8
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +183 -43
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +2 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +21 -21
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -11
- 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 +11 -11
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +6 -6
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +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/terminalChatService.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +3 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +26 -23
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +4 -9
- 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 +16 -6
- 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 +9 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +150 -50
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +66 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +239 -48
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +0 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +0 -208
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +0 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +0 -637
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +0 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +0 -384
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.d.ts +0 -33
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.js +0 -47
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalSkill.d.ts +0 -30
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +0 -55
- /package/vscode/src/vs/workbench/contrib/chat/{common → browser}/promptSyntax/promptFileContributions.d.ts +0 -0
|
@@ -77,12 +77,12 @@ let ChatWindowNotifier = class ChatWindowNotifier extends Disposable {
|
|
|
77
77
|
mode: FocusMode.Notify
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
|
-
const notificationTitle = info.title ? ( localize(
|
|
80
|
+
const notificationTitle = info.title ? ( localize(6413, "Session: {0}", info.title)) : ( localize(6414, "Untitled Session"));
|
|
81
81
|
const cts = ( new CancellationTokenSource());
|
|
82
82
|
this._activeNotifications.set(sessionResource, toDisposable(() => cts.dispose(true)));
|
|
83
83
|
const isQuestionCarousel = this._isQuestionCarouselPending(sessionResource);
|
|
84
84
|
try {
|
|
85
|
-
const actionLabel = isQuestionCarousel ? ( localize(
|
|
85
|
+
const actionLabel = isQuestionCarousel ? ( localize(6415, "Open Session")) : ( localize(6416, "Allow"));
|
|
86
86
|
const result = await this._hostService.showToast({
|
|
87
87
|
title: this._sanitizeOSToastText(notificationTitle),
|
|
88
88
|
body: this._getNotificationBody(sessionResource, info, isQuestionCarousel),
|
|
@@ -121,7 +121,7 @@ let ChatWindowNotifier = class ChatWindowNotifier extends Disposable {
|
|
|
121
121
|
}
|
|
122
122
|
_getNotificationBody(sessionResource, info, isQuestionCarousel) {
|
|
123
123
|
if (isQuestionCarousel) {
|
|
124
|
-
return localize(
|
|
124
|
+
return localize(6417, "Questions need your input.");
|
|
125
125
|
}
|
|
126
126
|
const terminalCommand = this._getPendingTerminalCommand(sessionResource);
|
|
127
127
|
if (terminalCommand) {
|
|
@@ -130,7 +130,7 @@ let ChatWindowNotifier = class ChatWindowNotifier extends Disposable {
|
|
|
130
130
|
if (info.detail) {
|
|
131
131
|
return this._sanitizeOSToastText(info.detail);
|
|
132
132
|
}
|
|
133
|
-
return localize(
|
|
133
|
+
return localize(6418, "Approval needed to continue.");
|
|
134
134
|
}
|
|
135
135
|
_getPendingTerminalCommand(sessionResource) {
|
|
136
136
|
const model = this._chatService.getSession(sessionResource);
|
|
@@ -51,8 +51,8 @@ let AgentPluginRecommendations = class AgentPluginRecommendations extends Dispos
|
|
|
51
51
|
if (uninstalledCount === 0) {
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
-
this._notificationService.prompt(Severity.Info, uninstalledCount === 1 ? ( localize(
|
|
55
|
-
label: ( localize(
|
|
54
|
+
this._notificationService.prompt(Severity.Info, uninstalledCount === 1 ? ( localize(6419, "This workspace recommends 1 agent plugin.")) : ( localize(6420, "This workspace recommends {0} agent plugins.", uninstalledCount)), [{
|
|
55
|
+
label: ( localize(6421, "Show Plugins")),
|
|
56
56
|
run: () => {
|
|
57
57
|
this._extensionsWorkbenchService.openSearch("@agentPlugins @recommended");
|
|
58
58
|
}
|
|
@@ -13,8 +13,8 @@ const configurationRegistry = ( Registry.as(Extensions.Configuration));
|
|
|
13
13
|
function createDefaultModelArrays() {
|
|
14
14
|
return {
|
|
15
15
|
modelIds: [""],
|
|
16
|
-
modelLabels: [( localize(
|
|
17
|
-
modelDescriptions: [( localize(
|
|
16
|
+
modelLabels: [( localize(6422, "Auto (Vendor Default)"))],
|
|
17
|
+
modelDescriptions: [( localize(6423, "Use the vendor's default model"))]
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
let DefaultModelContribution = class DefaultModelContribution extends Disposable {
|
|
@@ -46,8 +46,8 @@ let DefaultModelContribution = class DefaultModelContribution extends Disposable
|
|
|
46
46
|
modelLabels.length = 0;
|
|
47
47
|
modelDescriptions.length = 0;
|
|
48
48
|
modelIds.push("");
|
|
49
|
-
modelLabels.push(( localize(
|
|
50
|
-
modelDescriptions.push(( localize(
|
|
49
|
+
modelLabels.push(( localize(6422, "Auto (Vendor Default)")));
|
|
50
|
+
modelDescriptions.push(( localize(6423, "Use the vendor's default model")));
|
|
51
51
|
const models = [];
|
|
52
52
|
const allModelIds = this._languageModelsService.getLanguageModelIds();
|
|
53
53
|
for (const modelId of allModelIds) {
|
|
@@ -5,16 +5,16 @@ import { WorkbenchState } from '@codingame/monaco-vscode-api/vscode/vs/platform/
|
|
|
5
5
|
import { ContributionEnablementState, isContributionDisabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
|
|
6
6
|
|
|
7
7
|
function createEnablementActions(key, enablementModel, idPrefix) {
|
|
8
|
-
return [( new Action(`${idPrefix}.enable`, ( localize(
|
|
8
|
+
return [( new Action(`${idPrefix}.enable`, ( localize(6424, "Enable")), undefined, true, () => {
|
|
9
9
|
enablementModel.setEnabled(key, ContributionEnablementState.EnabledProfile);
|
|
10
10
|
return Promise.resolve();
|
|
11
|
-
})), ( new Action(`${idPrefix}.enableForWorkspace`, ( localize(
|
|
11
|
+
})), ( new Action(`${idPrefix}.enableForWorkspace`, ( localize(6425, "Enable (Workspace)")), undefined, true, () => {
|
|
12
12
|
enablementModel.setEnabled(key, ContributionEnablementState.EnabledWorkspace);
|
|
13
13
|
return Promise.resolve();
|
|
14
|
-
})), ( new Action(`${idPrefix}.disable`, ( localize(
|
|
14
|
+
})), ( new Action(`${idPrefix}.disable`, ( localize(6426, "Disable")), undefined, true, () => {
|
|
15
15
|
enablementModel.setEnabled(key, ContributionEnablementState.DisabledProfile);
|
|
16
16
|
return Promise.resolve();
|
|
17
|
-
})), ( new Action(`${idPrefix}.disableForWorkspace`, ( localize(
|
|
17
|
+
})), ( new Action(`${idPrefix}.disableForWorkspace`, ( localize(6427, "Disable (Workspace)")), undefined, true, () => {
|
|
18
18
|
enablementModel.setEnabled(key, ContributionEnablementState.DisabledWorkspace);
|
|
19
19
|
return Promise.resolve();
|
|
20
20
|
}))];
|
|
@@ -46,8 +46,8 @@ let EnablementStatusWidget = class EnablementStatusWidget extends Disposable {
|
|
|
46
46
|
};
|
|
47
47
|
EnablementStatusWidget = ( __decorate([( __param(3, IMarkdownRendererService))], EnablementStatusWidget));
|
|
48
48
|
const pluginEnablementLabels = {
|
|
49
|
-
disabledProfile: ( localize(
|
|
50
|
-
disabledWorkspace: ( localize(
|
|
49
|
+
disabledProfile: ( localize(6428, "This plugin is disabled.")),
|
|
50
|
+
disabledWorkspace: ( localize(6429, "This plugin is disabled for this workspace."))
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
export { EnablementStatusWidget, pluginEnablementLabels };
|
|
@@ -340,7 +340,7 @@ let ChatLanguageModelsDataContribution = class ChatLanguageModelsDataContributio
|
|
|
340
340
|
},
|
|
341
341
|
settings: {
|
|
342
342
|
type: "object",
|
|
343
|
-
description: ( localize(
|
|
343
|
+
description: ( localize(6430, "Per-model settings"))
|
|
344
344
|
}
|
|
345
345
|
},
|
|
346
346
|
allOf: [...( vendors.map(vendor => ({
|
|
@@ -9,7 +9,7 @@ import { INotificationService } from "@codingame/monaco-vscode-api/vscode/vs/pla
|
|
|
9
9
|
import { IProgressService } from "@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress.service";
|
|
10
10
|
import { IQuickInputService } from "@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service";
|
|
11
11
|
import { IAgentPluginRepositoryService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginRepositoryService.service";
|
|
12
|
-
import { IUpdateAllPluginsOptions, IUpdateAllPluginsResult } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginInstallService";
|
|
12
|
+
import { IInstallPluginFromSourceOptions, IInstallPluginFromSourceResult, IUpdateAllPluginsOptions, IUpdateAllPluginsResult } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginInstallService";
|
|
13
13
|
import { IPluginInstallService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginInstallService.service";
|
|
14
14
|
import { IMarketplacePlugin } from "../common/plugins/pluginMarketplaceService.js";
|
|
15
15
|
import { IPluginMarketplaceService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.service";
|
|
@@ -27,12 +27,9 @@ export declare class PluginInstallService implements IPluginInstallService {
|
|
|
27
27
|
readonly _serviceBrand: undefined;
|
|
28
28
|
constructor(_pluginRepositoryService: IAgentPluginRepositoryService, _pluginMarketplaceService: IPluginMarketplaceService, _fileService: IFileService, _notificationService: INotificationService, _dialogService: IDialogService, _logService: ILogService, _progressService: IProgressService, _commandService: ICommandService, _quickInputService: IQuickInputService, _configurationService: IConfigurationService);
|
|
29
29
|
installPlugin(plugin: IMarketplacePlugin): Promise<void>;
|
|
30
|
-
installPluginFromSource(source: string): Promise<void>;
|
|
30
|
+
installPluginFromSource(source: string, options?: IInstallPluginFromSourceOptions): Promise<void>;
|
|
31
31
|
validatePluginSource(source: string): string | undefined;
|
|
32
|
-
installPluginFromValidatedSource(source: string): Promise<
|
|
33
|
-
success: boolean;
|
|
34
|
-
message?: string;
|
|
35
|
-
}>;
|
|
32
|
+
installPluginFromValidatedSource(source: string, options?: IInstallPluginFromSourceOptions): Promise<IInstallPluginFromSourceResult>;
|
|
36
33
|
private _doInstallFromSource;
|
|
37
34
|
private _addMarketplaceToConfig;
|
|
38
35
|
updatePlugin(plugin: IMarketplacePlugin, silent?: boolean): Promise<boolean>;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
3
|
import { Action } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
|
|
4
4
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
5
|
-
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
6
5
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
6
|
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
8
7
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
@@ -59,13 +58,13 @@ let PluginInstallService = class PluginInstallService {
|
|
|
59
58
|
}
|
|
60
59
|
return this._installGitPlugin(plugin);
|
|
61
60
|
}
|
|
62
|
-
async installPluginFromSource(source) {
|
|
61
|
+
async installPluginFromSource(source, options) {
|
|
63
62
|
const reference = parseMarketplaceReference(source);
|
|
64
63
|
if (!reference) {
|
|
65
64
|
this._notificationService.notify({
|
|
66
65
|
severity: Severity.Error,
|
|
67
66
|
message: ( localize(
|
|
68
|
-
|
|
67
|
+
6431,
|
|
69
68
|
"'{0}' is not a valid plugin source. Enter a GitHub repository (owner/repo) or a git clone URL.",
|
|
70
69
|
source
|
|
71
70
|
))
|
|
@@ -76,13 +75,13 @@ let PluginInstallService = class PluginInstallService {
|
|
|
76
75
|
this._notificationService.notify({
|
|
77
76
|
severity: Severity.Error,
|
|
78
77
|
message: ( localize(
|
|
79
|
-
|
|
78
|
+
6432,
|
|
80
79
|
"Local file paths are not supported. Enter a GitHub repository (owner/repo) or a git clone URL."
|
|
81
80
|
))
|
|
82
81
|
});
|
|
83
82
|
return;
|
|
84
83
|
}
|
|
85
|
-
const result = await this._doInstallFromSource(reference);
|
|
84
|
+
const result = await this._doInstallFromSource(reference, options);
|
|
86
85
|
if (!result.success && result.message) {
|
|
87
86
|
this._notificationService.notify({
|
|
88
87
|
severity: Severity.Error,
|
|
@@ -94,26 +93,26 @@ let PluginInstallService = class PluginInstallService {
|
|
|
94
93
|
const reference = parseMarketplaceReference(source);
|
|
95
94
|
if (!reference) {
|
|
96
95
|
return localize(
|
|
97
|
-
|
|
96
|
+
6431,
|
|
98
97
|
"'{0}' is not a valid plugin source. Enter a GitHub repository (owner/repo) or a git clone URL.",
|
|
99
98
|
source
|
|
100
99
|
);
|
|
101
100
|
}
|
|
102
101
|
if (reference.kind === MarketplaceReferenceKind.LocalFileUri) {
|
|
103
102
|
return localize(
|
|
104
|
-
|
|
103
|
+
6432,
|
|
105
104
|
"Local file paths are not supported. Enter a GitHub repository (owner/repo) or a git clone URL."
|
|
106
105
|
);
|
|
107
106
|
}
|
|
108
107
|
return undefined;
|
|
109
108
|
}
|
|
110
|
-
async installPluginFromValidatedSource(source) {
|
|
109
|
+
async installPluginFromValidatedSource(source, options) {
|
|
111
110
|
const reference = parseMarketplaceReference(source);
|
|
112
111
|
if (!reference) {
|
|
113
112
|
return {
|
|
114
113
|
success: false,
|
|
115
114
|
message: ( localize(
|
|
116
|
-
|
|
115
|
+
6431,
|
|
117
116
|
"'{0}' is not a valid plugin source. Enter a GitHub repository (owner/repo) or a git clone URL.",
|
|
118
117
|
source
|
|
119
118
|
))
|
|
@@ -123,14 +122,14 @@ let PluginInstallService = class PluginInstallService {
|
|
|
123
122
|
return {
|
|
124
123
|
success: false,
|
|
125
124
|
message: ( localize(
|
|
126
|
-
|
|
125
|
+
6432,
|
|
127
126
|
"Local file paths are not supported. Enter a GitHub repository (owner/repo) or a git clone URL."
|
|
128
127
|
))
|
|
129
128
|
};
|
|
130
129
|
}
|
|
131
|
-
return this._doInstallFromSource(reference);
|
|
130
|
+
return this._doInstallFromSource(reference, options);
|
|
132
131
|
}
|
|
133
|
-
async _doInstallFromSource(reference) {
|
|
132
|
+
async _doInstallFromSource(reference, options) {
|
|
134
133
|
const sourceDescriptor = reference.kind === MarketplaceReferenceKind.GitHubShorthand ? {
|
|
135
134
|
kind: PluginSourceKind.GitHub,
|
|
136
135
|
repo: reference.githubRepo
|
|
@@ -156,7 +155,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
156
155
|
let repoDir;
|
|
157
156
|
try {
|
|
158
157
|
repoDir = await this._pluginRepositoryService.ensurePluginSource(tempPlugin, {
|
|
159
|
-
progressTitle: ( localize(
|
|
158
|
+
progressTitle: ( localize(6433, "Cloning plugin source '{0}'...", reference.displayLabel)),
|
|
160
159
|
failureLabel: reference.displayLabel,
|
|
161
160
|
marketplaceType: MarketplaceType.OpenPlugin
|
|
162
161
|
});
|
|
@@ -165,7 +164,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
165
164
|
return {
|
|
166
165
|
success: false,
|
|
167
166
|
message: ( localize(
|
|
168
|
-
|
|
167
|
+
6434,
|
|
169
168
|
"Failed to clone plugin source '{0}': {1}",
|
|
170
169
|
reference.displayLabel,
|
|
171
170
|
detail
|
|
@@ -176,7 +175,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
176
175
|
if (!repoExists) {
|
|
177
176
|
return {
|
|
178
177
|
success: false,
|
|
179
|
-
message: ( localize(
|
|
178
|
+
message: ( localize(6435, "Failed to clone plugin source '{0}'.", reference.displayLabel))
|
|
180
179
|
};
|
|
181
180
|
}
|
|
182
181
|
const discoveredPlugins = await this._pluginMarketplaceService.readPluginsFromDirectory(repoDir, reference);
|
|
@@ -185,17 +184,35 @@ let PluginInstallService = class PluginInstallService {
|
|
|
185
184
|
return {
|
|
186
185
|
success: false,
|
|
187
186
|
message: ( localize(
|
|
188
|
-
|
|
187
|
+
6436,
|
|
189
188
|
"No plugins found in '{0}'. This does not appear to be a valid plugin marketplace.",
|
|
190
189
|
reference.displayLabel
|
|
191
190
|
))
|
|
192
191
|
};
|
|
193
192
|
}
|
|
193
|
+
if (options?.plugin) {
|
|
194
|
+
const matchedPlugin = discoveredPlugins.find(p => p.name === options.plugin);
|
|
195
|
+
if (!matchedPlugin) {
|
|
196
|
+
return {
|
|
197
|
+
success: false,
|
|
198
|
+
message: ( localize(
|
|
199
|
+
6437,
|
|
200
|
+
"Plugin '{0}' not found in '{1}'.",
|
|
201
|
+
options.plugin,
|
|
202
|
+
reference.displayLabel
|
|
203
|
+
))
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
await this._addMarketplaceToConfig(reference);
|
|
207
|
+
await this.installPlugin(matchedPlugin);
|
|
208
|
+
return {
|
|
209
|
+
success: true,
|
|
210
|
+
matchedPlugin
|
|
211
|
+
};
|
|
212
|
+
}
|
|
194
213
|
if (discoveredPlugins.length === 1) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
this._pluginMarketplaceService.addInstalledPlugin(pluginDir, plugin);
|
|
198
|
-
this._addMarketplaceToConfig(reference);
|
|
214
|
+
await this._addMarketplaceToConfig(reference);
|
|
215
|
+
await this.installPlugin(discoveredPlugins[0]);
|
|
199
216
|
return {
|
|
200
217
|
success: true
|
|
201
218
|
};
|
|
@@ -206,7 +223,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
206
223
|
plugin: p
|
|
207
224
|
})));
|
|
208
225
|
const selected = await this._quickInputService.pick(picks, {
|
|
209
|
-
placeHolder: ( localize(
|
|
226
|
+
placeHolder: ( localize(6438, "Select a plugin to install from '{0}'", reference.displayLabel)),
|
|
210
227
|
canPickMany: false
|
|
211
228
|
});
|
|
212
229
|
if (!selected) {
|
|
@@ -214,10 +231,8 @@ let PluginInstallService = class PluginInstallService {
|
|
|
214
231
|
success: false
|
|
215
232
|
};
|
|
216
233
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
this._pluginMarketplaceService.addInstalledPlugin(pluginDir, plugin);
|
|
220
|
-
this._addMarketplaceToConfig(reference);
|
|
234
|
+
await this._addMarketplaceToConfig(reference);
|
|
235
|
+
await this.installPlugin(selected.plugin);
|
|
221
236
|
return {
|
|
222
237
|
success: true
|
|
223
238
|
};
|
|
@@ -228,7 +243,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
228
243
|
if (( existingRefs.some(r => r.canonicalId === reference.canonicalId))) {
|
|
229
244
|
return;
|
|
230
245
|
}
|
|
231
|
-
this._configurationService.updateValue(
|
|
246
|
+
return this._configurationService.updateValue(
|
|
232
247
|
ChatConfiguration.PluginMarketplaces,
|
|
233
248
|
[...currentValues, reference.rawValue]
|
|
234
249
|
);
|
|
@@ -245,7 +260,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
245
260
|
});
|
|
246
261
|
}
|
|
247
262
|
async updateAllPlugins(options, token) {
|
|
248
|
-
const installed = this._pluginMarketplaceService.installedPlugins.get()
|
|
263
|
+
const installed = this._pluginMarketplaceService.installedPlugins.get();
|
|
249
264
|
if (installed.length === 0) {
|
|
250
265
|
return {
|
|
251
266
|
updatedNames: [],
|
|
@@ -366,15 +381,15 @@ let PluginInstallService = class PluginInstallService {
|
|
|
366
381
|
} else {
|
|
367
382
|
await this._progressService.withProgress({
|
|
368
383
|
location: ProgressLocation.Notification,
|
|
369
|
-
title: ( localize(
|
|
384
|
+
title: ( localize(6439, "Updating plugins..."))
|
|
370
385
|
}, doUpdate);
|
|
371
386
|
}
|
|
372
387
|
if (failedNames.length > 0) {
|
|
373
388
|
this._notificationService.notify({
|
|
374
389
|
severity: Severity.Error,
|
|
375
|
-
message: ( localize(
|
|
390
|
+
message: ( localize(6440, "Failed to update: {0}", failedNames.join(", "))),
|
|
376
391
|
actions: {
|
|
377
|
-
primary: [( new Action("showGitOutput", ( localize(
|
|
392
|
+
primary: [( new Action("showGitOutput", ( localize(6441, "Show Output")), undefined, true, () => {
|
|
378
393
|
this._commandService.executeCommand("git.showOutput");
|
|
379
394
|
}))]
|
|
380
395
|
}
|
|
@@ -383,7 +398,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
383
398
|
this._pluginMarketplaceService.clearUpdatesAvailable();
|
|
384
399
|
this._notificationService.notify({
|
|
385
400
|
severity: Severity.Info,
|
|
386
|
-
message: ( localize(
|
|
401
|
+
message: ( localize(6442, "Updated plugins: {0}", updatedNames.join(", ")))
|
|
387
402
|
});
|
|
388
403
|
} else if (!token.isCancellationRequested) {
|
|
389
404
|
this._pluginMarketplaceService.clearUpdatesAvailable();
|
|
@@ -408,16 +423,16 @@ let PluginInstallService = class PluginInstallService {
|
|
|
408
423
|
} = await this._dialogService.confirm({
|
|
409
424
|
type: "question",
|
|
410
425
|
message: ( localize(
|
|
411
|
-
|
|
426
|
+
6443,
|
|
412
427
|
"Trust Plugins from '{0}'?",
|
|
413
428
|
plugin.marketplaceReference.displayLabel
|
|
414
429
|
)),
|
|
415
430
|
detail: ( localize(
|
|
416
|
-
|
|
431
|
+
6444,
|
|
417
432
|
"Plugins can run code on your machine. Only install plugins from sources you trust.\n\nSource: {0}",
|
|
418
433
|
plugin.marketplaceReference.rawValue
|
|
419
434
|
)),
|
|
420
|
-
primaryButton: ( localize(
|
|
435
|
+
primaryButton: ( localize(6445, "&&Trust")),
|
|
421
436
|
custom: {
|
|
422
437
|
icon: Codicon.shield
|
|
423
438
|
}
|
|
@@ -431,7 +446,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
431
446
|
async _installRelativePathPlugin(plugin) {
|
|
432
447
|
try {
|
|
433
448
|
await this._pluginRepositoryService.ensureRepository(plugin.marketplaceReference, {
|
|
434
|
-
progressTitle: ( localize(
|
|
449
|
+
progressTitle: ( localize(6446, "Installing plugin '{0}'...", plugin.name)),
|
|
435
450
|
failureLabel: plugin.name,
|
|
436
451
|
marketplaceType: plugin.marketplaceType
|
|
437
452
|
});
|
|
@@ -445,7 +460,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
445
460
|
this._notificationService.notify({
|
|
446
461
|
severity: Severity.Error,
|
|
447
462
|
message: ( localize(
|
|
448
|
-
|
|
463
|
+
6447,
|
|
449
464
|
"Plugin source directory '{0}' is invalid for repository '{1}'.",
|
|
450
465
|
plugin.source,
|
|
451
466
|
plugin.marketplace
|
|
@@ -458,7 +473,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
458
473
|
this._notificationService.notify({
|
|
459
474
|
severity: Severity.Error,
|
|
460
475
|
message: ( localize(
|
|
461
|
-
|
|
476
|
+
6448,
|
|
462
477
|
"Plugin source directory '{0}' not found in repository '{1}'.",
|
|
463
478
|
plugin.source,
|
|
464
479
|
plugin.marketplace
|
|
@@ -473,7 +488,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
473
488
|
let pluginDir;
|
|
474
489
|
try {
|
|
475
490
|
pluginDir = await this._pluginRepositoryService.ensurePluginSource(plugin, {
|
|
476
|
-
progressTitle: ( localize(
|
|
491
|
+
progressTitle: ( localize(6446, "Installing plugin '{0}'...", plugin.name)),
|
|
477
492
|
failureLabel: plugin.name,
|
|
478
493
|
marketplaceType: plugin.marketplaceType
|
|
479
494
|
});
|
|
@@ -485,7 +500,7 @@ let PluginInstallService = class PluginInstallService {
|
|
|
485
500
|
this._notificationService.notify({
|
|
486
501
|
severity: Severity.Error,
|
|
487
502
|
message: ( localize(
|
|
488
|
-
|
|
503
|
+
6449,
|
|
489
504
|
"Plugin source '{0}' not found after cloning.",
|
|
490
505
|
repo.getLabel(plugin.sourceDescriptor)
|
|
491
506
|
))
|
|
@@ -36,7 +36,7 @@ function gitRevisionCacheSuffix(ref, sha) {
|
|
|
36
36
|
function showGitOutputAction(commandService) {
|
|
37
37
|
return (new Action(
|
|
38
38
|
"showGitOutput",
|
|
39
|
-
localize(
|
|
39
|
+
localize(6450, "Show Git Output"),
|
|
40
40
|
undefined,
|
|
41
41
|
true,
|
|
42
42
|
() => {
|
|
@@ -83,7 +83,7 @@ let AbstractGitPluginSource = class AbstractGitPluginSource {
|
|
|
83
83
|
await this._checkoutRevision(repoDir, descriptor, options?.failureLabel ?? label);
|
|
84
84
|
return this.getInstallUri(cacheRoot, descriptor);
|
|
85
85
|
}
|
|
86
|
-
const progressTitle = options?.progressTitle ?? ( localize(
|
|
86
|
+
const progressTitle = options?.progressTitle ?? ( localize(6451, "Cloning plugin source '{0}'...", label));
|
|
87
87
|
const failureLabel = options?.failureLabel ?? label;
|
|
88
88
|
const ref = descriptor.ref;
|
|
89
89
|
await this._cloneRepository(repoDir, this._cloneUrl(descriptor), progressTitle, failureLabel, ref);
|
|
@@ -124,7 +124,7 @@ let AbstractGitPluginSource = class AbstractGitPluginSource {
|
|
|
124
124
|
}
|
|
125
125
|
return await this._progressService.withProgress({
|
|
126
126
|
location: ProgressLocation.Notification,
|
|
127
|
-
title: ( localize(
|
|
127
|
+
title: ( localize(6452, "Updating plugin '{0}'...", updateLabel)),
|
|
128
128
|
cancellable: false
|
|
129
129
|
}, doUpdate);
|
|
130
130
|
} catch (err) {
|
|
@@ -133,7 +133,7 @@ let AbstractGitPluginSource = class AbstractGitPluginSource {
|
|
|
133
133
|
this._notificationService.notify({
|
|
134
134
|
severity: Severity.Error,
|
|
135
135
|
message: ( localize(
|
|
136
|
-
|
|
136
|
+
6453,
|
|
137
137
|
"Failed to update plugin '{0}': {1}",
|
|
138
138
|
failureLabel,
|
|
139
139
|
err?.message ?? String(err)
|
|
@@ -161,7 +161,7 @@ let AbstractGitPluginSource = class AbstractGitPluginSource {
|
|
|
161
161
|
this._notificationService.notify({
|
|
162
162
|
severity: Severity.Error,
|
|
163
163
|
message: ( localize(
|
|
164
|
-
|
|
164
|
+
6454,
|
|
165
165
|
"Failed to install plugin '{0}': {1}",
|
|
166
166
|
failureLabel,
|
|
167
167
|
err?.message ?? String(err)
|
|
@@ -189,7 +189,7 @@ let AbstractGitPluginSource = class AbstractGitPluginSource {
|
|
|
189
189
|
this._notificationService.notify({
|
|
190
190
|
severity: Severity.Error,
|
|
191
191
|
message: ( localize(
|
|
192
|
-
|
|
192
|
+
6455,
|
|
193
193
|
"Failed to checkout plugin '{0}' to requested revision: {1}",
|
|
194
194
|
failureLabel,
|
|
195
195
|
err?.message ?? String(err)
|
|
@@ -338,7 +338,7 @@ let AbstractPackagePluginSource = class AbstractPackagePluginSource {
|
|
|
338
338
|
if (!confirmed) {
|
|
339
339
|
return undefined;
|
|
340
340
|
}
|
|
341
|
-
const progressTitle = ( localize(
|
|
341
|
+
const progressTitle = ( localize(6456, "Installing {0} plugin '{1}'...", this._managerName, plugin.name));
|
|
342
342
|
const {
|
|
343
343
|
success,
|
|
344
344
|
terminal
|
|
@@ -351,7 +351,7 @@ let AbstractPackagePluginSource = class AbstractPackagePluginSource {
|
|
|
351
351
|
this._notificationService.notify({
|
|
352
352
|
severity: Severity.Error,
|
|
353
353
|
message: ( localize(
|
|
354
|
-
|
|
354
|
+
6457,
|
|
355
355
|
"{0} package '{1}' was not found after installation.",
|
|
356
356
|
this._managerName,
|
|
357
357
|
this.getLabel(plugin.sourceDescriptor)
|
|
@@ -369,9 +369,9 @@ let AbstractPackagePluginSource = class AbstractPackagePluginSource {
|
|
|
369
369
|
return (new Promise(resolve => {
|
|
370
370
|
const n = this._notificationService.notify({
|
|
371
371
|
severity: Severity.Info,
|
|
372
|
-
message: ( localize(
|
|
372
|
+
message: ( localize(6458, "Plugin '{0}' wants to run: {1}", pluginName, command)),
|
|
373
373
|
actions: {
|
|
374
|
-
primary: [( new Action("installPlugin", ( localize(
|
|
374
|
+
primary: [( new Action("installPlugin", ( localize(6459, "Install")), undefined, true, async () => resolve(true)))]
|
|
375
375
|
}
|
|
376
376
|
});
|
|
377
377
|
Event.once(n.onDidClose)(() => resolve(false));
|
|
@@ -381,9 +381,9 @@ let AbstractPackagePluginSource = class AbstractPackagePluginSource {
|
|
|
381
381
|
confirmed
|
|
382
382
|
} = await this._dialogService.confirm({
|
|
383
383
|
type: "question",
|
|
384
|
-
message: ( localize(
|
|
385
|
-
detail: ( localize(
|
|
386
|
-
primaryButton: ( localize(
|
|
384
|
+
message: ( localize(6460, "Install Plugin '{0}'?", pluginName)),
|
|
385
|
+
detail: ( localize(6461, "This will run the following command in a terminal:\n\n{0}", command)),
|
|
386
|
+
primaryButton: ( localize(6462, "&&Install"))
|
|
387
387
|
});
|
|
388
388
|
return confirmed;
|
|
389
389
|
}
|
|
@@ -397,7 +397,7 @@ let AbstractPackagePluginSource = class AbstractPackagePluginSource {
|
|
|
397
397
|
}, async () => {
|
|
398
398
|
terminal = await this._terminalService.createTerminal({
|
|
399
399
|
config: {
|
|
400
|
-
name: ( localize(
|
|
400
|
+
name: ( localize(6463, "Plugin Install")),
|
|
401
401
|
forceShellIntegration: true,
|
|
402
402
|
isTransient: true,
|
|
403
403
|
isFeatureTerminal: true
|
|
@@ -409,7 +409,7 @@ let AbstractPackagePluginSource = class AbstractPackagePluginSource {
|
|
|
409
409
|
await terminal.runCommand(command, true);
|
|
410
410
|
const exitCode = await commandResultPromise;
|
|
411
411
|
if (exitCode !== 0) {
|
|
412
|
-
throw ( new Error(( localize(
|
|
412
|
+
throw ( new Error(( localize(6464, "Command exited with code {0}", exitCode))));
|
|
413
413
|
}
|
|
414
414
|
});
|
|
415
415
|
return {
|
|
@@ -421,7 +421,7 @@ let AbstractPackagePluginSource = class AbstractPackagePluginSource {
|
|
|
421
421
|
this._notificationService.notify({
|
|
422
422
|
severity: Severity.Error,
|
|
423
423
|
message: ( localize(
|
|
424
|
-
|
|
424
|
+
6465,
|
|
425
425
|
"Plugin installation command failed: {0}",
|
|
426
426
|
err?.message ?? String(err)
|
|
427
427
|
))
|
|
@@ -2,29 +2,44 @@ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/l
|
|
|
2
2
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
3
3
|
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
4
4
|
import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
|
|
5
|
+
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
5
6
|
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
|
|
6
7
|
import { IURLHandler } from "@codingame/monaco-vscode-api/vscode/vs/platform/url/common/url";
|
|
7
8
|
import { IURLService } from "@codingame/monaco-vscode-api/vscode/vs/platform/url/common/url.service";
|
|
9
|
+
import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
|
|
8
10
|
import { IHostService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service";
|
|
9
11
|
import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
|
|
12
|
+
import { IExtensionsWorkbenchService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions.service";
|
|
10
13
|
import { IPluginInstallService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginInstallService.service";
|
|
11
14
|
/**
|
|
12
|
-
* Handles `vscode://chat-plugin/install?source=<base64
|
|
15
|
+
* Handles `vscode://chat-plugin/install?source=<base64>[&plugin=<base64>]` and
|
|
13
16
|
* `vscode://chat-plugin/add-marketplace?ref=<base64>` URLs.
|
|
14
17
|
*
|
|
15
18
|
* The `source` / `ref` query parameter is a base64-encoded `owner/repo` or
|
|
16
|
-
* git clone URL.
|
|
19
|
+
* git clone URL. When `plugin` is provided on the `/install` route, the handler
|
|
20
|
+
* targets that specific plugin within the marketplace, installs it, and opens
|
|
21
|
+
* its details in the editor. Otherwise, a confirmation dialog is shown before
|
|
22
|
+
* any action.
|
|
17
23
|
*/
|
|
18
24
|
export declare class PluginUrlHandler extends Disposable implements IWorkbenchContribution, IURLHandler {
|
|
19
25
|
private readonly _pluginInstallService;
|
|
20
26
|
private readonly _dialogService;
|
|
21
27
|
private readonly _configurationService;
|
|
28
|
+
private readonly _extensionsWorkbenchService;
|
|
22
29
|
private readonly _hostService;
|
|
23
30
|
private readonly _logService;
|
|
31
|
+
private readonly _editorService;
|
|
32
|
+
private readonly _instantiationService;
|
|
24
33
|
static readonly ID = "workbench.contrib.pluginUrlHandler";
|
|
25
|
-
constructor(urlService: IURLService, _pluginInstallService: IPluginInstallService, _dialogService: IDialogService, _configurationService: IConfigurationService, _hostService: IHostService, _logService: ILogService);
|
|
34
|
+
constructor(urlService: IURLService, _pluginInstallService: IPluginInstallService, _dialogService: IDialogService, _configurationService: IConfigurationService, _extensionsWorkbenchService: IExtensionsWorkbenchService, _hostService: IHostService, _logService: ILogService, _editorService: IEditorService, _instantiationService: IInstantiationService);
|
|
26
35
|
handleURL(uri: URI): Promise<boolean>;
|
|
27
36
|
private _handleInstall;
|
|
37
|
+
/**
|
|
38
|
+
* Handles the case where a specific plugin is targeted within a
|
|
39
|
+
* marketplace. Delegates trust and discovery to the install service,
|
|
40
|
+
* then opens the plugin details in a modal editor.
|
|
41
|
+
*/
|
|
42
|
+
private _handleInstallTargetedPlugin;
|
|
28
43
|
private _handleAddMarketplace;
|
|
29
44
|
/**
|
|
30
45
|
* Reads a query parameter and attempts to parse it as a marketplace
|
|
@@ -32,4 +47,10 @@ export declare class PluginUrlHandler extends Disposable implements IWorkbenchCo
|
|
|
32
47
|
* value so that plain-text `owner/repo` values also work in URLs.
|
|
33
48
|
*/
|
|
34
49
|
private _decodeQueryParam;
|
|
50
|
+
/**
|
|
51
|
+
* Reads a query parameter and decodes it. Tries base64-decoding first,
|
|
52
|
+
* then falls back to the raw value.
|
|
53
|
+
*/
|
|
54
|
+
private _decodeStringParam;
|
|
55
|
+
private _tryBase64Decode;
|
|
35
56
|
}
|