@codingame/monaco-vscode-chat-service-override 19.1.4 → 20.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 +20 -8
- package/package.json +36 -31
- package/vscode/src/vs/base/common/policy.d.ts +14 -0
- package/vscode/src/vs/base/common/policy.js +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +53 -43
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +54 -24
- 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 +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +37 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +4 -4
- 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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +23 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +83 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +421 -21
- 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 +20 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +215 -104
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +9 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +18 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +20 -20
- 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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +11 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +16 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +7 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +58 -326
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +33 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +39 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +380 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +4 -2
- 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 +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +22 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +9 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +44 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +38 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +145 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +34 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +36 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +49 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +407 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.js +738 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +142 -151
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +54 -54
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +23 -7
- 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/languageModelToolsService.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +13 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-dark.svg +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-light.svg +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSetup.css +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +19 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +14 -14
- 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/promptToolsCodeLensProvider.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.d.ts +1 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +52 -90
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +6 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +9 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +11 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +137 -30
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +44 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/configMigration.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/filePromptContentsProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/promptContentsProviderBase.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/promptContentsProviderBase.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.js +3 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/providerInstanceManagerBase.js +2 -2
- 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/instructionsHeader.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.js +1 -1
- 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/modeHeader.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +2 -2
- 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/inlineChat/browser/inlineChat.contribution.js +9 -9
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +104 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +667 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +14 -14
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -1
- 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/media/terminalChatWidget.css +56 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +14 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +111 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +52 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +262 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +129 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatControllerHolder.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatControllerHolder.js +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +30 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +72 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +411 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +59 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.d.ts +51 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.js +163 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +164 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +101 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +52 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +71 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +94 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/getTerminalOutputTool.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/getTerminalOutputTool.js +44 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +18 -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 +13 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalTool.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalTool.js +603 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +113 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/createAndRunTaskTool.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/createAndRunTaskTool.js +227 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.js +88 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/runTaskTool.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/runTaskTool.js +140 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.js +80 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.js +40 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +36 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +114 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/google-mono-dark.svg +0 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/media/google-mono-light.svg +0 -3
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
|
|
2
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
3
|
+
import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
|
|
4
|
+
import { localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
5
|
+
import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
6
|
+
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
7
|
+
import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
|
|
8
|
+
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
9
|
+
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
|
|
10
|
+
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
|
|
11
|
+
import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
12
|
+
import { AbstractInline1ChatAction } from '../../../inlineChat/browser/inlineChatActions.js';
|
|
13
|
+
import { isDetachedTerminalInstance } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal';
|
|
14
|
+
import { registerActiveXtermAction } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminal/browser/terminalActions';
|
|
15
|
+
import { TerminalContextKeys } from '@codingame/monaco-vscode-262ed59d-4f76-57cd-9e9f-1877f26ae049-common/vscode/vs/workbench/contrib/terminal/common/terminalContextKey';
|
|
16
|
+
import { TerminalChatContextKeys, TerminalChatCommandId, MENU_TERMINAL_CHAT_WIDGET_STATUS } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminalContrib/chat/browser/terminalChat';
|
|
17
|
+
import { TerminalChatController } from './terminalChatController.js';
|
|
18
|
+
import { activeChatController } from './terminalChatControllerHolder.js';
|
|
19
|
+
|
|
20
|
+
registerActiveXtermAction({
|
|
21
|
+
id: TerminalChatCommandId.Start,
|
|
22
|
+
title: ( localize2(11240, 'Terminal Inline Chat')),
|
|
23
|
+
category: AbstractInline1ChatAction.category,
|
|
24
|
+
keybinding: {
|
|
25
|
+
primary: KeyMod.CtrlCmd | KeyCode.KeyI,
|
|
26
|
+
when: ( ContextKeyExpr.and(TerminalContextKeys.focusInAny)),
|
|
27
|
+
weight: KeybindingWeight.ExternalExtension + 1,
|
|
28
|
+
},
|
|
29
|
+
f1: true,
|
|
30
|
+
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
31
|
+
TerminalContextKeys.processSupported,
|
|
32
|
+
TerminalContextKeys.terminalHasBeenCreated
|
|
33
|
+
)), TerminalChatContextKeys.hasChatAgent)),
|
|
34
|
+
menu: {
|
|
35
|
+
id: MenuId.ChatTerminalMenu,
|
|
36
|
+
group: 'copilot',
|
|
37
|
+
order: 1
|
|
38
|
+
},
|
|
39
|
+
run: (_xterm, _accessor, activeInstance, opts) => {
|
|
40
|
+
if (isDetachedTerminalInstance(activeInstance)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const contr = activeChatController || TerminalChatController.get(activeInstance);
|
|
44
|
+
if (opts) {
|
|
45
|
+
opts = typeof opts === 'string' ? { query: opts } : opts;
|
|
46
|
+
if (typeof opts === 'object' && opts !== null && 'query' in opts && typeof opts.query === 'string') {
|
|
47
|
+
contr?.updateInput(opts.query, false);
|
|
48
|
+
if (!('isPartialQuery' in opts && opts.isPartialQuery)) {
|
|
49
|
+
contr?.terminalChatWidget?.acceptInput();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
contr?.terminalChatWidget?.reveal();
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
registerActiveXtermAction({
|
|
57
|
+
id: TerminalChatCommandId.Close,
|
|
58
|
+
title: ( localize2(11241, 'Close')),
|
|
59
|
+
category: AbstractInline1ChatAction.category,
|
|
60
|
+
keybinding: {
|
|
61
|
+
primary: KeyCode.Escape,
|
|
62
|
+
when: ( ContextKeyExpr.and(( ContextKeyExpr.or(TerminalContextKeys.focus, TerminalChatContextKeys.focused)), TerminalChatContextKeys.visible)),
|
|
63
|
+
weight: KeybindingWeight.WorkbenchContrib,
|
|
64
|
+
},
|
|
65
|
+
menu: [{
|
|
66
|
+
id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
|
|
67
|
+
group: '0_main',
|
|
68
|
+
order: 2,
|
|
69
|
+
}],
|
|
70
|
+
icon: Codicon.close,
|
|
71
|
+
f1: true,
|
|
72
|
+
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, TerminalChatContextKeys.visible)),
|
|
73
|
+
run: (_xterm, _accessor, activeInstance) => {
|
|
74
|
+
if (isDetachedTerminalInstance(activeInstance)) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const contr = activeChatController || TerminalChatController.get(activeInstance);
|
|
78
|
+
contr?.terminalChatWidget?.clear();
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
registerActiveXtermAction({
|
|
82
|
+
id: TerminalChatCommandId.RunCommand,
|
|
83
|
+
title: ( localize2(11242, 'Run Chat Command')),
|
|
84
|
+
shortTitle: ( localize2(11243, 'Run')),
|
|
85
|
+
category: AbstractInline1ChatAction.category,
|
|
86
|
+
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
87
|
+
TerminalContextKeys.processSupported,
|
|
88
|
+
TerminalContextKeys.terminalHasBeenCreated
|
|
89
|
+
)), ( TerminalChatContextKeys.requestActive.negate()), TerminalChatContextKeys.responseContainsCodeBlock, ( TerminalChatContextKeys.responseContainsMultipleCodeBlocks.negate()))),
|
|
90
|
+
icon: Codicon.play,
|
|
91
|
+
keybinding: {
|
|
92
|
+
when: ( TerminalChatContextKeys.requestActive.negate()),
|
|
93
|
+
weight: KeybindingWeight.WorkbenchContrib,
|
|
94
|
+
primary: KeyMod.CtrlCmd | KeyCode.Enter,
|
|
95
|
+
},
|
|
96
|
+
menu: {
|
|
97
|
+
id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
|
|
98
|
+
group: '0_main',
|
|
99
|
+
order: 0,
|
|
100
|
+
when: ( ContextKeyExpr.and(TerminalChatContextKeys.responseContainsCodeBlock, ( TerminalChatContextKeys.responseContainsMultipleCodeBlocks.negate()), ( TerminalChatContextKeys.requestActive.negate())))
|
|
101
|
+
},
|
|
102
|
+
run: (_xterm, _accessor, activeInstance) => {
|
|
103
|
+
if (isDetachedTerminalInstance(activeInstance)) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const contr = activeChatController || TerminalChatController.get(activeInstance);
|
|
107
|
+
contr?.terminalChatWidget?.acceptCommand(true);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
registerActiveXtermAction({
|
|
111
|
+
id: TerminalChatCommandId.RunFirstCommand,
|
|
112
|
+
title: ( localize2(11244, 'Run First Chat Command')),
|
|
113
|
+
shortTitle: ( localize2(11245, 'Run First')),
|
|
114
|
+
category: AbstractInline1ChatAction.category,
|
|
115
|
+
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
116
|
+
TerminalContextKeys.processSupported,
|
|
117
|
+
TerminalContextKeys.terminalHasBeenCreated
|
|
118
|
+
)), ( TerminalChatContextKeys.requestActive.negate()), TerminalChatContextKeys.responseContainsMultipleCodeBlocks)),
|
|
119
|
+
icon: Codicon.play,
|
|
120
|
+
keybinding: {
|
|
121
|
+
when: ( TerminalChatContextKeys.requestActive.negate()),
|
|
122
|
+
weight: KeybindingWeight.WorkbenchContrib,
|
|
123
|
+
primary: KeyMod.CtrlCmd | KeyCode.Enter,
|
|
124
|
+
},
|
|
125
|
+
menu: {
|
|
126
|
+
id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
|
|
127
|
+
group: '0_main',
|
|
128
|
+
order: 0,
|
|
129
|
+
when: ( ContextKeyExpr.and(TerminalChatContextKeys.responseContainsMultipleCodeBlocks, ( TerminalChatContextKeys.requestActive.negate())))
|
|
130
|
+
},
|
|
131
|
+
run: (_xterm, _accessor, activeInstance) => {
|
|
132
|
+
if (isDetachedTerminalInstance(activeInstance)) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const contr = activeChatController || TerminalChatController.get(activeInstance);
|
|
136
|
+
contr?.terminalChatWidget?.acceptCommand(true);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
registerActiveXtermAction({
|
|
140
|
+
id: TerminalChatCommandId.InsertCommand,
|
|
141
|
+
title: ( localize2(11246, 'Insert Chat Command')),
|
|
142
|
+
shortTitle: ( localize2(11247, 'Insert')),
|
|
143
|
+
category: AbstractInline1ChatAction.category,
|
|
144
|
+
icon: Codicon.insert,
|
|
145
|
+
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
146
|
+
TerminalContextKeys.processSupported,
|
|
147
|
+
TerminalContextKeys.terminalHasBeenCreated
|
|
148
|
+
)), ( TerminalChatContextKeys.requestActive.negate()), TerminalChatContextKeys.responseContainsCodeBlock, ( TerminalChatContextKeys.responseContainsMultipleCodeBlocks.negate()))),
|
|
149
|
+
keybinding: {
|
|
150
|
+
when: ( TerminalChatContextKeys.requestActive.negate()),
|
|
151
|
+
weight: KeybindingWeight.WorkbenchContrib,
|
|
152
|
+
primary: KeyMod.Alt | KeyCode.Enter,
|
|
153
|
+
secondary: [KeyMod.CtrlCmd | KeyCode.Enter | KeyMod.Alt]
|
|
154
|
+
},
|
|
155
|
+
menu: {
|
|
156
|
+
id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
|
|
157
|
+
group: '0_main',
|
|
158
|
+
order: 1,
|
|
159
|
+
when: ( ContextKeyExpr.and(TerminalChatContextKeys.responseContainsCodeBlock, ( TerminalChatContextKeys.responseContainsMultipleCodeBlocks.negate()), ( TerminalChatContextKeys.requestActive.negate())))
|
|
160
|
+
},
|
|
161
|
+
run: (_xterm, _accessor, activeInstance) => {
|
|
162
|
+
if (isDetachedTerminalInstance(activeInstance)) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const contr = activeChatController || TerminalChatController.get(activeInstance);
|
|
166
|
+
contr?.terminalChatWidget?.acceptCommand(false);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
registerActiveXtermAction({
|
|
170
|
+
id: TerminalChatCommandId.InsertFirstCommand,
|
|
171
|
+
title: ( localize2(11248, 'Insert First Chat Command')),
|
|
172
|
+
shortTitle: ( localize2(11249, 'Insert First')),
|
|
173
|
+
category: AbstractInline1ChatAction.category,
|
|
174
|
+
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
175
|
+
TerminalContextKeys.processSupported,
|
|
176
|
+
TerminalContextKeys.terminalHasBeenCreated
|
|
177
|
+
)), ( TerminalChatContextKeys.requestActive.negate()), TerminalChatContextKeys.responseContainsMultipleCodeBlocks)),
|
|
178
|
+
keybinding: {
|
|
179
|
+
when: ( TerminalChatContextKeys.requestActive.negate()),
|
|
180
|
+
weight: KeybindingWeight.WorkbenchContrib,
|
|
181
|
+
primary: KeyMod.Alt | KeyCode.Enter,
|
|
182
|
+
secondary: [KeyMod.CtrlCmd | KeyCode.Enter | KeyMod.Alt]
|
|
183
|
+
},
|
|
184
|
+
menu: {
|
|
185
|
+
id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
|
|
186
|
+
group: '0_main',
|
|
187
|
+
order: 1,
|
|
188
|
+
when: ( ContextKeyExpr.and(TerminalChatContextKeys.responseContainsMultipleCodeBlocks, ( TerminalChatContextKeys.requestActive.negate())))
|
|
189
|
+
},
|
|
190
|
+
run: (_xterm, _accessor, activeInstance) => {
|
|
191
|
+
if (isDetachedTerminalInstance(activeInstance)) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
const contr = activeChatController || TerminalChatController.get(activeInstance);
|
|
195
|
+
contr?.terminalChatWidget?.acceptCommand(false);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
registerActiveXtermAction({
|
|
199
|
+
id: TerminalChatCommandId.RerunRequest,
|
|
200
|
+
title: ( localize2(11250, "Rerun Request")),
|
|
201
|
+
f1: false,
|
|
202
|
+
icon: Codicon.refresh,
|
|
203
|
+
category: AbstractInline1ChatAction.category,
|
|
204
|
+
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
205
|
+
TerminalContextKeys.processSupported,
|
|
206
|
+
TerminalContextKeys.terminalHasBeenCreated
|
|
207
|
+
)), ( TerminalChatContextKeys.requestActive.negate()))),
|
|
208
|
+
keybinding: {
|
|
209
|
+
weight: KeybindingWeight.WorkbenchContrib,
|
|
210
|
+
primary: KeyMod.CtrlCmd | KeyCode.KeyR,
|
|
211
|
+
when: TerminalChatContextKeys.focused
|
|
212
|
+
},
|
|
213
|
+
menu: {
|
|
214
|
+
id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
|
|
215
|
+
group: '0_main',
|
|
216
|
+
order: 5,
|
|
217
|
+
when: ( ContextKeyExpr.and(( TerminalChatContextKeys.inputHasText.toNegated()), ( TerminalChatContextKeys.requestActive.negate())))
|
|
218
|
+
},
|
|
219
|
+
run: async (_xterm, _accessor, activeInstance) => {
|
|
220
|
+
const chatService = _accessor.get(IChatService);
|
|
221
|
+
const chatWidgetService = _accessor.get(IChatWidgetService);
|
|
222
|
+
const contr = activeChatController;
|
|
223
|
+
const model = contr?.terminalChatWidget?.inlineChatWidget.chatWidget.viewModel?.model;
|
|
224
|
+
if (!model) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
const lastRequest = model.getRequests().at(-1);
|
|
228
|
+
if (lastRequest) {
|
|
229
|
+
const widget = chatWidgetService.getWidgetBySessionId(model.sessionId);
|
|
230
|
+
await chatService.resendRequest(lastRequest, {
|
|
231
|
+
noCommandDetection: false,
|
|
232
|
+
attempt: lastRequest.attempt + 1,
|
|
233
|
+
location: ChatAgentLocation.Terminal,
|
|
234
|
+
userSelectedModelId: widget?.input.currentLanguageModel
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
registerActiveXtermAction({
|
|
240
|
+
id: TerminalChatCommandId.ViewInChat,
|
|
241
|
+
title: ( localize2(11251, 'View in Chat')),
|
|
242
|
+
category: AbstractInline1ChatAction.category,
|
|
243
|
+
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
|
|
244
|
+
TerminalContextKeys.processSupported,
|
|
245
|
+
TerminalContextKeys.terminalHasBeenCreated
|
|
246
|
+
)), ( TerminalChatContextKeys.requestActive.negate()))),
|
|
247
|
+
icon: Codicon.commentDiscussion,
|
|
248
|
+
menu: [{
|
|
249
|
+
id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
|
|
250
|
+
group: 'zzz',
|
|
251
|
+
order: 1,
|
|
252
|
+
isHiddenByDefault: true,
|
|
253
|
+
when: ( ContextKeyExpr.and(TerminalChatContextKeys.responseContainsCodeBlock, ( TerminalChatContextKeys.requestActive.negate()))),
|
|
254
|
+
}],
|
|
255
|
+
run: (_xterm, _accessor, activeInstance) => {
|
|
256
|
+
if (isDetachedTerminalInstance(activeInstance)) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
const contr = activeChatController || TerminalChatController.get(activeInstance);
|
|
260
|
+
contr?.viewInChat();
|
|
261
|
+
}
|
|
262
|
+
});
|
package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Terminal as RawXtermTerminal } from "@xterm/xterm";
|
|
2
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
|
+
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
4
|
+
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
5
|
+
import { IChatCodeBlockContextProviderService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
|
|
6
|
+
import { ITerminalContribution, ITerminalInstance, IXtermTerminal } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
|
|
7
|
+
import { ITerminalService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service";
|
|
8
|
+
import { TerminalChatWidget } from "./terminalChatWidget.js";
|
|
9
|
+
import type { ITerminalContributionContext } from "@codingame/monaco-vscode-88141f48-1af9-57ef-a278-f4b2ff6128fa-common/vscode/vs/workbench/contrib/terminal/browser/terminalExtensions";
|
|
10
|
+
export declare class TerminalChatController extends Disposable implements ITerminalContribution {
|
|
11
|
+
private readonly _ctx;
|
|
12
|
+
private readonly _contextKeyService;
|
|
13
|
+
private readonly _instantiationService;
|
|
14
|
+
private readonly _terminalService;
|
|
15
|
+
static readonly ID = "terminal.chat";
|
|
16
|
+
static get(instance: ITerminalInstance): TerminalChatController | null;
|
|
17
|
+
private _terminalChatWidget;
|
|
18
|
+
get terminalChatWidget(): TerminalChatWidget | undefined;
|
|
19
|
+
private _lastResponseContent;
|
|
20
|
+
get lastResponseContent(): string | undefined;
|
|
21
|
+
get scopedContextKeyService(): IContextKeyService;
|
|
22
|
+
constructor(_ctx: ITerminalContributionContext, chatCodeBlockContextProviderService: IChatCodeBlockContextProviderService, _contextKeyService: IContextKeyService, _instantiationService: IInstantiationService, _terminalService: ITerminalService);
|
|
23
|
+
xtermReady(xterm: IXtermTerminal & {
|
|
24
|
+
raw: RawXtermTerminal;
|
|
25
|
+
}): void;
|
|
26
|
+
private _forcedPlaceholder;
|
|
27
|
+
private _updatePlaceholder;
|
|
28
|
+
private _getPlaceholderText;
|
|
29
|
+
setPlaceholder(text: string): void;
|
|
30
|
+
resetPlaceholder(): void;
|
|
31
|
+
updateInput(text: string, selectAll?: boolean): void;
|
|
32
|
+
focus(): void;
|
|
33
|
+
hasFocus(): boolean;
|
|
34
|
+
viewInChat(): Promise<void>;
|
|
35
|
+
}
|
package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
|
|
4
|
+
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
|
+
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
6
|
+
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
7
|
+
import { showChatView } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
|
|
8
|
+
import { IChatCodeBlockContextProviderService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
9
|
+
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
|
|
10
|
+
import { isDetachedTerminalInstance } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal';
|
|
11
|
+
import { ITerminalService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
|
|
12
|
+
import { TerminalChatWidget } from './terminalChatWidget.js';
|
|
13
|
+
import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
|
|
14
|
+
import { setActiveChatController } from './terminalChatControllerHolder.js';
|
|
15
|
+
|
|
16
|
+
var TerminalChatController_1;
|
|
17
|
+
let TerminalChatController = class TerminalChatController extends Disposable {
|
|
18
|
+
static { TerminalChatController_1 = this; }
|
|
19
|
+
static { this.ID = 'terminal.chat'; }
|
|
20
|
+
static get(instance) {
|
|
21
|
+
return instance.getContribution(TerminalChatController_1.ID);
|
|
22
|
+
}
|
|
23
|
+
get terminalChatWidget() { return this._terminalChatWidget?.value; }
|
|
24
|
+
get lastResponseContent() {
|
|
25
|
+
return this._lastResponseContent;
|
|
26
|
+
}
|
|
27
|
+
get scopedContextKeyService() {
|
|
28
|
+
return this._terminalChatWidget?.value.inlineChatWidget.scopedContextKeyService ?? this._contextKeyService;
|
|
29
|
+
}
|
|
30
|
+
constructor(_ctx, chatCodeBlockContextProviderService, _contextKeyService, _instantiationService, _terminalService) {
|
|
31
|
+
super();
|
|
32
|
+
this._ctx = _ctx;
|
|
33
|
+
this._contextKeyService = _contextKeyService;
|
|
34
|
+
this._instantiationService = _instantiationService;
|
|
35
|
+
this._terminalService = _terminalService;
|
|
36
|
+
this._forcedPlaceholder = undefined;
|
|
37
|
+
this._register(chatCodeBlockContextProviderService.registerProvider({
|
|
38
|
+
getCodeBlockContext: (editor) => {
|
|
39
|
+
if (!editor || !this._terminalChatWidget?.hasValue || !this.hasFocus()) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
element: editor,
|
|
44
|
+
code: editor.getValue(),
|
|
45
|
+
codeBlockIndex: 0,
|
|
46
|
+
languageId: editor.getModel().getLanguageId(),
|
|
47
|
+
chatSessionId: this._terminalChatWidget.value.inlineChatWidget.chatWidget.viewModel?.sessionId
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}, 'terminal'));
|
|
51
|
+
}
|
|
52
|
+
xtermReady(xterm) {
|
|
53
|
+
this._terminalChatWidget = ( new Lazy(() => {
|
|
54
|
+
const chatWidget = this._register(this._instantiationService.createInstance(TerminalChatWidget, this._ctx.instance.domElement, this._ctx.instance, xterm));
|
|
55
|
+
this._register(chatWidget.focusTracker.onDidFocus(() => {
|
|
56
|
+
setActiveChatController(this);
|
|
57
|
+
if (!isDetachedTerminalInstance(this._ctx.instance)) {
|
|
58
|
+
this._terminalService.setActiveInstance(this._ctx.instance);
|
|
59
|
+
}
|
|
60
|
+
}));
|
|
61
|
+
this._register(chatWidget.focusTracker.onDidBlur(() => {
|
|
62
|
+
setActiveChatController(undefined);
|
|
63
|
+
this._ctx.instance.resetScrollbarVisibility();
|
|
64
|
+
}));
|
|
65
|
+
if (!this._ctx.instance.domElement) {
|
|
66
|
+
throw ( new Error('FindWidget expected terminal DOM to be initialized'));
|
|
67
|
+
}
|
|
68
|
+
return chatWidget;
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
_updatePlaceholder() {
|
|
72
|
+
const inlineChatWidget = this._terminalChatWidget?.value.inlineChatWidget;
|
|
73
|
+
if (inlineChatWidget) {
|
|
74
|
+
inlineChatWidget.placeholder = this._getPlaceholderText();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
_getPlaceholderText() {
|
|
78
|
+
return this._forcedPlaceholder ?? '';
|
|
79
|
+
}
|
|
80
|
+
setPlaceholder(text) {
|
|
81
|
+
this._forcedPlaceholder = text;
|
|
82
|
+
this._updatePlaceholder();
|
|
83
|
+
}
|
|
84
|
+
resetPlaceholder() {
|
|
85
|
+
this._forcedPlaceholder = undefined;
|
|
86
|
+
this._updatePlaceholder();
|
|
87
|
+
}
|
|
88
|
+
updateInput(text, selectAll = true) {
|
|
89
|
+
const widget = this._terminalChatWidget?.value.inlineChatWidget;
|
|
90
|
+
if (widget) {
|
|
91
|
+
widget.value = text;
|
|
92
|
+
if (selectAll) {
|
|
93
|
+
widget.selectAll();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
focus() {
|
|
98
|
+
this._terminalChatWidget?.value.focus();
|
|
99
|
+
}
|
|
100
|
+
hasFocus() {
|
|
101
|
+
return this._terminalChatWidget?.rawValue?.hasFocus() ?? false;
|
|
102
|
+
}
|
|
103
|
+
async viewInChat() {
|
|
104
|
+
const chatModel = this.terminalChatWidget?.inlineChatWidget.chatWidget.viewModel?.model;
|
|
105
|
+
if (chatModel) {
|
|
106
|
+
await this._instantiationService.invokeFunction(moveToPanelChat, chatModel);
|
|
107
|
+
}
|
|
108
|
+
this._terminalChatWidget?.rawValue?.hide();
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
TerminalChatController = TerminalChatController_1 = ( __decorate([
|
|
112
|
+
( __param(1, IChatCodeBlockContextProviderService)),
|
|
113
|
+
( __param(2, IContextKeyService)),
|
|
114
|
+
( __param(3, IInstantiationService)),
|
|
115
|
+
( __param(4, ITerminalService))
|
|
116
|
+
], TerminalChatController));
|
|
117
|
+
async function moveToPanelChat(accessor, model) {
|
|
118
|
+
const viewsService = accessor.get(IViewsService);
|
|
119
|
+
const chatService = accessor.get(IChatService);
|
|
120
|
+
const widget = await showChatView(viewsService);
|
|
121
|
+
if (widget && widget.viewModel && model) {
|
|
122
|
+
for (const request of model.getRequests().slice()) {
|
|
123
|
+
await chatService.adoptRequest(widget.viewModel.model.sessionId, request);
|
|
124
|
+
}
|
|
125
|
+
widget.focusLastMessage();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export { TerminalChatController };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
2
|
+
import { IChatAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service";
|
|
3
|
+
export declare class TerminalChatEnabler {
|
|
4
|
+
static Id: string;
|
|
5
|
+
private readonly _ctxHasProvider;
|
|
6
|
+
private readonly _store;
|
|
7
|
+
constructor(chatAgentService: IChatAgentService, contextKeyService: IContextKeyService);
|
|
8
|
+
dispose(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
4
|
+
import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
|
+
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
6
|
+
import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
|
|
7
|
+
import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
8
|
+
import { TerminalChatContextKeys } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminalContrib/chat/browser/terminalChat';
|
|
9
|
+
|
|
10
|
+
let TerminalChatEnabler = class TerminalChatEnabler {
|
|
11
|
+
static { this.Id = 'terminalChat.enabler'; }
|
|
12
|
+
constructor(chatAgentService, contextKeyService) {
|
|
13
|
+
this._store = ( new DisposableStore());
|
|
14
|
+
this._ctxHasProvider = TerminalChatContextKeys.hasChatAgent.bindTo(contextKeyService);
|
|
15
|
+
this._store.add(Event.runAndSubscribe(chatAgentService.onDidChangeAgents, () => {
|
|
16
|
+
const hasTerminalAgent = Boolean(chatAgentService.getDefaultAgent(ChatAgentLocation.Terminal));
|
|
17
|
+
this._ctxHasProvider.set(hasTerminalAgent);
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
dispose() {
|
|
21
|
+
this._ctxHasProvider.reset();
|
|
22
|
+
this._store.dispose();
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
TerminalChatEnabler = ( __decorate([
|
|
26
|
+
( __param(0, IChatAgentService)),
|
|
27
|
+
( __param(1, IContextKeyService))
|
|
28
|
+
], TerminalChatEnabler));
|
|
29
|
+
|
|
30
|
+
export { TerminalChatEnabler };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { Terminal as RawXtermTerminal } from "@xterm/xterm";
|
|
2
|
+
import { IFocusTracker } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/dom";
|
|
3
|
+
import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
4
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
5
|
+
import { type IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
6
|
+
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
7
|
+
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
8
|
+
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
9
|
+
import { IViewsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service";
|
|
10
|
+
import { IChatAcceptInputOptions } from "@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
11
|
+
import type { IChatViewState } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/browser/chatWidget";
|
|
12
|
+
import { IChatAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service";
|
|
13
|
+
import { IChatResponseModel } from "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel";
|
|
14
|
+
import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service";
|
|
15
|
+
import { InlineChatWidget } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatWidget";
|
|
16
|
+
import { ITerminalInstance, type IXtermTerminal } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
|
|
17
|
+
export declare class TerminalChatWidget extends Disposable {
|
|
18
|
+
private readonly _terminalElement;
|
|
19
|
+
private readonly _instance;
|
|
20
|
+
private readonly _xterm;
|
|
21
|
+
private readonly _chatService;
|
|
22
|
+
private readonly _storageService;
|
|
23
|
+
private readonly _viewsService;
|
|
24
|
+
private readonly _chatAgentService;
|
|
25
|
+
private readonly _container;
|
|
26
|
+
private readonly _onDidHide;
|
|
27
|
+
readonly onDidHide: Event<void>;
|
|
28
|
+
private readonly _inlineChatWidget;
|
|
29
|
+
get inlineChatWidget(): InlineChatWidget;
|
|
30
|
+
private readonly _focusTracker;
|
|
31
|
+
private readonly _focusedContextKey;
|
|
32
|
+
private readonly _visibleContextKey;
|
|
33
|
+
private readonly _requestActiveContextKey;
|
|
34
|
+
private readonly _responseContainsCodeBlockContextKey;
|
|
35
|
+
private readonly _responseContainsMulitpleCodeBlocksContextKey;
|
|
36
|
+
private _messages;
|
|
37
|
+
private _viewStateStorageKey;
|
|
38
|
+
private _lastResponseContent;
|
|
39
|
+
get lastResponseContent(): string | undefined;
|
|
40
|
+
private _terminalAgentName;
|
|
41
|
+
private readonly _model;
|
|
42
|
+
private _sessionCtor;
|
|
43
|
+
private _currentRequestId;
|
|
44
|
+
private _activeRequestCts?;
|
|
45
|
+
private readonly _requestInProgress;
|
|
46
|
+
readonly requestInProgress: IObservable<boolean>;
|
|
47
|
+
constructor(_terminalElement: HTMLElement, _instance: ITerminalInstance, _xterm: IXtermTerminal & {
|
|
48
|
+
raw: RawXtermTerminal;
|
|
49
|
+
}, contextKeyService: IContextKeyService, _chatService: IChatService, _storageService: IStorageService, _viewsService: IViewsService, instantiationService: IInstantiationService, _chatAgentService: IChatAgentService);
|
|
50
|
+
private _dimension?;
|
|
51
|
+
private _relayout;
|
|
52
|
+
private _doLayout;
|
|
53
|
+
private _resetPlaceholder;
|
|
54
|
+
reveal(viewState?: IChatViewState): Promise<void>;
|
|
55
|
+
private _getTerminalCursorTop;
|
|
56
|
+
private _updateXtermViewportPosition;
|
|
57
|
+
private _getTerminalViewportHeight;
|
|
58
|
+
hide(): void;
|
|
59
|
+
private _setTerminalViewportOffset;
|
|
60
|
+
focus(): void;
|
|
61
|
+
hasFocus(): boolean;
|
|
62
|
+
setValue(value?: string): void;
|
|
63
|
+
acceptCommand(shouldExecute: boolean): Promise<void>;
|
|
64
|
+
get focusTracker(): IFocusTracker;
|
|
65
|
+
private _createSession;
|
|
66
|
+
private _loadViewState;
|
|
67
|
+
private _saveViewState;
|
|
68
|
+
clear(): void;
|
|
69
|
+
acceptInput(query?: string, options?: IChatAcceptInputOptions): Promise<IChatResponseModel | undefined>;
|
|
70
|
+
cancel(): void;
|
|
71
|
+
viewInChat(): Promise<void>;
|
|
72
|
+
}
|