@codingame/monaco-vscode-chat-service-override 32.0.2 → 33.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +1 -1
- package/index.js +15 -5
- package/package.json +5 -5
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +170 -24
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +372 -66
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +18 -1
- package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +160 -31
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.d.ts +8 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.js +19 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +134 -0
- package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +257 -0
- package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +84 -3
- package/vscode/src/vs/platform/agentHost/common/agentService.js +9 -1
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +61 -1
- package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +61 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.js +3 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.js +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +1 -1
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +4 -4
- package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +1 -1
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.d.ts +2 -7
- package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +8 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +60 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +10 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +10 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +180 -174
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +64 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +330 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +77 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +51 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +267 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +53 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +30 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +150 -119
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +45 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +58 -76
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +25 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +2 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +88 -70
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +82 -56
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +10 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +2 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +89 -71
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +2 -2843
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +2934 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +99 -99
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +53 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +131 -61
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +23 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +91 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +15 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +203 -163
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +31 -54
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +88 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +17 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +91 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.d.ts +52 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +82 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.d.ts +21 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +55 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.d.ts +51 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.js +106 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +38 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +59 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +25 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileContributions.js +4 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +38 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolResultCompressorService.js +106 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +75 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/{toolInvocationParts/chatToolOutputStateCache.d.ts → chatOutputPartStateCache.d.ts} +5 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/{toolInvocationParts/chatToolOutputStateCache.js → chatOutputPartStateCache.js} +19 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +58 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +18 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +13 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +6 -2
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +19 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +6 -7
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +14 -15
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +155 -156
- package/vscode/src/vs/workbench/contrib/chat/common/tools/copilotToolIds.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/copilotToolIds.js +12 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.d.ts +88 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/toolResultCompressor.js +25 -0
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +237 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.d.ts +66 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +600 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.js +47 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselTypes.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselTypes.js +7 -0
- package/vscode/src/vs/workbench/contrib/imageCarousel/browser/media/imageCarousel.css +298 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +78 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +15 -11
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandParser.d.ts +60 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandParser.js +286 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCache.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCache.js +285 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.d.ts +19 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalOutputCompressor.js +415 -47
- package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.d.ts +2 -7
- package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.js +1 -1
- package/vscode/src/vs/base/common/defaultAccount.d.ts +0 -69
- package/vscode/src/vs/base/common/defaultAccount.js +0 -12
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +0 -15
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +0 -85
package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
4
|
+
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
5
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
6
|
+
import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
|
|
7
|
+
import { IChatContextService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.service';
|
|
8
|
+
import { isProposedApiEnabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions';
|
|
9
|
+
import { ExtensionsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
|
|
10
|
+
|
|
11
|
+
const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
12
|
+
extensionPoint: "chatContext",
|
|
13
|
+
jsonSchema: {
|
|
14
|
+
description: ( localize(6786, "Contributes chat context integrations to the chat widget.")),
|
|
15
|
+
type: "array",
|
|
16
|
+
items: {
|
|
17
|
+
type: "object",
|
|
18
|
+
properties: {
|
|
19
|
+
id: {
|
|
20
|
+
description: ( localize(6787, "A unique identifier for this item.")),
|
|
21
|
+
type: "string"
|
|
22
|
+
},
|
|
23
|
+
icon: {
|
|
24
|
+
description: ( localize(6788, "The icon associated with this chat context item.")),
|
|
25
|
+
type: "string"
|
|
26
|
+
},
|
|
27
|
+
displayName: {
|
|
28
|
+
description: ( localize(
|
|
29
|
+
6789,
|
|
30
|
+
"A user-friendly name for this item which is used for display in menus."
|
|
31
|
+
)),
|
|
32
|
+
type: "string"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
required: ["id", "icon", "displayName"]
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
activationEventsGenerator: function*(contributions) {
|
|
39
|
+
for (const contrib of contributions) {
|
|
40
|
+
yield `onChatContextProvider:${contrib.id}`;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
let ChatContextContribution = class ChatContextContribution extends Disposable {
|
|
45
|
+
static {
|
|
46
|
+
this.ID = "workbench.contrib.chatContextContribution";
|
|
47
|
+
}
|
|
48
|
+
constructor(_chatContextService) {
|
|
49
|
+
super();
|
|
50
|
+
this._chatContextService = _chatContextService;
|
|
51
|
+
extensionPoint.setHandler(extensions => {
|
|
52
|
+
for (const ext of extensions) {
|
|
53
|
+
if (!isProposedApiEnabled(ext.description)) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (!Array.isArray(ext.value)) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
for (const contribution of ext.value) {
|
|
60
|
+
const icon = contribution.icon ? ThemeIcon.fromString(contribution.icon) : undefined;
|
|
61
|
+
if (!icon && contribution.icon) {
|
|
62
|
+
ext.collector.error(( localize(
|
|
63
|
+
6790,
|
|
64
|
+
"Invalid icon format for chat context contribution '{0}'. Icon must be in the format '{1}' or '{2}', e.g. '{3}'.",
|
|
65
|
+
contribution.id,
|
|
66
|
+
"$(iconId)",
|
|
67
|
+
"$(iconId~spin)",
|
|
68
|
+
"$(copilot)"
|
|
69
|
+
)));
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (!icon) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
this._chatContextService.setChatContextProvider(`${ext.description.id}-${contribution.id}`, {
|
|
76
|
+
title: contribution.displayName,
|
|
77
|
+
icon
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
ChatContextContribution = ( __decorate([( __param(0, IChatContextService))], ChatContextContribution));
|
|
85
|
+
registerWorkbenchContribution2(
|
|
86
|
+
ChatContextContribution.ID,
|
|
87
|
+
ChatContextContribution,
|
|
88
|
+
WorkbenchPhase.AfterRestored
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
export { ChatContextContribution };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
2
|
+
import { IRemoteAgentHostConnectionInfo } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService";
|
|
3
|
+
export declare const COPILOT_CLI_LOCAL_AH_SCHEME = "agent-host-copilotcli";
|
|
4
|
+
export declare const COPILOT_CLI_EH_SCHEME = "copilotcli";
|
|
5
|
+
/**
|
|
6
|
+
* Builds the local `events.jsonl` URI under `~/.copilot/session-state/<rawId>/`.
|
|
7
|
+
*
|
|
8
|
+
* Used for both the local Agent Host Copilot CLI provider and the
|
|
9
|
+
* extension-host Copilot CLI provider, which share the same on-disk layout
|
|
10
|
+
* and the same chat session URI shape (`copilotcli:/<rawId>`).
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildLocalEventsUri(userHome: URI, rawSessionId: string): URI;
|
|
13
|
+
/**
|
|
14
|
+
* Builds a `vscode-agent-host://` URI for the `events.jsonl` file inside
|
|
15
|
+
* the host's user home directory, using the connection's reported
|
|
16
|
+
* `defaultDirectory` (set from `os.homedir()` on the host during the
|
|
17
|
+
* AHP handshake).
|
|
18
|
+
*
|
|
19
|
+
* The path is joined at the URI-path level using forward slashes, which
|
|
20
|
+
* works for both POSIX hosts (`/home/me`) and Windows hosts whose
|
|
21
|
+
* `URI.file(os.homedir()).path` is also forward-slash-rooted (e.g.
|
|
22
|
+
* `/c:/Users/me`). Returns `undefined` if the host did not report a
|
|
23
|
+
* usable `defaultDirectory`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function buildRemoteEventsUri(connection: IRemoteAgentHostConnectionInfo, rawSessionId: string): URI | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Parses the connection authority out of a remote AH chat session scheme
|
|
28
|
+
* of the form `remote-<authority>-copilotcli`. Returns `undefined` for
|
|
29
|
+
* any other scheme, including the local `copilotcli` scheme.
|
|
30
|
+
*/
|
|
31
|
+
export declare function parseRemoteAuthorityFromScheme(scheme: string): string | undefined;
|
|
32
|
+
export type ResolveEventsUriResult = {
|
|
33
|
+
readonly kind: "ok";
|
|
34
|
+
readonly resource: URI;
|
|
35
|
+
} | {
|
|
36
|
+
readonly kind: "no-session";
|
|
37
|
+
} | {
|
|
38
|
+
readonly kind: "unsupported-scheme";
|
|
39
|
+
readonly scheme: string;
|
|
40
|
+
} | {
|
|
41
|
+
readonly kind: "remote-not-connected";
|
|
42
|
+
readonly authority: string;
|
|
43
|
+
} | {
|
|
44
|
+
readonly kind: "remote-no-home";
|
|
45
|
+
readonly authority: string;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Pure resolver for tests. Translates a chat session resource into the
|
|
49
|
+
* `events.jsonl` URI for the corresponding Copilot CLI session, or
|
|
50
|
+
* returns a structured error.
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveEventsUri(sessionResource: URI | undefined, userHome: URI, getConnectionByAuthority: (authority: string) => IRemoteAgentHostConnectionInfo | undefined): ResolveEventsUriResult;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
|
|
2
|
+
import { joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
3
|
+
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
4
|
+
import { agentHostAuthority, toAgentHostUri } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/agentHostUri';
|
|
5
|
+
|
|
6
|
+
const COPILOT_CLI_PROVIDER = "copilotcli";
|
|
7
|
+
const COPILOT_CLI_LOCAL_AH_SCHEME = `agent-host-${COPILOT_CLI_PROVIDER}`;
|
|
8
|
+
const COPILOT_CLI_EH_SCHEME = COPILOT_CLI_PROVIDER;
|
|
9
|
+
const REMOTE_PROVIDER_PREFIX = "remote-";
|
|
10
|
+
const REMOTE_PROVIDER_SUFFIX = `-${COPILOT_CLI_PROVIDER}`;
|
|
11
|
+
function buildLocalEventsUri(userHome, rawSessionId) {
|
|
12
|
+
return joinPath(userHome, ".copilot", "session-state", rawSessionId, "events.jsonl");
|
|
13
|
+
}
|
|
14
|
+
function buildRemoteEventsUri(connection, rawSessionId) {
|
|
15
|
+
const homePath = connection.defaultDirectory;
|
|
16
|
+
if (!homePath) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
const trimmed = homePath.endsWith("/") ? homePath.slice(0, -1) : homePath;
|
|
20
|
+
const remoteFileUri = ( URI.from({
|
|
21
|
+
scheme: "file",
|
|
22
|
+
path: `${trimmed}/.copilot/session-state/${rawSessionId}/events.jsonl`
|
|
23
|
+
}));
|
|
24
|
+
const authority = agentHostAuthority(connection.address);
|
|
25
|
+
return toAgentHostUri(remoteFileUri, authority);
|
|
26
|
+
}
|
|
27
|
+
function parseRemoteAuthorityFromScheme(scheme) {
|
|
28
|
+
if (!scheme.startsWith(REMOTE_PROVIDER_PREFIX) || !scheme.endsWith(REMOTE_PROVIDER_SUFFIX)) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
const authority = scheme.slice(
|
|
32
|
+
REMOTE_PROVIDER_PREFIX.length,
|
|
33
|
+
scheme.length - REMOTE_PROVIDER_SUFFIX.length
|
|
34
|
+
);
|
|
35
|
+
return authority || undefined;
|
|
36
|
+
}
|
|
37
|
+
function resolveEventsUri(sessionResource, userHome, getConnectionByAuthority) {
|
|
38
|
+
if (!sessionResource) {
|
|
39
|
+
return {
|
|
40
|
+
kind: "no-session"
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const rawId = sessionResource.path.startsWith("/") ? sessionResource.path.substring(1) : sessionResource.path;
|
|
44
|
+
if (!rawId) {
|
|
45
|
+
return {
|
|
46
|
+
kind: "no-session"
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
if (sessionResource.scheme === COPILOT_CLI_LOCAL_AH_SCHEME || sessionResource.scheme === COPILOT_CLI_EH_SCHEME) {
|
|
50
|
+
return {
|
|
51
|
+
kind: "ok",
|
|
52
|
+
resource: buildLocalEventsUri(userHome, rawId)
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const remoteAuthority = parseRemoteAuthorityFromScheme(sessionResource.scheme);
|
|
56
|
+
if (remoteAuthority) {
|
|
57
|
+
const connection = getConnectionByAuthority(remoteAuthority);
|
|
58
|
+
if (!connection) {
|
|
59
|
+
return {
|
|
60
|
+
kind: "remote-not-connected",
|
|
61
|
+
authority: remoteAuthority
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const resource = buildRemoteEventsUri(connection, rawId);
|
|
65
|
+
if (!resource) {
|
|
66
|
+
return {
|
|
67
|
+
kind: "remote-no-home",
|
|
68
|
+
authority: remoteAuthority
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
kind: "ok",
|
|
73
|
+
resource
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
kind: "unsupported-scheme",
|
|
78
|
+
scheme: sessionResource.scheme
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export { COPILOT_CLI_EH_SCHEME, COPILOT_CLI_LOCAL_AH_SCHEME, buildLocalEventsUri, buildRemoteEventsUri, parseRemoteAuthorityFromScheme, resolveEventsUri };
|
|
@@ -16,12 +16,32 @@ export interface DefaultModelContributionOptions {
|
|
|
16
16
|
readonly logPrefix: string;
|
|
17
17
|
/** Additional filter beyond `isUserSelectable`. Return `true` to include the model. */
|
|
18
18
|
readonly filter?: (metadata: ILanguageModelChatMetadata) => boolean;
|
|
19
|
+
/**
|
|
20
|
+
* How model identifiers are encoded in the stored setting value.
|
|
21
|
+
* - `'qualifiedName'` (default): `${name} (${vendor})` — matches
|
|
22
|
+
* {@link ILanguageModelChatMetadata.asQualifiedName}. Kept for backward
|
|
23
|
+
* compatibility with existing settings (plan/explore agent).
|
|
24
|
+
* - `'vendorAndId'`: `${vendor}/${id}` — stable composite of API-stable
|
|
25
|
+
* fields, directly usable with `vscode.lm.selectChatModels`.
|
|
26
|
+
*/
|
|
27
|
+
readonly storageFormat?: "qualifiedName" | "vendorAndId";
|
|
28
|
+
/**
|
|
29
|
+
* Optional override for the label of the default ("empty") enum entry.
|
|
30
|
+
* When omitted, defaults to `"Auto (Vendor Default)"`.
|
|
31
|
+
*/
|
|
32
|
+
readonly defaultEntryLabel?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Optional override for the description of the default ("empty") enum
|
|
35
|
+
* entry. See {@link defaultEntryLabel}.
|
|
36
|
+
*/
|
|
37
|
+
readonly defaultEntryDescription?: string;
|
|
19
38
|
}
|
|
20
39
|
/**
|
|
21
40
|
* Creates the initial static arrays used by configuration registration code.
|
|
22
41
|
* The returned arrays are mutated in-place by {@link DefaultModelContribution}.
|
|
42
|
+
*
|
|
23
43
|
*/
|
|
24
|
-
export declare function createDefaultModelArrays(): DefaultModelArrays;
|
|
44
|
+
export declare function createDefaultModelArrays(defaultEntryLabel?: string, defaultEntryDescription?: string): DefaultModelArrays;
|
|
25
45
|
/**
|
|
26
46
|
* Shared base class for workbench contributions that populate a dynamic enum
|
|
27
47
|
* of language models for a settings picker.
|
|
@@ -7,14 +7,13 @@ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log
|
|
|
7
7
|
import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
|
|
8
8
|
import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
9
9
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
10
|
-
import { DEFAULT_MODEL_PICKER_CATEGORY } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/widget/input/modelPickerWidget';
|
|
11
10
|
|
|
12
11
|
const configurationRegistry = ( Registry.as(Extensions.Configuration));
|
|
13
|
-
function createDefaultModelArrays() {
|
|
12
|
+
function createDefaultModelArrays(defaultEntryLabel, defaultEntryDescription) {
|
|
14
13
|
return {
|
|
15
14
|
modelIds: [""],
|
|
16
|
-
modelLabels: [( localize(
|
|
17
|
-
modelDescriptions: [( localize(
|
|
15
|
+
modelLabels: [defaultEntryLabel ?? ( localize(6791, "Auto (Vendor Default)"))],
|
|
16
|
+
modelDescriptions: [defaultEntryDescription ?? ( localize(6792, "Use the vendor's default model"))]
|
|
18
17
|
};
|
|
19
18
|
}
|
|
20
19
|
let DefaultModelContribution = class DefaultModelContribution extends Disposable {
|
|
@@ -39,15 +38,18 @@ let DefaultModelContribution = class DefaultModelContribution extends Disposable
|
|
|
39
38
|
configKey,
|
|
40
39
|
configSectionId,
|
|
41
40
|
logPrefix,
|
|
42
|
-
filter
|
|
41
|
+
filter,
|
|
42
|
+
storageFormat,
|
|
43
|
+
defaultEntryLabel,
|
|
44
|
+
defaultEntryDescription
|
|
43
45
|
} = this._options;
|
|
44
46
|
try {
|
|
45
47
|
modelIds.length = 0;
|
|
46
48
|
modelLabels.length = 0;
|
|
47
49
|
modelDescriptions.length = 0;
|
|
48
50
|
modelIds.push("");
|
|
49
|
-
modelLabels.push(( localize(
|
|
50
|
-
modelDescriptions.push(( localize(
|
|
51
|
+
modelLabels.push(defaultEntryLabel ?? ( localize(6791, "Auto (Vendor Default)")));
|
|
52
|
+
modelDescriptions.push(defaultEntryDescription ?? ( localize(6792, "Use the vendor's default model")));
|
|
51
53
|
const models = [];
|
|
52
54
|
const allModelIds = this._languageModelsService.getLanguageModelIds();
|
|
53
55
|
for (const modelId of allModelIds) {
|
|
@@ -65,8 +67,16 @@ let DefaultModelContribution = class DefaultModelContribution extends Disposable
|
|
|
65
67
|
this._logService.error(`${logPrefix} Error looking up model ${modelId}:`, e);
|
|
66
68
|
}
|
|
67
69
|
}
|
|
70
|
+
const vendors = this._languageModelsService.getVendors();
|
|
71
|
+
const visibleVendors = ( new Set(( vendors.map(vendor => vendor.vendor))));
|
|
68
72
|
const supportedModels = models.filter(model => {
|
|
69
|
-
if (!model.metadata
|
|
73
|
+
if (!( visibleVendors.has(model.metadata.vendor))) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
if (model.metadata?.isUserSelectable === false) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
if (model.metadata?.targetChatSessionType !== undefined) {
|
|
70
80
|
return false;
|
|
71
81
|
}
|
|
72
82
|
if (filter && !filter(model.metadata)) {
|
|
@@ -74,19 +84,46 @@ let DefaultModelContribution = class DefaultModelContribution extends Disposable
|
|
|
74
84
|
}
|
|
75
85
|
return true;
|
|
76
86
|
});
|
|
77
|
-
supportedModels.sort((a, b) =>
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
87
|
+
supportedModels.sort((a, b) => a.metadata.name.localeCompare(b.metadata.name));
|
|
88
|
+
const vendorDisplayNames = ( new Map());
|
|
89
|
+
for (const vendor of vendors) {
|
|
90
|
+
vendorDisplayNames.set(vendor.vendor, vendor.displayName);
|
|
91
|
+
}
|
|
92
|
+
const ambiguousVendorIds = ( new Set());
|
|
93
|
+
if (storageFormat === "vendorAndId") {
|
|
94
|
+
const counts = ( new Map());
|
|
95
|
+
for (const model of models) {
|
|
96
|
+
const key = `${model.metadata.vendor}/${model.metadata.id}`;
|
|
97
|
+
counts.set(key, (counts.get(key) ?? 0) + 1);
|
|
82
98
|
}
|
|
83
|
-
|
|
84
|
-
|
|
99
|
+
for (const [key, count] of counts) {
|
|
100
|
+
if (count > 1) {
|
|
101
|
+
ambiguousVendorIds.add(key);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
85
105
|
for (const model of supportedModels) {
|
|
86
106
|
try {
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
107
|
+
const storedId = storageFormat === "vendorAndId" ? `${model.metadata.vendor}/${model.metadata.id}` : ILanguageModelChatMetadata.asQualifiedName(model.metadata);
|
|
108
|
+
if (( ambiguousVendorIds.has(storedId))) {
|
|
109
|
+
this._logService.trace(
|
|
110
|
+
`${logPrefix} Skipping model '${model.metadata.name}' (${storedId}): key collides with another registered model.`
|
|
111
|
+
);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const vendorDisplayName = vendorDisplayNames.get(model.metadata.vendor);
|
|
115
|
+
if (!vendorDisplayName) {
|
|
116
|
+
this._logService.trace(
|
|
117
|
+
`${logPrefix} No vendor descriptor for '${model.metadata.vendor}' (model '${model.metadata.id}'); falling back to vendor id in label.`
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
modelIds.push(storedId);
|
|
121
|
+
modelLabels.push(( localize(
|
|
122
|
+
6793,
|
|
123
|
+
"{0} ({1})",
|
|
124
|
+
model.metadata.name,
|
|
125
|
+
vendorDisplayName ?? model.metadata.vendor
|
|
126
|
+
)));
|
|
90
127
|
modelDescriptions.push(model.metadata.tooltip ?? model.metadata.detail ?? "");
|
|
91
128
|
} catch (e) {
|
|
92
129
|
this._logService.error(`${logPrefix} Error adding model ${model.metadata.name}:`, e);
|
|
@@ -5,16 +5,16 @@ import { WorkbenchState } from '@codingame/monaco-vscode-api/vscode/vs/platform/
|
|
|
5
5
|
import { ContributionEnablementState, isContributionDisabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
|
|
6
6
|
|
|
7
7
|
function createEnablementActions(key, enablementModel, idPrefix) {
|
|
8
|
-
return [( new Action(`${idPrefix}.enable`, ( localize(
|
|
8
|
+
return [( new Action(`${idPrefix}.enable`, ( localize(6794, "Enable")), undefined, true, () => {
|
|
9
9
|
enablementModel.setEnabled(key, ContributionEnablementState.EnabledProfile);
|
|
10
10
|
return Promise.resolve();
|
|
11
|
-
})), ( new Action(`${idPrefix}.enableForWorkspace`, ( localize(
|
|
11
|
+
})), ( new Action(`${idPrefix}.enableForWorkspace`, ( localize(6795, "Enable (Workspace)")), undefined, true, () => {
|
|
12
12
|
enablementModel.setEnabled(key, ContributionEnablementState.EnabledWorkspace);
|
|
13
13
|
return Promise.resolve();
|
|
14
|
-
})), ( new Action(`${idPrefix}.disable`, ( localize(
|
|
14
|
+
})), ( new Action(`${idPrefix}.disable`, ( localize(6796, "Disable")), undefined, true, () => {
|
|
15
15
|
enablementModel.setEnabled(key, ContributionEnablementState.DisabledProfile);
|
|
16
16
|
return Promise.resolve();
|
|
17
|
-
})), ( new Action(`${idPrefix}.disableForWorkspace`, ( localize(
|
|
17
|
+
})), ( new Action(`${idPrefix}.disableForWorkspace`, ( localize(6797, "Disable (Workspace)")), undefined, true, () => {
|
|
18
18
|
enablementModel.setEnabled(key, ContributionEnablementState.DisabledWorkspace);
|
|
19
19
|
return Promise.resolve();
|
|
20
20
|
}))];
|
|
@@ -46,8 +46,8 @@ let EnablementStatusWidget = class EnablementStatusWidget extends Disposable {
|
|
|
46
46
|
};
|
|
47
47
|
EnablementStatusWidget = ( __decorate([( __param(3, IMarkdownRendererService))], EnablementStatusWidget));
|
|
48
48
|
const pluginEnablementLabels = {
|
|
49
|
-
disabledProfile: ( localize(
|
|
50
|
-
disabledWorkspace: ( localize(
|
|
49
|
+
disabledProfile: ( localize(6798, "This plugin is disabled.")),
|
|
50
|
+
disabledWorkspace: ( localize(6799, "This plugin is disabled for this workspace."))
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
export { EnablementStatusWidget, pluginEnablementLabels };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
3
|
+
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
4
|
+
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
5
|
+
import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
|
|
6
|
+
import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
|
|
7
|
+
import { ILanguageModelsConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelsConfiguration.service";
|
|
8
|
+
/**
|
|
9
|
+
* Owns the `github.copilot.hasByokModels` context key. The key is true iff:
|
|
10
|
+
* - `github.copilot.clientByokEnabled` is true (set by `ChatEntitlementService` + Copilot extension),
|
|
11
|
+
* - `chat.offlineByok` is enabled and `chat.aiDisabled` is off, and
|
|
12
|
+
* - the `LanguageModelsService` has at least one resolved, user-selectable non-Copilot model
|
|
13
|
+
* (signalled by the `chatNonCopilotModelsAreUserSelectable` context key).
|
|
14
|
+
*
|
|
15
|
+
* Verifying the last condition is expensive: it requires activating each BYOK-contributing
|
|
16
|
+
* extension and round-tripping into its provider. To avoid paying that cost just to gate UI,
|
|
17
|
+
* this contribution never triggers such activations itself. The strategy is:
|
|
18
|
+
*
|
|
19
|
+
* 1. On startup, optimistically restore the last persisted answer from
|
|
20
|
+
* `chat.hasByokModels.lastKnown` so UI surfaces gated by this key are correct on warm
|
|
21
|
+
* reload before anything else runs.
|
|
22
|
+
* 2. Whenever the `chatNonCopilotModelsAreUserSelectable` signal flips on — which happens
|
|
23
|
+
* naturally when something else resolves a BYOK vendor (notably `ChatInputPart`, which
|
|
24
|
+
* activates the previously selected model's vendor when restoring its persisted selection) —
|
|
25
|
+
* record `true` and persist it.
|
|
26
|
+
* 3. Once extensions are fully scanned, if there are no configured non-Copilot vendors in the
|
|
27
|
+
* language-models configuration, override a stale optimistic `true` with `false`. Same on
|
|
28
|
+
* runtime removal of all groups, and when the feature flag flips off.
|
|
29
|
+
*
|
|
30
|
+
* The trade-off is the first-time experience: a brand-new user must pick a BYOK model once
|
|
31
|
+
* before this contribution observes the signal and persists the answer. From then on, the
|
|
32
|
+
* answer survives reloads without any activation cost — users without BYOK pay nothing.
|
|
33
|
+
*
|
|
34
|
+
* Eager so the key is bound at workbench startup before any sign-in UI surfaces render.
|
|
35
|
+
*/
|
|
36
|
+
export declare class HasByokModelsContribution extends Disposable implements IWorkbenchContribution {
|
|
37
|
+
private readonly _languageModelsConfigurationService;
|
|
38
|
+
private readonly _contextKeyService;
|
|
39
|
+
private readonly _configurationService;
|
|
40
|
+
private readonly _storageService;
|
|
41
|
+
static readonly ID = "workbench.contrib.hasByokModels";
|
|
42
|
+
private static readonly STORAGE_KEY_LAST_KNOWN;
|
|
43
|
+
private static readonly TRACKED_KEYS;
|
|
44
|
+
private readonly _hasByokModels;
|
|
45
|
+
private _extensionsRegistered;
|
|
46
|
+
constructor(_languageModelsConfigurationService: ILanguageModelsConfigurationService, _contextKeyService: IContextKeyService, _configurationService: IConfigurationService, _storageService: IStorageService, extensionService: IExtensionService);
|
|
47
|
+
private _isFeatureEnabled;
|
|
48
|
+
private _restore;
|
|
49
|
+
private _setResult;
|
|
50
|
+
private _update;
|
|
51
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
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 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
6
|
+
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
7
|
+
import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
|
|
8
|
+
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
9
|
+
import { ChatEntitlementContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService';
|
|
10
|
+
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
11
|
+
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
12
|
+
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
13
|
+
import { COPILOT_VENDOR_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
14
|
+
import { ILanguageModelsConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelsConfiguration.service';
|
|
15
|
+
|
|
16
|
+
var HasByokModelsContribution_1;
|
|
17
|
+
let HasByokModelsContribution = class HasByokModelsContribution extends Disposable {
|
|
18
|
+
static {
|
|
19
|
+
HasByokModelsContribution_1 = this;
|
|
20
|
+
}
|
|
21
|
+
static {
|
|
22
|
+
this.ID = "workbench.contrib.hasByokModels";
|
|
23
|
+
}
|
|
24
|
+
static {
|
|
25
|
+
this.STORAGE_KEY_LAST_KNOWN = "chat.hasByokModels.lastKnown";
|
|
26
|
+
}
|
|
27
|
+
static {
|
|
28
|
+
this.TRACKED_KEYS = ( new Set([
|
|
29
|
+
ChatEntitlementContextKeys.clientByokEnabled.key,
|
|
30
|
+
ChatContextKeys.nonCopilotLanguageModelsAreUserSelectable.key
|
|
31
|
+
]));
|
|
32
|
+
}
|
|
33
|
+
constructor(
|
|
34
|
+
_languageModelsConfigurationService,
|
|
35
|
+
_contextKeyService,
|
|
36
|
+
_configurationService,
|
|
37
|
+
_storageService,
|
|
38
|
+
extensionService
|
|
39
|
+
) {
|
|
40
|
+
super();
|
|
41
|
+
this._languageModelsConfigurationService = _languageModelsConfigurationService;
|
|
42
|
+
this._contextKeyService = _contextKeyService;
|
|
43
|
+
this._configurationService = _configurationService;
|
|
44
|
+
this._storageService = _storageService;
|
|
45
|
+
this._extensionsRegistered = false;
|
|
46
|
+
this._hasByokModels = ChatEntitlementContextKeys.hasByokModels.bindTo(this._contextKeyService);
|
|
47
|
+
this._restore();
|
|
48
|
+
this._update();
|
|
49
|
+
extensionService.whenInstalledExtensionsRegistered().then(() => {
|
|
50
|
+
if (!this._store.isDisposed) {
|
|
51
|
+
this._extensionsRegistered = true;
|
|
52
|
+
this._update();
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
this._register(Event.any(Event.filter(
|
|
56
|
+
this._configurationService.onDidChangeConfiguration,
|
|
57
|
+
e => e.affectsConfiguration(ChatConfiguration.OfflineByok) || e.affectsConfiguration(ChatConfiguration.AIDisabled)
|
|
58
|
+
), Event.filter(
|
|
59
|
+
this._contextKeyService.onDidChangeContext,
|
|
60
|
+
e => e.affectsSome(HasByokModelsContribution_1.TRACKED_KEYS)
|
|
61
|
+
), this._languageModelsConfigurationService.onDidChangeLanguageModelGroups)(() => this._update()));
|
|
62
|
+
}
|
|
63
|
+
_isFeatureEnabled() {
|
|
64
|
+
return !this._configurationService.getValue(ChatConfiguration.AIDisabled) && !!this._configurationService.getValue(ChatConfiguration.OfflineByok) && !!this._contextKeyService.getContextKeyValue(ChatEntitlementContextKeys.clientByokEnabled.key);
|
|
65
|
+
}
|
|
66
|
+
_restore() {
|
|
67
|
+
if (!this._isFeatureEnabled()) {
|
|
68
|
+
this._hasByokModels.set(false);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
this._hasByokModels.set(this._storageService.getBoolean(
|
|
72
|
+
HasByokModelsContribution_1.STORAGE_KEY_LAST_KNOWN,
|
|
73
|
+
StorageScope.APPLICATION,
|
|
74
|
+
false
|
|
75
|
+
));
|
|
76
|
+
}
|
|
77
|
+
_setResult(value) {
|
|
78
|
+
this._hasByokModels.set(value);
|
|
79
|
+
this._storageService.store(
|
|
80
|
+
HasByokModelsContribution_1.STORAGE_KEY_LAST_KNOWN,
|
|
81
|
+
value,
|
|
82
|
+
StorageScope.APPLICATION,
|
|
83
|
+
StorageTarget.MACHINE
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
_update() {
|
|
87
|
+
if (!this._isFeatureEnabled()) {
|
|
88
|
+
this._setResult(false);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (this._contextKeyService.getContextKeyValue(ChatContextKeys.nonCopilotLanguageModelsAreUserSelectable.key)) {
|
|
92
|
+
this._setResult(true);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (!this._extensionsRegistered) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const hasByokVendor = ( this._languageModelsConfigurationService.getLanguageModelsProviderGroups().some(g => g.vendor !== COPILOT_VENDOR_ID));
|
|
99
|
+
if (!hasByokVendor) {
|
|
100
|
+
this._setResult(false);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
HasByokModelsContribution = HasByokModelsContribution_1 = ( __decorate([( __param(0, ILanguageModelsConfigurationService)), ( __param(1, IContextKeyService)), ( __param(2, IConfigurationService)), ( __param(3, IStorageService)), ( __param(4, IExtensionService))], HasByokModelsContribution));
|
|
105
|
+
|
|
106
|
+
export { HasByokModelsContribution };
|
|
@@ -44,7 +44,9 @@ let LanguageModelsConfigurationService = class LanguageModelsConfigurationServic
|
|
|
44
44
|
this.languageModelsProviderGroups = [];
|
|
45
45
|
this.modelsConfigurationFile = uriIdentityService.extUri.joinPath(userDataProfileService.currentProfile.location, "chatLanguageModels.json");
|
|
46
46
|
this.updateLanguageModelsConfiguration();
|
|
47
|
-
this._register(
|
|
47
|
+
this._register(
|
|
48
|
+
fileService.watch(uriIdentityService.extUri.dirname(this.modelsConfigurationFile))
|
|
49
|
+
);
|
|
48
50
|
this._register(fileService.onDidFilesChange(e => {
|
|
49
51
|
if (e.contains(this.modelsConfigurationFile)) {
|
|
50
52
|
this.updateLanguageModelsConfiguration();
|
|
@@ -340,7 +342,7 @@ let ChatLanguageModelsDataContribution = class ChatLanguageModelsDataContributio
|
|
|
340
342
|
},
|
|
341
343
|
settings: {
|
|
342
344
|
type: "object",
|
|
343
|
-
description: ( localize(
|
|
345
|
+
description: ( localize(6800, "Per-model settings"))
|
|
344
346
|
}
|
|
345
347
|
},
|
|
346
348
|
allOf: [...( vendors.map(vendor => ({
|
|
@@ -34,7 +34,7 @@ class NavigatePlanReviewFeedbackAction extends Action2 {
|
|
|
34
34
|
constructor(_next) {
|
|
35
35
|
super({
|
|
36
36
|
id: _next ? navigateNextPlanReviewFeedbackActionId : navigatePreviousPlanReviewFeedbackActionId,
|
|
37
|
-
title: _next ? ( localize2(
|
|
37
|
+
title: _next ? ( localize2(6801, "Go to Next Feedback Comment")) : ( localize2(6802, "Go to Previous Feedback Comment")),
|
|
38
38
|
icon: _next ? Codicon.arrowDown : Codicon.arrowUp,
|
|
39
39
|
category: CHAT_CATEGORY,
|
|
40
40
|
f1: true,
|
|
@@ -73,8 +73,8 @@ class ClearAllPlanReviewFeedbackAction extends Action2 {
|
|
|
73
73
|
constructor() {
|
|
74
74
|
super({
|
|
75
75
|
id: clearAllPlanReviewFeedbackActionId,
|
|
76
|
-
title: ( localize2(
|
|
77
|
-
tooltip: ( localize2(
|
|
76
|
+
title: ( localize2(6803, "Clear")),
|
|
77
|
+
tooltip: ( localize2(6804, "Clear All Feedback")),
|
|
78
78
|
icon: Codicon.clearAll,
|
|
79
79
|
category: CHAT_CATEGORY,
|
|
80
80
|
f1: true,
|
|
@@ -111,7 +111,7 @@ function registerPlanReviewFeedbackEditorActions() {
|
|
|
111
111
|
MenuRegistry.appendMenuItem(PlanReviewFeedbackMenuId, {
|
|
112
112
|
command: {
|
|
113
113
|
id: navigationBearingFakeActionId,
|
|
114
|
-
title: ( localize(
|
|
114
|
+
title: ( localize(6805, "Navigation Status")),
|
|
115
115
|
precondition: ( ContextKeyExpr.false())
|
|
116
116
|
},
|
|
117
117
|
group: "navigate",
|