@codingame/monaco-vscode-chat-service-override 32.0.1 → 33.0.4
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
|
@@ -0,0 +1,2934 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
4
|
+
import { Disposable, DisposableMap, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
|
+
import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
6
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
7
|
+
import { isMacintosh } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
8
|
+
import { PolicyCategory } from '@codingame/monaco-vscode-api/vscode/vs/base/common/policy';
|
|
9
|
+
import { AgentHostOTelDbSpanExporterEnabledSettingId, AgentHostOTelOutfileSettingId, AgentHostOTelCaptureContentSettingId, AgentHostOTelOtlpEndpointSettingId, AgentHostOTelExporterTypeSettingId, AgentHostOTelEnabledSettingId, AgentHostCustomTerminalToolEnabledSettingId, AgentHostAhpJsonlLoggingSettingId, AgentHostIpcLoggingSettingId, AgentHostClaudeAgentSdkPathSettingId, AgentHostEnabledSettingId } from '../../../../platform/agentHost/common/agentService.js';
|
|
10
|
+
import '../../../../platform/networkFilter/common/networkFilterService.js';
|
|
11
|
+
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
12
|
+
import { AgentNetworkDomainSettingId } from '@codingame/monaco-vscode-katex-common/vscode/vs/platform/networkFilter/common/settings';
|
|
13
|
+
import { AgentSandboxSettingId, AgentSandboxEnabledValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/sandbox/common/settings';
|
|
14
|
+
import { registerEditorFeature } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/editorFeatures';
|
|
15
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
16
|
+
import { AccessibleViewRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/browser/accessibleViewRegistry';
|
|
17
|
+
import { registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
18
|
+
import { CommandsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands';
|
|
19
|
+
import { Extensions as Extensions$1, ConfigurationScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
|
|
20
|
+
import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
|
|
21
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
|
|
22
|
+
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
23
|
+
import { mcpGalleryServiceUrlConfig, mcpGalleryServiceEnablementConfig, mcpAppsEnabledConfig, mcpAutoStartConfig, McpAutoStartValue, mcpAccessConfig, McpAccessValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/mcp/common/mcpManagement';
|
|
24
|
+
import product from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/product';
|
|
25
|
+
import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
|
|
26
|
+
import { EditorPaneDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/editor';
|
|
27
|
+
import { Extensions as Extensions$2 } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/configuration';
|
|
28
|
+
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
29
|
+
import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
|
|
30
|
+
import { EditorExtensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
|
|
31
|
+
import { IWorkbenchAssignmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service';
|
|
32
|
+
import { ChatEntitlement } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService';
|
|
33
|
+
import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
|
|
34
|
+
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
35
|
+
import { RegisteredEditorPriority } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorResolverService';
|
|
36
|
+
import { IEditorResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorResolverService.service';
|
|
37
|
+
import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service';
|
|
38
|
+
import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
|
|
39
|
+
import { AssistedTypes, AddConfigurationType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration';
|
|
40
|
+
import { mcpDiscoverySection, allDiscoverySources, discoverySourceSettingsLabel, mcpServerSamplingSection, mcpServerCollisionBehaviorSection, McpCollisionBehavior } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpConfiguration';
|
|
41
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatAgents';
|
|
42
|
+
import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/common/widget/chatColors';
|
|
43
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes';
|
|
44
|
+
import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
|
|
45
|
+
import { ChatResponseResourceWorkbenchContribution } from '../common/widget/chatResponseResourceFileSystemProvider.js';
|
|
46
|
+
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
|
|
47
|
+
import '../common/chatService/chatServiceImpl.js';
|
|
48
|
+
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
49
|
+
import '../common/participants/chatSlashCommands.js';
|
|
50
|
+
import '../common/tools/chatArtifactsService.js';
|
|
51
|
+
import '../common/tools/chatTodoListService.js';
|
|
52
|
+
import '../common/model/chatTransferService.js';
|
|
53
|
+
import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/common/widget/chatWidgetHistoryService';
|
|
54
|
+
import { ChatConfiguration, ChatPermissionLevel, ChatNotificationMode, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
55
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
56
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelStats';
|
|
57
|
+
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
|
|
58
|
+
import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService';
|
|
59
|
+
import { agentPluginDiscoveryRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService';
|
|
60
|
+
import { ChatPromptFilesExtensionPointHandler } from '../common/promptSyntax/chatPromptFilesContribution.js';
|
|
61
|
+
import { PromptsConfig, isTildePath } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
|
|
62
|
+
import { DEFAULT_HOOK_FILE_PATHS, DEFAULT_SKILL_SOURCE_FOLDERS, SKILL_FILENAME, AGENTS_SOURCE_FOLDER, COPILOT_USER_AGENTS_SOURCE_FOLDER, CLAUDE_AGENTS_SOURCE_FOLDER, AGENT_FILE_EXTENSION, LEGACY_MODE_DEFAULT_SOURCE_FOLDER, LEGACY_MODE_FILE_EXTENSION, PROMPT_DEFAULT_SOURCE_FOLDER, PROMPT_FILE_EXTENSION, DEFAULT_INSTRUCTIONS_SOURCE_FOLDERS, INSTRUCTIONS_DEFAULT_SOURCE_FOLDER, INSTRUCTION_FILE_EXTENSION } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
|
|
63
|
+
import { PromptLanguageFeaturesProvider } from './promptSyntax/promptFileContributions.js';
|
|
64
|
+
import { HOOK_DOCUMENTATION_URL, SKILL_DOCUMENTATION_URL, AGENT_DOCUMENTATION_URL, PROMPT_DOCUMENTATION_URL, INSTRUCTIONS_DOCUMENTATION_URL, PromptsType, PromptFileSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
65
|
+
import { HOOK_SCHEMA_URI, hookFileSchema } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema';
|
|
66
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
67
|
+
import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/jsonschemas/common/jsonContributionRegistry';
|
|
68
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl';
|
|
69
|
+
import { LanguageModelToolsExtensionPointHandler } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution';
|
|
70
|
+
import './telemetry/chatModelCountTelemetry.js';
|
|
71
|
+
import { BuiltinToolsContribution } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/builtinTools/tools';
|
|
72
|
+
import { RenameToolContribution } from './tools/renameTool.js';
|
|
73
|
+
import { UsagesToolContribution } from './tools/usagesTool.js';
|
|
74
|
+
import '../common/voiceChatService.js';
|
|
75
|
+
import { registerChatAccessibilityActions } from './actions/chatAccessibilityActions.js';
|
|
76
|
+
import { PanelChatAccessibilityHelp, QuickChatAccessibilityHelp, EditsChatAccessibilityHelp, AgentChatAccessibilityHelp } from './actions/chatAccessibilityHelp.js';
|
|
77
|
+
import { ModeOpenChatGlobalAction, registerChatActions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
78
|
+
import { CodeBlockActionRendering, registerChatCodeBlockActions, registerChatCodeCompareBlockActions } from './actions/chatCodeblockActions.js';
|
|
79
|
+
import { ChatContextContributions } from '@codingame/monaco-vscode-xterm-addons-common/vscode/vs/workbench/contrib/chat/browser/actions/chatContext';
|
|
80
|
+
import { registerChatContextActions } from './actions/chatContextActions.js';
|
|
81
|
+
import { ChatCopyActionRendering, registerChatCopyActions } from './actions/chatCopyActions.js';
|
|
82
|
+
import { registerChatDeveloperActions } from './actions/chatDeveloperActions.js';
|
|
83
|
+
import { registerChatExecuteActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatExecuteActions';
|
|
84
|
+
import { registerChatFileTreeActions } from './actions/chatFileTreeActions.js';
|
|
85
|
+
import { ChatGettingStartedContribution } from './actions/chatGettingStarted.js';
|
|
86
|
+
import { registerChatExportActions } from './actions/chatImportExport.js';
|
|
87
|
+
import { registerLanguageModelActions } from './actions/chatLanguageModelActions.js';
|
|
88
|
+
import { registerChatPluginActions } from './actions/chatPluginActions.js';
|
|
89
|
+
import { registerMoveActions } from './actions/chatMoveActions.js';
|
|
90
|
+
import { registerNewChatActions } from './actions/chatNewActions.js';
|
|
91
|
+
import { registerChatPromptNavigationActions } from './actions/chatPromptNavigationActions.js';
|
|
92
|
+
import { registerChatQueueActions } from './actions/chatQueueActions.js';
|
|
93
|
+
import { registerQuickChatActions } from './actions/chatQuickInputActions.js';
|
|
94
|
+
import { ChatAgentRecommendation } from './actions/chatAgentRecommendationActions.js';
|
|
95
|
+
import { registerChatTitleActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatTitleActions';
|
|
96
|
+
import { registerChatElicitationActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatElicitationActions';
|
|
97
|
+
import { registerChatToolActions } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/actions/chatToolActions';
|
|
98
|
+
import { ChatTransferContribution } from './actions/chatTransfer.js';
|
|
99
|
+
import { registerChatOpenAgentDebugPanelAction } from './actions/chatOpenAgentDebugPanelAction.js';
|
|
100
|
+
import '../common/chatDebugServiceImpl.js';
|
|
101
|
+
import { ChatDebugEditor } from './chatDebug/chatDebugEditor.js';
|
|
102
|
+
import { PromptsDebugContribution } from './promptsDebugContribution.js';
|
|
103
|
+
import { ChatDebugEditorInput, ChatDebugEditorInputSerializer } from './chatDebug/chatDebugEditorInput.js';
|
|
104
|
+
import './agentSessions/agentSessions.contribution.js';
|
|
105
|
+
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
106
|
+
import { ChatViewId, isIChatViewViewContext, isIChatResourceViewContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
|
|
107
|
+
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
108
|
+
import './accessibility/chatAccessibilityService.js';
|
|
109
|
+
import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel';
|
|
110
|
+
import '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService';
|
|
111
|
+
import './attachments/chatAttachmentResolveService.js';
|
|
112
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
113
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
114
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
|
|
115
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
116
|
+
import { ChatInputBoxContentProvider } from './widget/input/editor/chatEditorInputContentProvider.js';
|
|
117
|
+
import { ChatEditingEditorAccessibility } from './chatEditing/chatEditingEditorAccessibility.js';
|
|
118
|
+
import { registerChatEditorActions } from './chatEditing/chatEditingEditorActions.js';
|
|
119
|
+
import { ChatEditingEditorContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys';
|
|
120
|
+
import { ChatEditingEditorOverlay } from './chatEditing/chatEditingEditorOverlay.js';
|
|
121
|
+
import './chatEditing/chatEditingServiceImpl.js';
|
|
122
|
+
import { ChatEditingNotebookFileSystemProviderContrib } from './chatEditing/notebook/chatEditingNotebookFileSystemProvider.js';
|
|
123
|
+
import { ChatEditor } from './widgetHosts/editor/chatEditor.js';
|
|
124
|
+
import { ChatEditorInput, ChatEditorInputSerializer } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditorInput';
|
|
125
|
+
import './widget/chatLayoutService.js';
|
|
126
|
+
import { ChatLanguageModelsDataContribution } from './languageModelsConfigurationService.js';
|
|
127
|
+
import './chatManagement/chatManagement.contribution.js';
|
|
128
|
+
import './aiCustomization/aiCustomizationWorkspaceService.js';
|
|
129
|
+
import './aiCustomization/customizationHarnessService.js';
|
|
130
|
+
import './aiCustomization/aiCustomizationManagement.contribution.js';
|
|
131
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
132
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
|
|
133
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
134
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
135
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
|
|
136
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
|
|
137
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/json';
|
|
138
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
|
|
139
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility';
|
|
140
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookTypes';
|
|
141
|
+
import './aiCustomization/aiCustomizationIcons.js';
|
|
142
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement';
|
|
143
|
+
import './chatOutputItemRenderer.js';
|
|
144
|
+
import { ChatExtensionPointHandler, ChatCompatibilityNotifier } from './chatParticipant.contribution.js';
|
|
145
|
+
import { ChatPasteProvidersFeature } from '@codingame/monaco-vscode-xterm-addons-common/vscode/vs/workbench/contrib/chat/browser/widget/input/editor/chatPasteProviders';
|
|
146
|
+
import './widgetHosts/chatQuick.js';
|
|
147
|
+
import { ChatResponseAccessibleView } from './accessibility/chatResponseAccessibleView.js';
|
|
148
|
+
import { ChatTerminalOutputAccessibleView } from './accessibility/chatTerminalOutputAccessibleView.js';
|
|
149
|
+
import { ChatSetupContribution, ChatTeardownContribution } from './chatSetup/chatSetupContributions.js';
|
|
150
|
+
import { HasByokModelsContribution } from './hasByokModelsContribution.js';
|
|
151
|
+
import { ChatStatusBarEntry } from './chatStatus/chatStatusEntry.js';
|
|
152
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/attachments/chatVariables';
|
|
153
|
+
import { ChatWidget } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/widget/chatWidget';
|
|
154
|
+
import { ChatDynamicVariableModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/attachments/chatDynamicVariables';
|
|
155
|
+
import { ChatImplicitContextContribution } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext';
|
|
156
|
+
import './widget/input/editor/chatInputCompletions.js';
|
|
157
|
+
import './widget/input/editor/agentHostInputCompletions.js';
|
|
158
|
+
import './widget/input/editor/chatInputEditorContrib.js';
|
|
159
|
+
import './widget/input/editor/chatInputEditorHover.js';
|
|
160
|
+
import './tools/languageModelToolsConfirmationService.js';
|
|
161
|
+
import { globalAutoApproveDescription } from './tools/languageModelToolsService.js';
|
|
162
|
+
import './tools/toolResultCompressorService.js';
|
|
163
|
+
import { ConfiguredAgentPluginDiscovery, MarketplaceAgentPluginDiscovery, ExtensionAgentPluginDiscovery, CopilotCliAgentPluginDiscovery } from '../common/plugins/agentPluginServiceImpl.js';
|
|
164
|
+
import '../common/plugins/pluginMarketplaceService.js';
|
|
165
|
+
import '../common/plugins/workspacePluginSettingsService.js';
|
|
166
|
+
import { AgentPluginRecommendations } from './claudePluginRecommendations.js';
|
|
167
|
+
import { AgentPluginEditor } from './agentPluginEditor/agentPluginEditor.js';
|
|
168
|
+
import { AgentPluginEditorInput } from './agentPluginEditor/agentPluginEditorInput.js';
|
|
169
|
+
import './agentPluginRepositoryService.js';
|
|
170
|
+
import './pluginGitCommandService.js';
|
|
171
|
+
import './pluginInstallService.js';
|
|
172
|
+
import { PluginAutoUpdate } from './pluginAutoUpdate.js';
|
|
173
|
+
import './promptSyntax/promptCodingAgentActionContribution.js';
|
|
174
|
+
import './promptSyntax/promptToolsCodeLensProvider.js';
|
|
175
|
+
import { ChatSlashCommandsContribution, ChatSessionOptionSlashCommandsContribution } from './chatSlashCommands.js';
|
|
176
|
+
import './planReviewFeedback/planReviewFeedbackEditorContribution.js';
|
|
177
|
+
import { registerPlanReviewFeedbackEditorActions } from './planReviewFeedback/planReviewFeedbackEditorActions.js';
|
|
178
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
179
|
+
import { PluginUrlHandler } from './pluginUrlHandler.js';
|
|
180
|
+
import { PromptUrlHandler } from './promptSyntax/promptUrlHandler.js';
|
|
181
|
+
import { UserToolSetsContributions, ConfigureToolSets } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/tools/toolSetsContribution';
|
|
182
|
+
import { ChatViewsWelcomeHandler } from './viewsWelcome/chatViewsWelcomeHandler.js';
|
|
183
|
+
import './widget/chatWidgetService.js';
|
|
184
|
+
import { ChatWindowNotifier } from './chatWindowNotifier.js';
|
|
185
|
+
import { ChatRepoInfoContribution } from './chatRepoInfo.js';
|
|
186
|
+
import { VALID_PROMPT_FOLDER_PATTERN } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator';
|
|
187
|
+
import './chatTipService.js';
|
|
188
|
+
import { ChatQueuePickerRendering } from './widget/input/chatQueuePickerActionItem.js';
|
|
189
|
+
import { ExploreAgentDefaultModel } from './exploreAgentDefaultModel.js';
|
|
190
|
+
import { PlanAgentDefaultModel } from './planAgentDefaultModel.js';
|
|
191
|
+
import { UtilitySmallModelContribution, UtilityModelContribution } from './utilityModelContribution.js';
|
|
192
|
+
import './chatImageCarouselService.js';
|
|
193
|
+
import { browserChatToolReferenceNames } from '../../browserView/common/browserChatToolReferenceNames.js';
|
|
194
|
+
import '../../notebook/browser/controller/chat/notebook.chat.contribution.js';
|
|
195
|
+
import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
|
|
196
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
197
|
+
|
|
198
|
+
CommandsRegistry.registerCommand("_chat.notifyQuestionCarouselAnswer", (accessor, resolveId, answers) => {
|
|
199
|
+
accessor.get(IChatService).notifyQuestionCarouselAnswer("", resolveId, answers);
|
|
200
|
+
});
|
|
201
|
+
const toolReferenceNameEnumValues = [];
|
|
202
|
+
const toolReferenceNameEnumDescriptions = [];
|
|
203
|
+
const jsonContributionRegistry = ( Registry.as(Extensions.JSONContribution));
|
|
204
|
+
jsonContributionRegistry.registerSchema(HOOK_SCHEMA_URI, hookFileSchema);
|
|
205
|
+
const configurationRegistry = ( Registry.as(Extensions$1.Configuration));
|
|
206
|
+
configurationRegistry.registerConfiguration({
|
|
207
|
+
id: "chatSidebar",
|
|
208
|
+
title: ( localize(5806, "Chat")),
|
|
209
|
+
type: "object",
|
|
210
|
+
properties: {
|
|
211
|
+
"chat.experimentalSessionsWindowOverride": {
|
|
212
|
+
type: "boolean",
|
|
213
|
+
description: ( localize(
|
|
214
|
+
5807,
|
|
215
|
+
"When true, enables sessions-window-specific behavior for extensions."
|
|
216
|
+
)),
|
|
217
|
+
default: false,
|
|
218
|
+
tags: ["experimental"],
|
|
219
|
+
agentsWindow: {
|
|
220
|
+
default: true
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
"chat.fontSize": {
|
|
224
|
+
type: "number",
|
|
225
|
+
description: ( localize(5808, "Controls the font size in pixels in chat messages.")),
|
|
226
|
+
default: 13,
|
|
227
|
+
minimum: 6,
|
|
228
|
+
maximum: 100
|
|
229
|
+
},
|
|
230
|
+
"chat.fontFamily": {
|
|
231
|
+
type: "string",
|
|
232
|
+
description: ( localize(5809, "Controls the font family in chat messages.")),
|
|
233
|
+
default: "default"
|
|
234
|
+
},
|
|
235
|
+
"chat.editor.fontSize": {
|
|
236
|
+
type: "number",
|
|
237
|
+
description: ( localize(5810, "Controls the font size in pixels in chat codeblocks.")),
|
|
238
|
+
default: isMacintosh ? 12 : 14
|
|
239
|
+
},
|
|
240
|
+
"chat.editor.fontFamily": {
|
|
241
|
+
type: "string",
|
|
242
|
+
description: ( localize(5811, "Controls the font family in chat codeblocks.")),
|
|
243
|
+
default: "default"
|
|
244
|
+
},
|
|
245
|
+
"chat.editor.fontWeight": {
|
|
246
|
+
type: "string",
|
|
247
|
+
description: ( localize(5812, "Controls the font weight in chat codeblocks.")),
|
|
248
|
+
default: "default"
|
|
249
|
+
},
|
|
250
|
+
"chat.editor.wordWrap": {
|
|
251
|
+
type: "string",
|
|
252
|
+
description: ( localize(5813, "Controls whether lines should wrap in chat codeblocks.")),
|
|
253
|
+
default: "off",
|
|
254
|
+
enum: ["on", "off"]
|
|
255
|
+
},
|
|
256
|
+
"chat.editor.lineHeight": {
|
|
257
|
+
type: "number",
|
|
258
|
+
description: ( localize(
|
|
259
|
+
5814,
|
|
260
|
+
"Controls the line height in pixels in chat codeblocks. Use 0 to compute the line height from the font size."
|
|
261
|
+
)),
|
|
262
|
+
default: 0
|
|
263
|
+
},
|
|
264
|
+
[ChatConfiguration.AgentStatusEnabled]: {
|
|
265
|
+
type: "string",
|
|
266
|
+
enum: ["hidden", "badge", "compact"],
|
|
267
|
+
enumDescriptions: [( localize(5815, "The agent status indicator is hidden from the title bar.")), ( localize(5816, "Shows the agent status as a badge next to the command center.")), ( localize(
|
|
268
|
+
5817,
|
|
269
|
+
"Replaces the command center search box with a compact agent status indicator and unified chat widget."
|
|
270
|
+
))],
|
|
271
|
+
markdownDescription: ( localize(
|
|
272
|
+
5818,
|
|
273
|
+
"Controls how the 'Agent Status' indicator appears in the title bar command center. When set to `hidden`, the indicator is not shown. Other values show the indicator and automatically enable {0}. The unread and in-progress session indicators require {1} to be enabled.",
|
|
274
|
+
"`#window.commandCenter#`",
|
|
275
|
+
"`#chat.viewSessions.enabled#`"
|
|
276
|
+
)),
|
|
277
|
+
default: "compact",
|
|
278
|
+
tags: ["experimental"]
|
|
279
|
+
},
|
|
280
|
+
[ChatConfiguration.UnifiedAgentsBar]: {
|
|
281
|
+
type: "boolean",
|
|
282
|
+
markdownDescription: ( localize(
|
|
283
|
+
5819,
|
|
284
|
+
"Replaces the command center search box with a unified chat and search widget."
|
|
285
|
+
)),
|
|
286
|
+
default: false,
|
|
287
|
+
tags: ["experimental"]
|
|
288
|
+
},
|
|
289
|
+
[ChatConfiguration.AgentSessionProjectionEnabled]: {
|
|
290
|
+
type: "boolean",
|
|
291
|
+
markdownDescription: ( localize(
|
|
292
|
+
5820,
|
|
293
|
+
"Controls whether Agent Session Projection mode is enabled for reviewing agent sessions in a focused workspace."
|
|
294
|
+
)),
|
|
295
|
+
default: false,
|
|
296
|
+
tags: ["experimental"]
|
|
297
|
+
},
|
|
298
|
+
"chat.implicitContext.enabled": {
|
|
299
|
+
type: "object",
|
|
300
|
+
description: ( localize(
|
|
301
|
+
5821,
|
|
302
|
+
"Enables automatically using the active editor as chat context for specified chat locations."
|
|
303
|
+
)),
|
|
304
|
+
additionalProperties: {
|
|
305
|
+
type: "string",
|
|
306
|
+
enum: ["never", "first", "always"],
|
|
307
|
+
description: ( localize(5822, "The value for the implicit context.")),
|
|
308
|
+
enumDescriptions: [( localize(5823, "Implicit context is never enabled.")), ( localize(5824, "Implicit context is enabled for the first interaction.")), ( localize(5825, "Implicit context is always enabled."))]
|
|
309
|
+
},
|
|
310
|
+
default: {
|
|
311
|
+
"panel": "always"
|
|
312
|
+
},
|
|
313
|
+
tags: ["experimental"],
|
|
314
|
+
experiment: {
|
|
315
|
+
mode: "startup"
|
|
316
|
+
},
|
|
317
|
+
agentsWindow: {
|
|
318
|
+
default: {
|
|
319
|
+
"panel": "never"
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
"chat.implicitContext.suggestedContext": {
|
|
324
|
+
type: "boolean",
|
|
325
|
+
markdownDescription: ( localize(
|
|
326
|
+
5826,
|
|
327
|
+
"Controls whether the new implicit context flow is shown. In Ask and Edit modes, the context will automatically be included. When using an agent, context will be suggested as an attachment. Selections are always included as context."
|
|
328
|
+
)),
|
|
329
|
+
default: true,
|
|
330
|
+
agentsWindow: {
|
|
331
|
+
default: false
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
"chat.editing.autoAcceptDelay": {
|
|
335
|
+
type: "number",
|
|
336
|
+
markdownDescription: ( localize(
|
|
337
|
+
5827,
|
|
338
|
+
"Delay after which changes made by chat are automatically accepted. Values are in seconds, `0` means disabled and `100` seconds is the maximum."
|
|
339
|
+
)),
|
|
340
|
+
default: 0,
|
|
341
|
+
minimum: 0,
|
|
342
|
+
maximum: 100
|
|
343
|
+
},
|
|
344
|
+
"chat.editing.confirmEditRequestRemoval": {
|
|
345
|
+
type: "boolean",
|
|
346
|
+
scope: ConfigurationScope.APPLICATION,
|
|
347
|
+
markdownDescription: ( localize(
|
|
348
|
+
5828,
|
|
349
|
+
"Whether to show a confirmation before removing a request and its associated edits."
|
|
350
|
+
)),
|
|
351
|
+
default: true
|
|
352
|
+
},
|
|
353
|
+
"chat.editing.confirmEditRequestRetry": {
|
|
354
|
+
type: "boolean",
|
|
355
|
+
scope: ConfigurationScope.APPLICATION,
|
|
356
|
+
markdownDescription: ( localize(
|
|
357
|
+
5829,
|
|
358
|
+
"Whether to show a confirmation before retrying a request and its associated edits."
|
|
359
|
+
)),
|
|
360
|
+
default: true
|
|
361
|
+
},
|
|
362
|
+
"chat.editing.explainChanges.enabled": {
|
|
363
|
+
type: "boolean",
|
|
364
|
+
markdownDescription: ( localize(
|
|
365
|
+
5830,
|
|
366
|
+
"Controls whether the Explain button in the Chat panel and the Explain Changes context menu in the SCM view are shown. This is an experimental feature."
|
|
367
|
+
)),
|
|
368
|
+
default: false,
|
|
369
|
+
tags: ["experimental"],
|
|
370
|
+
experiment: {
|
|
371
|
+
mode: "auto"
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
[ChatConfiguration.RevealNextChangeOnResolve]: {
|
|
375
|
+
type: "boolean",
|
|
376
|
+
markdownDescription: ( localize(
|
|
377
|
+
5831,
|
|
378
|
+
"Controls whether the editor automatically reveals the next change after keeping or undoing a chat edit."
|
|
379
|
+
)),
|
|
380
|
+
default: true
|
|
381
|
+
},
|
|
382
|
+
"chat.tips.enabled": {
|
|
383
|
+
type: "boolean",
|
|
384
|
+
scope: ConfigurationScope.APPLICATION,
|
|
385
|
+
description: ( localize(
|
|
386
|
+
5832,
|
|
387
|
+
"Controls whether tips are shown above user messages in chat. New tips are added frequently, so this is a helpful way to stay up to date with the latest features."
|
|
388
|
+
)),
|
|
389
|
+
default: true
|
|
390
|
+
},
|
|
391
|
+
"chat.upvoteAnimation": {
|
|
392
|
+
type: "string",
|
|
393
|
+
enum: ["off", "confetti", "floatingThumbs", "pulseWave", "radiantLines"],
|
|
394
|
+
enumDescriptions: [( localize(5833, "No animation is shown.")), ( localize(5834, "Shows a confetti burst animation around the thumbs up button.")), ( localize(5835, "Shows floating thumbs up icons rising from the button.")), ( localize(5836, "Shows expanding pulse rings from the button.")), ( localize(5837, "Shows radiant lines emanating from the button."))],
|
|
395
|
+
description: ( localize(
|
|
396
|
+
5838,
|
|
397
|
+
"Controls whether an animation is shown when clicking the thumbs up button on a chat response."
|
|
398
|
+
)),
|
|
399
|
+
default: "floatingThumbs"
|
|
400
|
+
},
|
|
401
|
+
"chat.experimental.detectParticipant.enabled": {
|
|
402
|
+
type: "boolean",
|
|
403
|
+
deprecationMessage: ( localize(
|
|
404
|
+
5839,
|
|
405
|
+
"This setting is deprecated. Please use `chat.detectParticipant.enabled` instead."
|
|
406
|
+
)),
|
|
407
|
+
description: ( localize(5840, "Enables chat participant autodetection for panel chat.")),
|
|
408
|
+
default: null
|
|
409
|
+
},
|
|
410
|
+
[ChatConfiguration.IncrementalRendering]: {
|
|
411
|
+
type: "boolean",
|
|
412
|
+
description: ( localize(
|
|
413
|
+
5841,
|
|
414
|
+
"Enables incremental rendering with optional block-level animation when streaming chat responses."
|
|
415
|
+
)),
|
|
416
|
+
default: false,
|
|
417
|
+
tags: ["experimental"]
|
|
418
|
+
},
|
|
419
|
+
[ChatConfiguration.IncrementalRenderingStyle]: {
|
|
420
|
+
type: "string",
|
|
421
|
+
enum: ["none", "fade", "rise", "blur", "scale", "slide", "reveal"],
|
|
422
|
+
enumDescriptions: [( localize(5842, "No animation. Content appears instantly.")), ( localize(5843, "Simple opacity fade from 0 to 1.")), ( localize(5844, "Content fades in while rising upward.")), ( localize(5845, "Content fades in from a blurred state.")), ( localize(5846, "Content scales up from slightly smaller.")), ( localize(5847, "Content slides in from the left.")), ( localize(5848, "Content reveals top-to-bottom with a soft gradient edge."))],
|
|
423
|
+
description: ( localize(5849, "Controls the animation style for incremental rendering.")),
|
|
424
|
+
default: "fade",
|
|
425
|
+
tags: ["experimental"]
|
|
426
|
+
},
|
|
427
|
+
[ChatConfiguration.IncrementalRenderingBuffering]: {
|
|
428
|
+
type: "string",
|
|
429
|
+
enum: ["off", "word", "paragraph"],
|
|
430
|
+
enumDescriptions: [( localize(5850, "Renders content immediately as tokens arrive.")), ( localize(5851, "Reveals content word by word.")), ( localize(5852, "Buffers content until a paragraph break before rendering."))],
|
|
431
|
+
description: ( localize(
|
|
432
|
+
5853,
|
|
433
|
+
"Controls how content is buffered before rendering during incremental rendering. Lower buffering levels render faster but may show incomplete sentences or partially formed markdown."
|
|
434
|
+
)),
|
|
435
|
+
default: "word",
|
|
436
|
+
tags: ["experimental"]
|
|
437
|
+
},
|
|
438
|
+
"chat.detectParticipant.enabled": {
|
|
439
|
+
type: "boolean",
|
|
440
|
+
description: ( localize(5854, "Enables chat participant autodetection for panel chat.")),
|
|
441
|
+
default: true
|
|
442
|
+
},
|
|
443
|
+
[ChatConfiguration.InlineReferencesStyle]: {
|
|
444
|
+
type: "string",
|
|
445
|
+
enum: ["box", "link"],
|
|
446
|
+
enumDescriptions: [( localize(5855, "Display file and symbol references as boxed widgets with icons.")), ( localize(
|
|
447
|
+
5856,
|
|
448
|
+
"Display file and symbol references as simple blue links without icons."
|
|
449
|
+
))],
|
|
450
|
+
description: ( localize(
|
|
451
|
+
5857,
|
|
452
|
+
"Controls how file and symbol references are displayed in chat messages."
|
|
453
|
+
)),
|
|
454
|
+
default: "box"
|
|
455
|
+
},
|
|
456
|
+
[ChatConfiguration.EditorAssociations]: {
|
|
457
|
+
type: "object",
|
|
458
|
+
markdownDescription: ( localize(
|
|
459
|
+
5858,
|
|
460
|
+
"Configure [glob patterns](https://aka.ms/vscode-glob-patterns) to editors for opening files from chat (for example `\"*.md\": \"vscode.markdown.preview.editor\"`)."
|
|
461
|
+
)),
|
|
462
|
+
additionalProperties: {
|
|
463
|
+
type: "string"
|
|
464
|
+
},
|
|
465
|
+
default: {}
|
|
466
|
+
},
|
|
467
|
+
[ChatConfiguration.NotifyWindowOnConfirmation]: {
|
|
468
|
+
type: "string",
|
|
469
|
+
enum: ["off", "windowNotFocused", "always"],
|
|
470
|
+
enumDescriptions: [( localize(5859, "Never show OS notifications for confirmations.")), ( localize(
|
|
471
|
+
5860,
|
|
472
|
+
"Show OS notifications for confirmations when the window is not focused."
|
|
473
|
+
)), ( localize(
|
|
474
|
+
5861,
|
|
475
|
+
"Always show OS notifications for confirmations, even when the window is focused."
|
|
476
|
+
))],
|
|
477
|
+
description: ( localize(
|
|
478
|
+
5862,
|
|
479
|
+
"Controls whether a chat session should present the user with an OS notification when a confirmation or question needs input. This includes a window badge as well as notification toast."
|
|
480
|
+
)),
|
|
481
|
+
default: "windowNotFocused"
|
|
482
|
+
},
|
|
483
|
+
[ChatConfiguration.AutoReply]: {
|
|
484
|
+
default: false,
|
|
485
|
+
markdownDescription: ( localize(
|
|
486
|
+
5863,
|
|
487
|
+
"Automatically skip question carousels by telling the agent that the user is not available and to use its best judgment. This is an advanced setting and can lead to unintended choices or actions based on incomplete context."
|
|
488
|
+
)),
|
|
489
|
+
type: "boolean",
|
|
490
|
+
scope: ConfigurationScope.APPLICATION_MACHINE,
|
|
491
|
+
tags: ["experimental", "advanced"]
|
|
492
|
+
},
|
|
493
|
+
[ChatConfiguration.AutopilotEnabled]: {
|
|
494
|
+
type: "boolean",
|
|
495
|
+
markdownDescription: ( localize(
|
|
496
|
+
5864,
|
|
497
|
+
"Controls whether the Autopilot mode is available in the permissions picker. When enabled, Autopilot auto-approves all tool calls and continues until the task is done."
|
|
498
|
+
)),
|
|
499
|
+
default: true,
|
|
500
|
+
tags: ["experimental"]
|
|
501
|
+
},
|
|
502
|
+
[ChatConfiguration.PlanReviewInlineEditorEnabled]: {
|
|
503
|
+
type: "boolean",
|
|
504
|
+
markdownDescription: ( localize(
|
|
505
|
+
5865,
|
|
506
|
+
"When enabled, the plan review widget mounts an editor inline, as opposed to in a separate editor tab."
|
|
507
|
+
)),
|
|
508
|
+
default: true
|
|
509
|
+
},
|
|
510
|
+
[ChatConfiguration.DefaultPermissionLevel]: {
|
|
511
|
+
type: "string",
|
|
512
|
+
enum: [
|
|
513
|
+
ChatPermissionLevel.Default,
|
|
514
|
+
ChatPermissionLevel.AutoApprove,
|
|
515
|
+
ChatPermissionLevel.Autopilot
|
|
516
|
+
],
|
|
517
|
+
enumItemLabels: [( localize(5866, "Default Approvals")), ( localize(5867, "Bypass Approvals")), ( localize(5868, "Autopilot (Preview)"))],
|
|
518
|
+
enumDescriptions: [( localize(5869, "Start new chat sessions with Default Approvals.")), ( localize(5870, "Start new chat sessions in Bypass Approvals mode.")), ( localize(5871, "Start new chat sessions in Autopilot mode."))],
|
|
519
|
+
description: ( localize(
|
|
520
|
+
5872,
|
|
521
|
+
"Controls the default permissions picker mode for new chat sessions. You can still change the permission mode per session, and each session remembers the permission mode that was used. If enterprise policy disables auto approval, new sessions use Default Approvals."
|
|
522
|
+
)),
|
|
523
|
+
default: ChatPermissionLevel.Default,
|
|
524
|
+
tags: ["experimental"]
|
|
525
|
+
},
|
|
526
|
+
[ChatConfiguration.GlobalAutoApprove]: {
|
|
527
|
+
default: false,
|
|
528
|
+
markdownDescription: globalAutoApproveDescription.value,
|
|
529
|
+
type: "boolean",
|
|
530
|
+
scope: ConfigurationScope.APPLICATION_MACHINE,
|
|
531
|
+
tags: ["experimental"],
|
|
532
|
+
policy: {
|
|
533
|
+
name: "ChatToolsAutoApprove",
|
|
534
|
+
category: PolicyCategory.InteractiveSession,
|
|
535
|
+
minimumVersion: "1.99",
|
|
536
|
+
value: policyData => policyData.chat_preview_features_enabled === false ? false : undefined,
|
|
537
|
+
localization: {
|
|
538
|
+
description: {
|
|
539
|
+
key: "autoApprove3.description",
|
|
540
|
+
value: ( localize(
|
|
541
|
+
5873,
|
|
542
|
+
"Global auto approve also known as \"YOLO mode\" disables manual approval completely for all tools in all workspaces, allowing the agent to act fully autonomously. This is extremely dangerous and is *never* recommended, even containerized environments like Codespaces and Dev Containers have user keys forwarded into the container that could be compromised.\n\nThis feature disables critical security protections and makes it much easier for an attacker to compromise the machine.\n\nNote: This setting only controls tool approval and does not prevent the agent from asking questions. To automatically answer agent questions, use the `#chat.autoReply#` setting."
|
|
543
|
+
))
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
},
|
|
548
|
+
[ChatConfiguration.SessionSyncEnabled]: {
|
|
549
|
+
default: false,
|
|
550
|
+
markdownDescription: ( localize(
|
|
551
|
+
5874,
|
|
552
|
+
"Enable session sync to GitHub.com. When enabled, Copilot session data is synced to your GitHub account for cross-device access and richer insights. Requires `#github.copilot.chat.localIndex.enabled#` to also be enabled."
|
|
553
|
+
)),
|
|
554
|
+
type: "boolean",
|
|
555
|
+
tags: ["experimental", "advanced"],
|
|
556
|
+
experiment: {
|
|
557
|
+
mode: "auto"
|
|
558
|
+
},
|
|
559
|
+
policy: {
|
|
560
|
+
name: "CopilotSessionSync",
|
|
561
|
+
category: PolicyCategory.InteractiveSession,
|
|
562
|
+
minimumVersion: "1.121",
|
|
563
|
+
value: policyData => policyData.cloud_session_storage_enabled === false ? false : undefined,
|
|
564
|
+
localization: {
|
|
565
|
+
description: {
|
|
566
|
+
key: "chat.sessionSync.enabled.policy",
|
|
567
|
+
value: ( localize(
|
|
568
|
+
5875,
|
|
569
|
+
"Enable session sync to GitHub.com for cross-device Copilot session history. When disabled by organization policy, session data is kept local only."
|
|
570
|
+
))
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
},
|
|
575
|
+
[ChatConfiguration.SessionSyncExcludeRepositories]: {
|
|
576
|
+
type: "array",
|
|
577
|
+
items: {
|
|
578
|
+
type: "string"
|
|
579
|
+
},
|
|
580
|
+
default: [],
|
|
581
|
+
markdownDescription: ( localize(
|
|
582
|
+
5876,
|
|
583
|
+
"Repository patterns to exclude from session sync. Use exact `owner/repo` names or glob patterns like `my-org/*`. Sessions from matching repositories will only be stored locally."
|
|
584
|
+
)),
|
|
585
|
+
tags: ["experimental", "advanced"]
|
|
586
|
+
},
|
|
587
|
+
[ChatConfiguration.AutoApproveEdits]: {
|
|
588
|
+
default: {
|
|
589
|
+
"**/*": true,
|
|
590
|
+
"**/.vscode/*.json": false,
|
|
591
|
+
"**/.git/**": false,
|
|
592
|
+
"**/{package.json,server.xml,build.rs,web.config,.gitattributes,.env}": false,
|
|
593
|
+
"**/*.{code-workspace,csproj,fsproj,vbproj,vcxproj,proj,targets,props}": false,
|
|
594
|
+
"**/*.lock": false,
|
|
595
|
+
"**/*-lock.{yaml,json}": false
|
|
596
|
+
},
|
|
597
|
+
markdownDescription: ( localize(
|
|
598
|
+
5877,
|
|
599
|
+
"Controls whether edits made by the agent are automatically approved. The default is to approve all edits except those made to certain files which have the potential to cause immediate unintended side-effects, such as `**/.vscode/*.json`.\n\nSet to `true` to automatically approve edits to matching files, `false` to always require explicit approval. The last pattern matching a given file will determine whether the edit is automatically approved."
|
|
600
|
+
)),
|
|
601
|
+
type: "object",
|
|
602
|
+
additionalProperties: {
|
|
603
|
+
type: "boolean"
|
|
604
|
+
}
|
|
605
|
+
},
|
|
606
|
+
[ChatConfiguration.AutoApprovedUrls]: {
|
|
607
|
+
default: {
|
|
608
|
+
"https://code.visualstudio.com": true,
|
|
609
|
+
"https://github.com/microsoft/vscode/wiki/*": true
|
|
610
|
+
},
|
|
611
|
+
markdownDescription: ( localize(
|
|
612
|
+
5878,
|
|
613
|
+
"Controls which URLs are automatically approved when requested by chat tools. Keys are URL patterns and values can be `true` to approve both requests and responses, `false` to deny, or an object with `approveRequest` and `approveResponse` properties for granular control.\n\nExamples:\n- `\"https://example.com\": true` - Approve all requests to example.com\n- `\"https://*.example.com\": true` - Approve all requests to any subdomain of example.com\n- `\"https://example.com/api/*\": { \"approveRequest\": true, \"approveResponse\": false }` - Approve requests but not responses for example.com/api paths"
|
|
614
|
+
)),
|
|
615
|
+
type: "object",
|
|
616
|
+
additionalProperties: {
|
|
617
|
+
oneOf: [{
|
|
618
|
+
type: "boolean"
|
|
619
|
+
}, {
|
|
620
|
+
type: "object",
|
|
621
|
+
properties: {
|
|
622
|
+
approveRequest: {
|
|
623
|
+
type: "boolean"
|
|
624
|
+
},
|
|
625
|
+
approveResponse: {
|
|
626
|
+
type: "boolean"
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}]
|
|
630
|
+
}
|
|
631
|
+
},
|
|
632
|
+
[ChatConfiguration.EligibleForAutoApproval]: {
|
|
633
|
+
default: {},
|
|
634
|
+
markdownDescription: ( localize(
|
|
635
|
+
5879,
|
|
636
|
+
"Controls which tools are eligible for automatic approval. Tools set to 'false' will always present a confirmation and will never offer the option to auto-approve. The default behavior (or setting a tool to 'true') may result in the tool offering auto-approval options."
|
|
637
|
+
)),
|
|
638
|
+
type: "object",
|
|
639
|
+
propertyNames: {
|
|
640
|
+
enum: toolReferenceNameEnumValues,
|
|
641
|
+
enumDescriptions: toolReferenceNameEnumDescriptions
|
|
642
|
+
},
|
|
643
|
+
additionalProperties: {
|
|
644
|
+
type: "boolean"
|
|
645
|
+
},
|
|
646
|
+
examples: [{
|
|
647
|
+
"fetch": false,
|
|
648
|
+
"runTask": false
|
|
649
|
+
}],
|
|
650
|
+
policy: {
|
|
651
|
+
name: "ChatToolsEligibleForAutoApproval",
|
|
652
|
+
category: PolicyCategory.InteractiveSession,
|
|
653
|
+
minimumVersion: "1.107",
|
|
654
|
+
localization: {
|
|
655
|
+
description: {
|
|
656
|
+
key: "chat.tools.eligibleForAutoApproval",
|
|
657
|
+
value: ( localize(
|
|
658
|
+
5879,
|
|
659
|
+
"Controls which tools are eligible for automatic approval. Tools set to 'false' will always present a confirmation and will never offer the option to auto-approve. The default behavior (or setting a tool to 'true') may result in the tool offering auto-approval options."
|
|
660
|
+
))
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
},
|
|
665
|
+
"chat.sendElementsToChat.attachImages": {
|
|
666
|
+
default: true,
|
|
667
|
+
markdownDescription: ( localize(
|
|
668
|
+
5880,
|
|
669
|
+
"Controls whether a screenshot of the selected element will be added to the chat."
|
|
670
|
+
)),
|
|
671
|
+
type: "boolean",
|
|
672
|
+
tags: ["experimental"]
|
|
673
|
+
},
|
|
674
|
+
[ChatConfiguration.ArtifactsEnabled]: {
|
|
675
|
+
default: false,
|
|
676
|
+
description: ( localize(5881, "Controls whether the artifacts view is available in chat.")),
|
|
677
|
+
type: "boolean",
|
|
678
|
+
tags: ["experimental"]
|
|
679
|
+
},
|
|
680
|
+
[ChatConfiguration.ArtifactsRulesByMimeType]: {
|
|
681
|
+
default: {
|
|
682
|
+
"image/*": {
|
|
683
|
+
groupName: "Screenshots",
|
|
684
|
+
onlyShowGroup: true
|
|
685
|
+
}
|
|
686
|
+
},
|
|
687
|
+
description: ( localize(
|
|
688
|
+
5882,
|
|
689
|
+
"Rules for extracting artifacts from tool results by MIME type. Maps MIME type patterns (e.g. 'image/*') to group configuration."
|
|
690
|
+
)),
|
|
691
|
+
type: "object",
|
|
692
|
+
additionalProperties: {
|
|
693
|
+
type: "object",
|
|
694
|
+
properties: {
|
|
695
|
+
groupName: {
|
|
696
|
+
type: "string",
|
|
697
|
+
description: ( localize(5883, "Display name for the artifact group."))
|
|
698
|
+
},
|
|
699
|
+
onlyShowGroup: {
|
|
700
|
+
type: "boolean",
|
|
701
|
+
description: ( localize(5884, "When true, show only the group header instead of individual items."))
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
required: ["groupName"]
|
|
705
|
+
},
|
|
706
|
+
tags: ["experimental"]
|
|
707
|
+
},
|
|
708
|
+
[ChatConfiguration.ArtifactsRulesByFilePath]: {
|
|
709
|
+
default: {
|
|
710
|
+
"**/*plan*.md": {
|
|
711
|
+
groupName: "Plans"
|
|
712
|
+
}
|
|
713
|
+
},
|
|
714
|
+
description: ( localize(
|
|
715
|
+
5885,
|
|
716
|
+
"Rules for extracting artifacts from written files by file path pattern. Maps glob patterns to group configuration."
|
|
717
|
+
)),
|
|
718
|
+
type: "object",
|
|
719
|
+
additionalProperties: {
|
|
720
|
+
type: "object",
|
|
721
|
+
properties: {
|
|
722
|
+
groupName: {
|
|
723
|
+
type: "string",
|
|
724
|
+
description: ( localize(5886, "Display name for the artifact group."))
|
|
725
|
+
},
|
|
726
|
+
onlyShowGroup: {
|
|
727
|
+
type: "boolean",
|
|
728
|
+
description: ( localize(5887, "When true, show only the group header instead of individual items."))
|
|
729
|
+
}
|
|
730
|
+
},
|
|
731
|
+
required: ["groupName"]
|
|
732
|
+
},
|
|
733
|
+
tags: ["experimental"]
|
|
734
|
+
},
|
|
735
|
+
[ChatConfiguration.ArtifactsRulesByMemoryFilePath]: {
|
|
736
|
+
default: {
|
|
737
|
+
"**/*plan*.md": {
|
|
738
|
+
groupName: "Plans"
|
|
739
|
+
}
|
|
740
|
+
},
|
|
741
|
+
description: ( localize(
|
|
742
|
+
5888,
|
|
743
|
+
"Rules for extracting artifacts from memory tool calls by memory file path pattern. Maps glob patterns to group configuration."
|
|
744
|
+
)),
|
|
745
|
+
type: "object",
|
|
746
|
+
additionalProperties: {
|
|
747
|
+
type: "object",
|
|
748
|
+
properties: {
|
|
749
|
+
groupName: {
|
|
750
|
+
type: "string",
|
|
751
|
+
description: ( localize(5889, "Display name for the artifact group."))
|
|
752
|
+
},
|
|
753
|
+
onlyShowGroup: {
|
|
754
|
+
type: "boolean",
|
|
755
|
+
description: ( localize(5890, "When true, show only the group header instead of individual items."))
|
|
756
|
+
}
|
|
757
|
+
},
|
|
758
|
+
required: ["groupName"]
|
|
759
|
+
},
|
|
760
|
+
tags: ["experimental"]
|
|
761
|
+
},
|
|
762
|
+
"chat.undoRequests.restoreInput": {
|
|
763
|
+
default: true,
|
|
764
|
+
markdownDescription: ( localize(
|
|
765
|
+
5891,
|
|
766
|
+
"Controls whether the input of the chat should be restored when an undo request is made. The input will be filled with the text of the request that was restored."
|
|
767
|
+
)),
|
|
768
|
+
type: "boolean"
|
|
769
|
+
},
|
|
770
|
+
"chat.editRequests": {
|
|
771
|
+
markdownDescription: ( localize(
|
|
772
|
+
5892,
|
|
773
|
+
"Enables editing of requests in the chat. This allows you to change the request content and resubmit it to the model."
|
|
774
|
+
)),
|
|
775
|
+
type: "string",
|
|
776
|
+
enum: ["inline", "hover", "input", "none"],
|
|
777
|
+
default: "inline"
|
|
778
|
+
},
|
|
779
|
+
[ChatConfiguration.ChatViewSessionsEnabled]: {
|
|
780
|
+
type: "boolean",
|
|
781
|
+
default: true,
|
|
782
|
+
description: ( localize(
|
|
783
|
+
5893,
|
|
784
|
+
"Show chat agent sessions when chat is empty or to the side when chat view is wide enough."
|
|
785
|
+
)),
|
|
786
|
+
agentsWindow: {
|
|
787
|
+
default: false
|
|
788
|
+
}
|
|
789
|
+
},
|
|
790
|
+
[ChatConfiguration.ChatViewSessionsOrientation]: {
|
|
791
|
+
type: "string",
|
|
792
|
+
enum: ["stacked", "sideBySide"],
|
|
793
|
+
enumDescriptions: [( localize(
|
|
794
|
+
5894,
|
|
795
|
+
"Display chat sessions vertically stacked above the chat input unless a chat session is visible."
|
|
796
|
+
)), ( localize(
|
|
797
|
+
5895,
|
|
798
|
+
"Display chat sessions side by side if space is sufficient, otherwise fallback to stacked above the chat input unless a chat session is visible."
|
|
799
|
+
))],
|
|
800
|
+
default: "sideBySide",
|
|
801
|
+
description: ( localize(
|
|
802
|
+
5896,
|
|
803
|
+
"Controls the orientation of the chat agent sessions view when it is shown alongside the chat."
|
|
804
|
+
))
|
|
805
|
+
},
|
|
806
|
+
[ChatConfiguration.ChatViewProgressBadgeEnabled]: {
|
|
807
|
+
type: "boolean",
|
|
808
|
+
default: false,
|
|
809
|
+
description: ( localize(
|
|
810
|
+
5897,
|
|
811
|
+
"Show a progress badge on the chat view when an agent session is in progress that is opened in that view."
|
|
812
|
+
))
|
|
813
|
+
},
|
|
814
|
+
[ChatConfiguration.ChatContextUsageEnabled]: {
|
|
815
|
+
type: "boolean",
|
|
816
|
+
default: true,
|
|
817
|
+
description: ( localize(5898, "Show the context window usage indicator in the chat input."))
|
|
818
|
+
},
|
|
819
|
+
[ChatConfiguration.ChatPersistentProgressEnabled]: {
|
|
820
|
+
type: "boolean",
|
|
821
|
+
default: product.quality !== "stable",
|
|
822
|
+
description: ( localize(5899, "Always show progress in chat."))
|
|
823
|
+
},
|
|
824
|
+
[ChatConfiguration.ProgressBorder]: {
|
|
825
|
+
type: "boolean",
|
|
826
|
+
default: true,
|
|
827
|
+
markdownDescription: ( localize(
|
|
828
|
+
5900,
|
|
829
|
+
"Show an animated gradient border around the chat input while the agent is working or thinking. When enabled and reduced motion is not enabled, this overrides {0} to be off. Has no effect when reduced motion is enabled.",
|
|
830
|
+
"`#chat.persistentProgress.enabled#`"
|
|
831
|
+
))
|
|
832
|
+
},
|
|
833
|
+
[ChatConfiguration.NotifyWindowOnResponseReceived]: {
|
|
834
|
+
type: "string",
|
|
835
|
+
enum: ["off", "windowNotFocused", "always"],
|
|
836
|
+
enumDescriptions: [( localize(5901, "Never show OS notifications for responses.")), ( localize(
|
|
837
|
+
5902,
|
|
838
|
+
"Show OS notifications for responses when the window is not focused."
|
|
839
|
+
)), ( localize(
|
|
840
|
+
5903,
|
|
841
|
+
"Always show OS notifications for responses, even when the window is focused."
|
|
842
|
+
))],
|
|
843
|
+
default: "windowNotFocused",
|
|
844
|
+
description: ( localize(
|
|
845
|
+
5904,
|
|
846
|
+
"Controls whether a chat session should present the user with an OS notification when a response is received. This includes a window badge as well as notification toast."
|
|
847
|
+
))
|
|
848
|
+
},
|
|
849
|
+
"chat.checkpoints.enabled": {
|
|
850
|
+
type: "boolean",
|
|
851
|
+
default: true,
|
|
852
|
+
description: ( localize(
|
|
853
|
+
5905,
|
|
854
|
+
"Enables checkpoints in chat. Checkpoints allow you to restore the chat to a previous state."
|
|
855
|
+
))
|
|
856
|
+
},
|
|
857
|
+
"chat.checkpoints.showFileChanges": {
|
|
858
|
+
type: "boolean",
|
|
859
|
+
description: ( localize(5906, "Controls whether to show chat checkpoint file changes.")),
|
|
860
|
+
default: false
|
|
861
|
+
},
|
|
862
|
+
[mcpAccessConfig]: {
|
|
863
|
+
type: "string",
|
|
864
|
+
description: ( localize(5907, "Controls access to installed Model Context Protocol servers.")),
|
|
865
|
+
enum: [McpAccessValue.None, McpAccessValue.Registry, McpAccessValue.All],
|
|
866
|
+
enumDescriptions: [( localize(5908, "No access to MCP servers.")), ( localize(
|
|
867
|
+
5909,
|
|
868
|
+
"Allows access to MCP servers installed from the registry that VS Code is connected to."
|
|
869
|
+
)), ( localize(5910, "Allow access to any installed MCP server."))],
|
|
870
|
+
default: McpAccessValue.All,
|
|
871
|
+
policy: {
|
|
872
|
+
name: "ChatMCP",
|
|
873
|
+
category: PolicyCategory.InteractiveSession,
|
|
874
|
+
minimumVersion: "1.99",
|
|
875
|
+
value: policyData => {
|
|
876
|
+
if (policyData.mcp === false) {
|
|
877
|
+
return McpAccessValue.None;
|
|
878
|
+
}
|
|
879
|
+
if (policyData.mcpAccess === "registry_only") {
|
|
880
|
+
return McpAccessValue.Registry;
|
|
881
|
+
}
|
|
882
|
+
return undefined;
|
|
883
|
+
},
|
|
884
|
+
localization: {
|
|
885
|
+
description: {
|
|
886
|
+
key: "chat.mcp.access",
|
|
887
|
+
value: ( localize(5907, "Controls access to installed Model Context Protocol servers."))
|
|
888
|
+
},
|
|
889
|
+
enumDescriptions: [{
|
|
890
|
+
key: "chat.mcp.access.none",
|
|
891
|
+
value: ( localize(5908, "No access to MCP servers."))
|
|
892
|
+
}, {
|
|
893
|
+
key: "chat.mcp.access.registry",
|
|
894
|
+
value: ( localize(
|
|
895
|
+
5909,
|
|
896
|
+
"Allows access to MCP servers installed from the registry that VS Code is connected to."
|
|
897
|
+
))
|
|
898
|
+
}, {
|
|
899
|
+
key: "chat.mcp.access.any",
|
|
900
|
+
value: ( localize(5910, "Allow access to any installed MCP server."))
|
|
901
|
+
}]
|
|
902
|
+
}
|
|
903
|
+
}
|
|
904
|
+
},
|
|
905
|
+
[mcpAutoStartConfig]: {
|
|
906
|
+
type: "string",
|
|
907
|
+
description: ( localize(
|
|
908
|
+
5911,
|
|
909
|
+
"Controls whether MCP servers should be automatically started when the chat messages are submitted."
|
|
910
|
+
)),
|
|
911
|
+
default: McpAutoStartValue.NewAndOutdated,
|
|
912
|
+
enum: [
|
|
913
|
+
McpAutoStartValue.Never,
|
|
914
|
+
McpAutoStartValue.OnlyNew,
|
|
915
|
+
McpAutoStartValue.NewAndOutdated
|
|
916
|
+
],
|
|
917
|
+
enumDescriptions: [( localize(5912, "Never automatically start MCP servers.")), ( localize(5913, "Only automatically start new MCP servers that have never been run.")), ( localize(
|
|
918
|
+
5914,
|
|
919
|
+
"Automatically start new and outdated MCP servers that are not yet running."
|
|
920
|
+
))],
|
|
921
|
+
tags: ["experimental"]
|
|
922
|
+
},
|
|
923
|
+
[mcpAppsEnabledConfig]: {
|
|
924
|
+
type: "boolean",
|
|
925
|
+
description: ( localize(
|
|
926
|
+
5915,
|
|
927
|
+
"Controls whether MCP servers can provide custom UI for tool invocations."
|
|
928
|
+
)),
|
|
929
|
+
default: true,
|
|
930
|
+
tags: ["experimental"]
|
|
931
|
+
},
|
|
932
|
+
[mcpServerCollisionBehaviorSection]: {
|
|
933
|
+
type: "string",
|
|
934
|
+
description: ( localize(
|
|
935
|
+
5916,
|
|
936
|
+
"Controls behavior when multiple MCP servers are discovered with the same name. 'disable' disables lower-priority duplicates. 'suffix' appends numeric suffixes to disambiguate."
|
|
937
|
+
)),
|
|
938
|
+
enum: [McpCollisionBehavior.Disable, McpCollisionBehavior.Suffix],
|
|
939
|
+
enumDescriptions: [( localize(5917, "Disable lower-priority servers with duplicate names.")), ( localize(5918, "Append numeric suffixes to servers with duplicate names."))],
|
|
940
|
+
default: McpCollisionBehavior.Disable
|
|
941
|
+
},
|
|
942
|
+
[mcpServerSamplingSection]: {
|
|
943
|
+
type: "object",
|
|
944
|
+
description: ( localize(
|
|
945
|
+
5919,
|
|
946
|
+
"Configures which models are exposed to MCP servers for sampling (making model requests in the background). This setting can be edited in a graphical way under the `{0}` command.",
|
|
947
|
+
"MCP: " + ( localize(5920, "List Servers"))
|
|
948
|
+
)),
|
|
949
|
+
scope: ConfigurationScope.RESOURCE,
|
|
950
|
+
additionalProperties: {
|
|
951
|
+
type: "object",
|
|
952
|
+
properties: {
|
|
953
|
+
allowedDuringChat: {
|
|
954
|
+
type: "boolean",
|
|
955
|
+
description: ( localize(
|
|
956
|
+
5921,
|
|
957
|
+
"Whether this server is allowed to make sampling requests during its tool calls in a chat session."
|
|
958
|
+
)),
|
|
959
|
+
default: true
|
|
960
|
+
},
|
|
961
|
+
allowedOutsideChat: {
|
|
962
|
+
type: "boolean",
|
|
963
|
+
description: ( localize(
|
|
964
|
+
5922,
|
|
965
|
+
"Whether this server is allowed to make sampling requests outside of a chat session."
|
|
966
|
+
)),
|
|
967
|
+
default: false
|
|
968
|
+
},
|
|
969
|
+
allowedModels: {
|
|
970
|
+
type: "array",
|
|
971
|
+
items: {
|
|
972
|
+
type: "string",
|
|
973
|
+
description: ( localize(5923, "A model the MCP server has access to."))
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
}
|
|
977
|
+
}
|
|
978
|
+
},
|
|
979
|
+
[AssistedTypes[AddConfigurationType.NuGetPackage].enabledConfigKey]: {
|
|
980
|
+
type: "boolean",
|
|
981
|
+
description: ( localize(
|
|
982
|
+
5924,
|
|
983
|
+
"Enables NuGet packages for AI-assisted MCP server installation. Used to install MCP servers by name from the central registry for .NET packages (NuGet.org)."
|
|
984
|
+
)),
|
|
985
|
+
default: false,
|
|
986
|
+
tags: ["experimental"],
|
|
987
|
+
experiment: {
|
|
988
|
+
mode: "startup"
|
|
989
|
+
}
|
|
990
|
+
},
|
|
991
|
+
[ChatConfiguration.ExtensionToolsEnabled]: {
|
|
992
|
+
type: "boolean",
|
|
993
|
+
description: ( localize(5925, "Enable using tools contributed by third-party extensions.")),
|
|
994
|
+
default: true,
|
|
995
|
+
policy: {
|
|
996
|
+
name: "ChatAgentExtensionTools",
|
|
997
|
+
category: PolicyCategory.InteractiveSession,
|
|
998
|
+
minimumVersion: "1.99",
|
|
999
|
+
localization: {
|
|
1000
|
+
description: {
|
|
1001
|
+
key: "chat.extensionToolsEnabled",
|
|
1002
|
+
value: ( localize(5925, "Enable using tools contributed by third-party extensions."))
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
},
|
|
1007
|
+
[ChatConfiguration.PluginsEnabled]: {
|
|
1008
|
+
type: "boolean",
|
|
1009
|
+
description: ( localize(5926, "Enable agent plugin integration in chat.")),
|
|
1010
|
+
default: true,
|
|
1011
|
+
tags: ["preview"],
|
|
1012
|
+
policy: {
|
|
1013
|
+
name: "ChatPluginsEnabled",
|
|
1014
|
+
category: PolicyCategory.InteractiveSession,
|
|
1015
|
+
minimumVersion: "1.116",
|
|
1016
|
+
localization: {
|
|
1017
|
+
description: {
|
|
1018
|
+
key: "chat.plugins.enabled",
|
|
1019
|
+
value: ( localize(5926, "Enable agent plugin integration in chat."))
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
},
|
|
1024
|
+
[ChatConfiguration.PluginLocations]: {
|
|
1025
|
+
type: "object",
|
|
1026
|
+
additionalProperties: {
|
|
1027
|
+
type: "boolean"
|
|
1028
|
+
},
|
|
1029
|
+
restricted: true,
|
|
1030
|
+
markdownDescription: ( localize(
|
|
1031
|
+
5927,
|
|
1032
|
+
"Plugin directories to discover. Each key is a path that points directly to a plugin folder, and the value enables (`true`) or disables (`false`) it. Paths can be absolute, relative to the workspace root, or start with `~/` for the user's home directory."
|
|
1033
|
+
)),
|
|
1034
|
+
scope: ConfigurationScope.MACHINE,
|
|
1035
|
+
tags: ["experimental"]
|
|
1036
|
+
},
|
|
1037
|
+
[ChatConfiguration.PluginMarketplaces]: {
|
|
1038
|
+
type: "array",
|
|
1039
|
+
items: {
|
|
1040
|
+
type: "string"
|
|
1041
|
+
},
|
|
1042
|
+
markdownDescription: ( localize(
|
|
1043
|
+
5928,
|
|
1044
|
+
"Plugin marketplaces to query. Entries may be GitHub shorthand (`owner/repo`), direct Git repository URIs (`https://...git`, `ssh://...git`, or `git@host:path.git`), or local repository URIs (`file:///...`). Equivalent GitHub shorthand and URI entries are deduplicated."
|
|
1045
|
+
)),
|
|
1046
|
+
default: ["github/copilot-plugins", "github/awesome-copilot"],
|
|
1047
|
+
scope: ConfigurationScope.APPLICATION,
|
|
1048
|
+
tags: ["experimental"]
|
|
1049
|
+
},
|
|
1050
|
+
[ChatConfiguration.AgentEnabled]: {
|
|
1051
|
+
type: "boolean",
|
|
1052
|
+
description: ( localize(
|
|
1053
|
+
5929,
|
|
1054
|
+
"When enabled, agent mode can be activated from chat and tools in agentic contexts with side effects can be used."
|
|
1055
|
+
)),
|
|
1056
|
+
default: true,
|
|
1057
|
+
order: 1,
|
|
1058
|
+
policy: {
|
|
1059
|
+
name: "ChatAgentMode",
|
|
1060
|
+
category: PolicyCategory.InteractiveSession,
|
|
1061
|
+
minimumVersion: "1.99",
|
|
1062
|
+
value: policyData => policyData.chat_agent_enabled === false ? false : undefined,
|
|
1063
|
+
localization: {
|
|
1064
|
+
description: {
|
|
1065
|
+
key: "chat.agent.enabled.description",
|
|
1066
|
+
value: ( localize(
|
|
1067
|
+
5929,
|
|
1068
|
+
"When enabled, agent mode can be activated from chat and tools in agentic contexts with side effects can be used."
|
|
1069
|
+
))
|
|
1070
|
+
}
|
|
1071
|
+
}
|
|
1072
|
+
}
|
|
1073
|
+
},
|
|
1074
|
+
[AgentNetworkDomainSettingId.NetworkFilter]: {
|
|
1075
|
+
markdownDescription: ( localize(
|
|
1076
|
+
5930,
|
|
1077
|
+
"When enabled, network access by agent tools (fetch tool, integrated browser) is restricted according to {0} and {1}. Domain filtering is also applied to those tools when {2} is enabled.",
|
|
1078
|
+
`\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``,
|
|
1079
|
+
`\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``,
|
|
1080
|
+
`\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``
|
|
1081
|
+
)),
|
|
1082
|
+
type: "boolean",
|
|
1083
|
+
default: false,
|
|
1084
|
+
restricted: true,
|
|
1085
|
+
policy: {
|
|
1086
|
+
name: "ChatAgentNetworkFilter",
|
|
1087
|
+
category: PolicyCategory.InteractiveSession,
|
|
1088
|
+
minimumVersion: "1.116",
|
|
1089
|
+
localization: {
|
|
1090
|
+
description: {
|
|
1091
|
+
key: "chat.agent.networkFilter",
|
|
1092
|
+
value: ( localize(
|
|
1093
|
+
5930,
|
|
1094
|
+
"When enabled, network access by agent tools (fetch tool, integrated browser) is restricted according to {0} and {1}. Domain filtering is also applied to those tools when {2} is enabled.",
|
|
1095
|
+
`\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``,
|
|
1096
|
+
`\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``,
|
|
1097
|
+
`\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``
|
|
1098
|
+
))
|
|
1099
|
+
}
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
},
|
|
1103
|
+
[AgentNetworkDomainSettingId.AllowedNetworkDomains]: {
|
|
1104
|
+
markdownDescription: ( localize(
|
|
1105
|
+
5931,
|
|
1106
|
+
"Allowed domains for network access by agent tools (fetch tool, integrated browser). Applies when {0} or {1} is enabled. When {1} is set to {2}, all domains are allowed. Supports wildcards like {3}. When both allowed and denied lists are empty, all domains are blocked. Denied domains (see {4}) take precedence.",
|
|
1107
|
+
`\`#${AgentNetworkDomainSettingId.NetworkFilter}#\``,
|
|
1108
|
+
`\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``,
|
|
1109
|
+
`\`${AgentSandboxEnabledValue.AllowNetwork}\``,
|
|
1110
|
+
"`*.example.com`",
|
|
1111
|
+
`\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``
|
|
1112
|
+
)),
|
|
1113
|
+
type: "array",
|
|
1114
|
+
items: {
|
|
1115
|
+
type: "string"
|
|
1116
|
+
},
|
|
1117
|
+
default: [],
|
|
1118
|
+
restricted: true,
|
|
1119
|
+
policy: {
|
|
1120
|
+
name: "ChatAgentAllowedNetworkDomains",
|
|
1121
|
+
category: PolicyCategory.InteractiveSession,
|
|
1122
|
+
minimumVersion: "1.116",
|
|
1123
|
+
localization: {
|
|
1124
|
+
description: {
|
|
1125
|
+
key: "chat.agent.allowedNetworkDomains",
|
|
1126
|
+
value: ( localize(
|
|
1127
|
+
5931,
|
|
1128
|
+
"Allowed domains for network access by agent tools (fetch tool, integrated browser). Applies when {0} or {1} is enabled. When {1} is set to {2}, all domains are allowed. Supports wildcards like {3}. When both allowed and denied lists are empty, all domains are blocked. Denied domains (see {4}) take precedence.",
|
|
1129
|
+
`\`#${AgentNetworkDomainSettingId.NetworkFilter}#\``,
|
|
1130
|
+
`\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``,
|
|
1131
|
+
`\`${AgentSandboxEnabledValue.AllowNetwork}\``,
|
|
1132
|
+
"`*.example.com`",
|
|
1133
|
+
`\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``
|
|
1134
|
+
))
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
},
|
|
1139
|
+
[AgentNetworkDomainSettingId.DeniedNetworkDomains]: {
|
|
1140
|
+
markdownDescription: ( localize(
|
|
1141
|
+
5932,
|
|
1142
|
+
"Denied domains for network access by agent tools (fetch tool, integrated browser). Applies when {0} or {1} is enabled. This does not apply when {1} is set to {2}. Takes precedence over {3}. Supports wildcards like {4}.",
|
|
1143
|
+
`\`#${AgentNetworkDomainSettingId.NetworkFilter}#\``,
|
|
1144
|
+
`\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``,
|
|
1145
|
+
`\`${AgentSandboxEnabledValue.AllowNetwork}\``,
|
|
1146
|
+
`\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``,
|
|
1147
|
+
"`*.example.com`"
|
|
1148
|
+
)),
|
|
1149
|
+
type: "array",
|
|
1150
|
+
items: {
|
|
1151
|
+
type: "string"
|
|
1152
|
+
},
|
|
1153
|
+
default: [],
|
|
1154
|
+
restricted: true,
|
|
1155
|
+
policy: {
|
|
1156
|
+
name: "ChatAgentDeniedNetworkDomains",
|
|
1157
|
+
category: PolicyCategory.InteractiveSession,
|
|
1158
|
+
minimumVersion: "1.116",
|
|
1159
|
+
localization: {
|
|
1160
|
+
description: {
|
|
1161
|
+
key: "chat.agent.deniedNetworkDomains",
|
|
1162
|
+
value: ( localize(
|
|
1163
|
+
5932,
|
|
1164
|
+
"Denied domains for network access by agent tools (fetch tool, integrated browser). Applies when {0} or {1} is enabled. This does not apply when {1} is set to {2}. Takes precedence over {3}. Supports wildcards like {4}.",
|
|
1165
|
+
`\`#${AgentNetworkDomainSettingId.NetworkFilter}#\``,
|
|
1166
|
+
`\`#${AgentSandboxSettingId.AgentSandboxEnabled}#\``,
|
|
1167
|
+
`\`${AgentSandboxEnabledValue.AllowNetwork}\``,
|
|
1168
|
+
`\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``,
|
|
1169
|
+
"`*.example.com`"
|
|
1170
|
+
))
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
},
|
|
1175
|
+
[AgentNetworkDomainSettingId.DeprecatedOldAllowedNetworkDomains]: {
|
|
1176
|
+
type: "array",
|
|
1177
|
+
items: {
|
|
1178
|
+
type: "string"
|
|
1179
|
+
},
|
|
1180
|
+
deprecated: true,
|
|
1181
|
+
markdownDeprecationMessage: ( localize(
|
|
1182
|
+
5933,
|
|
1183
|
+
"Use {0} instead",
|
|
1184
|
+
`\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``
|
|
1185
|
+
))
|
|
1186
|
+
},
|
|
1187
|
+
[AgentNetworkDomainSettingId.DeprecatedOldDeniedNetworkDomains]: {
|
|
1188
|
+
type: "array",
|
|
1189
|
+
items: {
|
|
1190
|
+
type: "string"
|
|
1191
|
+
},
|
|
1192
|
+
deprecated: true,
|
|
1193
|
+
markdownDeprecationMessage: ( localize(
|
|
1194
|
+
5934,
|
|
1195
|
+
"Use {0} instead",
|
|
1196
|
+
`\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``
|
|
1197
|
+
))
|
|
1198
|
+
},
|
|
1199
|
+
[AgentNetworkDomainSettingId.DeprecatedSandboxAllowedNetworkDomains]: {
|
|
1200
|
+
type: "array",
|
|
1201
|
+
items: {
|
|
1202
|
+
type: "string"
|
|
1203
|
+
},
|
|
1204
|
+
deprecated: true,
|
|
1205
|
+
markdownDeprecationMessage: ( localize(
|
|
1206
|
+
5935,
|
|
1207
|
+
"Use {0} instead",
|
|
1208
|
+
`\`#${AgentNetworkDomainSettingId.AllowedNetworkDomains}#\``
|
|
1209
|
+
))
|
|
1210
|
+
},
|
|
1211
|
+
[AgentNetworkDomainSettingId.DeprecatedSandboxDeniedNetworkDomains]: {
|
|
1212
|
+
type: "array",
|
|
1213
|
+
items: {
|
|
1214
|
+
type: "string"
|
|
1215
|
+
},
|
|
1216
|
+
deprecated: true,
|
|
1217
|
+
markdownDeprecationMessage: ( localize(
|
|
1218
|
+
5936,
|
|
1219
|
+
"Use {0} instead",
|
|
1220
|
+
`\`#${AgentNetworkDomainSettingId.DeniedNetworkDomains}#\``
|
|
1221
|
+
))
|
|
1222
|
+
},
|
|
1223
|
+
[ChatConfiguration.DefaultNewSessionMode]: {
|
|
1224
|
+
type: "string",
|
|
1225
|
+
description: ( localize(
|
|
1226
|
+
5937,
|
|
1227
|
+
"The default mode for new chat sessions. When empty, the chat view's default mode is used."
|
|
1228
|
+
)),
|
|
1229
|
+
default: ""
|
|
1230
|
+
},
|
|
1231
|
+
[AgentHostEnabledSettingId]: {
|
|
1232
|
+
type: "boolean",
|
|
1233
|
+
description: ( localize(5938, "When enabled, some agents run in a separate agent host process.")),
|
|
1234
|
+
default: false,
|
|
1235
|
+
tags: ["experimental", "advanced"],
|
|
1236
|
+
included: product.quality !== "stable"
|
|
1237
|
+
},
|
|
1238
|
+
[AgentHostClaudeAgentSdkPathSettingId]: {
|
|
1239
|
+
type: "string",
|
|
1240
|
+
description: ( localize(
|
|
1241
|
+
5939,
|
|
1242
|
+
"Experimental, for local testing only. Absolute path to a locally-installed `@anthropic-ai/claude-agent-sdk` package. When set, the Claude agent provider is registered inside the agent host and the SDK is loaded from this path. Requires `#chat.agentHost.enabled#`. The agent host process must be restarted for changes to take effect. This setting will be removed once the SDK is delivered through the Extension Marketplace."
|
|
1243
|
+
)),
|
|
1244
|
+
default: "",
|
|
1245
|
+
tags: ["experimental", "advanced"],
|
|
1246
|
+
included: product.quality !== "stable"
|
|
1247
|
+
},
|
|
1248
|
+
[AgentHostIpcLoggingSettingId]: {
|
|
1249
|
+
type: "boolean",
|
|
1250
|
+
description: ( localize(
|
|
1251
|
+
5940,
|
|
1252
|
+
"When enabled, logs all IPC traffic for each agent host to a dedicated output channel."
|
|
1253
|
+
)),
|
|
1254
|
+
default: product.quality !== "stable",
|
|
1255
|
+
tags: ["experimental", "advanced"],
|
|
1256
|
+
included: product.quality !== "stable"
|
|
1257
|
+
},
|
|
1258
|
+
[AgentHostAhpJsonlLoggingSettingId]: {
|
|
1259
|
+
type: "boolean",
|
|
1260
|
+
description: ( localize(
|
|
1261
|
+
5941,
|
|
1262
|
+
"When enabled, logs all AHP transport messages for agent host connections to JSONL files under the window's log directory."
|
|
1263
|
+
)),
|
|
1264
|
+
default: product.quality !== "stable",
|
|
1265
|
+
tags: ["experimental", "advanced"],
|
|
1266
|
+
included: product.quality !== "stable"
|
|
1267
|
+
},
|
|
1268
|
+
[AgentHostCustomTerminalToolEnabledSettingId]: {
|
|
1269
|
+
type: "boolean",
|
|
1270
|
+
description: ( localize(
|
|
1271
|
+
5942,
|
|
1272
|
+
"When enabled, Copilot SDK sessions use the Agent Host terminal tool override instead of the SDK's default terminal behavior."
|
|
1273
|
+
)),
|
|
1274
|
+
default: true,
|
|
1275
|
+
tags: ["experimental", "advanced"],
|
|
1276
|
+
included: product.quality !== "stable"
|
|
1277
|
+
},
|
|
1278
|
+
[AgentHostOTelEnabledSettingId]: {
|
|
1279
|
+
type: "boolean",
|
|
1280
|
+
description: ( localize(
|
|
1281
|
+
5943,
|
|
1282
|
+
"When enabled, the agent host emits OpenTelemetry traces from the Copilot SDK. Requires `#chat.agentHost.enabled#`. Either configure `#chat.agentHost.otel.otlpEndpoint#` to ship traces to an external collector or enable `#chat.agentHost.otel.dbSpanExporter.enabled#` to capture them locally."
|
|
1283
|
+
)),
|
|
1284
|
+
default: false,
|
|
1285
|
+
tags: ["experimental", "advanced"],
|
|
1286
|
+
included: product.quality !== "stable"
|
|
1287
|
+
},
|
|
1288
|
+
[AgentHostOTelExporterTypeSettingId]: {
|
|
1289
|
+
type: "string",
|
|
1290
|
+
enum: ["otlp-http", "otlp-grpc", "console", "file"],
|
|
1291
|
+
description: ( localize(
|
|
1292
|
+
5944,
|
|
1293
|
+
"Exporter backend used by the Copilot SDK when `#chat.agentHost.otel.enabled#` is on. `otlp-grpc` is downgraded to `otlp-http` transparently in the CLI runtime."
|
|
1294
|
+
)),
|
|
1295
|
+
default: "otlp-http",
|
|
1296
|
+
tags: ["experimental", "advanced"],
|
|
1297
|
+
included: product.quality !== "stable"
|
|
1298
|
+
},
|
|
1299
|
+
[AgentHostOTelOtlpEndpointSettingId]: {
|
|
1300
|
+
type: "string",
|
|
1301
|
+
description: ( localize(
|
|
1302
|
+
5945,
|
|
1303
|
+
"OTLP endpoint URL when exporter type is `otlp-http` or `otlp-grpc`. Sets `OTEL_EXPORTER_OTLP_ENDPOINT` inside the agent host process."
|
|
1304
|
+
)),
|
|
1305
|
+
default: "",
|
|
1306
|
+
tags: ["experimental", "advanced"],
|
|
1307
|
+
included: product.quality !== "stable"
|
|
1308
|
+
},
|
|
1309
|
+
[AgentHostOTelCaptureContentSettingId]: {
|
|
1310
|
+
type: "boolean",
|
|
1311
|
+
description: ( localize(
|
|
1312
|
+
5946,
|
|
1313
|
+
"When enabled, includes prompt and response content in OTel span attributes. Sets `OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT`. Privacy-sensitive: do not enable in environments that ship spans to shared sinks."
|
|
1314
|
+
)),
|
|
1315
|
+
default: false,
|
|
1316
|
+
tags: ["experimental", "advanced"],
|
|
1317
|
+
included: product.quality !== "stable"
|
|
1318
|
+
},
|
|
1319
|
+
[AgentHostOTelOutfileSettingId]: {
|
|
1320
|
+
type: "string",
|
|
1321
|
+
description: ( localize(
|
|
1322
|
+
5947,
|
|
1323
|
+
"Output path for span JSON lines when exporter type is `file`. Sets `COPILOT_OTEL_FILE_EXPORTER_PATH`."
|
|
1324
|
+
)),
|
|
1325
|
+
default: "",
|
|
1326
|
+
tags: ["experimental", "advanced"],
|
|
1327
|
+
included: product.quality !== "stable"
|
|
1328
|
+
},
|
|
1329
|
+
[AgentHostOTelDbSpanExporterEnabledSettingId]: {
|
|
1330
|
+
type: "boolean",
|
|
1331
|
+
description: ( localize(
|
|
1332
|
+
5948,
|
|
1333
|
+
"When enabled, the agent host persists every emitted OTel span to a local SQLite database. Spans can be inspected via the `Export Agent Host Traces Database` command. Compatible with external exporters: spans are written to SQLite *and* forwarded to the user-configured sink."
|
|
1334
|
+
)),
|
|
1335
|
+
default: false,
|
|
1336
|
+
tags: ["experimental", "advanced"],
|
|
1337
|
+
included: product.quality !== "stable"
|
|
1338
|
+
},
|
|
1339
|
+
[ChatConfiguration.AgentHostClientTools]: {
|
|
1340
|
+
type: "array",
|
|
1341
|
+
items: {
|
|
1342
|
+
type: "string"
|
|
1343
|
+
},
|
|
1344
|
+
description: ( localize(
|
|
1345
|
+
5949,
|
|
1346
|
+
"Tool reference names to expose as client-provided tools in agent host sessions."
|
|
1347
|
+
)),
|
|
1348
|
+
default: [
|
|
1349
|
+
"runTask",
|
|
1350
|
+
"getTaskOutput",
|
|
1351
|
+
"problems",
|
|
1352
|
+
"runTests",
|
|
1353
|
+
...browserChatToolReferenceNames
|
|
1354
|
+
],
|
|
1355
|
+
tags: ["experimental", "advanced"],
|
|
1356
|
+
included: product.quality !== "stable"
|
|
1357
|
+
},
|
|
1358
|
+
[ChatConfiguration.ToolConfirmationCarousel]: {
|
|
1359
|
+
type: "boolean",
|
|
1360
|
+
description: ( localize(
|
|
1361
|
+
5950,
|
|
1362
|
+
"When enabled, multiple tool confirmations are batched into a carousel above the input."
|
|
1363
|
+
)),
|
|
1364
|
+
default: product.quality !== "stable",
|
|
1365
|
+
tags: ["experimental"]
|
|
1366
|
+
},
|
|
1367
|
+
[ChatConfiguration.ToolRiskAssessmentEnabled]: {
|
|
1368
|
+
type: "boolean",
|
|
1369
|
+
description: ( localize(
|
|
1370
|
+
5951,
|
|
1371
|
+
"When enabled, terminal tool confirmations show an LLM-generated risk level (Safe / Caution / Review carefully) and a short explanation."
|
|
1372
|
+
)),
|
|
1373
|
+
default: true,
|
|
1374
|
+
experiment: {
|
|
1375
|
+
mode: "auto"
|
|
1376
|
+
}
|
|
1377
|
+
},
|
|
1378
|
+
[ChatConfiguration.ToolRiskAssessmentModel]: {
|
|
1379
|
+
type: "string",
|
|
1380
|
+
description: ( localize(
|
|
1381
|
+
5952,
|
|
1382
|
+
"The language model id used to generate tool risk assessments. Should be a small, fast model."
|
|
1383
|
+
)),
|
|
1384
|
+
default: "copilot-utility-small",
|
|
1385
|
+
tags: ["experimental", "advanced"],
|
|
1386
|
+
experiment: {
|
|
1387
|
+
mode: "auto"
|
|
1388
|
+
}
|
|
1389
|
+
},
|
|
1390
|
+
[ChatConfiguration.PlanAgentDefaultModel]: {
|
|
1391
|
+
type: "string",
|
|
1392
|
+
description: ( localize(
|
|
1393
|
+
5953,
|
|
1394
|
+
"Select the default language model to use for the Plan agent from the available providers."
|
|
1395
|
+
)),
|
|
1396
|
+
default: "",
|
|
1397
|
+
enum: PlanAgentDefaultModel.modelIds,
|
|
1398
|
+
enumItemLabels: PlanAgentDefaultModel.modelLabels,
|
|
1399
|
+
markdownEnumDescriptions: PlanAgentDefaultModel.modelDescriptions
|
|
1400
|
+
},
|
|
1401
|
+
[ChatConfiguration.ExploreAgentDefaultModel]: {
|
|
1402
|
+
type: "string",
|
|
1403
|
+
description: ( localize(
|
|
1404
|
+
5954,
|
|
1405
|
+
"Select the default language model to use for the Explore subagent from the available providers."
|
|
1406
|
+
)),
|
|
1407
|
+
default: "",
|
|
1408
|
+
enum: ExploreAgentDefaultModel.modelIds,
|
|
1409
|
+
enumItemLabels: ExploreAgentDefaultModel.modelLabels,
|
|
1410
|
+
markdownEnumDescriptions: ExploreAgentDefaultModel.modelDescriptions
|
|
1411
|
+
},
|
|
1412
|
+
[ChatConfiguration.UtilityModel]: {
|
|
1413
|
+
type: "string",
|
|
1414
|
+
description: ( localize(
|
|
1415
|
+
5955,
|
|
1416
|
+
"Override the language model used by built-in utility flows (titles, summaries, fallback responses, etc.). Leave empty to use the default model."
|
|
1417
|
+
)),
|
|
1418
|
+
default: "",
|
|
1419
|
+
enum: UtilityModelContribution.modelIds,
|
|
1420
|
+
enumItemLabels: UtilityModelContribution.modelLabels,
|
|
1421
|
+
markdownEnumDescriptions: UtilityModelContribution.modelDescriptions
|
|
1422
|
+
},
|
|
1423
|
+
[ChatConfiguration.UtilitySmallModel]: {
|
|
1424
|
+
type: "string",
|
|
1425
|
+
description: ( localize(
|
|
1426
|
+
5956,
|
|
1427
|
+
"Override the language model used by built-in small/fast utility flows (commit messages, intent detection, inline-chat progress, etc.). A fast and inexpensive model is recommended. Leave empty to use the default model."
|
|
1428
|
+
)),
|
|
1429
|
+
default: "",
|
|
1430
|
+
enum: UtilitySmallModelContribution.modelIds,
|
|
1431
|
+
enumItemLabels: UtilitySmallModelContribution.modelLabels,
|
|
1432
|
+
markdownEnumDescriptions: UtilitySmallModelContribution.modelDescriptions
|
|
1433
|
+
},
|
|
1434
|
+
[ChatConfiguration.RequestQueueingDefaultAction]: {
|
|
1435
|
+
type: "string",
|
|
1436
|
+
enum: ["queue", "steer"],
|
|
1437
|
+
enumDescriptions: [( localize(5957, "Queue the message to send after the current request completes.")), ( localize(
|
|
1438
|
+
5958,
|
|
1439
|
+
"Steer the current request by sending the message immediately, signaling the current request to yield."
|
|
1440
|
+
))],
|
|
1441
|
+
description: ( localize(
|
|
1442
|
+
5959,
|
|
1443
|
+
"Controls which action is the default for the queue button when a request is in progress."
|
|
1444
|
+
)),
|
|
1445
|
+
default: "steer"
|
|
1446
|
+
},
|
|
1447
|
+
[ChatConfiguration.EditModeHidden]: {
|
|
1448
|
+
type: "boolean",
|
|
1449
|
+
description: ( localize(5960, "When enabled, hides the Edit mode from the chat mode picker.")),
|
|
1450
|
+
default: true,
|
|
1451
|
+
tags: ["experimental"],
|
|
1452
|
+
experiment: {
|
|
1453
|
+
mode: "auto"
|
|
1454
|
+
},
|
|
1455
|
+
policy: {
|
|
1456
|
+
name: "DeprecatedEditModeHidden",
|
|
1457
|
+
category: PolicyCategory.InteractiveSession,
|
|
1458
|
+
minimumVersion: "1.112",
|
|
1459
|
+
localization: {
|
|
1460
|
+
description: {
|
|
1461
|
+
key: "chat.editMode.hidden",
|
|
1462
|
+
value: ( localize(5960, "When enabled, hides the Edit mode from the chat mode picker."))
|
|
1463
|
+
}
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
},
|
|
1467
|
+
[ChatConfiguration.EnableMath]: {
|
|
1468
|
+
type: "boolean",
|
|
1469
|
+
description: ( localize(5961, "Enable math rendering in chat responses using KaTeX.")),
|
|
1470
|
+
default: true
|
|
1471
|
+
},
|
|
1472
|
+
[ChatConfiguration.ShowCodeBlockProgressAnimation]: {
|
|
1473
|
+
type: "boolean",
|
|
1474
|
+
description: ( localize(
|
|
1475
|
+
5962,
|
|
1476
|
+
"When applying edits, show a progress animation in the code block pill. If disabled, shows the progress percentage instead."
|
|
1477
|
+
)),
|
|
1478
|
+
default: true,
|
|
1479
|
+
tags: ["experimental"]
|
|
1480
|
+
},
|
|
1481
|
+
[mcpDiscoverySection]: {
|
|
1482
|
+
type: "object",
|
|
1483
|
+
properties: Object.fromEntries(( allDiscoverySources.map(k => [k, {
|
|
1484
|
+
type: "boolean",
|
|
1485
|
+
description: discoverySourceSettingsLabel[k]
|
|
1486
|
+
}]))),
|
|
1487
|
+
additionalProperties: false,
|
|
1488
|
+
default: Object.fromEntries(( allDiscoverySources.map(k => [k, false]))),
|
|
1489
|
+
markdownDescription: ( localize(
|
|
1490
|
+
5963,
|
|
1491
|
+
"Configures discovery of Model Context Protocol servers from configuration from various other applications."
|
|
1492
|
+
))
|
|
1493
|
+
},
|
|
1494
|
+
[mcpGalleryServiceEnablementConfig]: {
|
|
1495
|
+
type: "boolean",
|
|
1496
|
+
default: false,
|
|
1497
|
+
tags: ["preview"],
|
|
1498
|
+
description: ( localize(
|
|
1499
|
+
5964,
|
|
1500
|
+
"Enables the default Marketplace for Model Context Protocol (MCP) servers."
|
|
1501
|
+
)),
|
|
1502
|
+
included: product.quality === "stable"
|
|
1503
|
+
},
|
|
1504
|
+
[mcpGalleryServiceUrlConfig]: {
|
|
1505
|
+
type: "string",
|
|
1506
|
+
description: ( localize(5965, "Configure the MCP Gallery service URL to connect to")),
|
|
1507
|
+
default: "",
|
|
1508
|
+
scope: ConfigurationScope.APPLICATION,
|
|
1509
|
+
tags: ["usesOnlineServices", "advanced"],
|
|
1510
|
+
included: false,
|
|
1511
|
+
policy: {
|
|
1512
|
+
name: "McpGalleryServiceUrl",
|
|
1513
|
+
category: PolicyCategory.InteractiveSession,
|
|
1514
|
+
minimumVersion: "1.101",
|
|
1515
|
+
value: policyData => policyData.mcpRegistryUrl,
|
|
1516
|
+
localization: {
|
|
1517
|
+
description: {
|
|
1518
|
+
key: "mcp.gallery.serviceUrl",
|
|
1519
|
+
value: ( localize(5965, "Configure the MCP Gallery service URL to connect to"))
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
},
|
|
1524
|
+
[PromptsConfig.INSTRUCTIONS_LOCATION_KEY]: {
|
|
1525
|
+
type: "object",
|
|
1526
|
+
title: ( localize(5966, "Instructions File Locations")),
|
|
1527
|
+
markdownDescription: ( localize(
|
|
1528
|
+
5967,
|
|
1529
|
+
"Specify location(s) of instructions files (`*{0}`) that can be attached in Chat sessions. [Learn More]({1}).\n\nRelative paths are resolved from the root folder(s) of your workspace.",
|
|
1530
|
+
INSTRUCTION_FILE_EXTENSION,
|
|
1531
|
+
INSTRUCTIONS_DOCUMENTATION_URL
|
|
1532
|
+
)),
|
|
1533
|
+
default: {
|
|
1534
|
+
...( DEFAULT_INSTRUCTIONS_SOURCE_FOLDERS.map(folder => ({
|
|
1535
|
+
[folder.path]: true
|
|
1536
|
+
}))).reduce((acc, curr) => ({
|
|
1537
|
+
...acc,
|
|
1538
|
+
...curr
|
|
1539
|
+
}), {})
|
|
1540
|
+
},
|
|
1541
|
+
additionalProperties: {
|
|
1542
|
+
type: "boolean"
|
|
1543
|
+
},
|
|
1544
|
+
propertyNames: {
|
|
1545
|
+
pattern: VALID_PROMPT_FOLDER_PATTERN,
|
|
1546
|
+
patternErrorMessage: ( localize(
|
|
1547
|
+
5968,
|
|
1548
|
+
"Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported. Glob patterns are deprecated and will be removed in future versions."
|
|
1549
|
+
))
|
|
1550
|
+
},
|
|
1551
|
+
restricted: true,
|
|
1552
|
+
tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
|
|
1553
|
+
examples: [{
|
|
1554
|
+
[DEFAULT_INSTRUCTIONS_SOURCE_FOLDERS[0].path]: true
|
|
1555
|
+
}, {
|
|
1556
|
+
[INSTRUCTIONS_DEFAULT_SOURCE_FOLDER]: true,
|
|
1557
|
+
"/Users/vscode/repos/instructions": true
|
|
1558
|
+
}]
|
|
1559
|
+
},
|
|
1560
|
+
[PromptsConfig.PROMPT_LOCATIONS_KEY]: {
|
|
1561
|
+
type: "object",
|
|
1562
|
+
title: ( localize(5969, "Prompt File Locations")),
|
|
1563
|
+
markdownDescription: ( localize(
|
|
1564
|
+
5970,
|
|
1565
|
+
"Specify location(s) of reusable prompt files (`*{0}`) that can be run in Chat sessions. [Learn More]({1}).\n\nRelative paths are resolved from the root folder(s) of your workspace.",
|
|
1566
|
+
PROMPT_FILE_EXTENSION,
|
|
1567
|
+
PROMPT_DOCUMENTATION_URL
|
|
1568
|
+
)),
|
|
1569
|
+
default: {
|
|
1570
|
+
[PROMPT_DEFAULT_SOURCE_FOLDER]: true
|
|
1571
|
+
},
|
|
1572
|
+
additionalProperties: {
|
|
1573
|
+
type: "boolean"
|
|
1574
|
+
},
|
|
1575
|
+
unevaluatedProperties: {
|
|
1576
|
+
type: "boolean"
|
|
1577
|
+
},
|
|
1578
|
+
propertyNames: {
|
|
1579
|
+
pattern: VALID_PROMPT_FOLDER_PATTERN,
|
|
1580
|
+
patternErrorMessage: ( localize(
|
|
1581
|
+
5971,
|
|
1582
|
+
"Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported. Glob patterns are deprecated and will be removed in future versions."
|
|
1583
|
+
))
|
|
1584
|
+
},
|
|
1585
|
+
restricted: true,
|
|
1586
|
+
tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
|
|
1587
|
+
examples: [{
|
|
1588
|
+
[PROMPT_DEFAULT_SOURCE_FOLDER]: true
|
|
1589
|
+
}, {
|
|
1590
|
+
[PROMPT_DEFAULT_SOURCE_FOLDER]: true,
|
|
1591
|
+
"/Users/vscode/repos/prompts": true
|
|
1592
|
+
}]
|
|
1593
|
+
},
|
|
1594
|
+
[PromptsConfig.MODE_LOCATION_KEY]: {
|
|
1595
|
+
type: "object",
|
|
1596
|
+
title: ( localize(5972, "Mode File Locations")),
|
|
1597
|
+
markdownDescription: ( localize(
|
|
1598
|
+
5973,
|
|
1599
|
+
"Specify location(s) of custom chat mode files (`*{0}`). [Learn More]({1}).\n\nRelative paths are resolved from the root folder(s) of your workspace.",
|
|
1600
|
+
LEGACY_MODE_FILE_EXTENSION,
|
|
1601
|
+
AGENT_DOCUMENTATION_URL
|
|
1602
|
+
)),
|
|
1603
|
+
default: {
|
|
1604
|
+
[LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true
|
|
1605
|
+
},
|
|
1606
|
+
deprecationMessage: ( localize(
|
|
1607
|
+
5974,
|
|
1608
|
+
"This setting is deprecated and will be removed in future releases. Chat modes are now called custom agents and are located in `.github/agents`"
|
|
1609
|
+
)),
|
|
1610
|
+
additionalProperties: {
|
|
1611
|
+
type: "boolean"
|
|
1612
|
+
},
|
|
1613
|
+
unevaluatedProperties: {
|
|
1614
|
+
type: "boolean"
|
|
1615
|
+
},
|
|
1616
|
+
restricted: true,
|
|
1617
|
+
tags: [
|
|
1618
|
+
"experimental",
|
|
1619
|
+
"prompts",
|
|
1620
|
+
"reusable prompts",
|
|
1621
|
+
"prompt snippets",
|
|
1622
|
+
"instructions"
|
|
1623
|
+
],
|
|
1624
|
+
examples: [{
|
|
1625
|
+
[LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true
|
|
1626
|
+
}, {
|
|
1627
|
+
[LEGACY_MODE_DEFAULT_SOURCE_FOLDER]: true,
|
|
1628
|
+
"/Users/vscode/repos/chatmodes": true
|
|
1629
|
+
}]
|
|
1630
|
+
},
|
|
1631
|
+
[PromptsConfig.AGENTS_LOCATION_KEY]: {
|
|
1632
|
+
type: "object",
|
|
1633
|
+
title: ( localize(5975, "Agent File Locations")),
|
|
1634
|
+
markdownDescription: ( localize(
|
|
1635
|
+
5976,
|
|
1636
|
+
"Specify location(s) of custom agent files (`*{0}`). [Learn More]({1}).\n\nRelative paths are resolved from the root folder(s) of your workspace.",
|
|
1637
|
+
AGENT_FILE_EXTENSION,
|
|
1638
|
+
AGENT_DOCUMENTATION_URL
|
|
1639
|
+
)),
|
|
1640
|
+
default: {
|
|
1641
|
+
[AGENTS_SOURCE_FOLDER]: true,
|
|
1642
|
+
[CLAUDE_AGENTS_SOURCE_FOLDER]: true,
|
|
1643
|
+
[COPILOT_USER_AGENTS_SOURCE_FOLDER]: true
|
|
1644
|
+
},
|
|
1645
|
+
additionalProperties: {
|
|
1646
|
+
type: "boolean"
|
|
1647
|
+
},
|
|
1648
|
+
propertyNames: {
|
|
1649
|
+
pattern: VALID_PROMPT_FOLDER_PATTERN,
|
|
1650
|
+
patternErrorMessage: ( localize(
|
|
1651
|
+
5977,
|
|
1652
|
+
"Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported."
|
|
1653
|
+
))
|
|
1654
|
+
},
|
|
1655
|
+
restricted: true,
|
|
1656
|
+
tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
|
|
1657
|
+
examples: [{
|
|
1658
|
+
[AGENTS_SOURCE_FOLDER]: true
|
|
1659
|
+
}, {
|
|
1660
|
+
[AGENTS_SOURCE_FOLDER]: true,
|
|
1661
|
+
"my-agents": true,
|
|
1662
|
+
"../shared-agents": true,
|
|
1663
|
+
"~/.copilot/agents": true
|
|
1664
|
+
}]
|
|
1665
|
+
},
|
|
1666
|
+
[PromptsConfig.USE_AGENT_MD]: {
|
|
1667
|
+
type: "boolean",
|
|
1668
|
+
title: ( localize(5978, "Use AGENTS.md file")),
|
|
1669
|
+
markdownDescription: ( localize(
|
|
1670
|
+
5979,
|
|
1671
|
+
"Controls whether instructions from `AGENTS.md` file found in a workspace roots are attached to all chat requests."
|
|
1672
|
+
)),
|
|
1673
|
+
default: true,
|
|
1674
|
+
restricted: true,
|
|
1675
|
+
disallowConfigurationDefault: true,
|
|
1676
|
+
tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
|
|
1677
|
+
},
|
|
1678
|
+
[PromptsConfig.USE_NESTED_AGENT_MD]: {
|
|
1679
|
+
type: "boolean",
|
|
1680
|
+
title: ( localize(5980, "Use nested AGENTS.md files")),
|
|
1681
|
+
markdownDescription: ( localize(
|
|
1682
|
+
5981,
|
|
1683
|
+
"Controls whether instructions from nested `AGENTS.md` files found in the workspace are listed in all chat requests. The language model can load these skills on-demand if the `read` tool is available."
|
|
1684
|
+
)),
|
|
1685
|
+
default: false,
|
|
1686
|
+
restricted: true,
|
|
1687
|
+
disallowConfigurationDefault: true,
|
|
1688
|
+
tags: [
|
|
1689
|
+
"experimental",
|
|
1690
|
+
"prompts",
|
|
1691
|
+
"reusable prompts",
|
|
1692
|
+
"prompt snippets",
|
|
1693
|
+
"instructions"
|
|
1694
|
+
]
|
|
1695
|
+
},
|
|
1696
|
+
[PromptsConfig.USE_CLAUDE_MD]: {
|
|
1697
|
+
type: "boolean",
|
|
1698
|
+
title: ( localize(5982, "Use CLAUDE.md file")),
|
|
1699
|
+
markdownDescription: ( localize(
|
|
1700
|
+
5983,
|
|
1701
|
+
"Controls whether instructions from `CLAUDE.md` file found in workspace roots, .claude and ~/.claude folder are attached to all chat requests."
|
|
1702
|
+
)),
|
|
1703
|
+
default: true,
|
|
1704
|
+
restricted: true,
|
|
1705
|
+
disallowConfigurationDefault: true,
|
|
1706
|
+
tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
|
|
1707
|
+
},
|
|
1708
|
+
[PromptsConfig.USE_AGENT_SKILLS]: {
|
|
1709
|
+
type: "boolean",
|
|
1710
|
+
title: ( localize(5984, "Use Agent skills")),
|
|
1711
|
+
markdownDescription: ( localize(
|
|
1712
|
+
5985,
|
|
1713
|
+
"Controls whether skills are provided as specialized capabilities to the chat requests. Skills are loaded from the folders configured in `#chat.agentSkillsLocations#`. The language model can load these skills on-demand if the `read` tool is available. Learn more about [Agent Skills](https://aka.ms/vscode-agent-skills)."
|
|
1714
|
+
)),
|
|
1715
|
+
default: true,
|
|
1716
|
+
restricted: true,
|
|
1717
|
+
disallowConfigurationDefault: true,
|
|
1718
|
+
tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
|
|
1719
|
+
},
|
|
1720
|
+
[PromptsConfig.USE_SKILL_ADHERENCE_PROMPT]: {
|
|
1721
|
+
type: "boolean",
|
|
1722
|
+
title: ( localize(5986, "Use Skill Adherence Prompt")),
|
|
1723
|
+
markdownDescription: ( localize(
|
|
1724
|
+
5987,
|
|
1725
|
+
"Controls whether a stronger skill adherence prompt is used that encourages the model to immediately invoke skills when relevant rather than just announcing them."
|
|
1726
|
+
)),
|
|
1727
|
+
default: false,
|
|
1728
|
+
restricted: true,
|
|
1729
|
+
disallowConfigurationDefault: true,
|
|
1730
|
+
tags: [
|
|
1731
|
+
"experimental",
|
|
1732
|
+
"prompts",
|
|
1733
|
+
"reusable prompts",
|
|
1734
|
+
"prompt snippets",
|
|
1735
|
+
"instructions"
|
|
1736
|
+
],
|
|
1737
|
+
experiment: {
|
|
1738
|
+
mode: "auto"
|
|
1739
|
+
}
|
|
1740
|
+
},
|
|
1741
|
+
[PromptsConfig.INCLUDE_APPLYING_INSTRUCTIONS]: {
|
|
1742
|
+
type: "boolean",
|
|
1743
|
+
title: ( localize(5988, "Include Applying Instructions")),
|
|
1744
|
+
markdownDescription: ( localize(
|
|
1745
|
+
5989,
|
|
1746
|
+
"Controls whether instructions with a matching 'applyTo' attribute are automatically included in chat requests."
|
|
1747
|
+
)),
|
|
1748
|
+
default: true,
|
|
1749
|
+
restricted: true,
|
|
1750
|
+
disallowConfigurationDefault: true,
|
|
1751
|
+
tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
|
|
1752
|
+
},
|
|
1753
|
+
[PromptsConfig.INCLUDE_REFERENCED_INSTRUCTIONS]: {
|
|
1754
|
+
type: "boolean",
|
|
1755
|
+
title: ( localize(5990, "Include Referenced Instructions")),
|
|
1756
|
+
markdownDescription: ( localize(
|
|
1757
|
+
5991,
|
|
1758
|
+
"Controls whether referenced instructions are automatically included in chat requests."
|
|
1759
|
+
)),
|
|
1760
|
+
default: false,
|
|
1761
|
+
restricted: true,
|
|
1762
|
+
disallowConfigurationDefault: true,
|
|
1763
|
+
tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
|
|
1764
|
+
},
|
|
1765
|
+
[PromptsConfig.USE_CUSTOMIZATIONS_IN_PARENT_REPOS]: {
|
|
1766
|
+
type: "boolean",
|
|
1767
|
+
title: ( localize(5992, "Use Customizations in Parent Repositories")),
|
|
1768
|
+
markdownDescription: ( localize(
|
|
1769
|
+
5993,
|
|
1770
|
+
"Controls whether to use chat customization files in parent repositories."
|
|
1771
|
+
)),
|
|
1772
|
+
default: false,
|
|
1773
|
+
restricted: true,
|
|
1774
|
+
disallowConfigurationDefault: true,
|
|
1775
|
+
tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"]
|
|
1776
|
+
},
|
|
1777
|
+
[PromptsConfig.SKILLS_LOCATION_KEY]: {
|
|
1778
|
+
type: "object",
|
|
1779
|
+
title: ( localize(5994, "Agent Skills Locations")),
|
|
1780
|
+
markdownDescription: ( localize(
|
|
1781
|
+
5995,
|
|
1782
|
+
"Specify location(s) of agent skills (`{0}`) that can be used in Chat Sessions. [Learn More]({1}).\n\nEach path should contain skill subfolders with SKILL.md files (e.g., add `my-skills` if you have `my-skills/skillA/SKILL.md`). Relative paths are resolved from the root folder(s) of your workspace.",
|
|
1783
|
+
SKILL_FILENAME,
|
|
1784
|
+
SKILL_DOCUMENTATION_URL
|
|
1785
|
+
)),
|
|
1786
|
+
default: {
|
|
1787
|
+
...( DEFAULT_SKILL_SOURCE_FOLDERS.map(folder => ({
|
|
1788
|
+
[folder.path]: true
|
|
1789
|
+
}))).reduce((acc, curr) => ({
|
|
1790
|
+
...acc,
|
|
1791
|
+
...curr
|
|
1792
|
+
}), {})
|
|
1793
|
+
},
|
|
1794
|
+
additionalProperties: {
|
|
1795
|
+
type: "boolean"
|
|
1796
|
+
},
|
|
1797
|
+
propertyNames: {
|
|
1798
|
+
pattern: VALID_PROMPT_FOLDER_PATTERN,
|
|
1799
|
+
patternErrorMessage: ( localize(
|
|
1800
|
+
5996,
|
|
1801
|
+
"Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported."
|
|
1802
|
+
))
|
|
1803
|
+
},
|
|
1804
|
+
restricted: true,
|
|
1805
|
+
tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
|
|
1806
|
+
examples: [{
|
|
1807
|
+
[DEFAULT_SKILL_SOURCE_FOLDERS[0].path]: true
|
|
1808
|
+
}, {
|
|
1809
|
+
[DEFAULT_SKILL_SOURCE_FOLDERS[0].path]: true,
|
|
1810
|
+
"my-skills": true,
|
|
1811
|
+
"../shared-skills": true,
|
|
1812
|
+
"~/.custom/skills": true
|
|
1813
|
+
}]
|
|
1814
|
+
},
|
|
1815
|
+
[PromptsConfig.HOOKS_LOCATION_KEY]: {
|
|
1816
|
+
type: "object",
|
|
1817
|
+
title: ( localize(5997, "Hook File Locations")),
|
|
1818
|
+
markdownDescription: ( localize(
|
|
1819
|
+
5998,
|
|
1820
|
+
"Specify paths to hook configuration files that define custom shell commands to execute at strategic points in an agent's workflow. [Learn More]({0}).\n\nRelative paths are resolved from the root folder(s) of your workspace. Supports Copilot hooks (`*.json`) and Claude Code hooks (`settings.json`, `settings.local.json`).",
|
|
1821
|
+
HOOK_DOCUMENTATION_URL
|
|
1822
|
+
)),
|
|
1823
|
+
default: {
|
|
1824
|
+
...( DEFAULT_HOOK_FILE_PATHS.map(f => ({
|
|
1825
|
+
[f.path]: true
|
|
1826
|
+
}))).reduce((acc, curr) => ({
|
|
1827
|
+
...acc,
|
|
1828
|
+
...curr
|
|
1829
|
+
}), {})
|
|
1830
|
+
},
|
|
1831
|
+
additionalProperties: {
|
|
1832
|
+
type: "boolean"
|
|
1833
|
+
},
|
|
1834
|
+
propertyNames: {
|
|
1835
|
+
pattern: VALID_PROMPT_FOLDER_PATTERN,
|
|
1836
|
+
patternErrorMessage: ( localize(
|
|
1837
|
+
5999,
|
|
1838
|
+
"Paths must be relative or start with '~/'. Absolute paths and '\\' separators are not supported."
|
|
1839
|
+
))
|
|
1840
|
+
},
|
|
1841
|
+
restricted: true,
|
|
1842
|
+
tags: ["preview", "prompts", "hooks", "agent"],
|
|
1843
|
+
examples: [{
|
|
1844
|
+
[DEFAULT_HOOK_FILE_PATHS[0].path]: true
|
|
1845
|
+
}, {
|
|
1846
|
+
[DEFAULT_HOOK_FILE_PATHS[0].path]: true,
|
|
1847
|
+
"custom-hooks/hooks.json": true
|
|
1848
|
+
}],
|
|
1849
|
+
agentsWindow: {
|
|
1850
|
+
default: {
|
|
1851
|
+
".claude/settings.local.json": false,
|
|
1852
|
+
".claude/settings.json": false,
|
|
1853
|
+
"~/.claude/settings.json": false
|
|
1854
|
+
}
|
|
1855
|
+
}
|
|
1856
|
+
},
|
|
1857
|
+
[PromptsConfig.USE_CHAT_HOOKS]: {
|
|
1858
|
+
type: "boolean",
|
|
1859
|
+
title: ( localize(6000, "Use Chat Hooks")),
|
|
1860
|
+
markdownDescription: ( localize(
|
|
1861
|
+
6001,
|
|
1862
|
+
"Controls whether chat hooks are executed at strategic points during an agent's workflow. Hooks are loaded from the files configured in `#chat.hookFilesLocations#`."
|
|
1863
|
+
)),
|
|
1864
|
+
default: true,
|
|
1865
|
+
restricted: true,
|
|
1866
|
+
disallowConfigurationDefault: true,
|
|
1867
|
+
tags: ["preview", "prompts", "hooks", "agent"],
|
|
1868
|
+
policy: {
|
|
1869
|
+
name: "ChatHooks",
|
|
1870
|
+
category: PolicyCategory.InteractiveSession,
|
|
1871
|
+
minimumVersion: "1.109",
|
|
1872
|
+
value: policyData => policyData.chat_preview_features_enabled === false ? false : undefined,
|
|
1873
|
+
localization: {
|
|
1874
|
+
description: {
|
|
1875
|
+
key: "chat.useHooks.description",
|
|
1876
|
+
value: ( localize(
|
|
1877
|
+
6001,
|
|
1878
|
+
"Controls whether chat hooks are executed at strategic points during an agent's workflow. Hooks are loaded from the files configured in `#chat.hookFilesLocations#`."
|
|
1879
|
+
))
|
|
1880
|
+
}
|
|
1881
|
+
}
|
|
1882
|
+
}
|
|
1883
|
+
},
|
|
1884
|
+
[PromptsConfig.USE_CLAUDE_HOOKS]: {
|
|
1885
|
+
type: "boolean",
|
|
1886
|
+
title: ( localize(6002, "Use Claude Hooks")),
|
|
1887
|
+
markdownDescription: ( localize(
|
|
1888
|
+
6003,
|
|
1889
|
+
"Controls whether hooks from Claude configuration files can execute. When disabled, only Copilot-format hooks are used. Hooks are loaded from the files configured in `#chat.hookFilesLocations#`."
|
|
1890
|
+
)),
|
|
1891
|
+
default: false,
|
|
1892
|
+
restricted: true,
|
|
1893
|
+
disallowConfigurationDefault: true,
|
|
1894
|
+
tags: ["preview", "prompts", "hooks", "agent"]
|
|
1895
|
+
},
|
|
1896
|
+
[PromptsConfig.PROMPT_FILES_SUGGEST_KEY]: {
|
|
1897
|
+
type: "object",
|
|
1898
|
+
scope: ConfigurationScope.RESOURCE,
|
|
1899
|
+
title: ( localize(6004, "Prompt File Recommendations")),
|
|
1900
|
+
markdownDescription: ( localize(
|
|
1901
|
+
6005,
|
|
1902
|
+
"Configure which prompt files to recommend in the chat welcome view. Each key is a prompt file name, and the value can be `true` to always recommend, `false` to never recommend, or a [when clause](https://aka.ms/vscode-when-clause) expression like `resourceExtname == .js` or `resourceLangId == markdown`."
|
|
1903
|
+
)),
|
|
1904
|
+
default: {},
|
|
1905
|
+
additionalProperties: {
|
|
1906
|
+
oneOf: [{
|
|
1907
|
+
type: "boolean"
|
|
1908
|
+
}, {
|
|
1909
|
+
type: "string"
|
|
1910
|
+
}]
|
|
1911
|
+
},
|
|
1912
|
+
tags: ["prompts", "reusable prompts", "prompt snippets", "instructions"],
|
|
1913
|
+
examples: [{
|
|
1914
|
+
"plan": true,
|
|
1915
|
+
"a11y-audit": "resourceExtname == .html",
|
|
1916
|
+
"document": "resourceLangId == markdown"
|
|
1917
|
+
}]
|
|
1918
|
+
},
|
|
1919
|
+
[ChatConfiguration.TodosShowWidget]: {
|
|
1920
|
+
type: "boolean",
|
|
1921
|
+
default: true,
|
|
1922
|
+
description: ( localize(
|
|
1923
|
+
6006,
|
|
1924
|
+
"Controls whether to show the todo list widget above the chat input. When enabled, the widget displays todo items created by the agent and updates as progress is made."
|
|
1925
|
+
))
|
|
1926
|
+
},
|
|
1927
|
+
[ChatConfiguration.ThinkingStyle]: {
|
|
1928
|
+
type: "string",
|
|
1929
|
+
default: "fixedScrolling",
|
|
1930
|
+
enum: ["collapsed", "collapsedPreview", "fixedScrolling"],
|
|
1931
|
+
enumDescriptions: [( localize(6007, "Thinking parts will be collapsed by default.")), ( localize(
|
|
1932
|
+
6008,
|
|
1933
|
+
"Thinking parts will be expanded first, then collapse once we reach a part that is not thinking."
|
|
1934
|
+
)), ( localize(
|
|
1935
|
+
6009,
|
|
1936
|
+
"Show thinking in a fixed-height streaming panel that auto-scrolls; click header to expand to full height."
|
|
1937
|
+
))],
|
|
1938
|
+
description: ( localize(6010, "Controls how thinking is rendered.")),
|
|
1939
|
+
tags: ["experimental"]
|
|
1940
|
+
},
|
|
1941
|
+
[ChatConfiguration.ThinkingGenerateTitles]: {
|
|
1942
|
+
type: "boolean",
|
|
1943
|
+
default: true,
|
|
1944
|
+
description: ( localize(
|
|
1945
|
+
6011,
|
|
1946
|
+
"Controls whether to use an LLM to generate summary titles for thinking sections."
|
|
1947
|
+
)),
|
|
1948
|
+
tags: ["experimental"]
|
|
1949
|
+
},
|
|
1950
|
+
"chat.agent.thinking.collapsedTools": {
|
|
1951
|
+
type: "string",
|
|
1952
|
+
default: "always",
|
|
1953
|
+
enum: ["off", "withThinking", "always"],
|
|
1954
|
+
enumDescriptions: [( localize(6012, "Tool calls are shown separately, not collapsed into thinking.")), ( localize(
|
|
1955
|
+
6013,
|
|
1956
|
+
"Tool calls are collapsed into thinking sections when thinking is present."
|
|
1957
|
+
)), ( localize(6014, "Tool calls are always collapsed, even without thinking."))],
|
|
1958
|
+
markdownDescription: ( localize(
|
|
1959
|
+
6015,
|
|
1960
|
+
"Controls how tool calls are displayed in relation to thinking sections."
|
|
1961
|
+
)),
|
|
1962
|
+
tags: ["experimental"]
|
|
1963
|
+
},
|
|
1964
|
+
[ChatConfiguration.TerminalToolsInThinking]: {
|
|
1965
|
+
type: "boolean",
|
|
1966
|
+
default: true,
|
|
1967
|
+
markdownDescription: ( localize(
|
|
1968
|
+
6016,
|
|
1969
|
+
"When enabled, terminal tool calls are displayed inside the thinking dropdown with a simplified view."
|
|
1970
|
+
)),
|
|
1971
|
+
tags: ["experimental"]
|
|
1972
|
+
},
|
|
1973
|
+
[ChatConfiguration.SimpleTerminalCollapsible]: {
|
|
1974
|
+
type: "boolean",
|
|
1975
|
+
default: true,
|
|
1976
|
+
markdownDescription: ( localize(
|
|
1977
|
+
6017,
|
|
1978
|
+
"When enabled, terminal tool calls are always displayed in a collapsible container with a simplified view."
|
|
1979
|
+
)),
|
|
1980
|
+
tags: ["experimental"]
|
|
1981
|
+
},
|
|
1982
|
+
[ChatConfiguration.CompressOutputEnabled]: {
|
|
1983
|
+
type: "boolean",
|
|
1984
|
+
default: false,
|
|
1985
|
+
markdownDescription: ( localize(
|
|
1986
|
+
6018,
|
|
1987
|
+
"Post-process tool output (for example `git diff`, `ls -l`, or `npm install`) to reduce token usage before it is sent to the model."
|
|
1988
|
+
)),
|
|
1989
|
+
tags: ["preview"],
|
|
1990
|
+
experiment: {
|
|
1991
|
+
mode: "auto"
|
|
1992
|
+
}
|
|
1993
|
+
},
|
|
1994
|
+
[ChatConfiguration.ThinkingPhrases]: {
|
|
1995
|
+
type: "object",
|
|
1996
|
+
default: {
|
|
1997
|
+
mode: "append",
|
|
1998
|
+
phrases: []
|
|
1999
|
+
},
|
|
2000
|
+
properties: {
|
|
2001
|
+
mode: {
|
|
2002
|
+
type: "string",
|
|
2003
|
+
enum: ["replace", "append"],
|
|
2004
|
+
default: "append",
|
|
2005
|
+
description: ( localize(
|
|
2006
|
+
6019,
|
|
2007
|
+
"'replace' replaces all default phrases entirely; 'append' adds your phrases to all default categories."
|
|
2008
|
+
))
|
|
2009
|
+
},
|
|
2010
|
+
phrases: {
|
|
2011
|
+
type: "array",
|
|
2012
|
+
items: {
|
|
2013
|
+
type: "string"
|
|
2014
|
+
},
|
|
2015
|
+
default: [],
|
|
2016
|
+
description: ( localize(
|
|
2017
|
+
6020,
|
|
2018
|
+
"Custom loading messages to show during thinking, working progress, terminal, and tool operations."
|
|
2019
|
+
))
|
|
2020
|
+
}
|
|
2021
|
+
},
|
|
2022
|
+
additionalProperties: false,
|
|
2023
|
+
markdownDescription: ( localize(
|
|
2024
|
+
6021,
|
|
2025
|
+
"Customize the loading messages shown during agent thinking and progress indicators. Use `\"mode\": \"replace\"` to use only your phrases, or `\"mode\": \"append\"` to add them to the defaults."
|
|
2026
|
+
)),
|
|
2027
|
+
tags: ["experimental"]
|
|
2028
|
+
},
|
|
2029
|
+
[ChatConfiguration.AutoExpandToolFailures]: {
|
|
2030
|
+
type: "boolean",
|
|
2031
|
+
default: true,
|
|
2032
|
+
markdownDescription: ( localize(
|
|
2033
|
+
6022,
|
|
2034
|
+
"When enabled, tool failures are automatically expanded in the chat UI to show error details."
|
|
2035
|
+
))
|
|
2036
|
+
},
|
|
2037
|
+
[ChatConfiguration.AIDisabled]: {
|
|
2038
|
+
type: "boolean",
|
|
2039
|
+
description: ( localize(
|
|
2040
|
+
6023,
|
|
2041
|
+
"Disable and hide built-in AI features provided by GitHub Copilot, including chat and inline suggestions."
|
|
2042
|
+
)),
|
|
2043
|
+
default: false,
|
|
2044
|
+
scope: ConfigurationScope.WINDOW,
|
|
2045
|
+
policy: {
|
|
2046
|
+
name: "ChatAIFeaturesDisabled",
|
|
2047
|
+
category: PolicyCategory.InteractiveSession,
|
|
2048
|
+
minimumVersion: "1.111",
|
|
2049
|
+
localization: {
|
|
2050
|
+
description: {
|
|
2051
|
+
key: "chat.disableAIFeatures",
|
|
2052
|
+
value: ( localize(
|
|
2053
|
+
6023,
|
|
2054
|
+
"Disable and hide built-in AI features provided by GitHub Copilot, including chat and inline suggestions."
|
|
2055
|
+
))
|
|
2056
|
+
}
|
|
2057
|
+
}
|
|
2058
|
+
}
|
|
2059
|
+
},
|
|
2060
|
+
[ChatConfiguration.OfflineByok]: {
|
|
2061
|
+
type: "boolean",
|
|
2062
|
+
description: ( localize(6024, "Experimental: enable BYOK chat features without GitHub sign-in.")),
|
|
2063
|
+
default: false,
|
|
2064
|
+
scope: ConfigurationScope.WINDOW,
|
|
2065
|
+
included: false
|
|
2066
|
+
},
|
|
2067
|
+
[ChatConfiguration.TitleBarSignInEnabled]: {
|
|
2068
|
+
type: "boolean",
|
|
2069
|
+
description: ( localize(
|
|
2070
|
+
6025,
|
|
2071
|
+
"Controls whether the Copilot Sign In button is shown in the title bar when signed out. When disabled, the Sign In affordance falls back to the status bar."
|
|
2072
|
+
)),
|
|
2073
|
+
default: true
|
|
2074
|
+
},
|
|
2075
|
+
"chat.approvedAccountOrganizations": {
|
|
2076
|
+
type: "array",
|
|
2077
|
+
items: {
|
|
2078
|
+
type: "string"
|
|
2079
|
+
},
|
|
2080
|
+
description: ( localize(
|
|
2081
|
+
6026,
|
|
2082
|
+
"List of GitHub organization logins whose members are permitted to use AI features. When set to a non-empty list, AI features are disabled until the user signs into a GitHub account that belongs to one of the specified organizations and account-level policy data has been resolved. Set to '*' to allow any authenticated GitHub or GitHub Enterprise account."
|
|
2083
|
+
)),
|
|
2084
|
+
default: [],
|
|
2085
|
+
included: false,
|
|
2086
|
+
policy: {
|
|
2087
|
+
name: "ChatApprovedAccountOrganizations",
|
|
2088
|
+
category: PolicyCategory.InteractiveSession,
|
|
2089
|
+
minimumVersion: "1.118",
|
|
2090
|
+
localization: {
|
|
2091
|
+
description: {
|
|
2092
|
+
key: "chat.approvedAccountOrganizations.policy.description",
|
|
2093
|
+
value: ( localize(
|
|
2094
|
+
6027,
|
|
2095
|
+
"Setting this policy to a non-empty list activates the Approved Account gate: all AI features are disabled until the user signs into a GitHub account whose organizations intersect this list AND the account-side policy data has resolved. Comparison is case-insensitive. Use '*' as a wildcard to accept any signed-in GitHub or GHE account (use this for GHE deployments where the organization list is not surfaced)."
|
|
2096
|
+
))
|
|
2097
|
+
}
|
|
2098
|
+
}
|
|
2099
|
+
}
|
|
2100
|
+
},
|
|
2101
|
+
"chat.allowAnonymousAccess": {
|
|
2102
|
+
type: "boolean",
|
|
2103
|
+
description: ( localize(6028, "Controls whether anonymous access is allowed in chat.")),
|
|
2104
|
+
default: false,
|
|
2105
|
+
tags: ["experimental"],
|
|
2106
|
+
experiment: {
|
|
2107
|
+
mode: "auto"
|
|
2108
|
+
}
|
|
2109
|
+
},
|
|
2110
|
+
[ChatConfiguration.GrowthNotificationEnabled]: {
|
|
2111
|
+
type: "boolean",
|
|
2112
|
+
description: ( localize(
|
|
2113
|
+
6029,
|
|
2114
|
+
"Controls whether to show a growth notification in the agent sessions view to encourage new users to try Copilot."
|
|
2115
|
+
)),
|
|
2116
|
+
default: false,
|
|
2117
|
+
tags: ["experimental"],
|
|
2118
|
+
experiment: {
|
|
2119
|
+
mode: "auto"
|
|
2120
|
+
}
|
|
2121
|
+
},
|
|
2122
|
+
[ChatConfiguration.RestoreLastPanelSession]: {
|
|
2123
|
+
type: "boolean",
|
|
2124
|
+
description: ( localize(
|
|
2125
|
+
6030,
|
|
2126
|
+
"Controls whether the last session is restored in panel after restart."
|
|
2127
|
+
)),
|
|
2128
|
+
default: false
|
|
2129
|
+
},
|
|
2130
|
+
[ChatConfiguration.ExitAfterDelegation]: {
|
|
2131
|
+
type: "boolean",
|
|
2132
|
+
description: ( localize(
|
|
2133
|
+
6031,
|
|
2134
|
+
"Controls whether the chat panel automatically exits after delegating a request to another session."
|
|
2135
|
+
)),
|
|
2136
|
+
default: false,
|
|
2137
|
+
tags: ["preview"]
|
|
2138
|
+
},
|
|
2139
|
+
"chat.extensionUnification.enabled": {
|
|
2140
|
+
type: "boolean",
|
|
2141
|
+
description: ( localize(
|
|
2142
|
+
6032,
|
|
2143
|
+
"Enables the unification of GitHub Copilot extensions. When enabled, all GitHub Copilot functionality is served from the GitHub Copilot Chat extension. When disabled, the GitHub Copilot and GitHub Copilot Chat extensions operate independently."
|
|
2144
|
+
)),
|
|
2145
|
+
default: true,
|
|
2146
|
+
tags: ["experimental"],
|
|
2147
|
+
experiment: {
|
|
2148
|
+
mode: "auto"
|
|
2149
|
+
}
|
|
2150
|
+
},
|
|
2151
|
+
[ChatConfiguration.GeneralPurposeAgentEnabled]: {
|
|
2152
|
+
type: "boolean",
|
|
2153
|
+
description: ( localize(
|
|
2154
|
+
6033,
|
|
2155
|
+
"Controls whether the built-in General Purpose agent is available as a subagent."
|
|
2156
|
+
)),
|
|
2157
|
+
default: false,
|
|
2158
|
+
tags: ["experimental", "advanced"],
|
|
2159
|
+
experiment: {
|
|
2160
|
+
mode: "auto"
|
|
2161
|
+
}
|
|
2162
|
+
},
|
|
2163
|
+
[ChatConfiguration.SubagentsAllowInvocationsFromSubagents]: {
|
|
2164
|
+
type: "boolean",
|
|
2165
|
+
description: ( localize(6034, "Allow subagents to invoke subagents.")),
|
|
2166
|
+
markdownDescription: ( localize(
|
|
2167
|
+
6035,
|
|
2168
|
+
"Controls whether subagents can invoke other subagents. When enabled, nesting is limited to a maximum depth of 5."
|
|
2169
|
+
)),
|
|
2170
|
+
default: false,
|
|
2171
|
+
experiment: {
|
|
2172
|
+
mode: "auto"
|
|
2173
|
+
}
|
|
2174
|
+
},
|
|
2175
|
+
[ChatConfiguration.ChatCustomizationHarnessSelectorEnabled]: {
|
|
2176
|
+
type: "boolean",
|
|
2177
|
+
tags: ["preview"],
|
|
2178
|
+
description: ( localize(
|
|
2179
|
+
6036,
|
|
2180
|
+
"Controls whether the harness selector is shown in the Chat Customizations editor sidebar. When disabled, the editor always shows all customizations without filtering."
|
|
2181
|
+
)),
|
|
2182
|
+
default: true
|
|
2183
|
+
},
|
|
2184
|
+
[ChatConfiguration.ChatCustomizationsStructuredPreviewEnabled]: {
|
|
2185
|
+
type: "boolean",
|
|
2186
|
+
tags: ["preview"],
|
|
2187
|
+
description: ( localize(
|
|
2188
|
+
6037,
|
|
2189
|
+
"Controls whether the Chat Customizations editor shows a structured preview for markdown customization files (agents, skills, instructions, prompts). When disabled, the editor always opens the raw markdown in the embedded code editor."
|
|
2190
|
+
)),
|
|
2191
|
+
default: false
|
|
2192
|
+
},
|
|
2193
|
+
[ChatConfiguration.UseChatSessionCustomizationsForCustomAgents]: {
|
|
2194
|
+
type: "boolean",
|
|
2195
|
+
description: ( localize(
|
|
2196
|
+
6038,
|
|
2197
|
+
"When enabled, custom agents shown in the chat mode picker are sourced from the customization harness service (scoped per session type) instead of the prompts service."
|
|
2198
|
+
)),
|
|
2199
|
+
default: false,
|
|
2200
|
+
tags: ["experimental", "advanced"],
|
|
2201
|
+
experiment: {
|
|
2202
|
+
mode: "auto"
|
|
2203
|
+
}
|
|
2204
|
+
}
|
|
2205
|
+
}
|
|
2206
|
+
});
|
|
2207
|
+
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
|
|
2208
|
+
EditorPaneDescriptor.create(ChatEditor, ChatEditorInput.EditorID, ( localize(6039, "Chat"))),
|
|
2209
|
+
[( new SyncDescriptor(ChatEditorInput))]
|
|
2210
|
+
);
|
|
2211
|
+
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
|
|
2212
|
+
EditorPaneDescriptor.create(ChatDebugEditor, ChatDebugEditorInput.ID, ( localize(6040, "Debug View"))),
|
|
2213
|
+
[( new SyncDescriptor(ChatDebugEditorInput))]
|
|
2214
|
+
);
|
|
2215
|
+
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
|
|
2216
|
+
EditorPaneDescriptor.create(AgentPluginEditor, AgentPluginEditor.ID, ( localize(6041, "Agent Plugin"))),
|
|
2217
|
+
[( new SyncDescriptor(AgentPluginEditorInput))]
|
|
2218
|
+
);
|
|
2219
|
+
( Registry.as(Extensions$2.ConfigurationMigration)).registerConfigurationMigrations([{
|
|
2220
|
+
key: "chat.experimental.detectParticipant.enabled",
|
|
2221
|
+
migrateFn: (value, _accessor) => ([["chat.experimental.detectParticipant.enabled", {
|
|
2222
|
+
value: undefined
|
|
2223
|
+
}], ["chat.detectParticipant.enabled", {
|
|
2224
|
+
value: value !== false
|
|
2225
|
+
}]])
|
|
2226
|
+
}, {
|
|
2227
|
+
key: "chat.useClaudeSkills",
|
|
2228
|
+
migrateFn: (value, _accessor) => ([["chat.useClaudeSkills", {
|
|
2229
|
+
value: undefined
|
|
2230
|
+
}], ["chat.useAgentSkills", {
|
|
2231
|
+
value
|
|
2232
|
+
}]])
|
|
2233
|
+
}, {
|
|
2234
|
+
key: mcpDiscoverySection,
|
|
2235
|
+
migrateFn: value => {
|
|
2236
|
+
if (typeof value === "boolean") {
|
|
2237
|
+
return {
|
|
2238
|
+
value: Object.fromEntries(( allDiscoverySources.map(k => [k, value])))
|
|
2239
|
+
};
|
|
2240
|
+
}
|
|
2241
|
+
return {
|
|
2242
|
+
value
|
|
2243
|
+
};
|
|
2244
|
+
}
|
|
2245
|
+
}, {
|
|
2246
|
+
key: ChatConfiguration.NotifyWindowOnConfirmation,
|
|
2247
|
+
migrateFn: value => {
|
|
2248
|
+
if (value === true) {
|
|
2249
|
+
return {
|
|
2250
|
+
value: ChatNotificationMode.WindowNotFocused
|
|
2251
|
+
};
|
|
2252
|
+
} else if (value === false) {
|
|
2253
|
+
return {
|
|
2254
|
+
value: ChatNotificationMode.Off
|
|
2255
|
+
};
|
|
2256
|
+
}
|
|
2257
|
+
return [];
|
|
2258
|
+
}
|
|
2259
|
+
}, {
|
|
2260
|
+
key: ChatConfiguration.NotifyWindowOnResponseReceived,
|
|
2261
|
+
migrateFn: value => {
|
|
2262
|
+
if (value === true) {
|
|
2263
|
+
return {
|
|
2264
|
+
value: ChatNotificationMode.WindowNotFocused
|
|
2265
|
+
};
|
|
2266
|
+
} else if (value === false) {
|
|
2267
|
+
return {
|
|
2268
|
+
value: ChatNotificationMode.Off
|
|
2269
|
+
};
|
|
2270
|
+
}
|
|
2271
|
+
return [];
|
|
2272
|
+
}
|
|
2273
|
+
}, {
|
|
2274
|
+
key: "chat.plugins.paths",
|
|
2275
|
+
migrateFn: (value, _accessor) => ([["chat.plugins.paths", {
|
|
2276
|
+
value: undefined
|
|
2277
|
+
}], [ChatConfiguration.PluginLocations, {
|
|
2278
|
+
value
|
|
2279
|
+
}]])
|
|
2280
|
+
}, {
|
|
2281
|
+
key: AgentNetworkDomainSettingId.DeprecatedSandboxAllowedNetworkDomains,
|
|
2282
|
+
migrateFn: (value, accessor) => {
|
|
2283
|
+
const pairs = [];
|
|
2284
|
+
pairs.push([AgentNetworkDomainSettingId.DeprecatedSandboxAllowedNetworkDomains, {
|
|
2285
|
+
value: undefined
|
|
2286
|
+
}]);
|
|
2287
|
+
if (value !== undefined && accessor(AgentNetworkDomainSettingId.AllowedNetworkDomains) === undefined) {
|
|
2288
|
+
pairs.push([AgentNetworkDomainSettingId.AllowedNetworkDomains, {
|
|
2289
|
+
value
|
|
2290
|
+
}]);
|
|
2291
|
+
}
|
|
2292
|
+
return pairs;
|
|
2293
|
+
}
|
|
2294
|
+
}, {
|
|
2295
|
+
key: AgentNetworkDomainSettingId.DeprecatedSandboxDeniedNetworkDomains,
|
|
2296
|
+
migrateFn: (value, accessor) => {
|
|
2297
|
+
const pairs = [];
|
|
2298
|
+
pairs.push([AgentNetworkDomainSettingId.DeprecatedSandboxDeniedNetworkDomains, {
|
|
2299
|
+
value: undefined
|
|
2300
|
+
}]);
|
|
2301
|
+
if (value !== undefined && accessor(AgentNetworkDomainSettingId.DeniedNetworkDomains) === undefined) {
|
|
2302
|
+
pairs.push([AgentNetworkDomainSettingId.DeniedNetworkDomains, {
|
|
2303
|
+
value
|
|
2304
|
+
}]);
|
|
2305
|
+
}
|
|
2306
|
+
return pairs;
|
|
2307
|
+
}
|
|
2308
|
+
}, {
|
|
2309
|
+
key: AgentNetworkDomainSettingId.DeprecatedOldAllowedNetworkDomains,
|
|
2310
|
+
migrateFn: (value, accessor) => {
|
|
2311
|
+
const pairs = [];
|
|
2312
|
+
pairs.push([AgentNetworkDomainSettingId.DeprecatedOldAllowedNetworkDomains, {
|
|
2313
|
+
value: undefined
|
|
2314
|
+
}]);
|
|
2315
|
+
if (value !== undefined && accessor(AgentNetworkDomainSettingId.AllowedNetworkDomains) === undefined) {
|
|
2316
|
+
pairs.push([AgentNetworkDomainSettingId.AllowedNetworkDomains, {
|
|
2317
|
+
value
|
|
2318
|
+
}]);
|
|
2319
|
+
}
|
|
2320
|
+
return pairs;
|
|
2321
|
+
}
|
|
2322
|
+
}, {
|
|
2323
|
+
key: AgentNetworkDomainSettingId.DeprecatedOldDeniedNetworkDomains,
|
|
2324
|
+
migrateFn: (value, accessor) => {
|
|
2325
|
+
const pairs = [];
|
|
2326
|
+
pairs.push([AgentNetworkDomainSettingId.DeprecatedOldDeniedNetworkDomains, {
|
|
2327
|
+
value: undefined
|
|
2328
|
+
}]);
|
|
2329
|
+
if (value !== undefined && accessor(AgentNetworkDomainSettingId.DeniedNetworkDomains) === undefined) {
|
|
2330
|
+
pairs.push([AgentNetworkDomainSettingId.DeniedNetworkDomains, {
|
|
2331
|
+
value
|
|
2332
|
+
}]);
|
|
2333
|
+
}
|
|
2334
|
+
return pairs;
|
|
2335
|
+
}
|
|
2336
|
+
}]);
|
|
2337
|
+
let ChatResolverContribution = class ChatResolverContribution extends Disposable {
|
|
2338
|
+
static {
|
|
2339
|
+
this.ID = "workbench.contrib.chatResolver";
|
|
2340
|
+
}
|
|
2341
|
+
constructor(chatSessionsService, editorResolverService, instantiationService) {
|
|
2342
|
+
super();
|
|
2343
|
+
this.editorResolverService = editorResolverService;
|
|
2344
|
+
this.instantiationService = instantiationService;
|
|
2345
|
+
this._editorRegistrations = this._register(( new DisposableMap()));
|
|
2346
|
+
this._registerEditor(Schemas.vscodeChatEditor);
|
|
2347
|
+
this._registerEditor(Schemas.vscodeLocalChatSession);
|
|
2348
|
+
this._register(chatSessionsService.onDidChangeContentProviderSchemes(e => {
|
|
2349
|
+
for (const scheme of e.added) {
|
|
2350
|
+
this._registerEditor(scheme);
|
|
2351
|
+
}
|
|
2352
|
+
for (const scheme of e.removed) {
|
|
2353
|
+
this._editorRegistrations.deleteAndDispose(scheme);
|
|
2354
|
+
}
|
|
2355
|
+
}));
|
|
2356
|
+
for (const scheme of chatSessionsService.getContentProviderSchemes()) {
|
|
2357
|
+
this._registerEditor(scheme);
|
|
2358
|
+
}
|
|
2359
|
+
}
|
|
2360
|
+
_registerEditor(scheme) {
|
|
2361
|
+
this._editorRegistrations.set(scheme, this.editorResolverService.registerEditor(`${scheme}:**/**`, {
|
|
2362
|
+
id: ChatEditorInput.EditorID,
|
|
2363
|
+
label: ( localize(6039, "Chat")),
|
|
2364
|
+
priority: RegisteredEditorPriority.builtin
|
|
2365
|
+
}, {
|
|
2366
|
+
singlePerResource: true,
|
|
2367
|
+
canSupportResource: resource => resource.scheme === scheme
|
|
2368
|
+
}, {
|
|
2369
|
+
createEditorInput: (
|
|
2370
|
+
{
|
|
2371
|
+
resource,
|
|
2372
|
+
options
|
|
2373
|
+
}
|
|
2374
|
+
) => {
|
|
2375
|
+
return {
|
|
2376
|
+
editor: this.instantiationService.createInstance(ChatEditorInput, resource, options),
|
|
2377
|
+
options
|
|
2378
|
+
};
|
|
2379
|
+
}
|
|
2380
|
+
}));
|
|
2381
|
+
}
|
|
2382
|
+
};
|
|
2383
|
+
ChatResolverContribution = ( __decorate([( __param(0, IChatSessionsService)), ( __param(1, IEditorResolverService)), ( __param(2, IInstantiationService))], ChatResolverContribution));
|
|
2384
|
+
let CopilotTelemetryContribution = class CopilotTelemetryContribution extends Disposable {
|
|
2385
|
+
static {
|
|
2386
|
+
this.ID = "workbench.contrib.copilotTelemetry";
|
|
2387
|
+
}
|
|
2388
|
+
constructor(telemetryService, chatEntitlementService) {
|
|
2389
|
+
super();
|
|
2390
|
+
this.telemetryService = telemetryService;
|
|
2391
|
+
this.chatEntitlementService = chatEntitlementService;
|
|
2392
|
+
this.updateCopilotTrackingId();
|
|
2393
|
+
this._register(this.chatEntitlementService.onDidChangeEntitlement(() => {
|
|
2394
|
+
this.updateCopilotTrackingId();
|
|
2395
|
+
}));
|
|
2396
|
+
}
|
|
2397
|
+
updateCopilotTrackingId() {
|
|
2398
|
+
const copilotTrackingId = this.chatEntitlementService.copilotTrackingId;
|
|
2399
|
+
if (copilotTrackingId) {
|
|
2400
|
+
this.telemetryService.setCommonProperty("common.copilotTrackingId", copilotTrackingId);
|
|
2401
|
+
}
|
|
2402
|
+
}
|
|
2403
|
+
};
|
|
2404
|
+
CopilotTelemetryContribution = ( __decorate([( __param(0, ITelemetryService)), ( __param(1, IChatEntitlementService))], CopilotTelemetryContribution));
|
|
2405
|
+
let ChatDebugResolverContribution = class ChatDebugResolverContribution {
|
|
2406
|
+
static {
|
|
2407
|
+
this.ID = "workbench.contrib.chatDebugResolver";
|
|
2408
|
+
}
|
|
2409
|
+
constructor(editorResolverService) {
|
|
2410
|
+
editorResolverService.registerEditor(`${ChatDebugEditorInput.RESOURCE.scheme}:**/**`, {
|
|
2411
|
+
id: ChatDebugEditorInput.ID,
|
|
2412
|
+
label: ( localize(6040, "Debug View")),
|
|
2413
|
+
priority: RegisteredEditorPriority.exclusive
|
|
2414
|
+
}, {
|
|
2415
|
+
singlePerResource: true,
|
|
2416
|
+
canSupportResource: resource => resource.scheme === ChatDebugEditorInput.RESOURCE.scheme
|
|
2417
|
+
}, {
|
|
2418
|
+
createEditorInput: () => {
|
|
2419
|
+
return {
|
|
2420
|
+
editor: ChatDebugEditorInput.instance,
|
|
2421
|
+
options: {
|
|
2422
|
+
pinned: true
|
|
2423
|
+
}
|
|
2424
|
+
};
|
|
2425
|
+
}
|
|
2426
|
+
});
|
|
2427
|
+
}
|
|
2428
|
+
};
|
|
2429
|
+
ChatDebugResolverContribution = ( __decorate([( __param(0, IEditorResolverService))], ChatDebugResolverContribution));
|
|
2430
|
+
let ChatAgentSettingContribution = class ChatAgentSettingContribution extends Disposable {
|
|
2431
|
+
static {
|
|
2432
|
+
this.ID = "workbench.contrib.chatAgentSetting";
|
|
2433
|
+
}
|
|
2434
|
+
constructor(experimentService, entitlementService, contextKeyService) {
|
|
2435
|
+
super();
|
|
2436
|
+
this.experimentService = experimentService;
|
|
2437
|
+
this.entitlementService = entitlementService;
|
|
2438
|
+
this.contextKeyService = contextKeyService;
|
|
2439
|
+
this.newChatButtonExperimentIcon = ChatContextKeys.newChatButtonExperimentIcon.bindTo(this.contextKeyService);
|
|
2440
|
+
this.registerMaxRequestsSetting();
|
|
2441
|
+
this.registerNewChatButtonIcon();
|
|
2442
|
+
this.registerDefaultModeSetting();
|
|
2443
|
+
}
|
|
2444
|
+
registerMaxRequestsSetting() {
|
|
2445
|
+
let lastNode;
|
|
2446
|
+
const registerMaxRequestsSetting = () => {
|
|
2447
|
+
const treatmentId = this.entitlementService.entitlement === ChatEntitlement.Free ? "chatAgentMaxRequestsFree" : "chatAgentMaxRequestsPro";
|
|
2448
|
+
this.experimentService.getTreatment(treatmentId).then(value => {
|
|
2449
|
+
const node = {
|
|
2450
|
+
id: "chatSidebar",
|
|
2451
|
+
title: ( localize(5806, "Chat")),
|
|
2452
|
+
type: "object",
|
|
2453
|
+
properties: {
|
|
2454
|
+
"chat.agent.maxRequests": {
|
|
2455
|
+
type: "number",
|
|
2456
|
+
markdownDescription: ( localize(
|
|
2457
|
+
6042,
|
|
2458
|
+
"The maximum number of requests to allow per-turn when using an agent. When the limit is reached, will ask to confirm to continue."
|
|
2459
|
+
)),
|
|
2460
|
+
default: value ?? 50,
|
|
2461
|
+
order: 2,
|
|
2462
|
+
agentsWindow: {
|
|
2463
|
+
default: 1000
|
|
2464
|
+
}
|
|
2465
|
+
}
|
|
2466
|
+
}
|
|
2467
|
+
};
|
|
2468
|
+
configurationRegistry.updateConfigurations({
|
|
2469
|
+
remove: lastNode ? [lastNode] : [],
|
|
2470
|
+
add: [node]
|
|
2471
|
+
});
|
|
2472
|
+
lastNode = node;
|
|
2473
|
+
});
|
|
2474
|
+
};
|
|
2475
|
+
this._register(Event.runAndSubscribe(
|
|
2476
|
+
Event.debounce(this.entitlementService.onDidChangeEntitlement, () => {}, 1000),
|
|
2477
|
+
() => registerMaxRequestsSetting()
|
|
2478
|
+
));
|
|
2479
|
+
}
|
|
2480
|
+
registerNewChatButtonIcon() {
|
|
2481
|
+
this.experimentService.getTreatment("chatNewButtonIcon").then(value => {
|
|
2482
|
+
const supportedValues = ["copilot", "new-session", "comment"];
|
|
2483
|
+
if (typeof value === "string" && supportedValues.includes(value)) {
|
|
2484
|
+
this.newChatButtonExperimentIcon.set(value);
|
|
2485
|
+
} else {
|
|
2486
|
+
this.newChatButtonExperimentIcon.reset();
|
|
2487
|
+
}
|
|
2488
|
+
});
|
|
2489
|
+
}
|
|
2490
|
+
registerDefaultModeSetting() {
|
|
2491
|
+
this.experimentService.getTreatment("chatDefaultNewSessionMode").then(value => {
|
|
2492
|
+
const node = {
|
|
2493
|
+
id: "chatSidebar",
|
|
2494
|
+
title: ( localize(5806, "Chat")),
|
|
2495
|
+
type: "object",
|
|
2496
|
+
properties: {
|
|
2497
|
+
[ChatConfiguration.DefaultNewSessionMode]: {
|
|
2498
|
+
type: "string",
|
|
2499
|
+
description: ( localize(
|
|
2500
|
+
5937,
|
|
2501
|
+
"The default mode for new chat sessions. When empty, the chat view's default mode is used."
|
|
2502
|
+
)),
|
|
2503
|
+
default: typeof value === "string" ? value : ""
|
|
2504
|
+
}
|
|
2505
|
+
}
|
|
2506
|
+
};
|
|
2507
|
+
configurationRegistry.updateConfigurations({
|
|
2508
|
+
add: [node],
|
|
2509
|
+
remove: []
|
|
2510
|
+
});
|
|
2511
|
+
});
|
|
2512
|
+
}
|
|
2513
|
+
};
|
|
2514
|
+
ChatAgentSettingContribution = ( __decorate([( __param(0, IWorkbenchAssignmentService)), ( __param(1, IChatEntitlementService)), ( __param(2, IContextKeyService))], ChatAgentSettingContribution));
|
|
2515
|
+
let ChatForegroundSessionCountContribution = class ChatForegroundSessionCountContribution extends Disposable {
|
|
2516
|
+
static {
|
|
2517
|
+
this.ID = "workbench.contrib.chatForegroundSessionCount";
|
|
2518
|
+
}
|
|
2519
|
+
constructor(contextKeyService, chatWidgetService, viewsService, editorService) {
|
|
2520
|
+
super();
|
|
2521
|
+
this.contextKeyService = contextKeyService;
|
|
2522
|
+
this.chatWidgetService = chatWidgetService;
|
|
2523
|
+
this.viewsService = viewsService;
|
|
2524
|
+
this.editorService = editorService;
|
|
2525
|
+
this.foregroundSessionCountContextKey = ChatContextKeys.foregroundSessionCount.bindTo(this.contextKeyService);
|
|
2526
|
+
this._register(this.chatWidgetService.onDidAddWidget(() => {
|
|
2527
|
+
this.updateForegroundSessionCount();
|
|
2528
|
+
}));
|
|
2529
|
+
this._register(this.editorService.onDidVisibleEditorsChange(() => {
|
|
2530
|
+
this.updateForegroundSessionCount();
|
|
2531
|
+
}));
|
|
2532
|
+
this._register(
|
|
2533
|
+
Event.filter(this.viewsService.onDidChangeViewVisibility, e => e.id === ChatViewId)(() => {
|
|
2534
|
+
this.updateForegroundSessionCount();
|
|
2535
|
+
})
|
|
2536
|
+
);
|
|
2537
|
+
this.updateForegroundSessionCount();
|
|
2538
|
+
}
|
|
2539
|
+
updateForegroundSessionCount() {
|
|
2540
|
+
let count = this.viewsService.isViewVisible(ChatViewId) ? 1 : 0;
|
|
2541
|
+
for (const widget of this.chatWidgetService.getWidgetsByLocations(ChatAgentLocation.Chat)) {
|
|
2542
|
+
if (widget.domNode.offsetParent === null) {
|
|
2543
|
+
continue;
|
|
2544
|
+
}
|
|
2545
|
+
if (isIChatViewViewContext(widget.viewContext)) {
|
|
2546
|
+
continue;
|
|
2547
|
+
}
|
|
2548
|
+
if (isIChatResourceViewContext(widget.viewContext) && widget.viewContext.isQuickChat) {
|
|
2549
|
+
continue;
|
|
2550
|
+
}
|
|
2551
|
+
count++;
|
|
2552
|
+
}
|
|
2553
|
+
this.foregroundSessionCountContextKey.set(count);
|
|
2554
|
+
}
|
|
2555
|
+
};
|
|
2556
|
+
ChatForegroundSessionCountContribution = ( __decorate([( __param(0, IContextKeyService)), ( __param(1, IChatWidgetService)), ( __param(2, IViewsService)), ( __param(3, IEditorService))], ChatForegroundSessionCountContribution));
|
|
2557
|
+
function getCustomModesWithUniqueNames(builtinModes, customModes) {
|
|
2558
|
+
const customModeIds = ( new Set());
|
|
2559
|
+
const builtinNames = ( new Set(( builtinModes.map(mode => mode.name.get()))));
|
|
2560
|
+
const customNameToId = ( new Map());
|
|
2561
|
+
for (const mode of customModes) {
|
|
2562
|
+
const modeName = mode.name.get();
|
|
2563
|
+
if (( builtinNames.has(modeName))) {
|
|
2564
|
+
continue;
|
|
2565
|
+
}
|
|
2566
|
+
const existingId = customNameToId.get(modeName);
|
|
2567
|
+
if (existingId) {
|
|
2568
|
+
customModeIds.delete(existingId);
|
|
2569
|
+
}
|
|
2570
|
+
customNameToId.set(modeName, mode.id);
|
|
2571
|
+
customModeIds.add(mode.id);
|
|
2572
|
+
}
|
|
2573
|
+
return customModeIds;
|
|
2574
|
+
}
|
|
2575
|
+
let ChatAgentActionsContribution = class ChatAgentActionsContribution extends Disposable {
|
|
2576
|
+
static {
|
|
2577
|
+
this.ID = "workbench.contrib.chatAgentActions";
|
|
2578
|
+
}
|
|
2579
|
+
constructor(_chatModeService, chatWidgetService) {
|
|
2580
|
+
super();
|
|
2581
|
+
this.chatWidgetService = chatWidgetService;
|
|
2582
|
+
this._modeActionDisposables = ( new DisposableMap());
|
|
2583
|
+
this._store.add(this._modeActionDisposables);
|
|
2584
|
+
const focusedWidget = observableFromEvent(
|
|
2585
|
+
this,
|
|
2586
|
+
this.chatWidgetService.onDidChangeFocusedSession,
|
|
2587
|
+
() => this.chatWidgetService.lastFocusedWidget
|
|
2588
|
+
);
|
|
2589
|
+
this._register(autorun(reader => {
|
|
2590
|
+
const chatModes = focusedWidget.read(reader)?.input.currentChatModesObs.read(reader);
|
|
2591
|
+
this._syncModeActions(chatModes);
|
|
2592
|
+
}));
|
|
2593
|
+
}
|
|
2594
|
+
_syncModeActions(chatModes) {
|
|
2595
|
+
if (!chatModes) {
|
|
2596
|
+
this._modeActionDisposables.clearAndDisposeAll();
|
|
2597
|
+
return;
|
|
2598
|
+
}
|
|
2599
|
+
const {
|
|
2600
|
+
builtin,
|
|
2601
|
+
custom
|
|
2602
|
+
} = chatModes;
|
|
2603
|
+
const currentModeIds = getCustomModesWithUniqueNames(builtin, custom);
|
|
2604
|
+
for (const modeId of ( this._modeActionDisposables.keys())) {
|
|
2605
|
+
if (!( currentModeIds.has(modeId))) {
|
|
2606
|
+
this._modeActionDisposables.deleteAndDispose(modeId);
|
|
2607
|
+
}
|
|
2608
|
+
}
|
|
2609
|
+
for (const mode of custom) {
|
|
2610
|
+
if (( currentModeIds.has(mode.id)) && !( this._modeActionDisposables.has(mode.id))) {
|
|
2611
|
+
this._registerModeAction(mode);
|
|
2612
|
+
}
|
|
2613
|
+
}
|
|
2614
|
+
}
|
|
2615
|
+
_registerModeAction(mode) {
|
|
2616
|
+
const actionClass = class extends ModeOpenChatGlobalAction {
|
|
2617
|
+
constructor() {
|
|
2618
|
+
super(mode);
|
|
2619
|
+
}
|
|
2620
|
+
};
|
|
2621
|
+
this._modeActionDisposables.set(mode.id, registerAction2(actionClass));
|
|
2622
|
+
}
|
|
2623
|
+
};
|
|
2624
|
+
ChatAgentActionsContribution = ( __decorate([( __param(0, IChatModeService)), ( __param(1, IChatWidgetService))], ChatAgentActionsContribution));
|
|
2625
|
+
let HookSchemaAssociationContribution = class HookSchemaAssociationContribution extends Disposable {
|
|
2626
|
+
static {
|
|
2627
|
+
this.ID = "workbench.contrib.hookSchemaAssociation";
|
|
2628
|
+
}
|
|
2629
|
+
constructor(_configurationService, _pathService) {
|
|
2630
|
+
super();
|
|
2631
|
+
this._configurationService = _configurationService;
|
|
2632
|
+
this._pathService = _pathService;
|
|
2633
|
+
this._registrations = this._register(( new DisposableStore()));
|
|
2634
|
+
this._updateAssociations();
|
|
2635
|
+
this._register(this._configurationService.onDidChangeConfiguration(e => {
|
|
2636
|
+
if (e.affectsConfiguration(PromptsConfig.HOOKS_LOCATION_KEY)) {
|
|
2637
|
+
this._updateAssociations();
|
|
2638
|
+
}
|
|
2639
|
+
}));
|
|
2640
|
+
}
|
|
2641
|
+
async _updateAssociations() {
|
|
2642
|
+
this._registrations.clear();
|
|
2643
|
+
const folders = PromptsConfig.promptSourceFolders(this._configurationService, PromptsType.hook);
|
|
2644
|
+
const userHomeUri = await this._pathService.userHome();
|
|
2645
|
+
const userHome = userHomeUri.fsPath ?? userHomeUri.path;
|
|
2646
|
+
for (const folder of folders) {
|
|
2647
|
+
if (folder.source === PromptFileSource.ClaudeWorkspace || folder.source === PromptFileSource.ClaudeWorkspaceLocal || folder.source === PromptFileSource.ClaudePersonal) {
|
|
2648
|
+
continue;
|
|
2649
|
+
}
|
|
2650
|
+
const resolvedPath = isTildePath(folder.path) ? userHome + folder.path.substring(1) : folder.path;
|
|
2651
|
+
const glob = resolvedPath.toLowerCase().endsWith(".json") ? resolvedPath : `${resolvedPath}/*.json`;
|
|
2652
|
+
this._registrations.add(jsonContributionRegistry.registerSchemaAssociation(HOOK_SCHEMA_URI, glob));
|
|
2653
|
+
}
|
|
2654
|
+
}
|
|
2655
|
+
};
|
|
2656
|
+
HookSchemaAssociationContribution = ( __decorate([( __param(0, IConfigurationService)), ( __param(1, IPathService))], HookSchemaAssociationContribution));
|
|
2657
|
+
let ToolReferenceNamesContribution = class ToolReferenceNamesContribution extends Disposable {
|
|
2658
|
+
static {
|
|
2659
|
+
this.ID = "workbench.contrib.toolReferenceNames";
|
|
2660
|
+
}
|
|
2661
|
+
constructor(_languageModelToolsService) {
|
|
2662
|
+
super();
|
|
2663
|
+
this._languageModelToolsService = _languageModelToolsService;
|
|
2664
|
+
this._updateToolReferenceNames();
|
|
2665
|
+
this._register(
|
|
2666
|
+
this._languageModelToolsService.onDidChangeTools(() => this._updateToolReferenceNames())
|
|
2667
|
+
);
|
|
2668
|
+
}
|
|
2669
|
+
_updateToolReferenceNames() {
|
|
2670
|
+
const tools = Array.from(this._languageModelToolsService.getAllToolsIncludingDisabled()).filter(tool => typeof tool.toolReferenceName === "string").sort((a, b) => a.toolReferenceName.localeCompare(b.toolReferenceName));
|
|
2671
|
+
toolReferenceNameEnumValues.length = 0;
|
|
2672
|
+
toolReferenceNameEnumDescriptions.length = 0;
|
|
2673
|
+
for (const tool of tools) {
|
|
2674
|
+
toolReferenceNameEnumValues.push(tool.toolReferenceName);
|
|
2675
|
+
toolReferenceNameEnumDescriptions.push(( localize(
|
|
2676
|
+
6043,
|
|
2677
|
+
"{0} - {1}",
|
|
2678
|
+
tool.toolReferenceName,
|
|
2679
|
+
tool.userDescription || tool.displayName
|
|
2680
|
+
)));
|
|
2681
|
+
}
|
|
2682
|
+
configurationRegistry.notifyConfigurationSchemaUpdated({
|
|
2683
|
+
id: "chatSidebar",
|
|
2684
|
+
properties: {
|
|
2685
|
+
[ChatConfiguration.EligibleForAutoApproval]: {}
|
|
2686
|
+
}
|
|
2687
|
+
});
|
|
2688
|
+
}
|
|
2689
|
+
};
|
|
2690
|
+
ToolReferenceNamesContribution = ( __decorate([( __param(0, ILanguageModelToolsService))], ToolReferenceNamesContribution));
|
|
2691
|
+
AccessibleViewRegistry.register(( new ChatTerminalOutputAccessibleView()));
|
|
2692
|
+
AccessibleViewRegistry.register(( new ChatResponseAccessibleView()));
|
|
2693
|
+
AccessibleViewRegistry.register(( new PanelChatAccessibilityHelp()));
|
|
2694
|
+
AccessibleViewRegistry.register(( new QuickChatAccessibilityHelp()));
|
|
2695
|
+
AccessibleViewRegistry.register(( new EditsChatAccessibilityHelp()));
|
|
2696
|
+
AccessibleViewRegistry.register(( new AgentChatAccessibilityHelp()));
|
|
2697
|
+
registerEditorFeature(ChatInputBoxContentProvider);
|
|
2698
|
+
( Registry.as(EditorExtensions.EditorFactory)).registerEditorSerializer(ChatEditorInput.TypeID, ChatEditorInputSerializer);
|
|
2699
|
+
( Registry.as(EditorExtensions.EditorFactory)).registerEditorSerializer(ChatDebugEditorInput.ID, ChatDebugEditorInputSerializer);
|
|
2700
|
+
registerWorkbenchContribution2(
|
|
2701
|
+
CopilotTelemetryContribution.ID,
|
|
2702
|
+
CopilotTelemetryContribution,
|
|
2703
|
+
WorkbenchPhase.BlockRestore
|
|
2704
|
+
);
|
|
2705
|
+
registerWorkbenchContribution2(
|
|
2706
|
+
ChatResolverContribution.ID,
|
|
2707
|
+
ChatResolverContribution,
|
|
2708
|
+
WorkbenchPhase.BlockStartup
|
|
2709
|
+
);
|
|
2710
|
+
registerWorkbenchContribution2(
|
|
2711
|
+
ChatDebugResolverContribution.ID,
|
|
2712
|
+
ChatDebugResolverContribution,
|
|
2713
|
+
WorkbenchPhase.BlockStartup
|
|
2714
|
+
);
|
|
2715
|
+
registerWorkbenchContribution2(
|
|
2716
|
+
PromptsDebugContribution.ID,
|
|
2717
|
+
PromptsDebugContribution,
|
|
2718
|
+
WorkbenchPhase.BlockRestore
|
|
2719
|
+
);
|
|
2720
|
+
registerWorkbenchContribution2(
|
|
2721
|
+
ChatLanguageModelsDataContribution.ID,
|
|
2722
|
+
ChatLanguageModelsDataContribution,
|
|
2723
|
+
WorkbenchPhase.BlockRestore
|
|
2724
|
+
);
|
|
2725
|
+
registerWorkbenchContribution2(
|
|
2726
|
+
ChatSlashCommandsContribution.ID,
|
|
2727
|
+
ChatSlashCommandsContribution,
|
|
2728
|
+
WorkbenchPhase.Eventually
|
|
2729
|
+
);
|
|
2730
|
+
registerWorkbenchContribution2(
|
|
2731
|
+
ChatSessionOptionSlashCommandsContribution.ID,
|
|
2732
|
+
ChatSessionOptionSlashCommandsContribution,
|
|
2733
|
+
WorkbenchPhase.Eventually
|
|
2734
|
+
);
|
|
2735
|
+
registerWorkbenchContribution2(
|
|
2736
|
+
ChatExtensionPointHandler.ID,
|
|
2737
|
+
ChatExtensionPointHandler,
|
|
2738
|
+
WorkbenchPhase.BlockStartup
|
|
2739
|
+
);
|
|
2740
|
+
registerWorkbenchContribution2(
|
|
2741
|
+
LanguageModelToolsExtensionPointHandler.ID,
|
|
2742
|
+
LanguageModelToolsExtensionPointHandler,
|
|
2743
|
+
WorkbenchPhase.BlockRestore
|
|
2744
|
+
);
|
|
2745
|
+
registerWorkbenchContribution2(
|
|
2746
|
+
ChatPromptFilesExtensionPointHandler.ID,
|
|
2747
|
+
ChatPromptFilesExtensionPointHandler,
|
|
2748
|
+
WorkbenchPhase.BlockRestore
|
|
2749
|
+
);
|
|
2750
|
+
registerWorkbenchContribution2(
|
|
2751
|
+
ChatCompatibilityNotifier.ID,
|
|
2752
|
+
ChatCompatibilityNotifier,
|
|
2753
|
+
WorkbenchPhase.Eventually
|
|
2754
|
+
);
|
|
2755
|
+
registerWorkbenchContribution2(
|
|
2756
|
+
CodeBlockActionRendering.ID,
|
|
2757
|
+
CodeBlockActionRendering,
|
|
2758
|
+
WorkbenchPhase.BlockRestore
|
|
2759
|
+
);
|
|
2760
|
+
registerWorkbenchContribution2(
|
|
2761
|
+
ChatCopyActionRendering.ID,
|
|
2762
|
+
ChatCopyActionRendering,
|
|
2763
|
+
WorkbenchPhase.BlockRestore
|
|
2764
|
+
);
|
|
2765
|
+
registerWorkbenchContribution2(
|
|
2766
|
+
ChatImplicitContextContribution.ID,
|
|
2767
|
+
ChatImplicitContextContribution,
|
|
2768
|
+
WorkbenchPhase.Eventually
|
|
2769
|
+
);
|
|
2770
|
+
registerWorkbenchContribution2(
|
|
2771
|
+
ChatViewsWelcomeHandler.ID,
|
|
2772
|
+
ChatViewsWelcomeHandler,
|
|
2773
|
+
WorkbenchPhase.BlockStartup
|
|
2774
|
+
);
|
|
2775
|
+
registerWorkbenchContribution2(
|
|
2776
|
+
ChatGettingStartedContribution.ID,
|
|
2777
|
+
ChatGettingStartedContribution,
|
|
2778
|
+
WorkbenchPhase.Eventually
|
|
2779
|
+
);
|
|
2780
|
+
registerWorkbenchContribution2(
|
|
2781
|
+
ChatSetupContribution.ID,
|
|
2782
|
+
ChatSetupContribution,
|
|
2783
|
+
WorkbenchPhase.BlockRestore
|
|
2784
|
+
);
|
|
2785
|
+
registerWorkbenchContribution2(
|
|
2786
|
+
HasByokModelsContribution.ID,
|
|
2787
|
+
HasByokModelsContribution,
|
|
2788
|
+
WorkbenchPhase.BlockRestore
|
|
2789
|
+
);
|
|
2790
|
+
registerWorkbenchContribution2(
|
|
2791
|
+
ChatTeardownContribution.ID,
|
|
2792
|
+
ChatTeardownContribution,
|
|
2793
|
+
WorkbenchPhase.AfterRestored
|
|
2794
|
+
);
|
|
2795
|
+
registerWorkbenchContribution2(ChatStatusBarEntry.ID, ChatStatusBarEntry, WorkbenchPhase.BlockRestore);
|
|
2796
|
+
registerWorkbenchContribution2(
|
|
2797
|
+
BuiltinToolsContribution.ID,
|
|
2798
|
+
BuiltinToolsContribution,
|
|
2799
|
+
WorkbenchPhase.Eventually
|
|
2800
|
+
);
|
|
2801
|
+
registerWorkbenchContribution2(
|
|
2802
|
+
UsagesToolContribution.ID,
|
|
2803
|
+
UsagesToolContribution,
|
|
2804
|
+
WorkbenchPhase.BlockRestore
|
|
2805
|
+
);
|
|
2806
|
+
registerWorkbenchContribution2(
|
|
2807
|
+
RenameToolContribution.ID,
|
|
2808
|
+
RenameToolContribution,
|
|
2809
|
+
WorkbenchPhase.BlockRestore
|
|
2810
|
+
);
|
|
2811
|
+
registerWorkbenchContribution2(
|
|
2812
|
+
ChatAgentSettingContribution.ID,
|
|
2813
|
+
ChatAgentSettingContribution,
|
|
2814
|
+
WorkbenchPhase.AfterRestored
|
|
2815
|
+
);
|
|
2816
|
+
registerWorkbenchContribution2(
|
|
2817
|
+
ChatForegroundSessionCountContribution.ID,
|
|
2818
|
+
ChatForegroundSessionCountContribution,
|
|
2819
|
+
WorkbenchPhase.AfterRestored
|
|
2820
|
+
);
|
|
2821
|
+
registerWorkbenchContribution2(
|
|
2822
|
+
ChatAgentActionsContribution.ID,
|
|
2823
|
+
ChatAgentActionsContribution,
|
|
2824
|
+
WorkbenchPhase.Eventually
|
|
2825
|
+
);
|
|
2826
|
+
registerWorkbenchContribution2(
|
|
2827
|
+
HookSchemaAssociationContribution.ID,
|
|
2828
|
+
HookSchemaAssociationContribution,
|
|
2829
|
+
WorkbenchPhase.AfterRestored
|
|
2830
|
+
);
|
|
2831
|
+
registerWorkbenchContribution2(
|
|
2832
|
+
ToolReferenceNamesContribution.ID,
|
|
2833
|
+
ToolReferenceNamesContribution,
|
|
2834
|
+
WorkbenchPhase.AfterRestored
|
|
2835
|
+
);
|
|
2836
|
+
registerWorkbenchContribution2(
|
|
2837
|
+
ChatAgentRecommendation.ID,
|
|
2838
|
+
ChatAgentRecommendation,
|
|
2839
|
+
WorkbenchPhase.Eventually
|
|
2840
|
+
);
|
|
2841
|
+
registerWorkbenchContribution2(
|
|
2842
|
+
ChatEditingEditorAccessibility.ID,
|
|
2843
|
+
ChatEditingEditorAccessibility,
|
|
2844
|
+
WorkbenchPhase.AfterRestored
|
|
2845
|
+
);
|
|
2846
|
+
registerWorkbenchContribution2(
|
|
2847
|
+
ChatQueuePickerRendering.ID,
|
|
2848
|
+
ChatQueuePickerRendering,
|
|
2849
|
+
WorkbenchPhase.BlockRestore
|
|
2850
|
+
);
|
|
2851
|
+
registerWorkbenchContribution2(
|
|
2852
|
+
ChatEditingEditorOverlay.ID,
|
|
2853
|
+
ChatEditingEditorOverlay,
|
|
2854
|
+
WorkbenchPhase.AfterRestored
|
|
2855
|
+
);
|
|
2856
|
+
registerWorkbenchContribution2(
|
|
2857
|
+
ChatEditingEditorContextKeys.ID,
|
|
2858
|
+
ChatEditingEditorContextKeys,
|
|
2859
|
+
WorkbenchPhase.AfterRestored
|
|
2860
|
+
);
|
|
2861
|
+
registerWorkbenchContribution2(
|
|
2862
|
+
ChatTransferContribution.ID,
|
|
2863
|
+
ChatTransferContribution,
|
|
2864
|
+
WorkbenchPhase.BlockRestore
|
|
2865
|
+
);
|
|
2866
|
+
registerWorkbenchContribution2(
|
|
2867
|
+
ChatContextContributions.ID,
|
|
2868
|
+
ChatContextContributions,
|
|
2869
|
+
WorkbenchPhase.AfterRestored
|
|
2870
|
+
);
|
|
2871
|
+
registerWorkbenchContribution2(PromptUrlHandler.ID, PromptUrlHandler, WorkbenchPhase.BlockRestore);
|
|
2872
|
+
registerWorkbenchContribution2(PluginUrlHandler.ID, PluginUrlHandler, WorkbenchPhase.BlockRestore);
|
|
2873
|
+
registerWorkbenchContribution2(
|
|
2874
|
+
ChatEditingNotebookFileSystemProviderContrib.ID,
|
|
2875
|
+
ChatEditingNotebookFileSystemProviderContrib,
|
|
2876
|
+
WorkbenchPhase.BlockStartup
|
|
2877
|
+
);
|
|
2878
|
+
registerWorkbenchContribution2(
|
|
2879
|
+
ChatResponseResourceWorkbenchContribution.ID,
|
|
2880
|
+
ChatResponseResourceWorkbenchContribution,
|
|
2881
|
+
WorkbenchPhase.AfterRestored
|
|
2882
|
+
);
|
|
2883
|
+
registerWorkbenchContribution2(
|
|
2884
|
+
UserToolSetsContributions.ID,
|
|
2885
|
+
UserToolSetsContributions,
|
|
2886
|
+
WorkbenchPhase.Eventually
|
|
2887
|
+
);
|
|
2888
|
+
registerWorkbenchContribution2(
|
|
2889
|
+
PromptLanguageFeaturesProvider.ID,
|
|
2890
|
+
PromptLanguageFeaturesProvider,
|
|
2891
|
+
WorkbenchPhase.Eventually
|
|
2892
|
+
);
|
|
2893
|
+
registerWorkbenchContribution2(ChatWindowNotifier.ID, ChatWindowNotifier, WorkbenchPhase.AfterRestored);
|
|
2894
|
+
registerWorkbenchContribution2(
|
|
2895
|
+
ChatRepoInfoContribution.ID,
|
|
2896
|
+
ChatRepoInfoContribution,
|
|
2897
|
+
WorkbenchPhase.Eventually
|
|
2898
|
+
);
|
|
2899
|
+
registerWorkbenchContribution2(
|
|
2900
|
+
AgentPluginRecommendations.ID,
|
|
2901
|
+
AgentPluginRecommendations,
|
|
2902
|
+
WorkbenchPhase.Eventually
|
|
2903
|
+
);
|
|
2904
|
+
registerWorkbenchContribution2(PluginAutoUpdate.ID, PluginAutoUpdate, WorkbenchPhase.Eventually);
|
|
2905
|
+
registerChatActions();
|
|
2906
|
+
registerChatAccessibilityActions();
|
|
2907
|
+
registerChatCopyActions();
|
|
2908
|
+
registerChatOpenAgentDebugPanelAction();
|
|
2909
|
+
registerChatCodeBlockActions();
|
|
2910
|
+
registerChatCodeCompareBlockActions();
|
|
2911
|
+
registerChatFileTreeActions();
|
|
2912
|
+
registerChatPromptNavigationActions();
|
|
2913
|
+
registerChatTitleActions();
|
|
2914
|
+
registerChatExecuteActions();
|
|
2915
|
+
registerChatQueueActions();
|
|
2916
|
+
registerQuickChatActions();
|
|
2917
|
+
registerChatExportActions();
|
|
2918
|
+
registerMoveActions();
|
|
2919
|
+
registerNewChatActions();
|
|
2920
|
+
registerChatContextActions();
|
|
2921
|
+
registerChatDeveloperActions();
|
|
2922
|
+
registerChatEditorActions();
|
|
2923
|
+
registerChatElicitationActions();
|
|
2924
|
+
registerChatToolActions();
|
|
2925
|
+
registerLanguageModelActions();
|
|
2926
|
+
registerChatPluginActions();
|
|
2927
|
+
registerPlanReviewFeedbackEditorActions();
|
|
2928
|
+
registerAction2(ConfigureToolSets);
|
|
2929
|
+
registerEditorFeature(ChatPasteProvidersFeature);
|
|
2930
|
+
agentPluginDiscoveryRegistry.register(( new SyncDescriptor(ConfiguredAgentPluginDiscovery)));
|
|
2931
|
+
agentPluginDiscoveryRegistry.register(( new SyncDescriptor(MarketplaceAgentPluginDiscovery)));
|
|
2932
|
+
agentPluginDiscoveryRegistry.register(( new SyncDescriptor(ExtensionAgentPluginDiscovery)));
|
|
2933
|
+
agentPluginDiscoveryRegistry.register(( new SyncDescriptor(CopilotCliAgentPluginDiscovery)));
|
|
2934
|
+
ChatWidget.CONTRIBS.push(ChatDynamicVariableModel);
|