@codingame/monaco-vscode-chat-service-override 20.4.1 → 21.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 +15 -7
- package/package.json +38 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +60 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +56 -46
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +18 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +52 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +28 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +19 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +15 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +433 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +7 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +205 -551
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +7 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +52 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -163
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +20 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +11 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +32 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +22 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +22 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +6 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +47 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +12 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +8 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +33 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +74 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +23 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.js +36 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +36 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +37 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +238 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +23 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +257 -148
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +126 -77
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +2 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +3 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +55 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +13 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +130 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-dark.svg +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-light.svg +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatus.css +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +39 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +5 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +7 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +4 -8
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +153 -168
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +127 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +111 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +66 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +38 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +143 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +12 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.d.ts +8 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.js +41 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.js +55 -22
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/basePromptParser.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.js +3 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.js +8 -23
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +4 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +11 -5
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +28 -28
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +54 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +33 -31
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +9 -9
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +9 -13
- 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 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +11 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +1 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.d.ts +16 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +84 -25
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +55 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +8 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +15 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +72 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +8 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +19 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +7 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +12 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +85 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +448 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +30 -77
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +62 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +174 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +75 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +15 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +81 -38
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +106 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.js → tools/getTerminalOutputTool.js} +5 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +59 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +57 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +452 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +31 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.d.ts → tools/runInTerminalTool.d.ts} +11 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.js → tools/runInTerminalTool.js} +282 -133
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.d.ts +5 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.js +51 -50
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/getTaskOutputTool.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +117 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.d.ts +3 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.js +54 -50
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +36 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.js +8 -0
- package/vscode/src/vs/base/common/policy.d.ts +0 -41
- package/vscode/src/vs/base/common/policy.js +0 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.d.ts +0 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.js +0 -738
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +0 -42
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.d.ts +0 -67
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.js +0 -167
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.d.ts +0 -23
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.js +0 -63
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.d.ts +0 -55
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.js +0 -163
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.js +0 -88
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.d.ts +0 -35
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.js +0 -80
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.js +0 -40
- /package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.d.ts → tools/getTerminalOutputTool.d.ts} +0 -0
|
@@ -4,6 +4,7 @@ import { getWindow, $ } from '@codingame/monaco-vscode-api/vscode/vs/base/browse
|
|
|
4
4
|
import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
5
5
|
import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
6
6
|
import { MarshalledId } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshallingIds';
|
|
7
|
+
import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
7
8
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
8
9
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
9
10
|
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
@@ -29,8 +30,8 @@ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/misc
|
|
|
29
30
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
30
31
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
|
|
31
32
|
import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
|
|
32
|
-
import { ViewPane } from '@codingame/monaco-vscode-
|
|
33
|
-
import { Memento } from '@codingame/monaco-vscode-
|
|
33
|
+
import { ViewPane } from '@codingame/monaco-vscode-4fad3647-b95d-5c19-bab1-bb9de627a5ec-common/vscode/vs/workbench/browser/parts/views/viewPane';
|
|
34
|
+
import { Memento } from '@codingame/monaco-vscode-23b6fb38-5e58-5886-b34b-27abc4f5df02-common/vscode/vs/workbench/common/memento';
|
|
34
35
|
import { SIDE_BAR_FOREGROUND } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/theme';
|
|
35
36
|
import { ViewContainerLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views';
|
|
36
37
|
import { IViewDescriptorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views.service';
|
|
@@ -38,14 +39,16 @@ import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
38
39
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
|
|
39
40
|
import { CHAT_PROVIDER_ID } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatParticipantContribTypes';
|
|
40
41
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
|
|
42
|
+
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
41
43
|
import { ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
44
|
+
import { ChatSessionUri } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatUri';
|
|
42
45
|
import { ChatWidget } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/browser/chatWidget';
|
|
43
46
|
import { ChatViewWelcomeController } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController';
|
|
44
47
|
|
|
45
48
|
const CHAT_SIDEBAR_PANEL_ID = 'workbench.panel.chat';
|
|
46
49
|
let ChatViewPane = class ChatViewPane extends ViewPane {
|
|
47
50
|
get widget() { return this._widget; }
|
|
48
|
-
constructor(chatOptions, options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, hoverService, storageService, chatService, chatAgentService, logService, layoutService) {
|
|
51
|
+
constructor(chatOptions, options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, hoverService, storageService, chatService, chatAgentService, logService, layoutService, chatSessionsService) {
|
|
49
52
|
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, hoverService);
|
|
50
53
|
this.chatOptions = chatOptions;
|
|
51
54
|
this.storageService = storageService;
|
|
@@ -53,6 +56,7 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
|
|
|
53
56
|
this.chatAgentService = chatAgentService;
|
|
54
57
|
this.logService = logService;
|
|
55
58
|
this.layoutService = layoutService;
|
|
59
|
+
this.chatSessionsService = chatSessionsService;
|
|
56
60
|
this.modelDisposables = this._register(( new DisposableStore()));
|
|
57
61
|
this.memento = ( new Memento('interactive-session-view-' + CHAT_PROVIDER_ID, this.storageService));
|
|
58
62
|
this.viewState = this.memento.getMemento(StorageScope.WORKSPACE, StorageTarget.MACHINE);
|
|
@@ -146,48 +150,42 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
|
|
|
146
150
|
}
|
|
147
151
|
}
|
|
148
152
|
async renderBody(parent) {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
return true;
|
|
163
|
-
},
|
|
164
|
-
referencesExpandedWhenEmptyResponse: false,
|
|
165
|
-
progressMessageAtBottomOfResponse: mode => mode !== ChatModeKind.Ask,
|
|
153
|
+
super.renderBody(parent);
|
|
154
|
+
this._register(this.instantiationService.createInstance(ChatViewWelcomeController, parent, this, this.chatOptions.location));
|
|
155
|
+
const scopedInstantiationService = this._register(this.instantiationService.createChild(( new ServiceCollection([IContextKeyService, this.scopedContextKeyService]))));
|
|
156
|
+
const locationBasedColors = this.getLocationBasedColors();
|
|
157
|
+
const editorOverflowNode = this.layoutService.getContainer(getWindow(parent)).appendChild($('.chat-editor-overflow.monaco-editor'));
|
|
158
|
+
this._register({ dispose: () => editorOverflowNode.remove() });
|
|
159
|
+
this._widget = this._register(scopedInstantiationService.createInstance(ChatWidget, this.chatOptions.location, { viewId: this.id }, {
|
|
160
|
+
autoScroll: mode => mode !== ChatModeKind.Ask,
|
|
161
|
+
renderFollowups: this.chatOptions.location === ChatAgentLocation.Panel,
|
|
162
|
+
supportsFileReferences: true,
|
|
163
|
+
rendererOptions: {
|
|
164
|
+
renderTextEditsAsSummary: (uri) => {
|
|
165
|
+
return true;
|
|
166
166
|
},
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
this._widget.
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
throw e;
|
|
190
|
-
}
|
|
167
|
+
referencesExpandedWhenEmptyResponse: false,
|
|
168
|
+
progressMessageAtBottomOfResponse: mode => mode !== ChatModeKind.Ask,
|
|
169
|
+
},
|
|
170
|
+
editorOverflowWidgetsDomNode: editorOverflowNode,
|
|
171
|
+
enableImplicitContext: this.chatOptions.location === ChatAgentLocation.Panel,
|
|
172
|
+
enableWorkingSet: 'explicit',
|
|
173
|
+
supportsChangingModes: true,
|
|
174
|
+
}, {
|
|
175
|
+
listForeground: SIDE_BAR_FOREGROUND,
|
|
176
|
+
listBackground: locationBasedColors.background,
|
|
177
|
+
overlayBackground: locationBasedColors.overlayBackground,
|
|
178
|
+
inputEditorBackground: locationBasedColors.background,
|
|
179
|
+
resultEditorBackground: editorBackground,
|
|
180
|
+
}));
|
|
181
|
+
this._register(this.onDidChangeBodyVisibility(visible => {
|
|
182
|
+
this._widget.setVisible(visible);
|
|
183
|
+
}));
|
|
184
|
+
this._register(this._widget.onDidClear(() => this.clear()));
|
|
185
|
+
this._widget.render(parent);
|
|
186
|
+
const info = this.getTransferredOrPersistedSessionInfo();
|
|
187
|
+
const model = info.sessionId ? await this.chatService.getOrRestoreSession(info.sessionId) : undefined;
|
|
188
|
+
await this.updateModel(model, info.inputValue || info.mode ? { inputState: { chatMode: info.mode }, inputValue: info.inputValue } : undefined);
|
|
191
189
|
}
|
|
192
190
|
acceptInput(query) {
|
|
193
191
|
this._widget.acceptInput(query);
|
|
@@ -204,6 +202,17 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
|
|
|
204
202
|
if (this.widget.viewModel) {
|
|
205
203
|
await this.chatService.clearSession(this.widget.viewModel.sessionId);
|
|
206
204
|
}
|
|
205
|
+
if (URI.isUri(sessionId) && sessionId.scheme === Schemas.vscodeChatSession) {
|
|
206
|
+
const parsed = ChatSessionUri.parse(sessionId);
|
|
207
|
+
if (parsed?.chatSessionType) {
|
|
208
|
+
await this.chatSessionsService.canResolveContentProvider(parsed.chatSessionType);
|
|
209
|
+
const contributions = this.chatSessionsService.getAllChatSessionContributions();
|
|
210
|
+
const contribution = contributions.find((c) => c.type === parsed.chatSessionType);
|
|
211
|
+
if (contribution) {
|
|
212
|
+
this.widget.lockToCodingAgent(contribution.name, contribution.displayName, contribution.type);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
207
216
|
const newModel = await (URI.isUri(sessionId) ? this.chatService.loadSessionForResource(sessionId, ChatAgentLocation.Panel, CancellationToken.None) : this.chatService.getOrRestoreSession(sessionId));
|
|
208
217
|
await this.updateModel(newModel, viewState);
|
|
209
218
|
}
|
|
@@ -247,7 +256,8 @@ ChatViewPane = ( __decorate([
|
|
|
247
256
|
( __param(12, IChatService)),
|
|
248
257
|
( __param(13, IChatAgentService)),
|
|
249
258
|
( __param(14, ILogService)),
|
|
250
|
-
( __param(15, ILayoutService))
|
|
259
|
+
( __param(15, ILayoutService)),
|
|
260
|
+
( __param(16, IChatSessionsService))
|
|
251
261
|
], ChatViewPane));
|
|
252
262
|
|
|
253
263
|
export { CHAT_SIDEBAR_PANEL_ID, ChatViewPane };
|
|
@@ -119,7 +119,7 @@ let InputEditorDecorations = class InputEditorDecorations extends Disposable {
|
|
|
119
119
|
const mode = this.widget.input.currentModeObs.get();
|
|
120
120
|
let description = mode.description.get();
|
|
121
121
|
if (this.configurationService.getValue('chat.emptyChatState.enabled')) {
|
|
122
|
-
description = ( localize(
|
|
122
|
+
description = ( localize(5352, "Add context (#), extensions (@), commands (/)"));
|
|
123
123
|
}
|
|
124
124
|
const decoration = [
|
|
125
125
|
{
|
|
@@ -227,8 +227,11 @@ let InputEditorDecorations = class InputEditorDecorations extends Disposable {
|
|
|
227
227
|
varDecorations.push({ range: tool.editorRange });
|
|
228
228
|
}
|
|
229
229
|
const dynamicVariableParts = parsedRequest.filter((p) => p instanceof ChatRequestDynamicVariablePart);
|
|
230
|
-
|
|
231
|
-
|
|
230
|
+
const isEditingPreviousRequest = !!this.widget.viewModel?.editing;
|
|
231
|
+
if (isEditingPreviousRequest) {
|
|
232
|
+
for (const variable of dynamicVariableParts) {
|
|
233
|
+
varDecorations.push({ range: variable.editorRange, hoverMessage: URI.isUri(variable.data) ? ( new MarkdownString(this.labelService.getUriLabel(variable.data, { relative: true }))) : undefined });
|
|
234
|
+
}
|
|
232
235
|
}
|
|
233
236
|
this.widget.inputEditor.setDecorationsByType(decorationDescription, variableTextDecorationType, varDecorations);
|
|
234
237
|
}
|
|
@@ -58,7 +58,7 @@ let ChatAgentHoverParticipant = class ChatAgentHoverParticipant {
|
|
|
58
58
|
return ( new RenderedHoverParts([renderedHoverPart]));
|
|
59
59
|
}
|
|
60
60
|
getAccessibleContent(hoverPart) {
|
|
61
|
-
return localize(
|
|
61
|
+
return localize(5353, 'There is a chat agent hover part here.');
|
|
62
62
|
}
|
|
63
63
|
};
|
|
64
64
|
ChatAgentHoverParticipant = ( __decorate([
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
|
|
2
|
+
import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
2
3
|
import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
4
|
import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
4
5
|
import { ThemeIcon } from "@codingame/monaco-vscode-api/vscode/vs/base/common/themables";
|
|
@@ -9,11 +10,13 @@ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platf
|
|
|
9
10
|
import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
|
|
10
11
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
11
12
|
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
|
|
13
|
+
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
12
14
|
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
13
15
|
import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
|
|
14
16
|
import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service";
|
|
15
|
-
import { CountTokensCallback, IToolData, IToolImpl, IToolInvocation, IToolResult, ToolSet,
|
|
17
|
+
import { CountTokensCallback, IToolData, IToolImpl, IToolInvocation, IToolResult, ToolDataSource, ToolSet, IToolAndToolSetEnablementMap } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
|
|
16
18
|
import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service";
|
|
19
|
+
export declare const globalAutoApproveDescription: import("@codingame/monaco-vscode-api/vscode/vs/nls").ILocalizedString;
|
|
17
20
|
export declare class LanguageModelToolsService extends Disposable implements ILanguageModelToolsService {
|
|
18
21
|
private readonly _instantiationService;
|
|
19
22
|
private readonly _extensionService;
|
|
@@ -25,9 +28,10 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
|
|
|
25
28
|
private readonly _configurationService;
|
|
26
29
|
private readonly _accessibilityService;
|
|
27
30
|
private readonly _accessibilitySignalService;
|
|
31
|
+
private readonly _storageService;
|
|
28
32
|
_serviceBrand: undefined;
|
|
29
33
|
private _onDidChangeTools;
|
|
30
|
-
readonly onDidChangeTools:
|
|
34
|
+
readonly onDidChangeTools: Event<void>;
|
|
31
35
|
/** Throttle tools updates because it sends all tools and runs on context key updates */
|
|
32
36
|
private _onDidChangeToolsScheduler;
|
|
33
37
|
private _tools;
|
|
@@ -37,17 +41,18 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
|
|
|
37
41
|
private _workspaceToolConfirmStore;
|
|
38
42
|
private _profileToolConfirmStore;
|
|
39
43
|
private _memoryToolConfirmStore;
|
|
40
|
-
constructor(_instantiationService: IInstantiationService, _extensionService: IExtensionService, _contextKeyService: IContextKeyService, _chatService: IChatService, _dialogService: IDialogService, _telemetryService: ITelemetryService, _logService: ILogService, _configurationService: IConfigurationService, _accessibilityService: IAccessibilityService, _accessibilitySignalService: IAccessibilitySignalService);
|
|
44
|
+
constructor(_instantiationService: IInstantiationService, _extensionService: IExtensionService, _contextKeyService: IContextKeyService, _chatService: IChatService, _dialogService: IDialogService, _telemetryService: ITelemetryService, _logService: ILogService, _configurationService: IConfigurationService, _accessibilityService: IAccessibilityService, _accessibilitySignalService: IAccessibilitySignalService, _storageService: IStorageService);
|
|
41
45
|
dispose(): void;
|
|
42
46
|
registerToolData(toolData: IToolData): IDisposable;
|
|
43
47
|
private _refreshAllToolContextKeys;
|
|
44
|
-
flushToolChanges(): void;
|
|
45
48
|
registerToolImplementation(id: string, tool: IToolImpl): IDisposable;
|
|
49
|
+
registerTool(toolData: IToolData, tool: IToolImpl): IDisposable;
|
|
46
50
|
getTools(includeDisabled?: boolean): Iterable<Readonly<IToolData>>;
|
|
47
51
|
getTool(id: string): IToolData | undefined;
|
|
48
52
|
private _getToolEntry;
|
|
49
53
|
getToolByName(name: string, includeDisabled?: boolean): IToolData | undefined;
|
|
50
|
-
setToolAutoConfirmation(toolId: string, scope: "workspace" | "profile" | "
|
|
54
|
+
setToolAutoConfirmation(toolId: string, scope: "workspace" | "profile" | "session" | "never"): void;
|
|
55
|
+
getToolAutoConfirmation(toolId: string): "workspace" | "profile" | "session" | "never";
|
|
51
56
|
resetToolAutoConfirmation(): void;
|
|
52
57
|
invokeTool(dto: IToolInvocation, countTokens: CountTokensCallback, token: CancellationToken): Promise<IToolResult>;
|
|
53
58
|
private prepareToolInvocation;
|
|
@@ -56,15 +61,16 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
|
|
|
56
61
|
private formatToolInput;
|
|
57
62
|
private toolResultToIO;
|
|
58
63
|
private shouldAutoConfirm;
|
|
64
|
+
private _checkGlobalAutoApprove;
|
|
59
65
|
private cleanupCallDisposables;
|
|
60
66
|
cancelToolCallsForRequest(requestId: string): void;
|
|
61
67
|
toToolEnablementMap(toolOrToolsetNames: Set<string>): Record<string, boolean>;
|
|
62
68
|
/**
|
|
63
69
|
* Create a map that contains all tools and toolsets with their enablement state.
|
|
64
|
-
* @param toolOrToolSetNames A list of tool or toolset names
|
|
70
|
+
* @param toolOrToolSetNames A list of tool or toolset names that are enabled.
|
|
65
71
|
* @returns A map of tool or toolset instances to their enablement state.
|
|
66
72
|
*/
|
|
67
|
-
toToolAndToolSetEnablementMap(enabledToolOrToolSetNames: readonly string[]
|
|
73
|
+
toToolAndToolSetEnablementMap(enabledToolOrToolSetNames: readonly string[]): IToolAndToolSetEnablementMap;
|
|
68
74
|
private readonly _toolSets;
|
|
69
75
|
readonly toolSets: IObservable<Iterable<ToolSet>>;
|
|
70
76
|
getToolSet(id: string): ToolSet | undefined;
|
|
@@ -8,12 +8,15 @@ import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/
|
|
|
8
8
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
9
9
|
import { toErrorMessage } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errorMessage';
|
|
10
10
|
import { CancellationError, isCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
11
|
-
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
11
|
+
import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
12
|
+
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
12
13
|
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
13
14
|
import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
|
|
14
|
-
import { Disposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
15
|
+
import { Disposable, DisposableStore, toDisposable, combinedDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
15
16
|
import { LRUCache } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
|
|
16
17
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
18
|
+
import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
|
|
19
|
+
import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
17
20
|
import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
|
|
18
21
|
import { AccessibilitySignal } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService';
|
|
19
22
|
import { IAccessibilitySignalService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service';
|
|
@@ -30,6 +33,7 @@ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platfo
|
|
|
30
33
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
31
34
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
|
|
32
35
|
import { ChatToolInvocation } from '../common/chatProgressTypes/chatToolInvocation.js';
|
|
36
|
+
import { ToolConfirmKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService';
|
|
33
37
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
|
|
34
38
|
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
35
39
|
import { createToolSchemaUri, stringifyPromptTsxPart, ToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
|
|
@@ -38,8 +42,16 @@ import { ObservableSet } from '@codingame/monaco-vscode-api/vscode/vs/base/commo
|
|
|
38
42
|
|
|
39
43
|
var ToolConfirmStore_1;
|
|
40
44
|
const jsonSchemaRegistry = ( Registry.as(Extensions.JSONContribution));
|
|
45
|
+
var AutoApproveStorageKeys;
|
|
46
|
+
(function (AutoApproveStorageKeys) {
|
|
47
|
+
AutoApproveStorageKeys["GlobalAutoApproveOptIn"] = "chat.tools.global.autoApprove.optIn";
|
|
48
|
+
})(AutoApproveStorageKeys || (AutoApproveStorageKeys = {}));
|
|
49
|
+
const globalAutoApproveDescription = ( localize2(
|
|
50
|
+
5356,
|
|
51
|
+
'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.**'
|
|
52
|
+
));
|
|
41
53
|
let LanguageModelToolsService = class LanguageModelToolsService extends Disposable {
|
|
42
|
-
constructor(_instantiationService, _extensionService, _contextKeyService, _chatService, _dialogService, _telemetryService, _logService, _configurationService, _accessibilityService, _accessibilitySignalService) {
|
|
54
|
+
constructor(_instantiationService, _extensionService, _contextKeyService, _chatService, _dialogService, _telemetryService, _logService, _configurationService, _accessibilityService, _accessibilitySignalService, _storageService) {
|
|
43
55
|
super();
|
|
44
56
|
this._instantiationService = _instantiationService;
|
|
45
57
|
this._extensionService = _extensionService;
|
|
@@ -51,6 +63,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
51
63
|
this._configurationService = _configurationService;
|
|
52
64
|
this._accessibilityService = _accessibilityService;
|
|
53
65
|
this._accessibilitySignalService = _accessibilitySignalService;
|
|
66
|
+
this._storageService = _storageService;
|
|
54
67
|
this._onDidChangeTools = ( new Emitter());
|
|
55
68
|
this.onDidChangeTools = this._onDidChangeTools.event;
|
|
56
69
|
this._onDidChangeToolsScheduler = ( new RunOnceScheduler(() => this._onDidChangeTools.fire(), 750));
|
|
@@ -76,6 +89,13 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
76
89
|
this._onDidChangeToolsScheduler.schedule();
|
|
77
90
|
}
|
|
78
91
|
}));
|
|
92
|
+
this._register(Event.runAndSubscribe(this._configurationService.onDidChangeConfiguration, e => {
|
|
93
|
+
if (!e || e.affectsConfiguration(ChatConfiguration.GlobalAutoApprove)) {
|
|
94
|
+
if (this._configurationService.getValue(ChatConfiguration.GlobalAutoApprove) !== true) {
|
|
95
|
+
this._storageService.remove(AutoApproveStorageKeys.GlobalAutoApproveOptIn, StorageScope.APPLICATION);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}));
|
|
79
99
|
this._ctxToolsCount = ChatContextKeys.Tools.toolsCount.bindTo(_contextKeyService);
|
|
80
100
|
}
|
|
81
101
|
dispose() {
|
|
@@ -112,10 +132,6 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
112
132
|
tool.data.when?.keys().forEach(key => this._toolContextKeys.add(key));
|
|
113
133
|
}
|
|
114
134
|
}
|
|
115
|
-
flushToolChanges() {
|
|
116
|
-
this._onDidChangeToolsScheduler.cancel();
|
|
117
|
-
this._onDidChangeTools.fire();
|
|
118
|
-
}
|
|
119
135
|
registerToolImplementation(id, tool) {
|
|
120
136
|
const entry = this._tools.get(id);
|
|
121
137
|
if (!entry) {
|
|
@@ -129,6 +145,9 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
129
145
|
entry.impl = undefined;
|
|
130
146
|
});
|
|
131
147
|
}
|
|
148
|
+
registerTool(toolData, tool) {
|
|
149
|
+
return combinedDisposable(this.registerToolData(toolData), this.registerToolImplementation(toolData.id, tool));
|
|
150
|
+
}
|
|
132
151
|
getTools(includeDisabled) {
|
|
133
152
|
const toolDatas = ( Iterable.map(( this._tools.values()), i => i.data));
|
|
134
153
|
const extensionToolsEnabled = this._configurationService.getValue(ChatConfiguration.ExtensionToolsEnabled);
|
|
@@ -158,17 +177,28 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
158
177
|
}
|
|
159
178
|
return undefined;
|
|
160
179
|
}
|
|
161
|
-
setToolAutoConfirmation(toolId, scope
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
this._profileToolConfirmStore.value.setAutoConfirm(toolId, autoConfirm);
|
|
180
|
+
setToolAutoConfirmation(toolId, scope) {
|
|
181
|
+
this._workspaceToolConfirmStore.value.setAutoConfirm(toolId, scope === 'workspace');
|
|
182
|
+
this._profileToolConfirmStore.value.setAutoConfirm(toolId, scope === 'profile');
|
|
183
|
+
if (scope === 'session') {
|
|
184
|
+
this._memoryToolConfirmStore.add(toolId);
|
|
167
185
|
}
|
|
168
186
|
else {
|
|
169
|
-
this._memoryToolConfirmStore.
|
|
187
|
+
this._memoryToolConfirmStore.delete(toolId);
|
|
170
188
|
}
|
|
171
189
|
}
|
|
190
|
+
getToolAutoConfirmation(toolId) {
|
|
191
|
+
if (this._workspaceToolConfirmStore.value.getAutoConfirm(toolId)) {
|
|
192
|
+
return 'workspace';
|
|
193
|
+
}
|
|
194
|
+
if (this._profileToolConfirmStore.value.getAutoConfirm(toolId)) {
|
|
195
|
+
return 'profile';
|
|
196
|
+
}
|
|
197
|
+
if (( this._memoryToolConfirmStore.has(toolId))) {
|
|
198
|
+
return 'session';
|
|
199
|
+
}
|
|
200
|
+
return 'never';
|
|
201
|
+
}
|
|
172
202
|
resetToolAutoConfirmation() {
|
|
173
203
|
this._workspaceToolConfirmStore.value.reset();
|
|
174
204
|
this._profileToolConfirmStore.value.reset();
|
|
@@ -211,30 +241,39 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
211
241
|
source.dispose(true);
|
|
212
242
|
}));
|
|
213
243
|
store.add(token.onCancellationRequested(() => {
|
|
214
|
-
toolInvocation?.confirmed.complete(
|
|
244
|
+
toolInvocation?.confirmed.complete({ type: ToolConfirmKind.Denied });
|
|
215
245
|
source.cancel();
|
|
216
246
|
}));
|
|
217
247
|
store.add(source.token.onCancellationRequested(() => {
|
|
218
|
-
toolInvocation?.confirmed.complete(
|
|
248
|
+
toolInvocation?.confirmed.complete({ type: ToolConfirmKind.Denied });
|
|
219
249
|
}));
|
|
220
250
|
token = source.token;
|
|
221
251
|
const prepared = await this.prepareToolInvocation(tool, dto, token);
|
|
222
252
|
toolInvocation = ( new ChatToolInvocation(prepared, tool.data, dto.callId));
|
|
223
253
|
trackedCall.invocation = toolInvocation;
|
|
224
|
-
const autoConfirmed = this.shouldAutoConfirm(tool.data.id, tool.data.runsInWorkspace);
|
|
254
|
+
const autoConfirmed = await this.shouldAutoConfirm(tool.data.id, tool.data.runsInWorkspace);
|
|
225
255
|
if (autoConfirmed) {
|
|
226
|
-
toolInvocation.confirmed.complete(
|
|
256
|
+
toolInvocation.confirmed.complete(autoConfirmed);
|
|
227
257
|
}
|
|
228
258
|
model.acceptResponseProgress(request, toolInvocation);
|
|
229
259
|
dto.toolSpecificData = toolInvocation?.toolSpecificData;
|
|
230
260
|
if (prepared?.confirmationMessages) {
|
|
231
|
-
if (!toolInvocation.isConfirmed && !autoConfirmed) {
|
|
261
|
+
if (!toolInvocation.isConfirmed?.type && !autoConfirmed) {
|
|
232
262
|
this.playAccessibilitySignal([toolInvocation]);
|
|
233
263
|
}
|
|
234
264
|
const userConfirmed = await toolInvocation.confirmed.p;
|
|
235
|
-
if (
|
|
265
|
+
if (userConfirmed.type === ToolConfirmKind.Denied) {
|
|
236
266
|
throw ( new CancellationError());
|
|
237
267
|
}
|
|
268
|
+
if (userConfirmed.type === ToolConfirmKind.Skipped) {
|
|
269
|
+
toolResult = {
|
|
270
|
+
content: [{
|
|
271
|
+
kind: 'text',
|
|
272
|
+
value: 'The user chose to skip the tool call, they want to proceed without running it'
|
|
273
|
+
}]
|
|
274
|
+
};
|
|
275
|
+
return toolResult;
|
|
276
|
+
}
|
|
238
277
|
if (dto.toolSpecificData?.kind === 'input') {
|
|
239
278
|
dto.parameters = dto.toolSpecificData.rawInput;
|
|
240
279
|
dto.toolSpecificData = undefined;
|
|
@@ -243,7 +282,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
243
282
|
}
|
|
244
283
|
else {
|
|
245
284
|
const prepared = await this.prepareToolInvocation(tool, dto, token);
|
|
246
|
-
if (prepared?.confirmationMessages && !this.shouldAutoConfirm(tool.data.id, tool.data.runsInWorkspace)) {
|
|
285
|
+
if (prepared?.confirmationMessages && !(await this.shouldAutoConfirm(tool.data.id, tool.data.runsInWorkspace))) {
|
|
247
286
|
const result = await this._dialogService.confirm({ message: renderAsPlaintext(prepared.confirmationMessages.title), detail: renderAsPlaintext(prepared.confirmationMessages.message) });
|
|
248
287
|
if (!result.confirmed) {
|
|
249
288
|
throw ( new CancellationError());
|
|
@@ -288,7 +327,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
288
327
|
}
|
|
289
328
|
finally {
|
|
290
329
|
toolInvocation?.complete(toolResult);
|
|
291
|
-
if (
|
|
330
|
+
if (store) {
|
|
292
331
|
this.cleanupCallDisposables(requestId, store);
|
|
293
332
|
}
|
|
294
333
|
}
|
|
@@ -316,7 +355,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
316
355
|
return prepared;
|
|
317
356
|
}
|
|
318
357
|
playAccessibilitySignal(toolInvocations) {
|
|
319
|
-
const autoApproved = this._configurationService.getValue(
|
|
358
|
+
const autoApproved = this._configurationService.getValue(ChatConfiguration.GlobalAutoApprove);
|
|
320
359
|
if (autoApproved) {
|
|
321
360
|
return;
|
|
322
361
|
}
|
|
@@ -357,11 +396,17 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
357
396
|
}
|
|
358
397
|
}));
|
|
359
398
|
}
|
|
360
|
-
shouldAutoConfirm(toolId, runsInWorkspace) {
|
|
361
|
-
if (this._workspaceToolConfirmStore.value.getAutoConfirm(toolId)
|
|
362
|
-
return
|
|
399
|
+
async shouldAutoConfirm(toolId, runsInWorkspace) {
|
|
400
|
+
if (this._workspaceToolConfirmStore.value.getAutoConfirm(toolId)) {
|
|
401
|
+
return { type: ToolConfirmKind.LmServicePerTool, scope: 'workspace' };
|
|
402
|
+
}
|
|
403
|
+
if (this._profileToolConfirmStore.value.getAutoConfirm(toolId)) {
|
|
404
|
+
return { type: ToolConfirmKind.LmServicePerTool, scope: 'profile' };
|
|
405
|
+
}
|
|
406
|
+
if (( this._memoryToolConfirmStore.has(toolId))) {
|
|
407
|
+
return { type: ToolConfirmKind.LmServicePerTool, scope: 'session' };
|
|
363
408
|
}
|
|
364
|
-
const config = this._configurationService.inspect(
|
|
409
|
+
const config = this._configurationService.inspect(ChatConfiguration.GlobalAutoApprove);
|
|
365
410
|
let value = config.value ?? config.defaultValue;
|
|
366
411
|
if (typeof runsInWorkspace === 'boolean') {
|
|
367
412
|
value = config.userLocalValue ?? config.applicationValue;
|
|
@@ -369,17 +414,58 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
369
414
|
value = config.workspaceValue ?? config.workspaceFolderValue ?? config.userRemoteValue ?? value;
|
|
370
415
|
}
|
|
371
416
|
}
|
|
372
|
-
|
|
417
|
+
const autoConfirm = value === true || (typeof value === 'object' && value.hasOwnProperty(toolId) && value[toolId] === true);
|
|
418
|
+
if (autoConfirm) {
|
|
419
|
+
if (await this._checkGlobalAutoApprove()) {
|
|
420
|
+
return { type: ToolConfirmKind.Setting, id: ChatConfiguration.GlobalAutoApprove };
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
return undefined;
|
|
373
424
|
}
|
|
374
|
-
|
|
375
|
-
const
|
|
376
|
-
if (
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
425
|
+
async _checkGlobalAutoApprove() {
|
|
426
|
+
const optedIn = this._storageService.getBoolean(AutoApproveStorageKeys.GlobalAutoApproveOptIn, StorageScope.APPLICATION, false);
|
|
427
|
+
if (optedIn) {
|
|
428
|
+
return true;
|
|
429
|
+
}
|
|
430
|
+
const promptResult = await this._dialogService.prompt({
|
|
431
|
+
type: Severity.Warning,
|
|
432
|
+
message: ( localize(5357, 'Enable global auto approve?')),
|
|
433
|
+
buttons: [
|
|
434
|
+
{
|
|
435
|
+
label: ( localize(5358, 'Enable')),
|
|
436
|
+
run: () => true
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
label: ( localize(5359, 'Disable')),
|
|
440
|
+
run: () => false
|
|
441
|
+
},
|
|
442
|
+
],
|
|
443
|
+
custom: {
|
|
444
|
+
icon: Codicon.warning,
|
|
445
|
+
disableCloseAction: true,
|
|
446
|
+
markdownDetails: [{
|
|
447
|
+
markdown: ( new MarkdownString(globalAutoApproveDescription.value)),
|
|
448
|
+
}],
|
|
380
449
|
}
|
|
381
|
-
|
|
382
|
-
|
|
450
|
+
});
|
|
451
|
+
if (promptResult.result !== true) {
|
|
452
|
+
await this._configurationService.updateValue(ChatConfiguration.GlobalAutoApprove, false);
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
455
|
+
this._storageService.store(AutoApproveStorageKeys.GlobalAutoApproveOptIn, true, StorageScope.APPLICATION, StorageTarget.USER);
|
|
456
|
+
return true;
|
|
457
|
+
}
|
|
458
|
+
cleanupCallDisposables(requestId, store) {
|
|
459
|
+
if (requestId) {
|
|
460
|
+
const disposables = this._callsByRequestId.get(requestId);
|
|
461
|
+
if (disposables) {
|
|
462
|
+
const index = disposables.findIndex(d => d.store === store);
|
|
463
|
+
if (index > -1) {
|
|
464
|
+
disposables.splice(index, 1);
|
|
465
|
+
}
|
|
466
|
+
if (disposables.length === 0) {
|
|
467
|
+
this._callsByRequestId.delete(requestId);
|
|
468
|
+
}
|
|
383
469
|
}
|
|
384
470
|
}
|
|
385
471
|
store.dispose();
|
|
@@ -411,22 +497,18 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
|
|
|
411
497
|
return result;
|
|
412
498
|
}
|
|
413
499
|
toToolAndToolSetEnablementMap(enabledToolOrToolSetNames) {
|
|
414
|
-
const toolOrToolSetNames =
|
|
500
|
+
const toolOrToolSetNames = ( new Set(enabledToolOrToolSetNames));
|
|
415
501
|
const result = ( new Map());
|
|
416
502
|
for (const tool of this.getTools()) {
|
|
417
503
|
if (tool.canBeReferencedInPrompt) {
|
|
418
|
-
result.set(tool,
|
|
504
|
+
result.set(tool, ( toolOrToolSetNames.has(tool.toolReferenceName ?? tool.displayName)));
|
|
419
505
|
}
|
|
420
506
|
}
|
|
421
507
|
for (const toolSet of this._toolSets) {
|
|
422
|
-
const enabled =
|
|
508
|
+
const enabled = ( toolOrToolSetNames.has(toolSet.referenceName));
|
|
423
509
|
result.set(toolSet, enabled);
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
if (tool.canBeReferencedInPrompt) {
|
|
427
|
-
result.set(tool, enabled);
|
|
428
|
-
}
|
|
429
|
-
}
|
|
510
|
+
for (const tool of toolSet.getTools()) {
|
|
511
|
+
result.set(tool, enabled || toolOrToolSetNames?.has(tool.toolReferenceName ?? tool.displayName));
|
|
430
512
|
}
|
|
431
513
|
}
|
|
432
514
|
return result;
|
|
@@ -471,7 +553,8 @@ LanguageModelToolsService = ( __decorate([
|
|
|
471
553
|
( __param(6, ILogService)),
|
|
472
554
|
( __param(7, IConfigurationService)),
|
|
473
555
|
( __param(8, IAccessibilityService)),
|
|
474
|
-
( __param(9, IAccessibilitySignalService))
|
|
556
|
+
( __param(9, IAccessibilitySignalService)),
|
|
557
|
+
( __param(10, IStorageService))
|
|
475
558
|
], LanguageModelToolsService));
|
|
476
559
|
let ToolConfirmStore = class ToolConfirmStore extends Disposable {
|
|
477
560
|
static { ToolConfirmStore_1 = this; }
|
|
@@ -520,4 +603,4 @@ ToolConfirmStore = ToolConfirmStore_1 = ( __decorate([
|
|
|
520
603
|
( __param(1, IStorageService))
|
|
521
604
|
], ToolConfirmStore));
|
|
522
605
|
|
|
523
|
-
export { LanguageModelToolsService };
|
|
606
|
+
export { LanguageModelToolsService, globalAutoApproveDescription };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M8.
|
|
2
|
+
<path d="M8.19299 3.69231C8.91408 3.69231 9.818 3.20407 10.3563 2.55308C10.8437 1.96313 11.1993 1.13922 11.1993 0.315322C11.1993 0.203433 11.1891 0.0915449 11.1688 0C10.3664 0.030515 9.40159 0.539098 8.82268 1.2206C8.36564 1.73935 7.94924 2.55308 7.94924 3.38716C7.94924 3.50922 7.96955 3.63127 7.9797 3.67196C8.0305 3.68214 8.11174 3.69231 8.19299 3.69231ZM5.65392 16C6.63907 16 7.0758 15.3388 8.30472 15.3388C9.55394 15.3388 9.82816 15.9797 10.925 15.9797C12.0016 15.9797 12.7227 14.9829 13.4032 14.0064C14.1649 12.8875 14.4797 11.7889 14.5 11.7381C14.429 11.7177 12.3672 10.8735 12.3672 8.5035C12.3672 6.44883 13.9922 5.5232 14.0836 5.452C13.0071 3.90591 11.3719 3.86523 10.925 3.86523C9.71644 3.86523 8.73127 4.59759 8.11174 4.59759C7.44143 4.59759 6.55783 3.90591 5.51173 3.90591C3.52109 3.90591 1.5 5.55372 1.5 8.66624C1.5 10.5989 2.25157 12.6433 3.17578 13.9657C3.96797 15.0846 4.6586 16 5.65392 16Z" fill="white"/>
|
|
3
3
|
</svg>
|