@codingame/monaco-vscode-chat-service-override 32.0.2 → 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
|
@@ -5,6 +5,8 @@ import * as chatModelsWidget from './media/chatModelsWidget.css';
|
|
|
5
5
|
import { DisposableStore, Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
6
6
|
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
7
7
|
import { $ as $$1, append, clearNode, getTotalWidth, Dimension } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
8
|
+
import { DomScrollableElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
|
|
9
|
+
import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
|
|
8
10
|
import { Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
|
|
9
11
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
10
12
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
@@ -46,7 +48,7 @@ const VENDOR_ROW_HEIGHT = 30;
|
|
|
46
48
|
const MODEL_ROW_HEIGHT = 26;
|
|
47
49
|
class ModelsFilterAction extends Action {
|
|
48
50
|
constructor() {
|
|
49
|
-
super("workbench.models.filter", ( localize(
|
|
51
|
+
super("workbench.models.filter", ( localize(6469, "Filter")), ThemeIcon.asClassName(Codicon.filter));
|
|
50
52
|
}
|
|
51
53
|
async run() {}
|
|
52
54
|
}
|
|
@@ -97,7 +99,7 @@ let ModelsSearchFilterDropdownMenuActionViewItem = class ModelsSearchFilterDropd
|
|
|
97
99
|
return {
|
|
98
100
|
id: `provider-${vendor}`,
|
|
99
101
|
label: displayName,
|
|
100
|
-
tooltip: ( localize(
|
|
102
|
+
tooltip: ( localize(6470, "Filter by {0}", displayName)),
|
|
101
103
|
class: undefined,
|
|
102
104
|
enabled: true,
|
|
103
105
|
checked: isChecked,
|
|
@@ -114,7 +116,7 @@ let ModelsSearchFilterDropdownMenuActionViewItem = class ModelsSearchFilterDropd
|
|
|
114
116
|
return {
|
|
115
117
|
id: `capability-${capability}`,
|
|
116
118
|
label,
|
|
117
|
-
tooltip: ( localize(
|
|
119
|
+
tooltip: ( localize(6471, "Filter by {0}", label)),
|
|
118
120
|
class: undefined,
|
|
119
121
|
enabled: true,
|
|
120
122
|
checked: isChecked,
|
|
@@ -130,7 +132,7 @@ let ModelsSearchFilterDropdownMenuActionViewItem = class ModelsSearchFilterDropd
|
|
|
130
132
|
}
|
|
131
133
|
getActions() {
|
|
132
134
|
const actions = [];
|
|
133
|
-
actions.push(this.createCapabilityAction("tools", ( localize(
|
|
135
|
+
actions.push(this.createCapabilityAction("tools", ( localize(6472, "Tools"))), this.createCapabilityAction("vision", ( localize(6473, "Vision"))), this.createCapabilityAction("agent", ( localize(6474, "Agent Mode"))));
|
|
134
136
|
const configuredVendors = this.viewModel.getConfiguredVendors();
|
|
135
137
|
if (configuredVendors.length > 1) {
|
|
136
138
|
actions.push(( new Separator()));
|
|
@@ -212,7 +214,7 @@ class GutterColumnRenderer extends ModelsTableColumnRenderer {
|
|
|
212
214
|
if (templateData.listRowElement) {
|
|
213
215
|
templateData.listRowElement.setAttribute("aria-expanded", entry.collapsed ? "false" : "true");
|
|
214
216
|
}
|
|
215
|
-
const label = entry.collapsed ? ( localize(
|
|
217
|
+
const label = entry.collapsed ? ( localize(6475, "Expand")) : ( localize(6476, "Collapse"));
|
|
216
218
|
const toggleCollapseAction = {
|
|
217
219
|
id: "toggleCollapse",
|
|
218
220
|
label,
|
|
@@ -381,18 +383,18 @@ let CombinedCostColumnRenderer = class CombinedCostColumnRenderer extends Models
|
|
|
381
383
|
} = entry.model.metadata;
|
|
382
384
|
const hasCost = inputCost !== undefined || outputCost !== undefined || cacheCost !== undefined;
|
|
383
385
|
if (hasCost) {
|
|
384
|
-
templateData.inputCell.textContent = inputCost !== undefined ? ( localize(
|
|
385
|
-
templateData.outputCell.textContent = outputCost !== undefined ? ( localize(
|
|
386
|
-
templateData.cacheCell.textContent = cacheCost !== undefined ? ( localize(
|
|
386
|
+
templateData.inputCell.textContent = inputCost !== undefined ? ( localize(6477, "In: {0}", inputCost)) : "";
|
|
387
|
+
templateData.outputCell.textContent = outputCost !== undefined ? ( localize(6478, "Out: {0}", outputCost)) : "";
|
|
388
|
+
templateData.cacheCell.textContent = cacheCost !== undefined ? ( localize(6479, "Cache: {0}", cacheCost)) : "";
|
|
387
389
|
const parts = [];
|
|
388
390
|
if (inputCost !== undefined) {
|
|
389
|
-
parts.push(inputCost === 1 ? ( localize(
|
|
391
|
+
parts.push(inputCost === 1 ? ( localize(6480, "Input: {0} credit per 1M tokens", inputCost)) : ( localize(6481, "Input: {0} credits per 1M tokens", inputCost)));
|
|
390
392
|
}
|
|
391
393
|
if (outputCost !== undefined) {
|
|
392
|
-
parts.push(outputCost === 1 ? ( localize(
|
|
394
|
+
parts.push(outputCost === 1 ? ( localize(6482, "Output: {0} credit per 1M tokens", outputCost)) : ( localize(6483, "Output: {0} credits per 1M tokens", outputCost)));
|
|
393
395
|
}
|
|
394
396
|
if (cacheCost !== undefined) {
|
|
395
|
-
parts.push(cacheCost === 1 ? ( localize(
|
|
397
|
+
parts.push(cacheCost === 1 ? ( localize(6484, "Cache: {0} credit per 1M tokens", cacheCost)) : ( localize(6485, "Cache: {0} credits per 1M tokens", cacheCost)));
|
|
396
398
|
}
|
|
397
399
|
templateData.elementDisposables.add(
|
|
398
400
|
this.hoverService.setupDelayedHoverAtMouse(templateData.container, () => ({
|
|
@@ -409,7 +411,7 @@ let CombinedCostColumnRenderer = class CombinedCostColumnRenderer extends Models
|
|
|
409
411
|
templateData.inputCell.textContent = pricingText;
|
|
410
412
|
templateData.elementDisposables.add(
|
|
411
413
|
this.hoverService.setupDelayedHoverAtMouse(templateData.container, () => ({
|
|
412
|
-
content: ( localize(
|
|
414
|
+
content: ( localize(6486, "Pricing: {0}", pricingText)),
|
|
413
415
|
appearance: {
|
|
414
416
|
compact: true,
|
|
415
417
|
skipFadeInAnimation: true
|
|
@@ -463,7 +465,7 @@ let TokenLimitsColumnRenderer = class TokenLimitsColumnRenderer extends ModelsTa
|
|
|
463
465
|
const tokenDiv = append(templateData.tokenLimitsElement, $(".token-limit-item"));
|
|
464
466
|
const tokenText = append(tokenDiv, $("span"));
|
|
465
467
|
tokenText.textContent = formatTokenCount(totalTokens);
|
|
466
|
-
markdown.appendMarkdown(`${( localize(
|
|
468
|
+
markdown.appendMarkdown(`${( localize(6487, "Context Size"))}: `);
|
|
467
469
|
markdown.appendMarkdown(`${formatTokenCount(totalTokens)}`);
|
|
468
470
|
}
|
|
469
471
|
templateData.elementDisposables.add(
|
|
@@ -518,7 +520,7 @@ class CapabilitiesColumnRenderer extends ModelsTableColumnRenderer {
|
|
|
518
520
|
templateData.elementDisposables.add(this.createCapabilityButton(
|
|
519
521
|
templateData.metadataRow,
|
|
520
522
|
capabilityMatches?.includes("toolCalling") || false,
|
|
521
|
-
( localize(
|
|
523
|
+
( localize(6488, "Tools")),
|
|
522
524
|
"tools"
|
|
523
525
|
));
|
|
524
526
|
}
|
|
@@ -526,7 +528,7 @@ class CapabilitiesColumnRenderer extends ModelsTableColumnRenderer {
|
|
|
526
528
|
templateData.elementDisposables.add(this.createCapabilityButton(
|
|
527
529
|
templateData.metadataRow,
|
|
528
530
|
capabilityMatches?.includes("vision") || false,
|
|
529
|
-
( localize(
|
|
531
|
+
( localize(6489, "Vision")),
|
|
530
532
|
"vision"
|
|
531
533
|
));
|
|
532
534
|
}
|
|
@@ -601,17 +603,17 @@ let ActionsColumnRenderer = class ActionsColumnRenderer extends ModelsTableColum
|
|
|
601
603
|
if (vendorEntry.vendor.configuration) {
|
|
602
604
|
secondaryActions.push(toAction({
|
|
603
605
|
id: "configureAction",
|
|
604
|
-
label: ( localize(
|
|
606
|
+
label: ( localize(6490, "Configure...")),
|
|
605
607
|
run: () => this.languageModelsService.configureLanguageModelsProviderGroup(vendorEntry.vendor.vendor, vendorEntry.group.name)
|
|
606
608
|
}));
|
|
607
609
|
secondaryActions.push(toAction({
|
|
608
610
|
id: "deleteAction",
|
|
609
|
-
label: ( localize(
|
|
611
|
+
label: ( localize(6491, "Delete")),
|
|
610
612
|
class: ThemeIcon.asClassName(Codicon.trash),
|
|
611
613
|
run: async () => {
|
|
612
614
|
const result = await this.dialogService.confirm({
|
|
613
615
|
type: "info",
|
|
614
|
-
message: ( localize(
|
|
616
|
+
message: ( localize(6492, "Would you like to delete {0}?", vendorEntry.group.name))
|
|
615
617
|
});
|
|
616
618
|
if (!result.confirmed) {
|
|
617
619
|
return;
|
|
@@ -623,7 +625,7 @@ let ActionsColumnRenderer = class ActionsColumnRenderer extends ModelsTableColum
|
|
|
623
625
|
} else if (vendorEntry.vendor.managementCommand) {
|
|
624
626
|
primaryActions.push(toAction({
|
|
625
627
|
id: "manageVendor",
|
|
626
|
-
label: ( localize(
|
|
628
|
+
label: ( localize(6493, "Manage {0}...", vendorEntry.group.name)),
|
|
627
629
|
class: ThemeIcon.asClassName(Codicon.gear),
|
|
628
630
|
run: async () => {
|
|
629
631
|
await this.commandService.executeCommand(vendorEntry.vendor.managementCommand, vendorEntry.vendor.vendor);
|
|
@@ -635,17 +637,36 @@ let ActionsColumnRenderer = class ActionsColumnRenderer extends ModelsTableColum
|
|
|
635
637
|
}
|
|
636
638
|
renderGroupElement(entry, index, templateData) {}
|
|
637
639
|
renderModelElement(entry, index, templateData) {
|
|
638
|
-
const
|
|
639
|
-
if (
|
|
640
|
-
|
|
640
|
+
const primaryActions = [];
|
|
641
|
+
if (entry.model.metadata.id !== "auto") {
|
|
642
|
+
primaryActions.push(this.createPinAction(entry.model.identifier));
|
|
641
643
|
}
|
|
644
|
+
const configActions = this.languageModelsService.getModelConfigurationActions(entry.model.identifier);
|
|
642
645
|
const secondaryActions = [...configActions];
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
646
|
+
if (configActions.length > 0 || entry.model.metadata.configurationSchema) {
|
|
647
|
+
secondaryActions.push(toAction({
|
|
648
|
+
id: "configureModel",
|
|
649
|
+
label: ( localize(6494, "Configure...")),
|
|
650
|
+
run: () => this.languageModelsService.configureModel(entry.model.identifier)
|
|
651
|
+
}));
|
|
652
|
+
}
|
|
653
|
+
templateData.actionBar.setActions(primaryActions, secondaryActions);
|
|
654
|
+
}
|
|
655
|
+
createPinAction(modelIdentifier) {
|
|
656
|
+
const isPinned = this.languageModelsService.isModelPinned(modelIdentifier);
|
|
657
|
+
return toAction({
|
|
658
|
+
id: isPinned ? `unpin.${modelIdentifier}` : `pin.${modelIdentifier}`,
|
|
659
|
+
label: isPinned ? ( localize(6495, "Unpin Model")) : ( localize(6496, "Pin Model")),
|
|
660
|
+
class: ThemeIcon.asClassName(isPinned ? Codicon.pinned : Codicon.pin),
|
|
661
|
+
run: () => {
|
|
662
|
+
if (isPinned) {
|
|
663
|
+
this.languageModelsService.unpinModel(modelIdentifier);
|
|
664
|
+
} else {
|
|
665
|
+
this.languageModelsService.pinModel(modelIdentifier);
|
|
666
|
+
}
|
|
667
|
+
this.viewModel.refresh();
|
|
668
|
+
}
|
|
669
|
+
});
|
|
649
670
|
}
|
|
650
671
|
};
|
|
651
672
|
ActionsColumnRenderer = ActionsColumnRenderer_1 = ( __decorate([( __param(1, IInstantiationService)), ( __param(2, ILanguageModelsService)), ( __param(3, IDialogService)), ( __param(4, ICommandService)), ( __param(5, IContextMenuService))], ActionsColumnRenderer));
|
|
@@ -714,6 +735,7 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
714
735
|
this.contextKeyService = contextKeyService;
|
|
715
736
|
this._onDidChangeItemCount = this._register(( new Emitter()));
|
|
716
737
|
this.onDidChangeItemCount = this._onDidChangeItemCount.event;
|
|
738
|
+
this.tableMinWidth = 0;
|
|
717
739
|
this.dropdownActions = [];
|
|
718
740
|
this.tableDisposables = this._register(( new DisposableStore()));
|
|
719
741
|
this.searchFocusContextKey = CONTEXT_MODELS_SEARCH_FOCUS.bindTo(this.contextKeyService);
|
|
@@ -726,7 +748,7 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
726
748
|
}
|
|
727
749
|
create(container) {
|
|
728
750
|
const searchAndButtonContainer = append(container, $(".models-search-and-button-container"));
|
|
729
|
-
const placeholder = ( localize(
|
|
751
|
+
const placeholder = ( localize(6497, "Type to search..."));
|
|
730
752
|
const searchContainer = append(searchAndButtonContainer, $(".models-search-container"));
|
|
731
753
|
this.searchWidget = this._register(
|
|
732
754
|
this.instantiationService.createInstance(SuggestEnabledInput, "chatModelsWidget.searchbox", searchContainer, {
|
|
@@ -757,8 +779,8 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
757
779
|
})
|
|
758
780
|
);
|
|
759
781
|
const filterAction = this._register(( new ModelsFilterAction()));
|
|
760
|
-
const clearSearchAction = this._register(( new Action("workbench.models.clearSearch", ( localize(
|
|
761
|
-
const collapseAllAction = this._register(( new Action("workbench.models.collapseAll", ( localize(
|
|
782
|
+
const clearSearchAction = this._register(( new Action("workbench.models.clearSearch", ( localize(6498, "Clear Search")), ThemeIcon.asClassName(preferencesClearInputIcon), false, () => this.clearSearch())));
|
|
783
|
+
const collapseAllAction = this._register(( new Action("workbench.models.collapseAll", ( localize(6499, "Collapse All")), ThemeIcon.asClassName(Codicon.collapseAll), false, () => {
|
|
762
784
|
this.viewModel.collapseAll();
|
|
763
785
|
})));
|
|
764
786
|
collapseAllAction.enabled = ( this.viewModel.viewModelEntries.some(e => isLanguageModelGroupEntry(e) || isLanguageModelProviderEntry(e)));
|
|
@@ -791,7 +813,7 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
791
813
|
supportIcons: true
|
|
792
814
|
};
|
|
793
815
|
this.addButton = this._register(( new Button(this.addButtonContainer, buttonOptions)));
|
|
794
|
-
this.addButton.label = `$(${Codicon.add.id}) ${( localize(
|
|
816
|
+
this.addButton.label = `$(${Codicon.add.id}) ${( localize(6500, "Add Models..."))}`;
|
|
795
817
|
this.addButton.element.classList.add("models-add-model-button");
|
|
796
818
|
this.updateAddModelsButton();
|
|
797
819
|
this._register(this.addButton.onDidClick(e => {
|
|
@@ -809,9 +831,15 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
809
831
|
this.updateAddModelsButton();
|
|
810
832
|
this.createTable();
|
|
811
833
|
}));
|
|
834
|
+
this._register(
|
|
835
|
+
this.chatEntitlementService.onDidChangeUsageBasedBilling(() => this.createTable())
|
|
836
|
+
);
|
|
812
837
|
this._register(
|
|
813
838
|
this.languageModelsService.onDidChangeLanguageModelVendors(() => this.updateAddModelsButton())
|
|
814
839
|
);
|
|
840
|
+
this._register(
|
|
841
|
+
this.languageModelsService.onDidChangePinnedModels(() => this.viewModel.refresh())
|
|
842
|
+
);
|
|
815
843
|
this._register(this.contextKeyService.onDidChangeContext(e => {
|
|
816
844
|
if (e.affectsSome(( new Set(["github.copilot.clientByokEnabled"])))) {
|
|
817
845
|
this.updateAddModelsButton();
|
|
@@ -821,6 +849,15 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
821
849
|
createTable() {
|
|
822
850
|
this.tableDisposables.clear();
|
|
823
851
|
clearNode(this.tableContainer);
|
|
852
|
+
this.tableViewport = $(".models-table-viewport");
|
|
853
|
+
this.tableInner = append(this.tableViewport, $(".models-table-inner"));
|
|
854
|
+
this.tableScrollable = this.tableDisposables.add(( new DomScrollableElement(this.tableViewport, {
|
|
855
|
+
horizontal: ScrollbarVisibility.Auto,
|
|
856
|
+
vertical: ScrollbarVisibility.Hidden,
|
|
857
|
+
useShadows: false,
|
|
858
|
+
scrollYToX: true
|
|
859
|
+
})));
|
|
860
|
+
this.tableContainer.appendChild(this.tableScrollable.getDomNode());
|
|
824
861
|
const gutterColumnRenderer = this.instantiationService.createInstance(GutterColumnRenderer, this.viewModel);
|
|
825
862
|
const modelNameColumnRenderer = this.instantiationService.createInstance(ModelNameColumnRenderer);
|
|
826
863
|
const combinedCostColumnRenderer = this.instantiationService.createInstance(CombinedCostColumnRenderer);
|
|
@@ -848,7 +885,7 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
848
885
|
return row;
|
|
849
886
|
}
|
|
850
887
|
}, {
|
|
851
|
-
label: ( localize(
|
|
888
|
+
label: ( localize(6501, "Name")),
|
|
852
889
|
tooltip: "",
|
|
853
890
|
weight: 0.35,
|
|
854
891
|
minimumWidth: 200,
|
|
@@ -857,11 +894,9 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
857
894
|
return row;
|
|
858
895
|
}
|
|
859
896
|
}];
|
|
860
|
-
const
|
|
861
|
-
e => !isLanguageModelProviderEntry(e) && !isLanguageModelGroupEntry(e) && !isStatusEntry(e) && (e.model.metadata.inputCost !== undefined || e.model.metadata.outputCost !== undefined || e.model.metadata.cacheCost !== undefined)
|
|
862
|
-
));
|
|
897
|
+
const isUBB = this.chatEntitlementService.quotas.usageBasedBilling === true;
|
|
863
898
|
columns.push({
|
|
864
|
-
label: ( localize(
|
|
899
|
+
label: ( localize(6502, "Context Size")),
|
|
865
900
|
tooltip: "",
|
|
866
901
|
weight: 0.1,
|
|
867
902
|
minimumWidth: 140,
|
|
@@ -870,7 +905,7 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
870
905
|
return row;
|
|
871
906
|
}
|
|
872
907
|
}, {
|
|
873
|
-
label: ( localize(
|
|
908
|
+
label: ( localize(6503, "Capabilities")),
|
|
874
909
|
tooltip: "",
|
|
875
910
|
weight: 0.15,
|
|
876
911
|
minimumWidth: 180,
|
|
@@ -879,10 +914,10 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
879
914
|
return row;
|
|
880
915
|
}
|
|
881
916
|
}, {
|
|
882
|
-
label:
|
|
917
|
+
label: isUBB ? ( localize(6504, "Cost (Credits per 1M Tokens)")) : ( localize(6505, "Pricing")),
|
|
883
918
|
tooltip: "",
|
|
884
|
-
weight:
|
|
885
|
-
minimumWidth:
|
|
919
|
+
weight: isUBB ? 0.24 : 0.15,
|
|
920
|
+
minimumWidth: isUBB ? 240 : 200,
|
|
886
921
|
templateId: CombinedCostColumnRenderer.TEMPLATE_ID,
|
|
887
922
|
project(row) {
|
|
888
923
|
return row;
|
|
@@ -898,8 +933,10 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
898
933
|
return row;
|
|
899
934
|
}
|
|
900
935
|
});
|
|
936
|
+
this.tableMinWidth = columns.reduce((sum, c) => sum + c.minimumWidth, 0);
|
|
937
|
+
this.tableInner.style.minWidth = `${this.tableMinWidth}px`;
|
|
901
938
|
this.table = this.tableDisposables.add(
|
|
902
|
-
this.instantiationService.createInstance(WorkbenchTable, "ModelsWidget", this.
|
|
939
|
+
this.instantiationService.createInstance(WorkbenchTable, "ModelsWidget", this.tableInner, ( new Delegate()), columns, [
|
|
903
940
|
gutterColumnRenderer,
|
|
904
941
|
modelNameColumnRenderer,
|
|
905
942
|
combinedCostColumnRenderer,
|
|
@@ -915,50 +952,50 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
915
952
|
accessibilityProvider: {
|
|
916
953
|
getAriaLabel: e => {
|
|
917
954
|
if (isLanguageModelProviderEntry(e)) {
|
|
918
|
-
return localize(
|
|
955
|
+
return localize(6506, "{0} Models", e.vendorEntry.group.name);
|
|
919
956
|
} else if (isLanguageModelGroupEntry(e)) {
|
|
920
|
-
return e.id === "visible" ? ( localize(
|
|
957
|
+
return e.id === "visible" ? ( localize(6507, "Visible Models")) : ( localize(6508, "Hidden Models"));
|
|
921
958
|
} else if (isStatusEntry(e)) {
|
|
922
|
-
return localize(
|
|
959
|
+
return localize(6509, "Status: {0}", e.message);
|
|
923
960
|
}
|
|
924
961
|
const ariaLabels = [];
|
|
925
962
|
ariaLabels.push(( localize(
|
|
926
|
-
|
|
963
|
+
6510,
|
|
927
964
|
"{0} from {1}",
|
|
928
965
|
e.model.metadata.name,
|
|
929
966
|
e.model.provider.vendor.displayName
|
|
930
967
|
)));
|
|
931
968
|
if (e.model.metadata.maxInputTokens || e.model.metadata.maxOutputTokens) {
|
|
932
969
|
const totalTokens = (e.model.metadata.maxInputTokens ?? 0) + (e.model.metadata.maxOutputTokens ?? 0);
|
|
933
|
-
ariaLabels.push(( localize(
|
|
970
|
+
ariaLabels.push(( localize(6511, "Context size: {0} tokens", formatTokenCount(totalTokens))));
|
|
934
971
|
}
|
|
935
972
|
if (e.model.metadata.capabilities) {
|
|
936
973
|
ariaLabels.push(( localize(
|
|
937
|
-
|
|
974
|
+
6512,
|
|
938
975
|
"Capabilities: {0}",
|
|
939
976
|
( Object.keys(e.model.metadata.capabilities)).join(", ")
|
|
940
977
|
)));
|
|
941
978
|
}
|
|
942
979
|
const pricingText = e.model.metadata.pricing ?? "-";
|
|
943
980
|
if (pricingText !== "-") {
|
|
944
|
-
ariaLabels.push(( localize(
|
|
981
|
+
ariaLabels.push(( localize(6513, "Pricing: {0}", pricingText)));
|
|
945
982
|
}
|
|
946
983
|
if (e.model.metadata.inputCost !== undefined) {
|
|
947
|
-
ariaLabels.push(e.model.metadata.inputCost === 1 ? ( localize(
|
|
984
|
+
ariaLabels.push(e.model.metadata.inputCost === 1 ? ( localize(6514, "Input cost: {0} credit per 1M tokens", e.model.metadata.inputCost)) : ( localize(6515, "Input cost: {0} credits per 1M tokens", e.model.metadata.inputCost)));
|
|
948
985
|
}
|
|
949
986
|
if (e.model.metadata.outputCost !== undefined) {
|
|
950
|
-
ariaLabels.push(e.model.metadata.outputCost === 1 ? ( localize(
|
|
951
|
-
|
|
987
|
+
ariaLabels.push(e.model.metadata.outputCost === 1 ? ( localize(6516, "Output cost: {0} credit per 1M tokens", e.model.metadata.outputCost)) : ( localize(
|
|
988
|
+
6517,
|
|
952
989
|
"Output cost: {0} credits per 1M tokens",
|
|
953
990
|
e.model.metadata.outputCost
|
|
954
991
|
)));
|
|
955
992
|
}
|
|
956
993
|
if (e.model.metadata.cacheCost !== undefined) {
|
|
957
|
-
ariaLabels.push(e.model.metadata.cacheCost === 1 ? ( localize(
|
|
994
|
+
ariaLabels.push(e.model.metadata.cacheCost === 1 ? ( localize(6518, "Cache cost: {0} credit per 1M tokens", e.model.metadata.cacheCost)) : ( localize(6519, "Cache cost: {0} credits per 1M tokens", e.model.metadata.cacheCost)));
|
|
958
995
|
}
|
|
959
996
|
return ariaLabels.join(". ");
|
|
960
997
|
},
|
|
961
|
-
getWidgetAriaLabel: () => ( localize(
|
|
998
|
+
getWidgetAriaLabel: () => ( localize(6520, "Language Models"))
|
|
962
999
|
},
|
|
963
1000
|
multipleSelectionSupport: true,
|
|
964
1001
|
setRowLineHeight: false,
|
|
@@ -979,6 +1016,24 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
979
1016
|
let configureGroup;
|
|
980
1017
|
let configureVendor;
|
|
981
1018
|
if (selectedModelEntries.length) {
|
|
1019
|
+
const pinnableEntries = selectedModelEntries.filter(e => e.model.metadata.id !== "auto");
|
|
1020
|
+
if (pinnableEntries.length > 0) {
|
|
1021
|
+
const allPinned = pinnableEntries.every(e => this.languageModelsService.isModelPinned(e.model.identifier));
|
|
1022
|
+
actions.push(toAction({
|
|
1023
|
+
id: allPinned ? "unpinModels" : "pinModels",
|
|
1024
|
+
label: allPinned ? ( localize(6495, "Unpin Model")) : ( localize(6496, "Pin Model")),
|
|
1025
|
+
class: ThemeIcon.asClassName(allPinned ? Codicon.pinned : Codicon.pin),
|
|
1026
|
+
run: () => {
|
|
1027
|
+
for (const entry of pinnableEntries) {
|
|
1028
|
+
if (allPinned) {
|
|
1029
|
+
this.languageModelsService.unpinModel(entry.model.identifier);
|
|
1030
|
+
} else {
|
|
1031
|
+
this.languageModelsService.pinModel(entry.model.identifier);
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
}));
|
|
1036
|
+
}
|
|
982
1037
|
if (selectedModelEntries.length === 1) {
|
|
983
1038
|
const configActions = this.languageModelsService.getModelConfigurationActions(selectedModelEntries[0].model.identifier);
|
|
984
1039
|
if (configActions.length) {
|
|
@@ -1009,7 +1064,7 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
1009
1064
|
if (configureVendor.managementCommand) {
|
|
1010
1065
|
actions.push(toAction({
|
|
1011
1066
|
id: "configureVendor",
|
|
1012
|
-
label: ( localize(
|
|
1067
|
+
label: ( localize(6521, "Configure")),
|
|
1013
1068
|
run: async () => {
|
|
1014
1069
|
await this.commandService.executeCommand(configureVendor.managementCommand, configureVendor.vendor);
|
|
1015
1070
|
await this.viewModel.refresh();
|
|
@@ -1018,7 +1073,7 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
1018
1073
|
} else {
|
|
1019
1074
|
actions.push(toAction({
|
|
1020
1075
|
id: "configureVendor",
|
|
1021
|
-
label: ( localize(
|
|
1076
|
+
label: ( localize(6521, "Configure")),
|
|
1022
1077
|
run: () => this.languageModelsService.configureLanguageModelsProviderGroup(configureVendor.vendor, configureGroup)
|
|
1023
1078
|
}));
|
|
1024
1079
|
}
|
|
@@ -1078,16 +1133,29 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
1078
1133
|
const configurableVendors = this.languageModelsService.getVendors().filter(vendor => vendor.managementCommand || vendor.configuration);
|
|
1079
1134
|
const entitlement = this.chatEntitlementService.entitlement;
|
|
1080
1135
|
const isManagedEntitlement = entitlement === ChatEntitlement.Business || entitlement === ChatEntitlement.Enterprise;
|
|
1081
|
-
const supportsAddingModels = this.chatEntitlementService.isInternal ||
|
|
1136
|
+
const supportsAddingModels = this.chatEntitlementService.isInternal || this.chatEntitlementService.clientByokEnabled || (entitlement !== ChatEntitlement.Unknown && entitlement !== ChatEntitlement.Available && !isManagedEntitlement);
|
|
1082
1137
|
this.addButton.enabled = supportsAddingModels && configurableVendors.length > 0;
|
|
1083
|
-
this.addButton.setTitle(!supportsAddingModels && isManagedEntitlement ? ( localize(
|
|
1084
|
-
|
|
1138
|
+
this.addButton.setTitle(!supportsAddingModels && isManagedEntitlement ? ( localize(6522, "Adding models is managed by your organization")) : "");
|
|
1139
|
+
const customEndpointVendor = configurableVendors.find(v => v.vendor === "customendpoint");
|
|
1140
|
+
const customOaiVendor = configurableVendors.find(v => v.vendor === "customoai");
|
|
1141
|
+
const sortedVendors = configurableVendors.filter(v => v.vendor !== "customendpoint" && v.vendor !== "customoai").sort((a, b) => a.displayName.localeCompare(b.displayName));
|
|
1142
|
+
if (customOaiVendor) {
|
|
1143
|
+
sortedVendors.push(customOaiVendor);
|
|
1144
|
+
}
|
|
1145
|
+
const toVendorAction = vendor => toAction({
|
|
1085
1146
|
id: `enable-${vendor.vendor}`,
|
|
1086
1147
|
label: vendor.displayName,
|
|
1087
1148
|
run: async () => {
|
|
1088
1149
|
await this.addModelsForVendor(vendor);
|
|
1089
1150
|
}
|
|
1090
|
-
})
|
|
1151
|
+
});
|
|
1152
|
+
this.dropdownActions = ( sortedVendors.map(toVendorAction));
|
|
1153
|
+
if (customEndpointVendor) {
|
|
1154
|
+
if (this.dropdownActions.length > 0) {
|
|
1155
|
+
this.dropdownActions.push(( new Separator()));
|
|
1156
|
+
}
|
|
1157
|
+
this.dropdownActions.push(toVendorAction(customEndpointVendor));
|
|
1158
|
+
}
|
|
1091
1159
|
}
|
|
1092
1160
|
filterModels() {
|
|
1093
1161
|
this.delayedFiltering.trigger(() => {
|
|
@@ -1106,7 +1174,9 @@ let ChatModelsWidget = class ChatModelsWidget extends Disposable {
|
|
|
1106
1174
|
));
|
|
1107
1175
|
const tableHeight = height - 40;
|
|
1108
1176
|
this.tableContainer.style.height = `${tableHeight}px`;
|
|
1109
|
-
|
|
1177
|
+
const tableWidth = Math.max(width, this.tableMinWidth);
|
|
1178
|
+
this.table.layout(tableHeight, tableWidth);
|
|
1179
|
+
this.tableScrollable?.scanDomNode();
|
|
1110
1180
|
}
|
|
1111
1181
|
focusSearch() {
|
|
1112
1182
|
this.searchWidget.focus();
|
package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css
CHANGED
|
@@ -52,6 +52,28 @@
|
|
|
52
52
|
width: 100%;
|
|
53
53
|
border-spacing: 0;
|
|
54
54
|
border-collapse: separate;
|
|
55
|
+
overflow: hidden;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.models-widget .models-table-container > .monaco-scrollable-element {
|
|
59
|
+
width: 100%;
|
|
60
|
+
height: 100%;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.models-widget .models-table-container .models-table-viewport {
|
|
64
|
+
width: 100%;
|
|
65
|
+
height: 100%;
|
|
66
|
+
overflow-x: auto;
|
|
67
|
+
overflow-y: hidden;
|
|
68
|
+
scrollbar-width: none;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.models-widget .models-table-container .models-table-viewport::-webkit-scrollbar {
|
|
72
|
+
display: none;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.models-widget .models-table-container .models-table-inner {
|
|
76
|
+
height: 100%;
|
|
55
77
|
}
|
|
56
78
|
|
|
57
79
|
.models-widget .models-table-container .monaco-table-tr {
|
|
@@ -4,12 +4,19 @@ import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/
|
|
|
4
4
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
5
5
|
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
6
6
|
import { ExtensionIdentifier } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions";
|
|
7
|
+
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
7
8
|
import { IWebview } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/webview/browser/webview";
|
|
8
9
|
import { IWebviewService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/webview/browser/webview.service";
|
|
9
10
|
import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
|
|
11
|
+
import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
|
|
10
12
|
import { IChatOutputRendererService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.service";
|
|
11
13
|
export interface IChatOutputItemRenderer {
|
|
12
|
-
renderOutputPart(mime: string, data: Uint8Array, webview: IWebview, token: CancellationToken): Promise<void>;
|
|
14
|
+
renderOutputPart(mime: string, data: Uint8Array, webview: IWebview, context: IChatOutputRenderContext, token: CancellationToken): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export interface IChatOutputRenderContext {
|
|
17
|
+
readonly codeBlockContext?: {
|
|
18
|
+
readonly languageIdentifier: string;
|
|
19
|
+
};
|
|
13
20
|
}
|
|
14
21
|
export interface RegisterOptions {
|
|
15
22
|
readonly extension?: {
|
|
@@ -23,19 +30,32 @@ export interface RenderedOutputPart extends IDisposable {
|
|
|
23
30
|
reinitialize(): void;
|
|
24
31
|
}
|
|
25
32
|
export interface RenderOutputPartWebviewOptions {
|
|
26
|
-
readonly
|
|
33
|
+
readonly title?: string;
|
|
27
34
|
readonly webviewState?: string;
|
|
35
|
+
readonly chatSessionResource?: URI;
|
|
36
|
+
}
|
|
37
|
+
export interface RenderCodeBlockWebviewOptions extends RenderOutputPartWebviewOptions {
|
|
38
|
+
readonly chatSessionResource: URI;
|
|
28
39
|
}
|
|
29
40
|
export declare class ChatOutputRendererService extends Disposable implements IChatOutputRendererService {
|
|
30
41
|
private readonly _contextKeyService;
|
|
31
42
|
private readonly _extensionService;
|
|
32
43
|
private readonly _webviewService;
|
|
44
|
+
private readonly _chatWidgetService;
|
|
33
45
|
_serviceBrand: undefined;
|
|
46
|
+
private readonly _originStore;
|
|
34
47
|
private readonly _contributions;
|
|
35
48
|
private readonly _renderers;
|
|
36
|
-
constructor(_contextKeyService: IContextKeyService, _extensionService: IExtensionService, _webviewService: IWebviewService);
|
|
49
|
+
constructor(_contextKeyService: IContextKeyService, _extensionService: IExtensionService, _webviewService: IWebviewService, _chatWidgetService: IChatWidgetService, storageService: IStorageService);
|
|
37
50
|
registerRenderer(viewType: string, renderer: IChatOutputItemRenderer, options: RegisterOptions): IDisposable;
|
|
51
|
+
hasCodeBlockRenderer(languageIdentifier: string): boolean;
|
|
38
52
|
renderOutputPart(mime: string, data: Uint8Array, parent: HTMLElement, webviewOptions: RenderOutputPartWebviewOptions, token: CancellationToken): Promise<RenderedOutputPart>;
|
|
53
|
+
renderCodeBlock(languageIdentifier: string, data: Uint8Array, parent: HTMLElement, webviewOptions: RenderCodeBlockWebviewOptions, token: CancellationToken): Promise<RenderedOutputPart>;
|
|
54
|
+
private doRenderOutputPart;
|
|
55
|
+
private delegateScrollToChatWidget;
|
|
56
|
+
private getOrigin;
|
|
57
|
+
private getRendererForMime;
|
|
58
|
+
private getRendererForCodeBlock;
|
|
39
59
|
private getRenderer;
|
|
40
60
|
private updateContributions;
|
|
41
61
|
}
|