@codingame/monaco-vscode-chat-service-override 27.0.0 → 28.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +5 -2
- package/package.json +5 -5
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +54 -4
- package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +179 -11
- package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +5 -1
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +6 -1
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +25 -10
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +67 -0
- package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +263 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +6 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +25 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +13 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +5 -5
- 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 +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +49 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +58 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +537 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.js +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/media/agentPluginEditor.css +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +17 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +89 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +4 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +146 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +56 -54
- 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 +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +25 -25
- 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/aiCustomization/aiCustomizationIcons.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +13 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +189 -145
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +42 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +20 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +210 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +14 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +122 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +87 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +62 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +702 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +279 -214
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +21 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +12 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +63 -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 +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +62 -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 +28 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +2 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +32 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +4 -5
- 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/media/chatEditorController.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +49 -49
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +14 -14
- 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 +26 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +103 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +61 -61
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +66 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +245 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.d.ts +78 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.js +234 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +31 -126
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +229 -524
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.js +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +54 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +11 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +112 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +99 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +489 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +348 -285
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +18 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +107 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +4 -4
- 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/tools/languageModelToolsConfirmationService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +55 -38
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +20 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +148 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +29 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +72 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +5 -3
- 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 +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +11 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +72 -23
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +19 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +37 -8
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +36 -3
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +71 -25
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +217 -91
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +85 -3
- package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +257 -63
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +3 -16
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +7 -50
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +32 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +7 -6
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +26 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +287 -88
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +10 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +75 -20
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +121 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +1422 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +81 -41
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +8 -6
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.d.ts +14 -2
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +54 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +6 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +38 -22
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +8 -8
- 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/runInTerminalHelpers.js +6 -6
- 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/awaitTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +36 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +27 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.d.ts +0 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +0 -67
|
@@ -23,6 +23,10 @@ import { ILanguageModelChatMetadata } from "@codingame/monaco-vscode-api/vscode/
|
|
|
23
23
|
import { ILanguageModelToolsConfirmationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsConfirmationService.service";
|
|
24
24
|
import { CountTokensCallback, IBeginToolCallOptions, IToolAndToolSetEnablementMap, IToolData, IToolImpl, IToolInvocation, IToolInvokedEvent, IToolResult, IToolSet, ToolDataSource, ToolSet } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
|
|
25
25
|
import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service";
|
|
26
|
+
import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
|
|
27
|
+
export declare enum AutoApproveStorageKeys {
|
|
28
|
+
GlobalAutoApproveOptIn = "chat.tools.global.autoApprove.optIn"
|
|
29
|
+
}
|
|
26
30
|
export declare const globalAutoApproveDescription: import("@codingame/monaco-vscode-api/vscode/vs/nls").ILocalizedString;
|
|
27
31
|
export declare class LanguageModelToolsService extends Disposable implements ILanguageModelToolsService {
|
|
28
32
|
private readonly _instantiationService;
|
|
@@ -38,6 +42,7 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
|
|
|
38
42
|
private readonly _storageService;
|
|
39
43
|
private readonly _confirmationService;
|
|
40
44
|
private readonly _commandService;
|
|
45
|
+
private readonly _chatWidgetService;
|
|
41
46
|
_serviceBrand: undefined;
|
|
42
47
|
readonly vscodeToolSet: ToolSet;
|
|
43
48
|
readonly executeToolSet: ToolSet;
|
|
@@ -60,8 +65,10 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
|
|
|
60
65
|
private readonly _callsByRequestId;
|
|
61
66
|
/** Pending tool calls in the streaming phase, keyed by toolCallId */
|
|
62
67
|
private readonly _pendingToolCalls;
|
|
68
|
+
/** Deduplicates _checkGlobalAutoApprove calls within this window */
|
|
69
|
+
private _pendingGlobalAutoApproveCheck;
|
|
63
70
|
private readonly _isAgentModeEnabled;
|
|
64
|
-
constructor(_instantiationService: IInstantiationService, _extensionService: IExtensionService, _contextKeyService: IContextKeyService, _chatService: IChatService, _dialogService: IDialogService, _telemetryService: ITelemetryService, _logService: ILogService, _configurationService: IConfigurationService, _accessibilityService: IAccessibilityService, _accessibilitySignalService: IAccessibilitySignalService, _storageService: IStorageService, _confirmationService: ILanguageModelToolsConfirmationService, _commandService: ICommandService);
|
|
71
|
+
constructor(_instantiationService: IInstantiationService, _extensionService: IExtensionService, _contextKeyService: IContextKeyService, _chatService: IChatService, _dialogService: IDialogService, _telemetryService: ITelemetryService, _logService: ILogService, _configurationService: IConfigurationService, _accessibilityService: IAccessibilityService, _accessibilitySignalService: IAccessibilitySignalService, _storageService: IStorageService, _confirmationService: ILanguageModelToolsConfirmationService, _commandService: ICommandService, _chatWidgetService: IChatWidgetService);
|
|
65
72
|
/**
|
|
66
73
|
* Returns if the given tool or toolset is permitted in the current context.
|
|
67
74
|
* When agent mode is enabled, all tools are permitted (no restriction)
|
|
@@ -106,11 +113,23 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
|
|
|
106
113
|
private ensureToolDetails;
|
|
107
114
|
private formatToolInput;
|
|
108
115
|
private toolResultToIO;
|
|
116
|
+
/**
|
|
117
|
+
* Returns true if enterprise policy has explicitly disabled the global auto-approve setting.
|
|
118
|
+
* When this is the case, Bypass Approvals and Autopilot permission levels should not auto-approve tools.
|
|
119
|
+
*/
|
|
120
|
+
private _isAutoApprovePolicyRestricted;
|
|
121
|
+
/**
|
|
122
|
+
* Returns true if the session's current (live) permission picker level is auto-approve.
|
|
123
|
+
* This checks the widget's current state, not what was stamped on the request,
|
|
124
|
+
* so switching to Autopilot mid-session takes effect immediately.
|
|
125
|
+
*/
|
|
126
|
+
private _isSessionLiveAutoApproveLevel;
|
|
109
127
|
private getEligibleForAutoApprovalSpecialCase;
|
|
110
128
|
private isToolEligibleForAutoApproval;
|
|
111
129
|
private shouldAutoConfirm;
|
|
112
130
|
private shouldAutoConfirmPostExecution;
|
|
113
131
|
private _checkGlobalAutoApprove;
|
|
132
|
+
private _doCheckGlobalAutoApprove;
|
|
114
133
|
private cleanupCallDisposables;
|
|
115
134
|
cancelToolCallsForRequest(requestId: string): void;
|
|
116
135
|
private static readonly githubMCPServerAliases;
|
|
@@ -38,13 +38,14 @@ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbenc
|
|
|
38
38
|
import { toToolSetVariableEntry, toToolVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
|
|
39
39
|
import { ToolConfirmKind, IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
40
40
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
|
|
41
|
-
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
41
|
+
import { ChatConfiguration, isAutoApproveLevel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
42
42
|
import { ChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation';
|
|
43
43
|
import { chatSessionResourceToId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
|
|
44
|
-
import { HookType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/
|
|
44
|
+
import { HookType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookTypes';
|
|
45
45
|
import { ILanguageModelToolsConfirmationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsConfirmationService.service';
|
|
46
46
|
import { ToolDataSource, VSCodeToolReference, SpecedToolAliases, isToolSet, createToolSchemaUri, toolMatchesModel, ToolInvocationPresentation, stringifyPromptTsxPart, ToolSetForModel, ToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
|
|
47
47
|
import { getToolConfirmationAlert } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider';
|
|
48
|
+
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
48
49
|
import { ObservableSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/set';
|
|
49
50
|
import { derived, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
50
51
|
import { observableFromEventOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
|
|
@@ -60,7 +61,7 @@ var AutoApproveStorageKeys;
|
|
|
60
61
|
const SkipAutoApproveConfirmationKey = "vscode.chat.tools.global.autoApprove.testMode";
|
|
61
62
|
const toolIdThatCannotBeAutoApproved = "vscode_get_confirmation_with_options";
|
|
62
63
|
const globalAutoApproveDescription = ( localize2(
|
|
63
|
-
|
|
64
|
+
6440,
|
|
64
65
|
"Global auto approve also known as \"YOLO mode\" disables manual approval completely for _all tools in all workspaces_, allowing the agent to act fully autonomously. This is extremely dangerous and is *never* recommended, even containerized environments like [Codespaces](https://github.com/features/codespaces) and [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) have user keys forwarded into the container that could be compromised.\n\n**This feature disables [critical security protections](https://code.visualstudio.com/docs/copilot/security) and makes it much easier for an attacker to compromise the machine.**\n\nNote: This setting only controls tool approval and does not prevent the agent from asking questions. To automatically answer agent questions, use the [`chat.autoReply`](command:workbench.action.openSettings?%5B%22chat.autoReply%22%5D) setting."
|
|
65
66
|
));
|
|
66
67
|
let LanguageModelToolsService = class LanguageModelToolsService extends Disposable {
|
|
@@ -80,7 +81,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
80
81
|
_accessibilitySignalService,
|
|
81
82
|
_storageService,
|
|
82
83
|
_confirmationService,
|
|
83
|
-
_commandService
|
|
84
|
+
_commandService,
|
|
85
|
+
_chatWidgetService
|
|
84
86
|
) {
|
|
85
87
|
super();
|
|
86
88
|
this._instantiationService = _instantiationService;
|
|
@@ -96,6 +98,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
96
98
|
this._storageService = _storageService;
|
|
97
99
|
this._confirmationService = _confirmationService;
|
|
98
100
|
this._commandService = _commandService;
|
|
101
|
+
this._chatWidgetService = _chatWidgetService;
|
|
99
102
|
this._onDidChangeTools = this._register(( new Emitter()));
|
|
100
103
|
this.onDidChangeTools = this._onDidChangeTools.event;
|
|
101
104
|
this._onDidPrepareToolCallBecomeUnresponsive = this._register(( new Emitter()));
|
|
@@ -161,25 +164,25 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
161
164
|
this.vscodeToolSet = this._register(
|
|
162
165
|
this.createToolSet(ToolDataSource.Internal, "vscode", VSCodeToolReference.vscode, {
|
|
163
166
|
icon: ThemeIcon.fromId(Codicon.vscode.id),
|
|
164
|
-
description: ( localize(
|
|
167
|
+
description: ( localize(6441, "Use VS Code features"))
|
|
165
168
|
})
|
|
166
169
|
);
|
|
167
170
|
this.executeToolSet = this._register(
|
|
168
171
|
this.createToolSet(ToolDataSource.Internal, "execute", SpecedToolAliases.execute, {
|
|
169
172
|
icon: ThemeIcon.fromId(Codicon.terminal.id),
|
|
170
|
-
description: ( localize(
|
|
173
|
+
description: ( localize(6442, "Execute code and applications on your machine"))
|
|
171
174
|
})
|
|
172
175
|
);
|
|
173
176
|
this.readToolSet = this._register(
|
|
174
177
|
this.createToolSet(ToolDataSource.Internal, "read", SpecedToolAliases.read, {
|
|
175
178
|
icon: ThemeIcon.fromId(Codicon.book.id),
|
|
176
|
-
description: ( localize(
|
|
179
|
+
description: ( localize(6443, "Read files in your workspace"))
|
|
177
180
|
})
|
|
178
181
|
);
|
|
179
182
|
this.agentToolSet = this._register(
|
|
180
183
|
this.createToolSet(ToolDataSource.Internal, "agent", SpecedToolAliases.agent, {
|
|
181
184
|
icon: ThemeIcon.fromId(Codicon.agent.id),
|
|
182
|
-
description: ( localize(
|
|
185
|
+
description: ( localize(6444, "Delegate tasks to other agents"))
|
|
183
186
|
})
|
|
184
187
|
);
|
|
185
188
|
}
|
|
@@ -333,8 +336,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
333
336
|
return undefined;
|
|
334
337
|
}
|
|
335
338
|
_handlePreToolUseDenial(dto, hookResult, toolData, pendingInvocation, request) {
|
|
336
|
-
const hookReason = hookResult.permissionDecisionReason ?? ( localize(
|
|
337
|
-
const reason = ( localize(
|
|
339
|
+
const hookReason = hookResult.permissionDecisionReason ?? ( localize(6445, "Hook denied tool execution"));
|
|
340
|
+
const reason = ( localize(6446, "Denied by {0} hook: {1}", HookType.PreToolUse, hookReason));
|
|
338
341
|
this._logService.debug(
|
|
339
342
|
`[LanguageModelToolsService#invokeTool] Tool ${dto.toolId} denied by preToolUse hook: ${hookReason}`
|
|
340
343
|
);
|
|
@@ -525,7 +528,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
525
528
|
dto.toolSpecificData = toolInvocation?.toolSpecificData;
|
|
526
529
|
if (preparedInvocation?.confirmationMessages?.title) {
|
|
527
530
|
if (!IChatToolInvocation.executionConfirmedOrDenied(toolInvocation) && !autoConfirmed) {
|
|
528
|
-
this.playAccessibilitySignal([toolInvocation]);
|
|
531
|
+
this.playAccessibilitySignal([toolInvocation], dto.context?.sessionResource);
|
|
529
532
|
}
|
|
530
533
|
const userConfirmed = await IChatToolInvocation.awaitConfirmation(toolInvocation, token);
|
|
531
534
|
if (userConfirmed.type === ToolConfirmKind.Denied) {
|
|
@@ -584,7 +587,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
584
587
|
tool.data.runsInWorkspace,
|
|
585
588
|
tool.data.source,
|
|
586
589
|
dto.parameters,
|
|
587
|
-
dto.context?.sessionResource
|
|
590
|
+
dto.context?.sessionResource,
|
|
591
|
+
dto.chatRequestId
|
|
588
592
|
));
|
|
589
593
|
if (toolInvocation && afterExecuteState?.type === IChatToolInvocation.StateKind.WaitingForPostApproval) {
|
|
590
594
|
const postConfirm = await IChatToolInvocation.awaitPostConfirmation(toolInvocation, token);
|
|
@@ -652,7 +656,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
652
656
|
async prepareToolInvocationWithHookResult(tool, dto, hookResult, token) {
|
|
653
657
|
let forceConfirmationReason;
|
|
654
658
|
if (hookResult?.permissionDecision === "ask") {
|
|
655
|
-
const hookMessage = ( localize(
|
|
659
|
+
const hookMessage = ( localize(6447, "{0} required confirmation", HookType.PreToolUse));
|
|
656
660
|
forceConfirmationReason = hookResult.permissionDecisionReason ? `${hookMessage}: ${hookResult.permissionDecisionReason}` : hookMessage;
|
|
657
661
|
}
|
|
658
662
|
return this.prepareToolInvocation(tool, dto, forceConfirmationReason, token);
|
|
@@ -665,7 +669,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
665
669
|
return {
|
|
666
670
|
autoConfirmed: {
|
|
667
671
|
type: ToolConfirmKind.ConfirmationNotNeeded,
|
|
668
|
-
reason: ( localize(
|
|
672
|
+
reason: ( localize(6448, "Allowed by hook"))
|
|
669
673
|
},
|
|
670
674
|
preparedInvocation
|
|
671
675
|
};
|
|
@@ -681,14 +685,14 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
681
685
|
const fullReferenceName = getToolFullReferenceName(tool.data);
|
|
682
686
|
const hookReason = hookResult.permissionDecisionReason;
|
|
683
687
|
const hookNote = hookReason ? ( localize(
|
|
684
|
-
|
|
688
|
+
6449,
|
|
685
689
|
"{0} hook required confirmation: {1}",
|
|
686
690
|
HookType.PreToolUse,
|
|
687
691
|
hookReason
|
|
688
|
-
)) : ( localize(
|
|
692
|
+
)) : ( localize(6450, "{0} hook required confirmation", HookType.PreToolUse));
|
|
689
693
|
preparedInvocation.confirmationMessages = {
|
|
690
694
|
...preparedInvocation.confirmationMessages,
|
|
691
|
-
title: ( localize(
|
|
695
|
+
title: ( localize(6451, "Use the '{0}' tool?", fullReferenceName)),
|
|
692
696
|
message: ( new MarkdownString(`_${hookNote}_`)),
|
|
693
697
|
allowAutoConfirm: false
|
|
694
698
|
};
|
|
@@ -699,11 +703,11 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
699
703
|
} else {
|
|
700
704
|
const hookReason = hookResult.permissionDecisionReason;
|
|
701
705
|
const hookNote = hookReason ? ( localize(
|
|
702
|
-
|
|
706
|
+
6452,
|
|
703
707
|
"{0} hook required confirmation: {1}",
|
|
704
708
|
HookType.PreToolUse,
|
|
705
709
|
hookReason
|
|
706
|
-
)) : ( localize(
|
|
710
|
+
)) : ( localize(6453, "{0} hook required confirmation", HookType.PreToolUse));
|
|
707
711
|
const existing = preparedInvocation.confirmationMessages;
|
|
708
712
|
if (preparedInvocation.toolSpecificData?.kind === "terminal") {
|
|
709
713
|
const existingDisclaimerText = existing.disclaimer ? (typeof existing.disclaimer === "string" ? existing.disclaimer : existing.disclaimer.value) : undefined;
|
|
@@ -732,7 +736,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
732
736
|
tool.data.runsInWorkspace,
|
|
733
737
|
tool.data.source,
|
|
734
738
|
dto.parameters,
|
|
735
|
-
sessionResource
|
|
739
|
+
sessionResource,
|
|
740
|
+
dto.chatRequestId
|
|
736
741
|
);
|
|
737
742
|
return {
|
|
738
743
|
autoConfirmed,
|
|
@@ -768,10 +773,10 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
768
773
|
const fullReferenceName = getToolFullReferenceName(tool.data);
|
|
769
774
|
prepared.confirmationMessages = {
|
|
770
775
|
...prepared.confirmationMessages,
|
|
771
|
-
title: ( localize(
|
|
772
|
-
message: ( localize(
|
|
776
|
+
title: ( localize(6454, "Confirm tool execution")),
|
|
777
|
+
message: ( localize(6455, "Run the '{0}' tool?", fullReferenceName)),
|
|
773
778
|
disclaimer: tool.data.id === toolIdThatCannotBeAutoApproved ? undefined : ( new MarkdownString(( localize(
|
|
774
|
-
|
|
779
|
+
6456,
|
|
775
780
|
"Auto approval for '{0}' is restricted via {1}.",
|
|
776
781
|
getToolFullReferenceName(tool.data),
|
|
777
782
|
createMarkdownCommandLink({
|
|
@@ -787,7 +792,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
787
792
|
}
|
|
788
793
|
if (!isEligibleForAutoApproval && prepared?.confirmationMessages?.title) {
|
|
789
794
|
prepared.confirmationMessages.disclaimer = tool.data.id === toolIdThatCannotBeAutoApproved ? undefined : ( new MarkdownString(( localize(
|
|
790
|
-
|
|
795
|
+
6456,
|
|
791
796
|
"Auto approval for '{0}' is restricted via {1}.",
|
|
792
797
|
getToolFullReferenceName(tool.data),
|
|
793
798
|
createMarkdownCommandLink({
|
|
@@ -877,11 +882,18 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
877
882
|
await this._callHandleToolStream(toolEntry, invocation, toolCallId, partialInput, token);
|
|
878
883
|
}
|
|
879
884
|
}
|
|
880
|
-
playAccessibilitySignal(toolInvocations) {
|
|
885
|
+
playAccessibilitySignal(toolInvocations, chatSessionResource) {
|
|
881
886
|
const autoApproved = this._configurationService.getValue(ChatConfiguration.GlobalAutoApprove);
|
|
882
887
|
if (autoApproved) {
|
|
883
888
|
return;
|
|
884
889
|
}
|
|
890
|
+
if (chatSessionResource) {
|
|
891
|
+
const model = this._chatService.getSession(chatSessionResource);
|
|
892
|
+
const request = model?.getRequests().at(-1);
|
|
893
|
+
if (isAutoApproveLevel(request?.modeInfo?.permissionLevel) || this._isSessionLiveAutoApproveLevel(chatSessionResource)) {
|
|
894
|
+
return;
|
|
895
|
+
}
|
|
896
|
+
}
|
|
885
897
|
const pendingInvocations = toolInvocations.filter(inv => !IChatToolInvocation.executionConfirmedOrDenied(inv));
|
|
886
898
|
if (pendingInvocations.length === 0) {
|
|
887
899
|
return;
|
|
@@ -936,6 +948,14 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
936
948
|
}
|
|
937
949
|
}));
|
|
938
950
|
}
|
|
951
|
+
_isAutoApprovePolicyRestricted() {
|
|
952
|
+
const inspected = this._configurationService.inspect(ChatConfiguration.GlobalAutoApprove);
|
|
953
|
+
return inspected.policyValue === false;
|
|
954
|
+
}
|
|
955
|
+
_isSessionLiveAutoApproveLevel(chatSessionResource) {
|
|
956
|
+
const widget = this._chatWidgetService.getWidgetBySessionResource(chatSessionResource) ?? this._chatWidgetService.lastFocusedWidget;
|
|
957
|
+
return !!widget && isAutoApproveLevel(widget.input.currentModeInfo.permissionLevel);
|
|
958
|
+
}
|
|
939
959
|
getEligibleForAutoApprovalSpecialCase(toolData) {
|
|
940
960
|
if (toolData.id === "vscode_fetchWebPage_internal") {
|
|
941
961
|
return "fetch";
|
|
@@ -971,11 +991,28 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
971
991
|
}
|
|
972
992
|
return true;
|
|
973
993
|
}
|
|
974
|
-
async shouldAutoConfirm(
|
|
994
|
+
async shouldAutoConfirm(
|
|
995
|
+
toolId,
|
|
996
|
+
runsInWorkspace,
|
|
997
|
+
source,
|
|
998
|
+
parameters,
|
|
999
|
+
chatSessionResource,
|
|
1000
|
+
chatRequestId
|
|
1001
|
+
) {
|
|
975
1002
|
const tool = this._tools.get(toolId);
|
|
976
1003
|
if (!tool) {
|
|
977
1004
|
return undefined;
|
|
978
1005
|
}
|
|
1006
|
+
if (chatSessionResource && !this._isAutoApprovePolicyRestricted()) {
|
|
1007
|
+
const model = this._chatService.getSession(chatSessionResource);
|
|
1008
|
+
const request = model?.getRequests().at(-1);
|
|
1009
|
+
if (isAutoApproveLevel(request?.modeInfo?.permissionLevel) || this._isSessionLiveAutoApproveLevel(chatSessionResource)) {
|
|
1010
|
+
return {
|
|
1011
|
+
type: ToolConfirmKind.ConfirmationNotNeeded,
|
|
1012
|
+
reason: "auto-approve-all"
|
|
1013
|
+
};
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
979
1016
|
if (!this.isToolEligibleForAutoApproval(tool.data)) {
|
|
980
1017
|
return undefined;
|
|
981
1018
|
}
|
|
@@ -1007,7 +1044,24 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
1007
1044
|
}
|
|
1008
1045
|
return undefined;
|
|
1009
1046
|
}
|
|
1010
|
-
async shouldAutoConfirmPostExecution(
|
|
1047
|
+
async shouldAutoConfirmPostExecution(
|
|
1048
|
+
toolId,
|
|
1049
|
+
runsInWorkspace,
|
|
1050
|
+
source,
|
|
1051
|
+
parameters,
|
|
1052
|
+
chatSessionResource,
|
|
1053
|
+
chatRequestId
|
|
1054
|
+
) {
|
|
1055
|
+
if (chatSessionResource && !this._isAutoApprovePolicyRestricted()) {
|
|
1056
|
+
const model = this._chatService.getSession(chatSessionResource);
|
|
1057
|
+
const request = model?.getRequests().at(-1);
|
|
1058
|
+
if (isAutoApproveLevel(request?.modeInfo?.permissionLevel) || this._isSessionLiveAutoApproveLevel(chatSessionResource)) {
|
|
1059
|
+
return {
|
|
1060
|
+
type: ToolConfirmKind.ConfirmationNotNeeded,
|
|
1061
|
+
reason: "auto-approve-all"
|
|
1062
|
+
};
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1011
1065
|
if (this._configurationService.getValue(ChatConfiguration.GlobalAutoApprove) && (await this._checkGlobalAutoApprove())) {
|
|
1012
1066
|
return {
|
|
1013
1067
|
type: ToolConfirmKind.Setting,
|
|
@@ -1033,38 +1087,73 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
1033
1087
|
if (this._contextKeyService.getContextKeyValue(SkipAutoApproveConfirmationKey) === true) {
|
|
1034
1088
|
return true;
|
|
1035
1089
|
}
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1090
|
+
if (this._pendingGlobalAutoApproveCheck) {
|
|
1091
|
+
return this._pendingGlobalAutoApproveCheck;
|
|
1092
|
+
}
|
|
1093
|
+
this._pendingGlobalAutoApproveCheck = this._doCheckGlobalAutoApprove();
|
|
1094
|
+
try {
|
|
1095
|
+
return await this._pendingGlobalAutoApproveCheck;
|
|
1096
|
+
} finally {
|
|
1097
|
+
this._pendingGlobalAutoApproveCheck = undefined;
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
async _doCheckGlobalAutoApprove() {
|
|
1101
|
+
const store = ( new DisposableStore());
|
|
1102
|
+
try {
|
|
1103
|
+
const cts = ( new CancellationTokenSource());
|
|
1104
|
+
store.add(cts);
|
|
1105
|
+
store.add(this._storageService.onDidChangeValue(
|
|
1106
|
+
StorageScope.APPLICATION,
|
|
1107
|
+
AutoApproveStorageKeys.GlobalAutoApproveOptIn,
|
|
1108
|
+
store
|
|
1109
|
+
)(() => {
|
|
1110
|
+
if (this._storageService.getBoolean(
|
|
1111
|
+
AutoApproveStorageKeys.GlobalAutoApproveOptIn,
|
|
1112
|
+
StorageScope.APPLICATION,
|
|
1113
|
+
false
|
|
1114
|
+
)) {
|
|
1115
|
+
cts.cancel();
|
|
1116
|
+
}
|
|
1117
|
+
}));
|
|
1118
|
+
const promptResult = await this._dialogService.prompt({
|
|
1119
|
+
type: Severity.Warning,
|
|
1120
|
+
message: ( localize(6457, "Enable global auto approve?")),
|
|
1121
|
+
buttons: [{
|
|
1122
|
+
label: ( localize(6458, "Enable")),
|
|
1123
|
+
run: () => true
|
|
1124
|
+
}, {
|
|
1125
|
+
label: ( localize(6459, "Disable")),
|
|
1126
|
+
run: () => false
|
|
1127
|
+
}],
|
|
1128
|
+
custom: {
|
|
1129
|
+
icon: Codicon.warning,
|
|
1130
|
+
markdownDetails: [{
|
|
1131
|
+
markdown: ( new MarkdownString(globalAutoApproveDescription.value, {
|
|
1132
|
+
isTrusted: {
|
|
1133
|
+
enabledCommands: ["workbench.action.openSettings"]
|
|
1134
|
+
}
|
|
1135
|
+
}))
|
|
1136
|
+
}]
|
|
1137
|
+
},
|
|
1138
|
+
token: cts.token
|
|
1139
|
+
});
|
|
1140
|
+
if (cts.token.isCancellationRequested) {
|
|
1141
|
+
return true;
|
|
1055
1142
|
}
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1143
|
+
if (promptResult.result !== true) {
|
|
1144
|
+
await this._configurationService.updateValue(ChatConfiguration.GlobalAutoApprove, false);
|
|
1145
|
+
return false;
|
|
1146
|
+
}
|
|
1147
|
+
this._storageService.store(
|
|
1148
|
+
AutoApproveStorageKeys.GlobalAutoApproveOptIn,
|
|
1149
|
+
true,
|
|
1150
|
+
StorageScope.APPLICATION,
|
|
1151
|
+
StorageTarget.USER
|
|
1152
|
+
);
|
|
1153
|
+
return true;
|
|
1154
|
+
} finally {
|
|
1155
|
+
store.dispose();
|
|
1060
1156
|
}
|
|
1061
|
-
this._storageService.store(
|
|
1062
|
-
AutoApproveStorageKeys.GlobalAutoApproveOptIn,
|
|
1063
|
-
true,
|
|
1064
|
-
StorageScope.APPLICATION,
|
|
1065
|
-
StorageTarget.USER
|
|
1066
|
-
);
|
|
1067
|
-
return true;
|
|
1068
1157
|
}
|
|
1069
1158
|
cleanupCallDisposables(requestId, store) {
|
|
1070
1159
|
if (requestId) {
|
|
@@ -1089,7 +1178,6 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
1089
1178
|
}
|
|
1090
1179
|
for (const [toolCallId, invocation] of this._pendingToolCalls) {
|
|
1091
1180
|
if (invocation.chatRequestId === requestId) {
|
|
1092
|
-
invocation.cancelFromStreaming(ToolConfirmKind.Skipped);
|
|
1093
1181
|
this._pendingToolCalls.delete(toolCallId);
|
|
1094
1182
|
}
|
|
1095
1183
|
}
|
|
@@ -1360,7 +1448,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
1360
1448
|
return getToolFullReferenceName(tool, toolSet);
|
|
1361
1449
|
}
|
|
1362
1450
|
};
|
|
1363
|
-
LanguageModelToolsService = LanguageModelToolsService_1 = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IExtensionService)), ( __param(2, IContextKeyService)), ( __param(3, IChatService)), ( __param(4, IDialogService)), ( __param(5, ITelemetryService)), ( __param(6, ILogService)), ( __param(7, IConfigurationService)), ( __param(8, IAccessibilityService)), ( __param(9, IAccessibilitySignalService)), ( __param(10, IStorageService)), ( __param(11, ILanguageModelToolsConfirmationService)), ( __param(12, ICommandService))], LanguageModelToolsService));
|
|
1451
|
+
LanguageModelToolsService = LanguageModelToolsService_1 = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IExtensionService)), ( __param(2, IContextKeyService)), ( __param(3, IChatService)), ( __param(4, IDialogService)), ( __param(5, ITelemetryService)), ( __param(6, ILogService)), ( __param(7, IConfigurationService)), ( __param(8, IAccessibilityService)), ( __param(9, IAccessibilitySignalService)), ( __param(10, IStorageService)), ( __param(11, ILanguageModelToolsConfirmationService)), ( __param(12, ICommandService)), ( __param(13, IChatWidgetService))], LanguageModelToolsService));
|
|
1364
1452
|
function getToolFullReferenceName(tool, toolSet) {
|
|
1365
1453
|
const toolName = tool.toolReferenceName ?? tool.displayName;
|
|
1366
1454
|
if (toolSet) {
|
|
@@ -1377,4 +1465,4 @@ function getToolSetFullReferenceName(toolSet) {
|
|
|
1377
1465
|
return toolSet.referenceName;
|
|
1378
1466
|
}
|
|
1379
1467
|
|
|
1380
|
-
export { LanguageModelToolsService, globalAutoApproveDescription };
|
|
1468
|
+
export { AutoApproveStorageKeys, LanguageModelToolsService, globalAutoApproveDescription };
|
|
@@ -71,8 +71,8 @@ let RenameTool = class RenameTool extends Disposable {
|
|
|
71
71
|
toolReferenceName: "rename",
|
|
72
72
|
canBeReferencedInPrompt: false,
|
|
73
73
|
icon: ThemeIcon.fromId(Codicon.rename.id),
|
|
74
|
-
displayName: ( localize(
|
|
75
|
-
userDescription: ( localize(
|
|
74
|
+
displayName: ( localize(6460, "Rename Symbol")),
|
|
75
|
+
userDescription: ( localize(6461, "Rename a symbol across the workspace")),
|
|
76
76
|
modelDescription,
|
|
77
77
|
source: ToolDataSource.Internal,
|
|
78
78
|
when: ( ContextKeyExpr.has("config.chat.tools.renameTool.enabled")),
|
|
@@ -107,7 +107,7 @@ let RenameTool = class RenameTool extends Disposable {
|
|
|
107
107
|
async prepareToolInvocation(context, _token) {
|
|
108
108
|
const input = context.parameters;
|
|
109
109
|
return {
|
|
110
|
-
invocationMessage: ( localize(
|
|
110
|
+
invocationMessage: ( localize(6462, "Renaming `{0}` to `{1}`", input.symbol, input.newName))
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
113
|
async invoke(invocation, _countTokens, _progress, token) {
|
|
@@ -195,13 +195,13 @@ let RenameTool = class RenameTool extends Disposable {
|
|
|
195
195
|
}
|
|
196
196
|
_successResult(input, fileCount, editCount) {
|
|
197
197
|
const text = editCount === 1 ? ( localize(
|
|
198
|
-
|
|
198
|
+
6463,
|
|
199
199
|
"Renamed `{0}` to `{1}` - 1 edit in {2} file.",
|
|
200
200
|
input.symbol,
|
|
201
201
|
input.newName,
|
|
202
202
|
fileCount
|
|
203
203
|
)) : ( localize(
|
|
204
|
-
|
|
204
|
+
6464,
|
|
205
205
|
"Renamed `{0}` to `{1}` - {2} edits across {3} files.",
|
|
206
206
|
input.symbol,
|
|
207
207
|
input.newName,
|
|
@@ -44,7 +44,7 @@ const toolSetsSchema = {
|
|
|
44
44
|
allowComments: true,
|
|
45
45
|
allowTrailingCommas: true,
|
|
46
46
|
defaultSnippets: [{
|
|
47
|
-
label: ( localize(
|
|
47
|
+
label: ( localize(6465, "Empty tool set")),
|
|
48
48
|
body: {
|
|
49
49
|
"${1:toolSetName}": {
|
|
50
50
|
"tools": ["${2:someTool}", "${3:anotherTool}"],
|
|
@@ -54,7 +54,7 @@ const toolSetsSchema = {
|
|
|
54
54
|
}
|
|
55
55
|
}],
|
|
56
56
|
type: "object",
|
|
57
|
-
description: ( localize(
|
|
57
|
+
description: ( localize(6466, "User tool sets configuration")),
|
|
58
58
|
additionalProperties: {
|
|
59
59
|
type: "object",
|
|
60
60
|
required: ["tools"],
|
|
@@ -62,7 +62,7 @@ const toolSetsSchema = {
|
|
|
62
62
|
properties: {
|
|
63
63
|
tools: {
|
|
64
64
|
description: ( localize(
|
|
65
|
-
|
|
65
|
+
6467,
|
|
66
66
|
"A list of tools or tool sets to include in this tool set. Cannot be empty and must reference tools the way they are referenced in prompts."
|
|
67
67
|
)),
|
|
68
68
|
type: "array",
|
|
@@ -75,7 +75,7 @@ const toolSetsSchema = {
|
|
|
75
75
|
},
|
|
76
76
|
icon: {
|
|
77
77
|
description: ( localize(
|
|
78
|
-
|
|
78
|
+
6468,
|
|
79
79
|
"Icon to use for this tool set in the UI. Uses the \"\\$(name)\"-syntax, like \"\\$(zap)\""
|
|
80
80
|
)),
|
|
81
81
|
type: "string",
|
|
@@ -83,7 +83,7 @@ const toolSetsSchema = {
|
|
|
83
83
|
markdownEnumDescriptions: Array.from(getAllCodicons(), icon => `$(${icon.id})`)
|
|
84
84
|
},
|
|
85
85
|
description: {
|
|
86
|
-
description: ( localize(
|
|
86
|
+
description: ( localize(6469, "A short description of this tool set.")),
|
|
87
87
|
type: "string"
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -184,7 +184,7 @@ let UserToolSetsContributions = class UserToolSetsContributions extends Disposab
|
|
|
184
184
|
});
|
|
185
185
|
for (const item of data) {
|
|
186
186
|
toolEnumValues.push(item.name);
|
|
187
|
-
toolEnumDescriptions.push(( localize(
|
|
187
|
+
toolEnumDescriptions.push(( localize(6470, "{1} ({0})\n\n{2}", item.sourceLabel, item.name, item.description)));
|
|
188
188
|
}
|
|
189
189
|
store.clear();
|
|
190
190
|
reg.registerSchema(toolSetSchemaId, toolSetsSchema, store);
|
|
@@ -281,8 +281,8 @@ class ConfigureToolSets extends Action2 {
|
|
|
281
281
|
constructor() {
|
|
282
282
|
super({
|
|
283
283
|
id: ConfigureToolSets.ID,
|
|
284
|
-
title: ( localize2(
|
|
285
|
-
shortTitle: ( localize(
|
|
284
|
+
title: ( localize2(6471, "Configure Tool Sets...")),
|
|
285
|
+
shortTitle: ( localize(6472, "Tool Sets")),
|
|
286
286
|
category: CHAT_CATEGORY,
|
|
287
287
|
f1: true,
|
|
288
288
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ChatContextKeys.Tools.toolsCount.greater(0))),
|
|
@@ -303,7 +303,7 @@ class ConfigureToolSets extends Action2 {
|
|
|
303
303
|
const textFileService = accessor.get(ITextFileService);
|
|
304
304
|
const picks = [];
|
|
305
305
|
picks.push({
|
|
306
|
-
label: ( localize(
|
|
306
|
+
label: ( localize(6473, "Create new tool sets file...")),
|
|
307
307
|
alwaysShow: true,
|
|
308
308
|
iconClass: ThemeIcon.asClassName(Codicon.plus)
|
|
309
309
|
});
|
|
@@ -320,7 +320,7 @@ class ConfigureToolSets extends Action2 {
|
|
|
320
320
|
}
|
|
321
321
|
const pick = await quickInputService.pick(picks, {
|
|
322
322
|
canPickMany: false,
|
|
323
|
-
placeHolder: ( localize(
|
|
323
|
+
placeHolder: ( localize(6474, "Select a tool set to configure"))
|
|
324
324
|
});
|
|
325
325
|
if (!pick) {
|
|
326
326
|
return;
|
|
@@ -328,13 +328,13 @@ class ConfigureToolSets extends Action2 {
|
|
|
328
328
|
let resource;
|
|
329
329
|
if (!pick.toolset) {
|
|
330
330
|
const name = await quickInputService.input({
|
|
331
|
-
placeHolder: ( localize(
|
|
331
|
+
placeHolder: ( localize(6475, "Type tool sets file name")),
|
|
332
332
|
validateInput: async input => {
|
|
333
333
|
if (!input) {
|
|
334
|
-
return localize(
|
|
334
|
+
return localize(6476, "Invalid file name");
|
|
335
335
|
}
|
|
336
336
|
if (!isValidBasename(input)) {
|
|
337
|
-
return localize(
|
|
337
|
+
return localize(6477, "'{0}' is not a valid file name", input);
|
|
338
338
|
}
|
|
339
339
|
return undefined;
|
|
340
340
|
}
|
|
@@ -75,8 +75,8 @@ let UsagesTool = class UsagesTool extends Disposable {
|
|
|
75
75
|
toolReferenceName: "usages",
|
|
76
76
|
canBeReferencedInPrompt: false,
|
|
77
77
|
icon: ThemeIcon.fromId(Codicon.references.id),
|
|
78
|
-
displayName: ( localize(
|
|
79
|
-
userDescription: ( localize(
|
|
78
|
+
displayName: ( localize(6478, "List Code Usages")),
|
|
79
|
+
userDescription: ( localize(6479, "Find references, definitions, and implementations of a symbol")),
|
|
80
80
|
modelDescription,
|
|
81
81
|
source: ToolDataSource.Internal,
|
|
82
82
|
when: ( ContextKeyExpr.has("config.chat.tools.usagesTool.enabled")),
|
|
@@ -107,7 +107,7 @@ let UsagesTool = class UsagesTool extends Disposable {
|
|
|
107
107
|
async prepareToolInvocation(context, _token) {
|
|
108
108
|
const input = context.parameters;
|
|
109
109
|
return {
|
|
110
|
-
invocationMessage: ( localize(
|
|
110
|
+
invocationMessage: ( localize(6480, "Analyzing usages of `{0}`", input.symbol))
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
113
|
async invoke(invocation, _countTokens, _progress, token) {
|
|
@@ -160,7 +160,7 @@ let UsagesTool = class UsagesTool extends Disposable {
|
|
|
160
160
|
)]);
|
|
161
161
|
if (references.length === 0) {
|
|
162
162
|
const result = createToolSimpleTextResult(`No usages found for \`${input.symbol}\`.`);
|
|
163
|
-
result.toolResultMessage = ( new MarkdownString(( localize(
|
|
163
|
+
result.toolResultMessage = ( new MarkdownString(( localize(6481, "Analyzed usages of `{0}`, no results", input.symbol))));
|
|
164
164
|
return result;
|
|
165
165
|
}
|
|
166
166
|
const previews = await this._getLinePreviews(input.symbol, references, token);
|
|
@@ -181,8 +181,8 @@ let UsagesTool = class UsagesTool extends Disposable {
|
|
|
181
181
|
}
|
|
182
182
|
const text = lines.join("\n");
|
|
183
183
|
const result = createToolSimpleTextResult(text);
|
|
184
|
-
result.toolResultMessage = references.length === 1 ? ( new MarkdownString(( localize(
|
|
185
|
-
|
|
184
|
+
result.toolResultMessage = references.length === 1 ? ( new MarkdownString(( localize(6482, "Analyzed usages of `{0}`, 1 result", input.symbol)))) : ( new MarkdownString(( localize(
|
|
185
|
+
6483,
|
|
186
186
|
"Analyzed usages of `{0}`, {1} results",
|
|
187
187
|
input.symbol,
|
|
188
188
|
references.length
|