@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
package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js
CHANGED
|
@@ -100,12 +100,40 @@ async function collectTerminalResults(terminals, task, instantiationService, inv
|
|
|
100
100
|
if (token.isCancellationRequested) {
|
|
101
101
|
return results;
|
|
102
102
|
}
|
|
103
|
+
const commonTaskIdToTaskMap = {};
|
|
104
|
+
const taskIdToTaskMap = {};
|
|
105
|
+
const taskLabelToTaskMap = {};
|
|
106
|
+
for (const dependencyTask of dependencyTasks ?? []) {
|
|
107
|
+
commonTaskIdToTaskMap[dependencyTask.getCommonTaskId()] = dependencyTask;
|
|
108
|
+
taskIdToTaskMap[dependencyTask._id] = dependencyTask;
|
|
109
|
+
taskLabelToTaskMap[dependencyTask._label] = dependencyTask;
|
|
110
|
+
}
|
|
103
111
|
for (const instance of terminals) {
|
|
104
112
|
progress.report({ message: ( new MarkdownString(`Checking output for \`${instance.shellLaunchConfig.name ?? 'unknown'}\``)) });
|
|
113
|
+
let terminalTask = task;
|
|
114
|
+
if (dependencyTasks?.length) {
|
|
115
|
+
const reconnectionData = instance.reconnectionProperties?.data;
|
|
116
|
+
if (reconnectionData) {
|
|
117
|
+
if (reconnectionData.lastTask in commonTaskIdToTaskMap) {
|
|
118
|
+
terminalTask = commonTaskIdToTaskMap[reconnectionData.lastTask];
|
|
119
|
+
}
|
|
120
|
+
else if (reconnectionData.id in taskIdToTaskMap) {
|
|
121
|
+
terminalTask = taskIdToTaskMap[reconnectionData.id];
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
if (instance.shellLaunchConfig.name && instance.shellLaunchConfig.name in taskLabelToTaskMap) {
|
|
126
|
+
terminalTask = taskLabelToTaskMap[instance.shellLaunchConfig.name];
|
|
127
|
+
}
|
|
128
|
+
else if (instance.title in taskLabelToTaskMap) {
|
|
129
|
+
terminalTask = taskLabelToTaskMap[instance.title];
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
105
133
|
const execution = {
|
|
106
134
|
getOutput: () => getOutput(instance) ?? '',
|
|
107
|
-
|
|
108
|
-
|
|
135
|
+
task: terminalTask,
|
|
136
|
+
isActive: isActive ? () => isActive(terminalTask) : undefined,
|
|
109
137
|
instance,
|
|
110
138
|
dependencyTasks,
|
|
111
139
|
sessionId: invocationContext.sessionId
|
|
@@ -114,7 +142,7 @@ async function collectTerminalResults(terminals, task, instantiationService, inv
|
|
|
114
142
|
await Event.toPromise(outputMonitor.onDidFinishCommand);
|
|
115
143
|
const pollingResult = outputMonitor.pollingResult;
|
|
116
144
|
results.push({
|
|
117
|
-
name: instance.shellLaunchConfig.name ?? 'unknown',
|
|
145
|
+
name: instance.shellLaunchConfig.name ?? instance.title ?? 'unknown',
|
|
118
146
|
output: pollingResult?.output ?? '',
|
|
119
147
|
pollDurationMs: pollingResult?.pollDurationMs ?? 0,
|
|
120
148
|
resources: pollingResult?.resources,
|
|
@@ -160,9 +188,10 @@ async function taskProblemPollFn(execution, token, taskService) {
|
|
|
160
188
|
}
|
|
161
189
|
}
|
|
162
190
|
if (problemList.length === 0) {
|
|
191
|
+
const lastTenLines = execution.getOutput().split('\n').filter(line => line !== '').slice(-10).join('\n');
|
|
163
192
|
return {
|
|
164
193
|
state: OutputMonitorState.Idle,
|
|
165
|
-
output:
|
|
194
|
+
output: `Task completed with output:\n${lastTenLines}`,
|
|
166
195
|
};
|
|
167
196
|
}
|
|
168
197
|
return {
|
|
@@ -3,43 +3,71 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
|
|
|
3
3
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
4
4
|
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
5
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
6
|
+
import { isNumber } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
6
7
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
8
|
import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
9
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
8
10
|
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
9
11
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
12
|
+
import { TerminalSettingId } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal';
|
|
10
13
|
import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
|
|
14
|
+
import { IWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service';
|
|
11
15
|
import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
|
|
12
|
-
import { showChatView } from '@codingame/monaco-vscode-
|
|
16
|
+
import { showChatView } from '@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/browser/chat';
|
|
13
17
|
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
14
18
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
|
|
15
|
-
import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
|
|
19
|
+
import { ToolDataSource, VSCodeToolReference } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
|
|
16
20
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
|
|
17
21
|
import { registerActiveInstanceAction, sharedWhenClause } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminal/browser/terminalActions';
|
|
18
22
|
import { TerminalContextMenuGroup } from '@codingame/monaco-vscode-05a2a821-e4de-5941-b7f9-bbf01c09f229-common/vscode/vs/workbench/contrib/terminal/browser/terminalMenus';
|
|
19
23
|
import { TerminalContextKeys } from '@codingame/monaco-vscode-b6d52a6d-8c8e-51f5-bcd2-1722295e31d9-common/vscode/vs/workbench/contrib/terminal/common/terminalContextKey';
|
|
20
24
|
import { TerminalChatAgentToolsCommandId } from '../common/terminal.chatAgentTools.js';
|
|
25
|
+
import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-de235d7f-e72a-5adb-9256-acf6c64eb6f2-common/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
|
|
21
26
|
import { GetTerminalLastCommandTool, GetTerminalLastCommandToolData } from './tools/getTerminalLastCommandTool.js';
|
|
22
27
|
import { GetTerminalOutputTool, GetTerminalOutputToolData } from './tools/getTerminalOutputTool.js';
|
|
23
28
|
import { GetTerminalSelectionTool, GetTerminalSelectionToolData } from './tools/getTerminalSelectionTool.js';
|
|
24
|
-
import {
|
|
29
|
+
import { ConfirmTerminalCommandTool, ConfirmTerminalCommandToolData } from './tools/runInTerminalConfirmationTool.js';
|
|
30
|
+
import { createRunInTerminalToolData, RunInTerminalTool } from './tools/runInTerminalTool.js';
|
|
25
31
|
import { CreateAndRunTaskTool, CreateAndRunTaskToolData } from './tools/task/createAndRunTaskTool.js';
|
|
26
32
|
import { GetTaskOutputTool, GetTaskOutputToolData } from './tools/task/getTaskOutputTool.js';
|
|
27
33
|
import { RunTaskTool, RunTaskToolData } from './tools/task/runTaskTool.js';
|
|
28
34
|
|
|
35
|
+
let ShellIntegrationTimeoutMigrationContribution = class ShellIntegrationTimeoutMigrationContribution extends Disposable {
|
|
36
|
+
static { this.ID = 'terminal.shellIntegrationTimeoutMigration'; }
|
|
37
|
+
constructor(configurationService) {
|
|
38
|
+
super();
|
|
39
|
+
const deprecatedSettingValue = configurationService.getValue(TerminalChatAgentToolsSettingId.ShellIntegrationTimeout);
|
|
40
|
+
if (!isNumber(deprecatedSettingValue)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const newSettingValue = configurationService.getValue(TerminalSettingId.ShellIntegrationTimeout);
|
|
44
|
+
if (!isNumber(newSettingValue)) {
|
|
45
|
+
configurationService.updateValue(TerminalSettingId.ShellIntegrationTimeout, deprecatedSettingValue);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
ShellIntegrationTimeoutMigrationContribution = ( __decorate([
|
|
50
|
+
( __param(0, IConfigurationService))
|
|
51
|
+
], ShellIntegrationTimeoutMigrationContribution));
|
|
52
|
+
registerWorkbenchContribution2(ShellIntegrationTimeoutMigrationContribution.ID, ShellIntegrationTimeoutMigrationContribution, WorkbenchPhase.Eventually);
|
|
29
53
|
let ChatAgentToolsContribution = class ChatAgentToolsContribution extends Disposable {
|
|
30
54
|
static { this.ID = 'terminal.chatAgentTools'; }
|
|
31
55
|
constructor(instantiationService, toolsService) {
|
|
32
56
|
super();
|
|
33
|
-
const
|
|
34
|
-
this._register(toolsService.registerTool(
|
|
57
|
+
const confirmTerminalCommandTool = instantiationService.createInstance(ConfirmTerminalCommandTool);
|
|
58
|
+
this._register(toolsService.registerTool(ConfirmTerminalCommandToolData, confirmTerminalCommandTool));
|
|
35
59
|
const getTerminalOutputTool = instantiationService.createInstance(GetTerminalOutputTool);
|
|
36
60
|
this._register(toolsService.registerTool(GetTerminalOutputToolData, getTerminalOutputTool));
|
|
37
|
-
const runCommandsToolSet = this._register(toolsService.createToolSet(ToolDataSource.Internal, 'runCommands',
|
|
61
|
+
const runCommandsToolSet = this._register(toolsService.createToolSet(ToolDataSource.Internal, 'runCommands', VSCodeToolReference.runCommands, {
|
|
38
62
|
icon: ThemeIcon.fromId(Codicon.terminal.id),
|
|
39
|
-
description: ( localize(
|
|
63
|
+
description: ( localize(11831, 'Runs commands in the terminal'))
|
|
40
64
|
}));
|
|
41
|
-
runCommandsToolSet.addTool(RunInTerminalToolData);
|
|
42
65
|
runCommandsToolSet.addTool(GetTerminalOutputToolData);
|
|
66
|
+
instantiationService.invokeFunction(createRunInTerminalToolData).then(runInTerminalToolData => {
|
|
67
|
+
const runInTerminalTool = instantiationService.createInstance(RunInTerminalTool);
|
|
68
|
+
this._register(toolsService.registerTool(runInTerminalToolData, runInTerminalTool));
|
|
69
|
+
runCommandsToolSet.addTool(runInTerminalToolData);
|
|
70
|
+
});
|
|
43
71
|
const getTerminalSelectionTool = instantiationService.createInstance(GetTerminalSelectionTool);
|
|
44
72
|
this._register(toolsService.registerTool(GetTerminalSelectionToolData, getTerminalSelectionTool));
|
|
45
73
|
const getTerminalLastCommandTool = instantiationService.createInstance(GetTerminalLastCommandTool);
|
|
@@ -53,7 +81,7 @@ let ChatAgentToolsContribution = class ChatAgentToolsContribution extends Dispos
|
|
|
53
81
|
const createAndRunTaskTool = instantiationService.createInstance(CreateAndRunTaskTool);
|
|
54
82
|
this._register(toolsService.registerTool(CreateAndRunTaskToolData, createAndRunTaskTool));
|
|
55
83
|
const runTasksToolSet = this._register(toolsService.createToolSet(ToolDataSource.Internal, 'runTasks', 'runTasks', {
|
|
56
|
-
description: ( localize(
|
|
84
|
+
description: ( localize(11832, 'Runs tasks and gets their output for your workspace')),
|
|
57
85
|
}));
|
|
58
86
|
runTasksToolSet.addTool(RunTaskToolData);
|
|
59
87
|
runTasksToolSet.addTool(GetTaskOutputToolData);
|
|
@@ -67,7 +95,7 @@ ChatAgentToolsContribution = ( __decorate([
|
|
|
67
95
|
registerWorkbenchContribution2(ChatAgentToolsContribution.ID, ChatAgentToolsContribution, WorkbenchPhase.AfterRestored);
|
|
68
96
|
registerActiveInstanceAction({
|
|
69
97
|
id: TerminalChatAgentToolsCommandId.ChatAddTerminalSelection,
|
|
70
|
-
title: ( localize(
|
|
98
|
+
title: ( localize(11833, 'Add Terminal Selection to Chat')),
|
|
71
99
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, sharedWhenClause.terminalAvailable)),
|
|
72
100
|
menu: [
|
|
73
101
|
{
|
|
@@ -80,19 +108,20 @@ registerActiveInstanceAction({
|
|
|
80
108
|
run: async (activeInstance, _c, accessor) => {
|
|
81
109
|
const viewsService = accessor.get(IViewsService);
|
|
82
110
|
const chatWidgetService = accessor.get(IChatWidgetService);
|
|
111
|
+
const layoutService = accessor.get(IWorkbenchLayoutService);
|
|
83
112
|
const selection = activeInstance.selection;
|
|
84
113
|
if (!selection) {
|
|
85
114
|
return;
|
|
86
115
|
}
|
|
87
|
-
const chatView = chatWidgetService.lastFocusedWidget || (await showChatView(viewsService));
|
|
116
|
+
const chatView = chatWidgetService.lastFocusedWidget || (await showChatView(viewsService, layoutService));
|
|
88
117
|
if (!chatView) {
|
|
89
118
|
return;
|
|
90
119
|
}
|
|
91
120
|
chatView.attachmentModel.addContext({
|
|
92
121
|
id: `terminal-selection-${Date.now()}`,
|
|
93
122
|
kind: 'generic',
|
|
94
|
-
name: ( localize(
|
|
95
|
-
fullName: ( localize(
|
|
123
|
+
name: ( localize(11834, 'Terminal Selection')),
|
|
124
|
+
fullName: ( localize(11834, 'Terminal Selection')),
|
|
96
125
|
value: selection,
|
|
97
126
|
icon: Codicon.terminal
|
|
98
127
|
});
|
|
@@ -8,12 +8,12 @@ import { DisposableStore, MutableDisposable } from '@codingame/monaco-vscode-api
|
|
|
8
8
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
9
9
|
import { isNumber, isObject } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
10
10
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
11
|
-
import { TerminalCapability } from '@codingame/monaco-vscode-
|
|
12
|
-
import { PromptInputState } from '@codingame/monaco-vscode-
|
|
11
|
+
import { TerminalCapability } from '@codingame/monaco-vscode-10af0e5d-64cb-56de-b584-29ab4a355d15-common/vscode/vs/platform/terminal/common/capabilities/capabilities';
|
|
12
|
+
import { PromptInputState } from '@codingame/monaco-vscode-45e04ac3-b807-5ae5-8818-7b9c40b6d31f-common/vscode/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel';
|
|
13
13
|
import { TerminalSettingId } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal';
|
|
14
14
|
import { ITerminalLogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service';
|
|
15
15
|
import { ITerminalService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
|
|
16
|
-
import {
|
|
16
|
+
import { getShellIntegrationTimeout } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminal/common/terminalEnvironment';
|
|
17
17
|
|
|
18
18
|
var ToolTerminalCreator_1;
|
|
19
19
|
var ShellLaunchType;
|
|
@@ -42,22 +42,16 @@ let ToolTerminalCreator = class ToolTerminalCreator {
|
|
|
42
42
|
instance,
|
|
43
43
|
shellIntegrationQuality: ShellIntegrationQuality.None,
|
|
44
44
|
};
|
|
45
|
+
let processReadyTimestamp = 0;
|
|
45
46
|
const initResult = await Promise.any([
|
|
46
|
-
instance.processReady,
|
|
47
|
+
instance.processReady.then(() => processReadyTimestamp = Date.now()),
|
|
47
48
|
Event.toPromise(instance.onExit),
|
|
48
49
|
]);
|
|
49
50
|
if (!isNumber(initResult) && isObject(initResult) && 'message' in initResult) {
|
|
50
51
|
throw ( new Error(initResult.message));
|
|
51
52
|
}
|
|
52
|
-
const siInjectionEnabled = this._configurationService.getValue(TerminalSettingId.ShellIntegrationEnabled);
|
|
53
|
-
const
|
|
54
|
-
let waitTime;
|
|
55
|
-
if (configuredTimeout === undefined || typeof configuredTimeout !== 'number' || configuredTimeout < 0) {
|
|
56
|
-
waitTime = siInjectionEnabled ? 5000 : (instance.isRemote ? 3000 : 2000);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
waitTime = Math.max(configuredTimeout, 500);
|
|
60
|
-
}
|
|
53
|
+
const siInjectionEnabled = this._configurationService.getValue(TerminalSettingId.ShellIntegrationEnabled) === true;
|
|
54
|
+
const waitTime = getShellIntegrationTimeout(this._configurationService, siInjectionEnabled, instance.hasRemoteAuthority, processReadyTimestamp);
|
|
61
55
|
if (ToolTerminalCreator_1._lastSuccessfulShell !== ShellLaunchType.Fallback ||
|
|
62
56
|
siInjectionEnabled) {
|
|
63
57
|
this._logService.info(`ToolTerminalCreator#createTerminal: Waiting ${waitTime}ms for shell integration`);
|
|
@@ -98,6 +92,7 @@ let ToolTerminalCreator = class ToolTerminalCreator {
|
|
|
98
92
|
const config = {
|
|
99
93
|
icon: ThemeIcon.fromId(Codicon.chatSparkle.id),
|
|
100
94
|
hideFromUser: true,
|
|
95
|
+
forcePersist: true,
|
|
101
96
|
env: {
|
|
102
97
|
GIT_PAGER: 'cat',
|
|
103
98
|
}
|
|
@@ -149,14 +144,12 @@ let ToolTerminalCreator = class ToolTerminalCreator {
|
|
|
149
144
|
}, 200));
|
|
150
145
|
}
|
|
151
146
|
else {
|
|
152
|
-
store.add(instance.capabilities.
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}, 200));
|
|
159
|
-
}
|
|
147
|
+
store.add(instance.capabilities.onDidAddCommandDetectionCapability(e => {
|
|
148
|
+
siNoneTimer.clear();
|
|
149
|
+
store.add(disposableTimeout(() => {
|
|
150
|
+
this._logService.info(`ToolTerminalCreator#_waitForShellIntegration: Timed out 200ms, using basic SI (via listener)`);
|
|
151
|
+
result.complete(ShellIntegrationQuality.Basic);
|
|
152
|
+
}, 200));
|
|
160
153
|
}));
|
|
161
154
|
}
|
|
162
155
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { IMarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent";
|
|
2
|
+
import type { IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
|
+
import type { OperatingSystem } from "@codingame/monaco-vscode-api/vscode/vs/base/common/platform";
|
|
4
|
+
import type { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
5
|
+
import type { ToolConfirmationAction } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
|
|
6
|
+
import type { TreeSitterCommandParserLanguage } from "../../treeSitterCommandParser.js";
|
|
7
|
+
export interface ICommandLineAnalyzer extends IDisposable {
|
|
8
|
+
analyze(options: ICommandLineAnalyzerOptions): Promise<ICommandLineAnalyzerResult>;
|
|
9
|
+
}
|
|
10
|
+
export interface ICommandLineAnalyzerOptions {
|
|
11
|
+
commandLine: string;
|
|
12
|
+
cwd: URI | undefined;
|
|
13
|
+
shell: string;
|
|
14
|
+
os: OperatingSystem;
|
|
15
|
+
treeSitterLanguage: TreeSitterCommandParserLanguage;
|
|
16
|
+
terminalToolSessionId: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ICommandLineAnalyzerResult {
|
|
19
|
+
readonly isAutoApproveAllowed: boolean;
|
|
20
|
+
readonly disclaimers?: readonly string[];
|
|
21
|
+
readonly autoApproveInfo?: IMarkdownString;
|
|
22
|
+
readonly customActions?: ToolConfirmationAction[];
|
|
23
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
3
|
+
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
4
|
+
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
5
|
+
import type { RunInTerminalToolTelemetry } from "../../runInTerminalToolTelemetry.js";
|
|
6
|
+
import { type TreeSitterCommandParser } from "../../treeSitterCommandParser.js";
|
|
7
|
+
import type { ICommandLineAnalyzer, ICommandLineAnalyzerOptions, ICommandLineAnalyzerResult } from "./commandLineAnalyzer.js";
|
|
8
|
+
export declare class CommandLineAutoApproveAnalyzer extends Disposable implements ICommandLineAnalyzer {
|
|
9
|
+
private readonly _treeSitterCommandParser;
|
|
10
|
+
private readonly _telemetry;
|
|
11
|
+
private readonly _log;
|
|
12
|
+
private readonly _configurationService;
|
|
13
|
+
private readonly _storageService;
|
|
14
|
+
private readonly _commandLineAutoApprover;
|
|
15
|
+
constructor(_treeSitterCommandParser: TreeSitterCommandParser, _telemetry: RunInTerminalToolTelemetry, _log: (message: string, ...args: unknown[]) => void, _configurationService: IConfigurationService, instantiationService: IInstantiationService, _storageService: IStorageService);
|
|
16
|
+
analyze(options: ICommandLineAnalyzerOptions): Promise<ICommandLineAnalyzerResult>;
|
|
17
|
+
private _createAutoApproveInfo;
|
|
18
|
+
}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { asArray } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
|
|
4
|
+
import { createCommandUri, MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
5
|
+
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
6
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
8
|
+
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
9
|
+
import { StorageScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
|
|
10
|
+
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
11
|
+
import { TerminalToolConfirmationStorageKeys } from '@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common/vscode/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart';
|
|
12
|
+
import { openTerminalSettingsLinkCommandId } from '@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common/vscode/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart';
|
|
13
|
+
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
14
|
+
import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-de235d7f-e72a-5adb-9256-acf6c64eb6f2-common/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
|
|
15
|
+
import { CommandLineAutoApprover } from '../../commandLineAutoApprover.js';
|
|
16
|
+
import { isPowerShell, generateAutoApproveActions, dedupeRules } from '../../runInTerminalHelpers.js';
|
|
17
|
+
|
|
18
|
+
const promptInjectionWarningCommandsLower = [
|
|
19
|
+
'curl',
|
|
20
|
+
'wget',
|
|
21
|
+
];
|
|
22
|
+
const promptInjectionWarningCommandsLowerPwshOnly = [
|
|
23
|
+
'invoke-restmethod',
|
|
24
|
+
'invoke-webrequest',
|
|
25
|
+
'irm',
|
|
26
|
+
'iwr',
|
|
27
|
+
];
|
|
28
|
+
let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extends Disposable {
|
|
29
|
+
constructor(_treeSitterCommandParser, _telemetry, _log, _configurationService, instantiationService, _storageService) {
|
|
30
|
+
super();
|
|
31
|
+
this._treeSitterCommandParser = _treeSitterCommandParser;
|
|
32
|
+
this._telemetry = _telemetry;
|
|
33
|
+
this._log = _log;
|
|
34
|
+
this._configurationService = _configurationService;
|
|
35
|
+
this._storageService = _storageService;
|
|
36
|
+
this._commandLineAutoApprover = this._register(instantiationService.createInstance(CommandLineAutoApprover));
|
|
37
|
+
}
|
|
38
|
+
async analyze(options) {
|
|
39
|
+
let subCommands;
|
|
40
|
+
try {
|
|
41
|
+
subCommands = await this._treeSitterCommandParser.extractSubCommands(options.treeSitterLanguage, options.commandLine);
|
|
42
|
+
this._log(`Parsed sub-commands via ${options.treeSitterLanguage} grammar`, subCommands);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
console.error(e);
|
|
46
|
+
this._log(`Failed to parse sub-commands via ${options.treeSitterLanguage} grammar`);
|
|
47
|
+
}
|
|
48
|
+
let isAutoApproved = false;
|
|
49
|
+
let autoApproveInfo;
|
|
50
|
+
let customActions;
|
|
51
|
+
if (!subCommands) {
|
|
52
|
+
return {
|
|
53
|
+
isAutoApproveAllowed: false,
|
|
54
|
+
disclaimers: [],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const subCommandResults = ( subCommands.map(
|
|
58
|
+
e => this._commandLineAutoApprover.isCommandAutoApproved(e, options.shell, options.os)
|
|
59
|
+
));
|
|
60
|
+
const commandLineResult = this._commandLineAutoApprover.isCommandLineAutoApproved(options.commandLine);
|
|
61
|
+
const autoApproveReasons = [
|
|
62
|
+
...( subCommandResults.map(e => e.reason)),
|
|
63
|
+
commandLineResult.reason,
|
|
64
|
+
];
|
|
65
|
+
let isDenied = false;
|
|
66
|
+
let autoApproveReason;
|
|
67
|
+
let autoApproveDefault;
|
|
68
|
+
const deniedSubCommandResult = subCommandResults.find(e => e.result === 'denied');
|
|
69
|
+
if (deniedSubCommandResult) {
|
|
70
|
+
this._log('Sub-command DENIED auto approval');
|
|
71
|
+
isDenied = true;
|
|
72
|
+
autoApproveDefault = deniedSubCommandResult.rule?.isDefaultRule;
|
|
73
|
+
autoApproveReason = 'subCommand';
|
|
74
|
+
}
|
|
75
|
+
else if (commandLineResult.result === 'denied') {
|
|
76
|
+
this._log('Command line DENIED auto approval');
|
|
77
|
+
isDenied = true;
|
|
78
|
+
autoApproveDefault = commandLineResult.rule?.isDefaultRule;
|
|
79
|
+
autoApproveReason = 'commandLine';
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
if (subCommandResults.every(e => e.result === 'approved')) {
|
|
83
|
+
this._log('All sub-commands auto-approved');
|
|
84
|
+
autoApproveReason = 'subCommand';
|
|
85
|
+
isAutoApproved = true;
|
|
86
|
+
autoApproveDefault = subCommandResults.every(e => e.rule?.isDefaultRule);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this._log('All sub-commands NOT auto-approved');
|
|
90
|
+
if (commandLineResult.result === 'approved') {
|
|
91
|
+
this._log('Command line auto-approved');
|
|
92
|
+
autoApproveReason = 'commandLine';
|
|
93
|
+
isAutoApproved = true;
|
|
94
|
+
autoApproveDefault = commandLineResult.rule?.isDefaultRule;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
this._log('Command line NOT auto-approved');
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
for (const reason of autoApproveReasons) {
|
|
102
|
+
this._log(`- ${reason}`);
|
|
103
|
+
}
|
|
104
|
+
const isAutoApproveEnabled = this._configurationService.getValue(TerminalChatAgentToolsSettingId.EnableAutoApprove) === true;
|
|
105
|
+
const isAutoApproveWarningAccepted = this._storageService.getBoolean(TerminalToolConfirmationStorageKeys.TerminalAutoApproveWarningAccepted, StorageScope.APPLICATION, false);
|
|
106
|
+
if (isAutoApproveEnabled && isAutoApproved) {
|
|
107
|
+
autoApproveInfo = this._createAutoApproveInfo(isAutoApproved, isDenied, autoApproveReason, subCommandResults, commandLineResult);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
isAutoApproved = false;
|
|
111
|
+
}
|
|
112
|
+
this._telemetry.logPrepare({
|
|
113
|
+
terminalToolSessionId: options.terminalToolSessionId,
|
|
114
|
+
subCommands,
|
|
115
|
+
autoApproveAllowed: !isAutoApproveEnabled ? 'off' : isAutoApproveWarningAccepted ? 'allowed' : 'needsOptIn',
|
|
116
|
+
autoApproveResult: isAutoApproved ? 'approved' : isDenied ? 'denied' : 'manual',
|
|
117
|
+
autoApproveReason,
|
|
118
|
+
autoApproveDefault
|
|
119
|
+
});
|
|
120
|
+
const disclaimers = [];
|
|
121
|
+
const subCommandsLowerFirstWordOnly = ( subCommands.map(command => command.split(' ')[0].toLowerCase()));
|
|
122
|
+
if (!isAutoApproved && (( subCommandsLowerFirstWordOnly.some(command => promptInjectionWarningCommandsLower.includes(command))) ||
|
|
123
|
+
(isPowerShell(options.shell, options.os) && ( subCommandsLowerFirstWordOnly.some(command => promptInjectionWarningCommandsLowerPwshOnly.includes(command)))))) {
|
|
124
|
+
disclaimers.push(( localize(
|
|
125
|
+
11835,
|
|
126
|
+
'Web content may contain malicious code or attempt prompt injection attacks.'
|
|
127
|
+
)));
|
|
128
|
+
}
|
|
129
|
+
if (!isAutoApproved && isAutoApproveEnabled) {
|
|
130
|
+
customActions = generateAutoApproveActions(options.commandLine, subCommands, { subCommandResults, commandLineResult });
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
isAutoApproveAllowed: isAutoApproved,
|
|
134
|
+
disclaimers,
|
|
135
|
+
autoApproveInfo,
|
|
136
|
+
customActions,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
_createAutoApproveInfo(isAutoApproved, isDenied, autoApproveReason, subCommandResults, commandLineResult) {
|
|
140
|
+
const formatRuleLinks = (result) => {
|
|
141
|
+
return ( asArray(result).map(e => {
|
|
142
|
+
const settingsUri = createCommandUri(openTerminalSettingsLinkCommandId, e.rule.sourceTarget);
|
|
143
|
+
return `[\`${e.rule.sourceText}\`](${( settingsUri.toString())} "${( localize(11836, 'View rule in settings'))}")`;
|
|
144
|
+
})).join(', ');
|
|
145
|
+
};
|
|
146
|
+
const mdTrustSettings = {
|
|
147
|
+
isTrusted: {
|
|
148
|
+
enabledCommands: [openTerminalSettingsLinkCommandId]
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const config = this._configurationService.inspect(ChatConfiguration.GlobalAutoApprove);
|
|
152
|
+
const isGlobalAutoApproved = config?.value ?? config.defaultValue;
|
|
153
|
+
if (isGlobalAutoApproved) {
|
|
154
|
+
const settingsUri = createCommandUri(openTerminalSettingsLinkCommandId, 'global');
|
|
155
|
+
return (new MarkdownString(`${( localize(
|
|
156
|
+
11837,
|
|
157
|
+
'Auto approved by setting {0}',
|
|
158
|
+
`[\`${ChatConfiguration.GlobalAutoApprove}\`](${( settingsUri.toString())} "${( localize(11838, 'View settings'))}")`
|
|
159
|
+
))}`, mdTrustSettings));
|
|
160
|
+
}
|
|
161
|
+
if (isAutoApproved) {
|
|
162
|
+
switch (autoApproveReason) {
|
|
163
|
+
case 'commandLine': {
|
|
164
|
+
if (commandLineResult.rule) {
|
|
165
|
+
return (new MarkdownString(
|
|
166
|
+
localize(11839, 'Auto approved by rule {0}', formatRuleLinks(commandLineResult)),
|
|
167
|
+
mdTrustSettings
|
|
168
|
+
));
|
|
169
|
+
}
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
case 'subCommand': {
|
|
173
|
+
const uniqueRules = dedupeRules(subCommandResults);
|
|
174
|
+
if (uniqueRules.length === 1) {
|
|
175
|
+
return (new MarkdownString(
|
|
176
|
+
localize(11839, 'Auto approved by rule {0}', formatRuleLinks(uniqueRules)),
|
|
177
|
+
mdTrustSettings
|
|
178
|
+
));
|
|
179
|
+
}
|
|
180
|
+
else if (uniqueRules.length > 1) {
|
|
181
|
+
return (new MarkdownString(
|
|
182
|
+
localize(11840, 'Auto approved by rules {0}', formatRuleLinks(uniqueRules)),
|
|
183
|
+
mdTrustSettings
|
|
184
|
+
));
|
|
185
|
+
}
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else if (isDenied) {
|
|
191
|
+
switch (autoApproveReason) {
|
|
192
|
+
case 'commandLine': {
|
|
193
|
+
if (commandLineResult.rule) {
|
|
194
|
+
return (new MarkdownString(localize(
|
|
195
|
+
11841,
|
|
196
|
+
'Auto approval denied by rule {0}',
|
|
197
|
+
formatRuleLinks(commandLineResult)
|
|
198
|
+
), mdTrustSettings));
|
|
199
|
+
}
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
case 'subCommand': {
|
|
203
|
+
const uniqueRules = dedupeRules(subCommandResults.filter(e => e.result === 'denied'));
|
|
204
|
+
if (uniqueRules.length === 1) {
|
|
205
|
+
return (new MarkdownString(
|
|
206
|
+
localize(11841, 'Auto approval denied by rule {0}', formatRuleLinks(uniqueRules))
|
|
207
|
+
));
|
|
208
|
+
}
|
|
209
|
+
else if (uniqueRules.length > 1) {
|
|
210
|
+
return (new MarkdownString(
|
|
211
|
+
localize(11842, 'Auto approval denied by rules {0}', formatRuleLinks(uniqueRules))
|
|
212
|
+
));
|
|
213
|
+
}
|
|
214
|
+
break;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return undefined;
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
CommandLineAutoApproveAnalyzer = ( __decorate([
|
|
222
|
+
( __param(3, IConfigurationService)),
|
|
223
|
+
( __param(4, IInstantiationService)),
|
|
224
|
+
( __param(5, IStorageService))
|
|
225
|
+
], CommandLineAutoApproveAnalyzer));
|
|
226
|
+
|
|
227
|
+
export { CommandLineAutoApproveAnalyzer };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
3
|
+
import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
|
|
4
|
+
import { type TreeSitterCommandParser } from "../../treeSitterCommandParser.js";
|
|
5
|
+
import type { ICommandLineAnalyzer, ICommandLineAnalyzerOptions, ICommandLineAnalyzerResult } from "./commandLineAnalyzer.js";
|
|
6
|
+
import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service";
|
|
7
|
+
export declare class CommandLineFileWriteAnalyzer extends Disposable implements ICommandLineAnalyzer {
|
|
8
|
+
private readonly _treeSitterCommandParser;
|
|
9
|
+
private readonly _log;
|
|
10
|
+
private readonly _configurationService;
|
|
11
|
+
private readonly _labelService;
|
|
12
|
+
private readonly _workspaceContextService;
|
|
13
|
+
constructor(_treeSitterCommandParser: TreeSitterCommandParser, _log: (message: string, ...args: unknown[]) => void, _configurationService: IConfigurationService, _labelService: ILabelService, _workspaceContextService: IWorkspaceContextService);
|
|
14
|
+
analyze(options: ICommandLineAnalyzerOptions): Promise<ICommandLineAnalyzerResult>;
|
|
15
|
+
private _getFileWrites;
|
|
16
|
+
private _getResult;
|
|
17
|
+
}
|