@codingame/monaco-vscode-chat-service-override 22.1.8 → 23.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 +16 -7
- package/package.json +43 -41
- package/vscode/src/vs/editor/common/diff/documentDiffProvider.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +57 -48
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +26 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +51 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/{chatClearActions.d.ts → chatNewActions.d.ts} +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/{chatClearActions.js → chatNewActions.js} +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +101 -98
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +35 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +43 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +33 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.d.ts +53 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.js +154 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.d.ts +44 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.js +347 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +85 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +250 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsview.css +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +97 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +290 -231
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +7 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.js +113 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimeline.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +102 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +646 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +2 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +46 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +17 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +44 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +25 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +46 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +45 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +30 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +10 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +60 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.d.ts +117 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +6 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +60 -55
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +29 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +365 -143
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +2 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +3 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +7 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +58 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +6 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +7 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +38 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +11 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +83 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +91 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +64 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +370 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +25 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +56 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +61 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +349 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +43 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +787 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +109 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +122 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +211 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatUsageWidget.css +69 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +21 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +54 -54
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +31 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +16 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.d.ts +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.js +29 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +37 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.d.ts +15 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +96 -131
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.d.ts +12 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +66 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +77 -71
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +91 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +458 -138
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +212 -150
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +96 -89
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +15 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +33 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +688 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +15 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +126 -135
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditorController.css +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +38 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +28 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +24 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +15 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +25 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +89 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +30 -29
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +10 -19
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +61 -43
- package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +7 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +28 -28
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +254 -165
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +4 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +10 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +20 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +13 -17
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +9 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +51 -21
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +7 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +74 -20
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +11 -6
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +83 -53
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +136 -78
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +18 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +357 -157
- 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 +55 -28
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +235 -108
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +12 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +50 -4
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +27 -27
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -2
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +11 -7
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +12 -14
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +18 -30
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +62 -139
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +16 -15
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +3 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +119 -15
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +6 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +47 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +192 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +7 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +21 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +8 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +18 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -25
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +18 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +31 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +24 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +33 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +42 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +14 -21
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +227 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +133 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +36 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +4 -4
- 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/monitoring/outputMonitor.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +75 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +71 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +28 -15
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +366 -363
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +18 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +9 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +16 -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/treeSitterCommandParser.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +123 -0
- package/vscode/src/vs/base/common/yaml.d.ts +0 -74
- package/vscode/src/vs/base/common/yaml.js +0 -597
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.d.ts +0 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +0 -239
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +0 -102
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +0 -435
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.d.ts +0 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.js +0 -67
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +0 -49
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +0 -380
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.d.ts +0 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.js +0 -137
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.d.ts +0 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +0 -176
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.d.ts +0 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +0 -206
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts +0 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +0 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.d.ts +0 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +0 -145
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.d.ts +0 -65
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +0 -306
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.d.ts +0 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +0 -102
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.d.ts +0 -97
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.js +0 -247
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +0 -118
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +0 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +0 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +0 -55
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +0 -66
|
@@ -13,9 +13,10 @@ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log
|
|
|
13
13
|
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
14
14
|
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
15
15
|
import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
|
|
16
|
-
import { IVariableReference } from "@codingame/monaco-vscode-
|
|
16
|
+
import { IVariableReference } from "@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/common/chatModes";
|
|
17
17
|
import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service";
|
|
18
18
|
import { ChatRequestToolReferenceEntry } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatVariableEntries";
|
|
19
|
+
import { ILanguageModelToolsConfirmationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsConfirmationService.service";
|
|
19
20
|
import { CountTokensCallback, IToolAndToolSetEnablementMap, IToolData, IToolImpl, IToolInvocation, IToolResult, ToolDataSource, ToolSet } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
|
|
20
21
|
import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service";
|
|
21
22
|
export declare const globalAutoApproveDescription: import("@codingame/monaco-vscode-api/vscode/vs/nls").ILocalizedString;
|
|
@@ -31,21 +32,25 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
|
|
|
31
32
|
private readonly _accessibilityService;
|
|
32
33
|
private readonly _accessibilitySignalService;
|
|
33
34
|
private readonly _storageService;
|
|
35
|
+
private readonly _confirmationService;
|
|
34
36
|
_serviceBrand: undefined;
|
|
35
37
|
private _onDidChangeTools;
|
|
36
38
|
readonly onDidChangeTools: Event<void>;
|
|
39
|
+
private _onDidPrepareToolCallBecomeUnresponsive;
|
|
40
|
+
readonly onDidPrepareToolCallBecomeUnresponsive: Event<{
|
|
41
|
+
sessionId: string;
|
|
42
|
+
toolData: IToolData;
|
|
43
|
+
}>;
|
|
37
44
|
/** Throttle tools updates because it sends all tools and runs on context key updates */
|
|
38
45
|
private _onDidChangeToolsScheduler;
|
|
39
46
|
private _tools;
|
|
40
47
|
private _toolContextKeys;
|
|
41
48
|
private readonly _ctxToolsCount;
|
|
42
49
|
private _callsByRequestId;
|
|
43
|
-
|
|
44
|
-
private _profileToolConfirmStore;
|
|
45
|
-
private _memoryToolConfirmStore;
|
|
46
|
-
constructor(_instantiationService: IInstantiationService, _extensionService: IExtensionService, _contextKeyService: IContextKeyService, _chatService: IChatService, _dialogService: IDialogService, _telemetryService: ITelemetryService, _logService: ILogService, _configurationService: IConfigurationService, _accessibilityService: IAccessibilityService, _accessibilitySignalService: IAccessibilitySignalService, _storageService: IStorageService);
|
|
50
|
+
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);
|
|
47
51
|
dispose(): void;
|
|
48
52
|
registerToolData(toolData: IToolData): IDisposable;
|
|
53
|
+
flushToolUpdates(): void;
|
|
49
54
|
private _refreshAllToolContextKeys;
|
|
50
55
|
registerToolImplementation(id: string, tool: IToolImpl): IDisposable;
|
|
51
56
|
registerTool(toolData: IToolData, tool: IToolImpl): IDisposable;
|
|
@@ -53,26 +58,26 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
|
|
|
53
58
|
getTool(id: string): IToolData | undefined;
|
|
54
59
|
private _getToolEntry;
|
|
55
60
|
getToolByName(name: string, includeDisabled?: boolean): IToolData | undefined;
|
|
56
|
-
setToolAutoConfirmation(toolId: string, scope: "workspace" | "profile" | "session" | "never"): void;
|
|
57
|
-
getToolAutoConfirmation(toolId: string): "workspace" | "profile" | "session" | "never";
|
|
58
|
-
resetToolAutoConfirmation(): void;
|
|
59
61
|
invokeTool(dto: IToolInvocation, countTokens: CountTokensCallback, token: CancellationToken): Promise<IToolResult>;
|
|
60
62
|
private prepareToolInvocation;
|
|
61
|
-
private informScreenReader;
|
|
62
63
|
private playAccessibilitySignal;
|
|
63
64
|
private ensureToolDetails;
|
|
64
65
|
private formatToolInput;
|
|
65
66
|
private toolResultToIO;
|
|
66
67
|
private shouldAutoConfirm;
|
|
68
|
+
private shouldAutoConfirmPostExecution;
|
|
67
69
|
private _checkGlobalAutoApprove;
|
|
68
70
|
private cleanupCallDisposables;
|
|
69
71
|
cancelToolCallsForRequest(requestId: string): void;
|
|
72
|
+
private _githubToVSCodeToolMap;
|
|
73
|
+
private _githubPrefixToVSCodePrefix;
|
|
74
|
+
mapGithubToolName(name: string): string;
|
|
70
75
|
/**
|
|
71
76
|
* Create a map that contains all tools and toolsets with their enablement state.
|
|
72
77
|
* @param toolOrToolSetNames A list of tool or toolset names that are enabled.
|
|
73
78
|
* @returns A map of tool or toolset instances to their enablement state.
|
|
74
79
|
*/
|
|
75
|
-
toToolAndToolSetEnablementMap(enabledQualifiedToolOrToolSetNames: readonly string[]): IToolAndToolSetEnablementMap;
|
|
80
|
+
toToolAndToolSetEnablementMap(enabledQualifiedToolOrToolSetNames: readonly string[], target: string | undefined): IToolAndToolSetEnablementMap;
|
|
76
81
|
toQualifiedToolNames(map: IToolAndToolSetEnablementMap): string[];
|
|
77
82
|
toToolReferences(variableReferences: readonly IVariableReference[]): ChatRequestToolReferenceEntry[];
|
|
78
83
|
private readonly _toolSets;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
3
|
import { renderAsPlaintext } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
|
|
4
|
-
import { alert } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
|
|
5
4
|
import { assertNever } from '@codingame/monaco-vscode-api/vscode/vs/base/common/assert';
|
|
6
|
-
import { RunOnceScheduler } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
5
|
+
import { RunOnceScheduler, timeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
7
6
|
import { encodeBase64 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
|
|
8
7
|
import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
9
8
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
@@ -12,11 +11,10 @@ import { CancellationError, isCancellationError } from '@codingame/monaco-vscode
|
|
|
12
11
|
import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
13
12
|
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
14
13
|
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
15
|
-
import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
|
|
16
14
|
import { Disposable, DisposableStore, toDisposable, combinedDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
17
|
-
import { LRUCache } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
|
|
18
15
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
19
16
|
import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
|
|
17
|
+
import { StopWatch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stopwatch';
|
|
20
18
|
import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
21
19
|
import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
|
|
22
20
|
import { AccessibilitySignal } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService';
|
|
@@ -32,18 +30,18 @@ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode
|
|
|
32
30
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
33
31
|
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
34
32
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
35
|
-
import { AccessibilityWorkbenchSettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
36
33
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
|
|
37
34
|
import { ChatToolInvocation } from '../common/chatProgressTypes/chatToolInvocation.js';
|
|
38
|
-
import { ToolConfirmKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService';
|
|
35
|
+
import { IChatToolInvocation, ToolConfirmKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService';
|
|
39
36
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
|
|
40
37
|
import { toToolSetVariableEntry, toToolVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatVariableEntries';
|
|
41
38
|
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
39
|
+
import { ILanguageModelToolsConfirmationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsConfirmationService.service';
|
|
40
|
+
import { VSCodeToolReference, GithubCopilotToolReference, createToolSchemaUri, stringifyPromptTsxPart, ToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
|
|
41
|
+
import { Target } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
|
|
42
|
+
import { getToolConfirmationAlert } from '@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common/vscode/vs/workbench/contrib/chat/browser/chatAccessibilityProvider';
|
|
44
43
|
import { ObservableSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/set';
|
|
45
44
|
|
|
46
|
-
var ToolConfirmStore_1;
|
|
47
45
|
const jsonSchemaRegistry = ( Registry.as(Extensions.JSONContribution));
|
|
48
46
|
var AutoApproveStorageKeys;
|
|
49
47
|
(function (AutoApproveStorageKeys) {
|
|
@@ -51,11 +49,11 @@ var AutoApproveStorageKeys;
|
|
|
51
49
|
})(AutoApproveStorageKeys || (AutoApproveStorageKeys = {}));
|
|
52
50
|
const SkipAutoApproveConfirmationKey = 'vscode.chat.tools.global.autoApprove.testMode';
|
|
53
51
|
const globalAutoApproveDescription = ( localize2(
|
|
54
|
-
|
|
52
|
+
5603,
|
|
55
53
|
'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.**'
|
|
56
54
|
));
|
|
57
55
|
let LanguageModelToolsService = class LanguageModelToolsService extends Disposable {
|
|
58
|
-
constructor(_instantiationService, _extensionService, _contextKeyService, _chatService, _dialogService, _telemetryService, _logService, _configurationService, _accessibilityService, _accessibilitySignalService, _storageService) {
|
|
56
|
+
constructor(_instantiationService, _extensionService, _contextKeyService, _chatService, _dialogService, _telemetryService, _logService, _configurationService, _accessibilityService, _accessibilitySignalService, _storageService, _confirmationService) {
|
|
59
57
|
super();
|
|
60
58
|
this._instantiationService = _instantiationService;
|
|
61
59
|
this._extensionService = _extensionService;
|
|
@@ -68,21 +66,24 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
68
66
|
this._accessibilityService = _accessibilityService;
|
|
69
67
|
this._accessibilitySignalService = _accessibilitySignalService;
|
|
70
68
|
this._storageService = _storageService;
|
|
71
|
-
this.
|
|
69
|
+
this._confirmationService = _confirmationService;
|
|
70
|
+
this._onDidChangeTools = this._register(( new Emitter()));
|
|
72
71
|
this.onDidChangeTools = this._onDidChangeTools.event;
|
|
72
|
+
this._onDidPrepareToolCallBecomeUnresponsive = this._register(( new Emitter()));
|
|
73
|
+
this.onDidPrepareToolCallBecomeUnresponsive = this._onDidPrepareToolCallBecomeUnresponsive.event;
|
|
73
74
|
this._onDidChangeToolsScheduler = ( new RunOnceScheduler(() => this._onDidChangeTools.fire(), 750));
|
|
74
75
|
this._tools = ( new Map());
|
|
75
76
|
this._toolContextKeys = ( new Set());
|
|
76
77
|
this._callsByRequestId = ( new Map());
|
|
77
|
-
this.
|
|
78
|
+
this._githubToVSCodeToolMap = {
|
|
79
|
+
[GithubCopilotToolReference.shell]: VSCodeToolReference.runCommands,
|
|
80
|
+
[GithubCopilotToolReference.customAgent]: VSCodeToolReference.runSubagent,
|
|
81
|
+
'github/*': 'github/github-mcp-server/*',
|
|
82
|
+
'playwright/*': 'microsoft/playwright-mcp/*',
|
|
83
|
+
};
|
|
84
|
+
this._githubPrefixToVSCodePrefix = [['github', 'github/github-mcp-server'], ['playwright', 'microsoft/playwright-mcp']];
|
|
78
85
|
this._toolSets = ( new ObservableSet());
|
|
79
86
|
this.toolSets = this._toolSets.observable;
|
|
80
|
-
this._workspaceToolConfirmStore = ( new Lazy(
|
|
81
|
-
() => this._register(this._instantiationService.createInstance(ToolConfirmStore, StorageScope.WORKSPACE))
|
|
82
|
-
));
|
|
83
|
-
this._profileToolConfirmStore = ( new Lazy(
|
|
84
|
-
() => this._register(this._instantiationService.createInstance(ToolConfirmStore, StorageScope.PROFILE))
|
|
85
|
-
));
|
|
86
87
|
this._register(this._contextKeyService.onDidChangeContext(e => {
|
|
87
88
|
if (e.affectsSome(this._toolContextKeys)) {
|
|
88
89
|
this._onDidChangeToolsScheduler.schedule();
|
|
@@ -130,6 +131,9 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
130
131
|
this._onDidChangeToolsScheduler.schedule();
|
|
131
132
|
});
|
|
132
133
|
}
|
|
134
|
+
flushToolUpdates() {
|
|
135
|
+
this._onDidChangeToolsScheduler.flush();
|
|
136
|
+
}
|
|
133
137
|
_refreshAllToolContextKeys() {
|
|
134
138
|
this._toolContextKeys.clear();
|
|
135
139
|
for (const tool of ( this._tools.values())) {
|
|
@@ -181,33 +185,6 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
181
185
|
}
|
|
182
186
|
return undefined;
|
|
183
187
|
}
|
|
184
|
-
setToolAutoConfirmation(toolId, scope) {
|
|
185
|
-
this._workspaceToolConfirmStore.value.setAutoConfirm(toolId, scope === 'workspace');
|
|
186
|
-
this._profileToolConfirmStore.value.setAutoConfirm(toolId, scope === 'profile');
|
|
187
|
-
if (scope === 'session') {
|
|
188
|
-
this._memoryToolConfirmStore.add(toolId);
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
this._memoryToolConfirmStore.delete(toolId);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
getToolAutoConfirmation(toolId) {
|
|
195
|
-
if (this._workspaceToolConfirmStore.value.getAutoConfirm(toolId)) {
|
|
196
|
-
return 'workspace';
|
|
197
|
-
}
|
|
198
|
-
if (this._profileToolConfirmStore.value.getAutoConfirm(toolId)) {
|
|
199
|
-
return 'profile';
|
|
200
|
-
}
|
|
201
|
-
if (( this._memoryToolConfirmStore.has(toolId))) {
|
|
202
|
-
return 'session';
|
|
203
|
-
}
|
|
204
|
-
return 'never';
|
|
205
|
-
}
|
|
206
|
-
resetToolAutoConfirmation() {
|
|
207
|
-
this._workspaceToolConfirmStore.value.reset();
|
|
208
|
-
this._profileToolConfirmStore.value.reset();
|
|
209
|
-
this._memoryToolConfirmStore.clear();
|
|
210
|
-
}
|
|
211
188
|
async invokeTool(dto, countTokens, token) {
|
|
212
189
|
this._logService.trace(`[LanguageModelToolsService#invokeTool] Invoking tool ${dto.toolId} with parameters ${JSON.stringify(dto.parameters)}`);
|
|
213
190
|
let tool = this._tools.get(dto.toolId);
|
|
@@ -225,16 +202,20 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
225
202
|
let requestId;
|
|
226
203
|
let store;
|
|
227
204
|
let toolResult;
|
|
205
|
+
let prepareTimeWatch;
|
|
206
|
+
let invocationTimeWatch;
|
|
207
|
+
let preparedInvocation;
|
|
228
208
|
try {
|
|
229
209
|
if (dto.context) {
|
|
230
210
|
store = ( new DisposableStore());
|
|
231
|
-
const model = this._chatService.
|
|
211
|
+
const model = this._chatService.getSessionByLegacyId(dto.context.sessionId);
|
|
232
212
|
if (!model) {
|
|
233
213
|
throw ( new Error(`Tool called for unknown chat session`));
|
|
234
214
|
}
|
|
235
215
|
const request = model.getRequests().at(-1);
|
|
236
216
|
requestId = request.id;
|
|
237
217
|
dto.modelId = request.modelId;
|
|
218
|
+
dto.userSelectedTools = request.userSelectedTools;
|
|
238
219
|
if (!( this._callsByRequestId.has(requestId))) {
|
|
239
220
|
this._callsByRequestId.set(requestId, []);
|
|
240
221
|
}
|
|
@@ -245,28 +226,35 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
245
226
|
source.dispose(true);
|
|
246
227
|
}));
|
|
247
228
|
store.add(token.onCancellationRequested(() => {
|
|
248
|
-
|
|
229
|
+
IChatToolInvocation.confirmWith(toolInvocation, { type: ToolConfirmKind.Denied });
|
|
249
230
|
source.cancel();
|
|
250
231
|
}));
|
|
251
232
|
store.add(source.token.onCancellationRequested(() => {
|
|
252
|
-
|
|
233
|
+
IChatToolInvocation.confirmWith(toolInvocation, { type: ToolConfirmKind.Denied });
|
|
253
234
|
}));
|
|
254
235
|
token = source.token;
|
|
255
|
-
|
|
256
|
-
|
|
236
|
+
prepareTimeWatch = StopWatch.create(true);
|
|
237
|
+
preparedInvocation = await this.prepareToolInvocation(tool, dto, token);
|
|
238
|
+
prepareTimeWatch.stop();
|
|
239
|
+
toolInvocation = ( new ChatToolInvocation(
|
|
240
|
+
preparedInvocation,
|
|
241
|
+
tool.data,
|
|
242
|
+
dto.callId,
|
|
243
|
+
dto.fromSubAgent,
|
|
244
|
+
dto.parameters
|
|
245
|
+
));
|
|
257
246
|
trackedCall.invocation = toolInvocation;
|
|
258
|
-
const autoConfirmed = await this.shouldAutoConfirm(tool.data.id, tool.data.runsInWorkspace);
|
|
247
|
+
const autoConfirmed = await this.shouldAutoConfirm(tool.data.id, tool.data.runsInWorkspace, tool.data.source, dto.parameters);
|
|
259
248
|
if (autoConfirmed) {
|
|
260
|
-
|
|
249
|
+
IChatToolInvocation.confirmWith(toolInvocation, autoConfirmed);
|
|
261
250
|
}
|
|
262
251
|
model.acceptResponseProgress(request, toolInvocation);
|
|
263
252
|
dto.toolSpecificData = toolInvocation?.toolSpecificData;
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
if (!toolInvocation.isConfirmed?.type && !autoConfirmed) {
|
|
253
|
+
if (preparedInvocation?.confirmationMessages?.title) {
|
|
254
|
+
if (!IChatToolInvocation.executionConfirmedOrDenied(toolInvocation) && !autoConfirmed) {
|
|
267
255
|
this.playAccessibilitySignal([toolInvocation]);
|
|
268
256
|
}
|
|
269
|
-
const userConfirmed = await toolInvocation
|
|
257
|
+
const userConfirmed = await IChatToolInvocation.awaitConfirmation(toolInvocation, token);
|
|
270
258
|
if (userConfirmed.type === ToolConfirmKind.Denied) {
|
|
271
259
|
throw ( new CancellationError());
|
|
272
260
|
}
|
|
@@ -286,30 +274,54 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
286
274
|
}
|
|
287
275
|
}
|
|
288
276
|
else {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
277
|
+
prepareTimeWatch = StopWatch.create(true);
|
|
278
|
+
preparedInvocation = await this.prepareToolInvocation(tool, dto, token);
|
|
279
|
+
prepareTimeWatch.stop();
|
|
280
|
+
if (preparedInvocation?.confirmationMessages?.title && !(await this.shouldAutoConfirm(tool.data.id, tool.data.runsInWorkspace, tool.data.source, dto.parameters))) {
|
|
281
|
+
const result = await this._dialogService.confirm({ message: renderAsPlaintext(preparedInvocation.confirmationMessages.title), detail: renderAsPlaintext(preparedInvocation.confirmationMessages.message) });
|
|
292
282
|
if (!result.confirmed) {
|
|
293
283
|
throw ( new CancellationError());
|
|
294
284
|
}
|
|
295
285
|
}
|
|
296
|
-
dto.toolSpecificData =
|
|
286
|
+
dto.toolSpecificData = preparedInvocation?.toolSpecificData;
|
|
297
287
|
}
|
|
298
288
|
if (token.isCancellationRequested) {
|
|
299
289
|
throw ( new CancellationError());
|
|
300
290
|
}
|
|
291
|
+
invocationTimeWatch = StopWatch.create(true);
|
|
301
292
|
toolResult = await tool.impl.invoke(dto, countTokens, {
|
|
302
293
|
report: step => {
|
|
303
294
|
toolInvocation?.acceptProgress(step);
|
|
304
295
|
}
|
|
305
296
|
}, token);
|
|
297
|
+
invocationTimeWatch.stop();
|
|
306
298
|
this.ensureToolDetails(dto, toolResult, tool.data);
|
|
299
|
+
if (toolInvocation?.didExecuteTool(toolResult).type === IChatToolInvocation.StateKind.WaitingForPostApproval) {
|
|
300
|
+
const autoConfirmedPost = await this.shouldAutoConfirmPostExecution(tool.data.id, tool.data.runsInWorkspace, tool.data.source, dto.parameters);
|
|
301
|
+
if (autoConfirmedPost) {
|
|
302
|
+
IChatToolInvocation.confirmWith(toolInvocation, autoConfirmedPost);
|
|
303
|
+
}
|
|
304
|
+
const postConfirm = await IChatToolInvocation.awaitPostConfirmation(toolInvocation, token);
|
|
305
|
+
if (postConfirm.type === ToolConfirmKind.Denied) {
|
|
306
|
+
throw ( new CancellationError());
|
|
307
|
+
}
|
|
308
|
+
if (postConfirm.type === ToolConfirmKind.Skipped) {
|
|
309
|
+
toolResult = {
|
|
310
|
+
content: [{
|
|
311
|
+
kind: 'text',
|
|
312
|
+
value: 'The tool executed but the user chose not to share the results'
|
|
313
|
+
}]
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
}
|
|
307
317
|
this._telemetryService.publicLog2('languageModelToolInvoked', {
|
|
308
318
|
result: 'success',
|
|
309
319
|
chatSessionId: dto.context?.sessionId,
|
|
310
320
|
toolId: tool.data.id,
|
|
311
321
|
toolExtensionId: tool.data.source.type === 'extension' ? tool.data.source.extensionId.value : undefined,
|
|
312
322
|
toolSourceKind: tool.data.source.type,
|
|
323
|
+
prepareTimeMs: prepareTimeWatch?.elapsed(),
|
|
324
|
+
invocationTimeMs: invocationTimeWatch?.elapsed(),
|
|
313
325
|
});
|
|
314
326
|
return toolResult;
|
|
315
327
|
}
|
|
@@ -321,6 +333,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
321
333
|
toolId: tool.data.id,
|
|
322
334
|
toolExtensionId: tool.data.source.type === 'extension' ? tool.data.source.extensionId.value : undefined,
|
|
323
335
|
toolSourceKind: tool.data.source.type,
|
|
336
|
+
prepareTimeMs: prepareTimeWatch?.elapsed(),
|
|
337
|
+
invocationTimeMs: invocationTimeWatch?.elapsed(),
|
|
324
338
|
});
|
|
325
339
|
this._logService.error(`[LanguageModelToolsService#invokeTool] Error from tool ${dto.toolId} with parameters ${JSON.stringify(dto.parameters)}:\n${toErrorMessage(err, true)}`);
|
|
326
340
|
toolResult ??= { content: [] };
|
|
@@ -331,25 +345,34 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
331
345
|
throw err;
|
|
332
346
|
}
|
|
333
347
|
finally {
|
|
334
|
-
toolInvocation?.
|
|
335
|
-
if (ChatContextKeys.requestInProgress.getValue(this._contextKeyService)) {
|
|
336
|
-
this.informScreenReader(toolInvocation?.pastTenseMessage ?? `${tool.data.displayName} finished`);
|
|
337
|
-
}
|
|
348
|
+
toolInvocation?.didExecuteTool(toolResult, true);
|
|
338
349
|
if (store) {
|
|
339
350
|
this.cleanupCallDisposables(requestId, store);
|
|
340
351
|
}
|
|
341
352
|
}
|
|
342
353
|
}
|
|
343
354
|
async prepareToolInvocation(tool, dto, token) {
|
|
344
|
-
|
|
345
|
-
|
|
355
|
+
let prepared;
|
|
356
|
+
if (tool.impl.prepareToolInvocation) {
|
|
357
|
+
const preparePromise = tool.impl.prepareToolInvocation({
|
|
346
358
|
parameters: dto.parameters,
|
|
347
359
|
chatRequestId: dto.chatRequestId,
|
|
348
360
|
chatSessionId: dto.context?.sessionId,
|
|
349
361
|
chatInteractionId: dto.chatInteractionId
|
|
350
|
-
}, token)
|
|
351
|
-
|
|
352
|
-
|
|
362
|
+
}, token);
|
|
363
|
+
const raceResult = await Promise.race([
|
|
364
|
+
timeout(3000, token).then(() => 'timeout'),
|
|
365
|
+
preparePromise
|
|
366
|
+
]);
|
|
367
|
+
if (raceResult === 'timeout') {
|
|
368
|
+
this._onDidPrepareToolCallBecomeUnresponsive.fire({
|
|
369
|
+
sessionId: dto.context?.sessionId ?? '',
|
|
370
|
+
toolData: tool.data
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
prepared = await preparePromise;
|
|
374
|
+
}
|
|
375
|
+
if (prepared?.confirmationMessages?.title) {
|
|
353
376
|
if (prepared.toolSpecificData?.kind !== 'terminal' && typeof prepared.confirmationMessages.allowAutoConfirm !== 'boolean') {
|
|
354
377
|
prepared.confirmationMessages.allowAutoConfirm = true;
|
|
355
378
|
}
|
|
@@ -362,11 +385,6 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
362
385
|
}
|
|
363
386
|
return prepared;
|
|
364
387
|
}
|
|
365
|
-
informScreenReader(msg) {
|
|
366
|
-
if (this._configurationService.getValue(AccessibilityWorkbenchSettingId.VerboseChatProgressUpdates)) {
|
|
367
|
-
alert(typeof msg === 'string' ? msg : msg.value);
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
388
|
playAccessibilitySignal(toolInvocations) {
|
|
371
389
|
const autoApproved = this._configurationService.getValue(ChatConfiguration.GlobalAutoApprove);
|
|
372
390
|
if (autoApproved) {
|
|
@@ -409,15 +427,10 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
409
427
|
}
|
|
410
428
|
}));
|
|
411
429
|
}
|
|
412
|
-
async shouldAutoConfirm(toolId, runsInWorkspace) {
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
if (this._profileToolConfirmStore.value.getAutoConfirm(toolId)) {
|
|
417
|
-
return { type: ToolConfirmKind.LmServicePerTool, scope: 'profile' };
|
|
418
|
-
}
|
|
419
|
-
if (( this._memoryToolConfirmStore.has(toolId))) {
|
|
420
|
-
return { type: ToolConfirmKind.LmServicePerTool, scope: 'session' };
|
|
430
|
+
async shouldAutoConfirm(toolId, runsInWorkspace, source, parameters) {
|
|
431
|
+
const reason = this._confirmationService.getPreConfirmAction({ toolId, source, parameters });
|
|
432
|
+
if (reason) {
|
|
433
|
+
return reason;
|
|
421
434
|
}
|
|
422
435
|
const config = this._configurationService.inspect(ChatConfiguration.GlobalAutoApprove);
|
|
423
436
|
let value = config.value ?? config.defaultValue;
|
|
@@ -435,6 +448,12 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
435
448
|
}
|
|
436
449
|
return undefined;
|
|
437
450
|
}
|
|
451
|
+
async shouldAutoConfirmPostExecution(toolId, runsInWorkspace, source, parameters) {
|
|
452
|
+
if (this._configurationService.getValue(ChatConfiguration.GlobalAutoApprove) && (await this._checkGlobalAutoApprove())) {
|
|
453
|
+
return { type: ToolConfirmKind.Setting, id: ChatConfiguration.GlobalAutoApprove };
|
|
454
|
+
}
|
|
455
|
+
return this._confirmationService.getPostConfirmAction({ toolId, source, parameters });
|
|
456
|
+
}
|
|
438
457
|
async _checkGlobalAutoApprove() {
|
|
439
458
|
const optedIn = this._storageService.getBoolean(AutoApproveStorageKeys.GlobalAutoApproveOptIn, StorageScope.APPLICATION, false);
|
|
440
459
|
if (optedIn) {
|
|
@@ -445,14 +464,14 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
445
464
|
}
|
|
446
465
|
const promptResult = await this._dialogService.prompt({
|
|
447
466
|
type: Severity.Warning,
|
|
448
|
-
message: ( localize(
|
|
467
|
+
message: ( localize(5604, 'Enable global auto approve?')),
|
|
449
468
|
buttons: [
|
|
450
469
|
{
|
|
451
|
-
label: ( localize(
|
|
470
|
+
label: ( localize(5605, 'Enable')),
|
|
452
471
|
run: () => true
|
|
453
472
|
},
|
|
454
473
|
{
|
|
455
|
-
label: ( localize(
|
|
474
|
+
label: ( localize(5606, 'Disable')),
|
|
456
475
|
run: () => false
|
|
457
476
|
},
|
|
458
477
|
],
|
|
@@ -493,7 +512,24 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
493
512
|
this._callsByRequestId.delete(requestId);
|
|
494
513
|
}
|
|
495
514
|
}
|
|
496
|
-
|
|
515
|
+
mapGithubToolName(name) {
|
|
516
|
+
const mapped = this._githubToVSCodeToolMap[name];
|
|
517
|
+
if (mapped) {
|
|
518
|
+
return mapped;
|
|
519
|
+
}
|
|
520
|
+
for (const [fromPrefix, toPrefix] of this._githubPrefixToVSCodePrefix) {
|
|
521
|
+
const regexp = ( new RegExp(`^${fromPrefix}(/[^/]+)$`));
|
|
522
|
+
const m = name.match(regexp);
|
|
523
|
+
if (m) {
|
|
524
|
+
return toPrefix + m[1];
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
return name;
|
|
528
|
+
}
|
|
529
|
+
toToolAndToolSetEnablementMap(enabledQualifiedToolOrToolSetNames, target) {
|
|
530
|
+
if (target === undefined || target === Target.GitHubCopilot) {
|
|
531
|
+
enabledQualifiedToolOrToolSetNames = ( enabledQualifiedToolOrToolSetNames.map(name => this.mapGithubToolName(name)));
|
|
532
|
+
}
|
|
497
533
|
const toolOrToolSetNames = ( new Set(enabledQualifiedToolOrToolSetNames));
|
|
498
534
|
const result = ( new Map());
|
|
499
535
|
for (const [tool, toolReferenceName] of this.getPromptReferencableTools()) {
|
|
@@ -657,7 +693,8 @@ LanguageModelToolsService = ( __decorate([
|
|
|
657
693
|
( __param(7, IConfigurationService)),
|
|
658
694
|
( __param(8, IAccessibilityService)),
|
|
659
695
|
( __param(9, IAccessibilitySignalService)),
|
|
660
|
-
( __param(10, IStorageService))
|
|
696
|
+
( __param(10, IStorageService)),
|
|
697
|
+
( __param(11, ILanguageModelToolsConfirmationService))
|
|
661
698
|
], LanguageModelToolsService));
|
|
662
699
|
function getToolReferenceName(tool, toolSet) {
|
|
663
700
|
const toolName = tool.toolReferenceName ?? tool.displayName;
|
|
@@ -675,51 +712,5 @@ function getToolSetReferenceName(toolSet) {
|
|
|
675
712
|
}
|
|
676
713
|
return toolSet.referenceName;
|
|
677
714
|
}
|
|
678
|
-
let ToolConfirmStore = class ToolConfirmStore extends Disposable {
|
|
679
|
-
static { ToolConfirmStore_1 = this; }
|
|
680
|
-
static { this.STORED_KEY = 'chat/autoconfirm'; }
|
|
681
|
-
constructor(_scope, storageService) {
|
|
682
|
-
super();
|
|
683
|
-
this._scope = _scope;
|
|
684
|
-
this.storageService = storageService;
|
|
685
|
-
this._autoConfirmTools = ( new LRUCache(100));
|
|
686
|
-
this._didChange = false;
|
|
687
|
-
const stored = storageService.getObject(ToolConfirmStore_1.STORED_KEY, this._scope);
|
|
688
|
-
if (stored) {
|
|
689
|
-
for (const key of stored) {
|
|
690
|
-
this._autoConfirmTools.set(key, true);
|
|
691
|
-
}
|
|
692
|
-
}
|
|
693
|
-
this._register(storageService.onWillSaveState(() => {
|
|
694
|
-
if (this._didChange) {
|
|
695
|
-
this.storageService.store(ToolConfirmStore_1.STORED_KEY, [...( this._autoConfirmTools.keys())], this._scope, StorageTarget.MACHINE);
|
|
696
|
-
this._didChange = false;
|
|
697
|
-
}
|
|
698
|
-
}));
|
|
699
|
-
}
|
|
700
|
-
reset() {
|
|
701
|
-
this._autoConfirmTools.clear();
|
|
702
|
-
this._didChange = true;
|
|
703
|
-
}
|
|
704
|
-
getAutoConfirm(toolId) {
|
|
705
|
-
if (this._autoConfirmTools.get(toolId)) {
|
|
706
|
-
this._didChange = true;
|
|
707
|
-
return true;
|
|
708
|
-
}
|
|
709
|
-
return false;
|
|
710
|
-
}
|
|
711
|
-
setAutoConfirm(toolId, autoConfirm) {
|
|
712
|
-
if (autoConfirm) {
|
|
713
|
-
this._autoConfirmTools.set(toolId, true);
|
|
714
|
-
}
|
|
715
|
-
else {
|
|
716
|
-
this._autoConfirmTools.delete(toolId);
|
|
717
|
-
}
|
|
718
|
-
this._didChange = true;
|
|
719
|
-
}
|
|
720
|
-
};
|
|
721
|
-
ToolConfirmStore = ToolConfirmStore_1 = ( __decorate([
|
|
722
|
-
( __param(1, IStorageService))
|
|
723
|
-
], ToolConfirmStore));
|
|
724
715
|
|
|
725
716
|
export { LanguageModelToolsService, globalAutoApproveDescription };
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
|
|
6
6
|
.chat-editor-overlay-widget {
|
|
7
|
-
padding:
|
|
7
|
+
padding: 2px;
|
|
8
8
|
color: var(--vscode-button-foreground);
|
|
9
9
|
background-color: var(--vscode-button-background);
|
|
10
10
|
border-radius: 2px;
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
.chat-editor-overlay-widget .action-item > .action-label {
|
|
57
57
|
padding: 5px;
|
|
58
58
|
font-size: 12px;
|
|
59
|
+
border-radius: 2px; /* same as overlay widget */
|
|
59
60
|
}
|
|
60
61
|
|
|
61
62
|
|
|
@@ -84,6 +85,10 @@
|
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
|
|
88
|
+
.chat-diff-change-content-widget .action-item > .action-label {
|
|
89
|
+
border-radius: 2px; /* same as overlay widget */
|
|
90
|
+
}
|
|
91
|
+
|
|
87
92
|
|
|
88
93
|
.chat-editor-overlay-widget .action-item.label-item {
|
|
89
94
|
font-variant-numeric: tabular-nums;
|
|
@@ -19,12 +19,13 @@
|
|
|
19
19
|
border-radius: 2px;
|
|
20
20
|
background-color: var(--vscode-button-background);
|
|
21
21
|
color: var(--vscode-button-foreground);
|
|
22
|
+
border: 1px solid var(--vscode-contrastBorder);
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
.chat-diff-change-content-widget .monaco-action-bar .action-item .action-label {
|
|
25
|
-
height: 14px;
|
|
26
26
|
border-radius: 2px;
|
|
27
27
|
color: var(--vscode-button-foreground);
|
|
28
|
+
padding: 2px 5px;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
.chat-diff-change-content-widget .monaco-action-bar .action-item .action-label.codicon {
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
align-items: center;
|
|
93
93
|
font-size: 0.9em;
|
|
94
94
|
line-height: 1em;
|
|
95
|
-
margin: 2px 22px 0
|
|
95
|
+
margin: 2px 22px 0 20px;
|
|
96
96
|
overflow: hidden;
|
|
97
97
|
text-overflow: ellipsis;
|
|
98
98
|
white-space: nowrap;
|
|
@@ -115,6 +115,16 @@
|
|
|
115
115
|
.chat-sessions-tree-container .chat-session-item .description-row .description {
|
|
116
116
|
opacity: 0.5;
|
|
117
117
|
}
|
|
118
|
+
|
|
119
|
+
.chat-sessions-tree-container .chat-session-item .description-row .description p {
|
|
120
|
+
display: flex;
|
|
121
|
+
align-items: center;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.chat-sessions-tree-container .chat-session-item .description-row .description p .codicon {
|
|
125
|
+
font-size: 14px;
|
|
126
|
+
}
|
|
127
|
+
|
|
118
128
|
.chat-sessions-tree-container .chat-session-item .description-row .statistics {
|
|
119
129
|
margin-left: 8px;
|
|
120
130
|
}
|
|
@@ -260,3 +270,30 @@
|
|
|
260
270
|
.chat-sessions-tree-container .chat-session-item[data-history-item="true"]:hover {
|
|
261
271
|
background-color: var(--vscode-list-hoverBackground);
|
|
262
272
|
}
|
|
273
|
+
|
|
274
|
+
/* Chat editor relative positioning for loading overlay */
|
|
275
|
+
.chat-editor-relative {
|
|
276
|
+
position: relative;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/* Chat editor loading overlay styles */
|
|
280
|
+
.chat-loading-overlay {
|
|
281
|
+
position: absolute;
|
|
282
|
+
inset: 0;
|
|
283
|
+
display: flex;
|
|
284
|
+
align-items: center;
|
|
285
|
+
justify-content: center;
|
|
286
|
+
background: var(--vscode-editor-background);
|
|
287
|
+
z-index: 1000;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.chat-loading-overlay .chat-loading-content {
|
|
291
|
+
display: flex;
|
|
292
|
+
align-items: center;
|
|
293
|
+
gap: 8px;
|
|
294
|
+
color: var(--vscode-editor-foreground);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.chat-loading-overlay .codicon {
|
|
298
|
+
font-size: 16px;
|
|
299
|
+
}
|