@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
package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js
CHANGED
|
@@ -8,12 +8,12 @@ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log
|
|
|
8
8
|
import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
|
|
9
9
|
import { checkProposedApiEnabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions';
|
|
10
10
|
import { ExtensionsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
|
|
11
|
-
import { ChatViewsWelcomeExtensions } from '@codingame/monaco-vscode-
|
|
11
|
+
import { ChatViewsWelcomeExtensions } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcome';
|
|
12
12
|
|
|
13
13
|
const chatViewsWelcomeExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
14
14
|
extensionPoint: 'chatViewsWelcome',
|
|
15
15
|
jsonSchema: {
|
|
16
|
-
description: ( localize(
|
|
16
|
+
description: ( localize(5333, 'Contributes a welcome message to a chat view')),
|
|
17
17
|
type: 'array',
|
|
18
18
|
items: {
|
|
19
19
|
additionalProperties: false,
|
|
@@ -21,22 +21,22 @@ const chatViewsWelcomeExtensionPoint = ExtensionsRegistry.registerExtensionPoint
|
|
|
21
21
|
properties: {
|
|
22
22
|
icon: {
|
|
23
23
|
type: 'string',
|
|
24
|
-
description: ( localize(
|
|
24
|
+
description: ( localize(5334, 'The icon for the welcome message.')),
|
|
25
25
|
},
|
|
26
26
|
title: {
|
|
27
27
|
type: 'string',
|
|
28
|
-
description: ( localize(
|
|
28
|
+
description: ( localize(5335, 'The title of the welcome message.')),
|
|
29
29
|
},
|
|
30
30
|
content: {
|
|
31
31
|
type: 'string',
|
|
32
32
|
description: ( localize(
|
|
33
|
-
|
|
33
|
+
5336,
|
|
34
34
|
'The content of the welcome message. The first command link will be rendered as a button.'
|
|
35
35
|
)),
|
|
36
36
|
},
|
|
37
37
|
when: {
|
|
38
38
|
type: 'string',
|
|
39
|
-
description: ( localize(
|
|
39
|
+
description: ( localize(5337, 'Condition when the welcome message is shown.')),
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
},
|
package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DeferredPromise } from "@codingame/monaco-vscode-api/vscode/vs/base/common/async";
|
|
2
2
|
import { IMarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent";
|
|
3
|
-
import { IChatExtensionsContent,
|
|
3
|
+
import { IChatExtensionsContent, IChatToolInputInvocationData, IChatTodoListContent, IChatToolInvocation, IChatToolInvocationSerialized, type IChatTerminalToolInvocationData } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService";
|
|
4
4
|
import { IPreparedToolInvocation, IToolConfirmationMessages, IToolData, IToolProgressStep, IToolResult } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
|
|
5
5
|
export declare class ChatToolInvocation implements IChatToolInvocation {
|
|
6
6
|
readonly toolCallId: string;
|
|
@@ -21,7 +21,7 @@ export declare class ChatToolInvocation implements IChatToolInvocation {
|
|
|
21
21
|
private _confirmationMessages;
|
|
22
22
|
readonly presentation: IPreparedToolInvocation["presentation"];
|
|
23
23
|
readonly toolId: string;
|
|
24
|
-
readonly toolSpecificData?: IChatTerminalToolInvocationData | IChatToolInputInvocationData | IChatExtensionsContent;
|
|
24
|
+
readonly toolSpecificData?: IChatTerminalToolInvocationData | IChatToolInputInvocationData | IChatExtensionsContent | IChatTodoListContent;
|
|
25
25
|
readonly progress: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<{
|
|
26
26
|
message?: string | IMarkdownString;
|
|
27
27
|
progress: number;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
import { DeferredPromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
3
|
+
import { encodeBase64 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
|
|
3
4
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
4
5
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
6
|
+
import { isToolResultOutputDetails } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
|
|
5
7
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
6
8
|
|
|
7
9
|
class ChatToolInvocation {
|
|
@@ -27,7 +29,7 @@ class ChatToolInvocation {
|
|
|
27
29
|
this._isCompleteDeferred = ( new DeferredPromise());
|
|
28
30
|
this._confirmDeferred = ( new DeferredPromise());
|
|
29
31
|
this.progress = observableValue(this, { progress: 0 });
|
|
30
|
-
const defaultMessage = ( localize(
|
|
32
|
+
const defaultMessage = ( localize(5412, "Using {0}", `"${toolData.displayName}"`));
|
|
31
33
|
const invocationMessage = preparedInvocation?.invocationMessage ?? defaultMessage;
|
|
32
34
|
this.invocationMessage = invocationMessage;
|
|
33
35
|
this.pastTenseMessage = preparedInvocation?.pastTenseMessage;
|
|
@@ -74,7 +76,9 @@ class ChatToolInvocation {
|
|
|
74
76
|
originMessage: this.originMessage,
|
|
75
77
|
isConfirmed: this._isConfirmed,
|
|
76
78
|
isComplete: this._isComplete,
|
|
77
|
-
resultDetails: this._resultDetails
|
|
79
|
+
resultDetails: isToolResultOutputDetails(this._resultDetails)
|
|
80
|
+
? { output: { type: 'data', mimeType: this._resultDetails.output.mimeType, base64Data: encodeBase64(this._resultDetails.output.value) } }
|
|
81
|
+
: this._resultDetails,
|
|
78
82
|
toolSpecificData: this.toolSpecificData,
|
|
79
83
|
toolCallId: this.toolCallId,
|
|
80
84
|
toolId: this.toolId,
|
package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/l
|
|
|
6
6
|
import { newWriteableStream } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stream';
|
|
7
7
|
import { FileSystemProviderCapabilities, FileType, createFileSystemProviderError, FileSystemProviderErrorCode } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files';
|
|
8
8
|
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
9
|
-
import { ChatResponseResource } from '@codingame/monaco-vscode-
|
|
9
|
+
import { ChatResponseResource } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel';
|
|
10
10
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
|
|
11
11
|
import { isToolResultInputOutputDetails } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
|
|
12
12
|
|
|
@@ -31,17 +31,17 @@ let ChatResponseResourceFileSystemProvider = class ChatResponseResourceFileSyste
|
|
|
31
31
|
}
|
|
32
32
|
readFileStream(resource) {
|
|
33
33
|
const stream = newWriteableStream(data => VSBuffer.concat(( data.map(data => VSBuffer.wrap(data)))).buffer);
|
|
34
|
-
|
|
34
|
+
Promise.resolve(this.lookupURI(resource)).then(v => stream.end(v));
|
|
35
35
|
return stream;
|
|
36
36
|
}
|
|
37
|
-
stat(resource) {
|
|
38
|
-
const r = this.lookupURI(resource);
|
|
39
|
-
return
|
|
37
|
+
async stat(resource) {
|
|
38
|
+
const r = await this.lookupURI(resource);
|
|
39
|
+
return {
|
|
40
40
|
type: FileType.File,
|
|
41
41
|
ctime: 0,
|
|
42
42
|
mtime: 0,
|
|
43
43
|
size: r.length,
|
|
44
|
-
}
|
|
44
|
+
};
|
|
45
45
|
}
|
|
46
46
|
delete() {
|
|
47
47
|
throw createFileSystemProviderError('fs is readonly', FileSystemProviderErrorCode.NoPermissions);
|
|
@@ -82,6 +82,9 @@ let ChatResponseResourceFileSystemProvider = class ChatResponseResourceFileSyste
|
|
|
82
82
|
if (!part) {
|
|
83
83
|
throw createFileSystemProviderError(`Tool does not have part`, FileSystemProviderErrorCode.FileNotFound);
|
|
84
84
|
}
|
|
85
|
+
if (part.type === 'ref') {
|
|
86
|
+
return this._fileService.readFile(part.uri).then(r => r.value.buffer);
|
|
87
|
+
}
|
|
85
88
|
return part.isText ? ( new TextEncoder()).encode(part.value) : decodeBase64(part.value).buffer;
|
|
86
89
|
}
|
|
87
90
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
|
|
2
2
|
import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
3
3
|
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
4
|
+
import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
4
5
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
5
6
|
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
6
7
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
@@ -8,13 +9,14 @@ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log
|
|
|
8
9
|
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
9
10
|
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
10
11
|
import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
|
|
11
|
-
import { IWorkbenchAssignmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service";
|
|
12
12
|
import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
|
|
13
|
+
import { IMcpService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service";
|
|
13
14
|
import { IChatAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service";
|
|
14
|
-
import { ChatModel, IChatModel, IChatRequestModel, IChatRequestVariableData, IExportableChatData, ISerializableChatData } from "@codingame/monaco-vscode-
|
|
15
|
-
import { IParsedChatRequest } from "@codingame/monaco-vscode-
|
|
15
|
+
import { ChatModel, IChatModel, IChatRequestModel, IChatRequestVariableData, IExportableChatData, ISerializableChatData } from "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel";
|
|
16
|
+
import { IParsedChatRequest } from "@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes";
|
|
16
17
|
import { IChatCompleteResponse, IChatDetail, IChatSendRequestData, IChatSendRequestOptions, IChatTransferredSessionData, IChatUserActionEvent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService";
|
|
17
18
|
import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service";
|
|
19
|
+
import { IChatSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service";
|
|
18
20
|
import { IChatSlashCommandService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSlashCommands.service";
|
|
19
21
|
import { IChatTransferService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatTransferService.service";
|
|
20
22
|
import { ChatAgentLocation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
@@ -29,11 +31,13 @@ export declare class ChatService extends Disposable implements IChatService {
|
|
|
29
31
|
private readonly chatSlashCommandService;
|
|
30
32
|
private readonly chatAgentService;
|
|
31
33
|
private readonly configurationService;
|
|
32
|
-
private readonly experimentService;
|
|
33
34
|
private readonly chatTransferService;
|
|
34
35
|
private readonly languageModelsService;
|
|
36
|
+
private readonly chatSessionService;
|
|
37
|
+
private readonly mcpService;
|
|
35
38
|
_serviceBrand: undefined;
|
|
36
39
|
private readonly _sessionModels;
|
|
40
|
+
private readonly _contentProviderSessionModels;
|
|
37
41
|
private readonly _pendingRequests;
|
|
38
42
|
private _persistedSessions;
|
|
39
43
|
private _deletedChatIds;
|
|
@@ -53,10 +57,11 @@ export declare class ChatService extends Disposable implements IChatService {
|
|
|
53
57
|
private readonly _sessionFollowupCancelTokens;
|
|
54
58
|
private readonly _chatServiceTelemetry;
|
|
55
59
|
private readonly _chatSessionStore;
|
|
60
|
+
readonly requestInProgressObs: IObservable<boolean>;
|
|
56
61
|
private get useFileStorage();
|
|
57
62
|
get edits2Enabled(): boolean;
|
|
58
63
|
private get isEmptyWindow();
|
|
59
|
-
constructor(storageService: IStorageService, logService: ILogService, extensionService: IExtensionService, instantiationService: IInstantiationService, telemetryService: ITelemetryService, workspaceContextService: IWorkspaceContextService, chatSlashCommandService: IChatSlashCommandService, chatAgentService: IChatAgentService, configurationService: IConfigurationService,
|
|
64
|
+
constructor(storageService: IStorageService, logService: ILogService, extensionService: IExtensionService, instantiationService: IInstantiationService, telemetryService: ITelemetryService, workspaceContextService: IWorkspaceContextService, chatSlashCommandService: IChatSlashCommandService, chatAgentService: IChatAgentService, configurationService: IConfigurationService, chatTransferService: IChatTransferService, languageModelsService: ILanguageModelsService, chatSessionService: IChatSessionsService, mcpService: IMcpService);
|
|
60
65
|
isEnabled(location: ChatAgentLocation): boolean;
|
|
61
66
|
private saveState;
|
|
62
67
|
private syncEmptyWindowChats;
|
|
@@ -77,6 +82,7 @@ export declare class ChatService extends Disposable implements IChatService {
|
|
|
77
82
|
getOrRestoreSession(sessionId: string): Promise<ChatModel | undefined>;
|
|
78
83
|
isPersistedSessionEmpty(sessionId: string): boolean;
|
|
79
84
|
loadSessionFromContent(data: IExportableChatData | ISerializableChatData): IChatModel | undefined;
|
|
85
|
+
loadSessionForResource(resource: URI, location: ChatAgentLocation, token: CancellationToken): Promise<IChatModel | undefined>;
|
|
80
86
|
resendRequest(request: IChatRequestModel, options?: IChatSendRequestOptions): Promise<void>;
|
|
81
87
|
sendRequest(sessionId: string, request: string, options?: IChatSendRequestOptions): Promise<IChatSendRequestData | undefined>;
|
|
82
88
|
private parseChatRequest;
|
|
@@ -84,7 +90,6 @@ export declare class ChatService extends Disposable implements IChatService {
|
|
|
84
90
|
private _sendRequestAsync;
|
|
85
91
|
private resolveModelId;
|
|
86
92
|
private prepareContext;
|
|
87
|
-
private checkAgentAllowed;
|
|
88
93
|
private attachmentKindsForTelemetry;
|
|
89
94
|
private getHistoryEntriesFromModel;
|
|
90
95
|
removeRequest(sessionId: string, requestId: string): Promise<void>;
|
|
@@ -8,10 +8,12 @@ import { ErrorNoTelemetry } from '@codingame/monaco-vscode-api/vscode/vs/base/co
|
|
|
8
8
|
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
9
9
|
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
10
10
|
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
11
|
-
import { Disposable, DisposableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
11
|
+
import { Disposable, DisposableMap, DisposableStore, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
12
12
|
import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
|
|
13
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
13
14
|
import { StopWatch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stopwatch';
|
|
14
15
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
16
|
+
import { OffsetRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/offsetRange';
|
|
15
17
|
import { isLocation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
|
|
16
18
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
17
19
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
@@ -22,21 +24,26 @@ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode
|
|
|
22
24
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
23
25
|
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
24
26
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
25
|
-
import { IWorkbenchAssignmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service';
|
|
26
27
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
28
|
+
import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
|
|
27
29
|
import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
|
|
28
|
-
import { normalizeSerializableChatData, ChatModel, ChatRequestRemovalReason, updateRanges, toChatHistoryContent, ChatRequestModel } from '@codingame/monaco-vscode-
|
|
29
|
-
import { ChatRequestAgentPart, ChatRequestAgentSubcommandPart, chatSubcommandLeader, chatAgentLeader, ChatRequestSlashCommandPart, getPromptText } from '@codingame/monaco-vscode-
|
|
30
|
-
import { ChatRequestParser } from '@codingame/monaco-vscode-
|
|
30
|
+
import { normalizeSerializableChatData, ChatModel, ChatRequestRemovalReason, updateRanges, toChatHistoryContent, ChatRequestModel } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel';
|
|
31
|
+
import { ChatRequestTextPart, ChatRequestAgentPart, ChatRequestAgentSubcommandPart, chatSubcommandLeader, chatAgentLeader, ChatRequestSlashCommandPart, getPromptText } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
|
|
32
|
+
import { ChatRequestParser } from '@codingame/monaco-vscode-0af61f78-dfc5-57ba-8d32-66268c8de38d-common/vscode/vs/workbench/contrib/chat/common/chatRequestParser';
|
|
31
33
|
import { ChatServiceTelemetry } from './chatServiceTelemetry.js';
|
|
34
|
+
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
32
35
|
import { ChatSessionStore } from './chatSessionStore.js';
|
|
33
36
|
import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSlashCommands.service';
|
|
34
37
|
import { IChatTransferService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatTransferService.service';
|
|
38
|
+
import { ChatSessionUri } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatUri';
|
|
35
39
|
import { isImageVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatVariableEntries';
|
|
36
40
|
import { ChatConfiguration, ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
37
41
|
import { ChatMessageRole } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
38
42
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
39
43
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
|
|
44
|
+
import { ObservableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/map';
|
|
45
|
+
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
46
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
40
47
|
|
|
41
48
|
const serializedChatKey = 'interactive.sessions';
|
|
42
49
|
const globalChatKey = 'chat.workspaceTransfer';
|
|
@@ -75,7 +82,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
75
82
|
const workspace = this.workspaceContextService.getWorkspace();
|
|
76
83
|
return !workspace.configuration && workspace.folders.length === 0;
|
|
77
84
|
}
|
|
78
|
-
constructor(storageService, logService, extensionService, instantiationService, telemetryService, workspaceContextService, chatSlashCommandService, chatAgentService, configurationService,
|
|
85
|
+
constructor(storageService, logService, extensionService, instantiationService, telemetryService, workspaceContextService, chatSlashCommandService, chatAgentService, configurationService, chatTransferService, languageModelsService, chatSessionService, mcpService) {
|
|
79
86
|
super();
|
|
80
87
|
this.storageService = storageService;
|
|
81
88
|
this.logService = logService;
|
|
@@ -86,10 +93,12 @@ let ChatService = class ChatService extends Disposable {
|
|
|
86
93
|
this.chatSlashCommandService = chatSlashCommandService;
|
|
87
94
|
this.chatAgentService = chatAgentService;
|
|
88
95
|
this.configurationService = configurationService;
|
|
89
|
-
this.experimentService = experimentService;
|
|
90
96
|
this.chatTransferService = chatTransferService;
|
|
91
97
|
this.languageModelsService = languageModelsService;
|
|
92
|
-
this.
|
|
98
|
+
this.chatSessionService = chatSessionService;
|
|
99
|
+
this.mcpService = mcpService;
|
|
100
|
+
this._sessionModels = ( new ObservableMap());
|
|
101
|
+
this._contentProviderSessionModels = ( new Map());
|
|
93
102
|
this._pendingRequests = this._register(( new DisposableMap()));
|
|
94
103
|
this._deletedChatIds = ( new Set());
|
|
95
104
|
this._onDidSubmitRequest = this._register(( new Emitter()));
|
|
@@ -128,6 +137,10 @@ let ChatService = class ChatService extends Disposable {
|
|
|
128
137
|
this._chatSessionStore.migrateDataIfNeeded(() => this._persistedSessions);
|
|
129
138
|
}
|
|
130
139
|
this._register(storageService.onWillSaveState(() => this.saveState()));
|
|
140
|
+
this.requestInProgressObs = derived(reader => {
|
|
141
|
+
const models = ( this._sessionModels.observable.read(reader).values());
|
|
142
|
+
return ( Array.from(models).some(model => model.requestInProgressObs.read(reader)));
|
|
143
|
+
});
|
|
131
144
|
}
|
|
132
145
|
isEnabled(location) {
|
|
133
146
|
return this.chatAgentService.getContributedDefaultAgent(location) !== undefined;
|
|
@@ -281,7 +294,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
281
294
|
const liveSessionItems = ( Array.from(( this._sessionModels.values()))
|
|
282
295
|
.filter(session => !session.isImported)
|
|
283
296
|
.map(session => {
|
|
284
|
-
const title = session.title || ( localize(
|
|
297
|
+
const title = session.title || ( localize(5413, "New Chat"));
|
|
285
298
|
return {
|
|
286
299
|
sessionId: session.sessionId,
|
|
287
300
|
title,
|
|
@@ -315,7 +328,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
315
328
|
const liveSessionItems = ( Array.from(( this._sessionModels.values()))
|
|
316
329
|
.filter(session => !session.isImported)
|
|
317
330
|
.map(session => {
|
|
318
|
-
const title = session.title || ( localize(
|
|
331
|
+
const title = session.title || ( localize(5413, "New Chat"));
|
|
319
332
|
return {
|
|
320
333
|
sessionId: session.sessionId,
|
|
321
334
|
title,
|
|
@@ -416,6 +429,89 @@ let ChatService = class ChatService extends Disposable {
|
|
|
416
429
|
loadSessionFromContent(data) {
|
|
417
430
|
return this._startSession(data, data.initialLocation ?? ChatAgentLocation.Panel, true, CancellationToken.None);
|
|
418
431
|
}
|
|
432
|
+
async loadSessionForResource(resource, location, token) {
|
|
433
|
+
const parsed = ChatSessionUri.parse(resource);
|
|
434
|
+
if (!parsed) {
|
|
435
|
+
throw ( new Error('Invalid chat session URI'));
|
|
436
|
+
}
|
|
437
|
+
const existing = this._contentProviderSessionModels.get(parsed.chatSessionType)?.get(parsed.sessionId);
|
|
438
|
+
if (existing) {
|
|
439
|
+
return existing.model;
|
|
440
|
+
}
|
|
441
|
+
const chatSessionType = parsed.chatSessionType;
|
|
442
|
+
const content = await this.chatSessionService.provideChatSessionContent(chatSessionType, parsed.sessionId, CancellationToken.None);
|
|
443
|
+
const model = this._startSession(undefined, location, true, CancellationToken.None);
|
|
444
|
+
if (!( this._contentProviderSessionModels.has(chatSessionType))) {
|
|
445
|
+
this._contentProviderSessionModels.set(chatSessionType, ( new Map()));
|
|
446
|
+
}
|
|
447
|
+
const disposables = ( new DisposableStore());
|
|
448
|
+
this._contentProviderSessionModels.get(chatSessionType).set(parsed.sessionId, { model, disposables });
|
|
449
|
+
disposables.add(model.onDidDispose(() => {
|
|
450
|
+
this._contentProviderSessionModels?.get(chatSessionType)?.delete(parsed.sessionId);
|
|
451
|
+
content.dispose();
|
|
452
|
+
}));
|
|
453
|
+
let lastRequest;
|
|
454
|
+
for (const message of content.history) {
|
|
455
|
+
if (message.type === 'request') {
|
|
456
|
+
const requestText = message.prompt;
|
|
457
|
+
const parsedRequest = {
|
|
458
|
+
text: requestText,
|
|
459
|
+
parts: [( new ChatRequestTextPart(( new OffsetRange(0, requestText.length)), { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: requestText.length + 1 }, requestText))]
|
|
460
|
+
};
|
|
461
|
+
lastRequest = model.addRequest(parsedRequest, { variables: [] },
|
|
462
|
+
0,
|
|
463
|
+
undefined,
|
|
464
|
+
undefined,
|
|
465
|
+
undefined,
|
|
466
|
+
undefined,
|
|
467
|
+
undefined,
|
|
468
|
+
true
|
|
469
|
+
);
|
|
470
|
+
}
|
|
471
|
+
else {
|
|
472
|
+
if (lastRequest) {
|
|
473
|
+
for (const part of message.parts) {
|
|
474
|
+
model.acceptResponseProgress(lastRequest, part);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
if (content.progressEvent && lastRequest) {
|
|
480
|
+
const initialCancellationRequest = this.instantiationService.createInstance(CancellableRequest, ( new CancellationTokenSource()), undefined);
|
|
481
|
+
this._pendingRequests.set(model.sessionId, initialCancellationRequest);
|
|
482
|
+
const cancellationListener = ( new MutableDisposable());
|
|
483
|
+
const createCancellationListener = (token) => {
|
|
484
|
+
return token.onCancellationRequested(() => {
|
|
485
|
+
content.interruptActiveResponseCallback?.().then(userConfirmedInterruption => {
|
|
486
|
+
if (!userConfirmedInterruption) {
|
|
487
|
+
const newCancellationRequest = this.instantiationService.createInstance(CancellableRequest, ( new CancellationTokenSource()), undefined);
|
|
488
|
+
this._pendingRequests.set(model.sessionId, newCancellationRequest);
|
|
489
|
+
cancellationListener.value = createCancellationListener(newCancellationRequest.cancellationTokenSource.token);
|
|
490
|
+
}
|
|
491
|
+
});
|
|
492
|
+
});
|
|
493
|
+
};
|
|
494
|
+
cancellationListener.value = createCancellationListener(initialCancellationRequest.cancellationTokenSource.token);
|
|
495
|
+
disposables.add(cancellationListener);
|
|
496
|
+
disposables.add(content.progressEvent(e => {
|
|
497
|
+
for (const progress of e) {
|
|
498
|
+
if (progress.kind === 'progressMessage' && progress.content.value === 'Session completed') {
|
|
499
|
+
model?.completeResponse(lastRequest);
|
|
500
|
+
cancellationListener.clear();
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
model?.acceptResponseProgress(lastRequest, progress);
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}));
|
|
507
|
+
}
|
|
508
|
+
else {
|
|
509
|
+
if (lastRequest) {
|
|
510
|
+
model.completeResponse(lastRequest);
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
return model;
|
|
514
|
+
}
|
|
419
515
|
async resendRequest(request, options) {
|
|
420
516
|
const model = this._sessionModels.get(request.session.sessionId);
|
|
421
517
|
if (!model && model !== request.session) {
|
|
@@ -513,7 +609,8 @@ let ChatService = class ChatService extends Disposable {
|
|
|
513
609
|
responseCreatedComplete = true;
|
|
514
610
|
}
|
|
515
611
|
}
|
|
516
|
-
const
|
|
612
|
+
const store = ( new DisposableStore());
|
|
613
|
+
const source = store.add(( new CancellationTokenSource()));
|
|
517
614
|
const token = source.token;
|
|
518
615
|
const sendRequestInternal = async () => {
|
|
519
616
|
const progressCallback = (progress) => {
|
|
@@ -537,8 +634,11 @@ let ChatService = class ChatService extends Disposable {
|
|
|
537
634
|
let detectedAgent;
|
|
538
635
|
let detectedCommand;
|
|
539
636
|
const stopWatch = ( new StopWatch(false));
|
|
540
|
-
|
|
637
|
+
store.add(token.onCancellationRequested(() => {
|
|
541
638
|
this.trace('sendRequest', `Request for session ${model.sessionId} was cancelled`);
|
|
639
|
+
if (!request) {
|
|
640
|
+
return;
|
|
641
|
+
}
|
|
542
642
|
this.telemetryService.publicLog2('interactiveSessionProviderInvoked', {
|
|
543
643
|
timeToFirstProgress: undefined,
|
|
544
644
|
totalTime: stopWatch.elapsed(),
|
|
@@ -557,7 +657,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
557
657
|
model: this.resolveModelId(options?.userSelectedModelId),
|
|
558
658
|
});
|
|
559
659
|
model.cancelRequest(request);
|
|
560
|
-
});
|
|
660
|
+
}));
|
|
561
661
|
try {
|
|
562
662
|
let rawResult;
|
|
563
663
|
let agentOrCommandFollowups = undefined;
|
|
@@ -579,6 +679,17 @@ let ChatService = class ChatService extends Disposable {
|
|
|
579
679
|
variableData = updateRanges(variableData, promptTextResult.diff);
|
|
580
680
|
message = promptTextResult.message;
|
|
581
681
|
}
|
|
682
|
+
let isInitialTools = true;
|
|
683
|
+
store.add(autorun(reader => {
|
|
684
|
+
const tools = options?.userSelectedTools?.read(reader);
|
|
685
|
+
if (isInitialTools) {
|
|
686
|
+
isInitialTools = false;
|
|
687
|
+
return;
|
|
688
|
+
}
|
|
689
|
+
if (tools) {
|
|
690
|
+
this.chatAgentService.setRequestTools(agent.id, request.id, { userSelectedTools: tools });
|
|
691
|
+
}
|
|
692
|
+
}));
|
|
582
693
|
return {
|
|
583
694
|
sessionId,
|
|
584
695
|
requestId: request.id,
|
|
@@ -594,7 +705,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
594
705
|
acceptedConfirmationData: options?.acceptedConfirmationData,
|
|
595
706
|
rejectedConfirmationData: options?.rejectedConfirmationData,
|
|
596
707
|
userSelectedModelId: options?.userSelectedModelId,
|
|
597
|
-
userSelectedTools: options?.userSelectedTools,
|
|
708
|
+
userSelectedTools: options?.userSelectedTools?.get(),
|
|
598
709
|
modeInstructions: options?.modeInstructions,
|
|
599
710
|
editedFileEvents: request.editedFileEvents
|
|
600
711
|
};
|
|
@@ -611,8 +722,10 @@ let ChatService = class ChatService extends Disposable {
|
|
|
611
722
|
}
|
|
612
723
|
const agent = (detectedAgent ?? agentPart?.agent ?? defaultAgent);
|
|
613
724
|
const command = detectedCommand ?? agentSlashCommandPart?.command;
|
|
614
|
-
await
|
|
615
|
-
|
|
725
|
+
await Promise.all([
|
|
726
|
+
this.extensionService.activateByEvent(`onChatParticipant:${agent.id}`),
|
|
727
|
+
this.mcpService.autostart(token),
|
|
728
|
+
]);
|
|
616
729
|
const history = this.getHistoryEntriesFromModel(requests, model.sessionId, location, agent.id);
|
|
617
730
|
const requestProps = prepareChatAgentRequest(agent, command, enableCommandDetection, request , !!detectedAgent);
|
|
618
731
|
const pendingRequest = this._pendingRequests.get(sessionId);
|
|
@@ -654,7 +767,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
654
767
|
else {
|
|
655
768
|
if (!rawResult) {
|
|
656
769
|
this.trace('sendRequest', `Provider returned no response for session ${model.sessionId}`);
|
|
657
|
-
rawResult = { errorDetails: { message: ( localize(
|
|
770
|
+
rawResult = { errorDetails: { message: ( localize(5414, "Provider returned null response")) } };
|
|
658
771
|
}
|
|
659
772
|
const result = rawResult.errorDetails?.responseIsFiltered ? 'filtered' :
|
|
660
773
|
rawResult.errorDetails && gotProgress ? 'errorWithOutput' :
|
|
@@ -723,7 +836,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
723
836
|
}
|
|
724
837
|
}
|
|
725
838
|
finally {
|
|
726
|
-
|
|
839
|
+
store.dispose();
|
|
727
840
|
}
|
|
728
841
|
};
|
|
729
842
|
const rawResponsePromise = sendRequestInternal();
|
|
@@ -756,14 +869,6 @@ let ChatService = class ChatService extends Disposable {
|
|
|
756
869
|
});
|
|
757
870
|
return attachedContextVariables;
|
|
758
871
|
}
|
|
759
|
-
async checkAgentAllowed(agent) {
|
|
760
|
-
if (agent.modes.includes(ChatModeKind.Agent)) {
|
|
761
|
-
const enabled = await this.experimentService.getTreatment('chatAgentEnabled');
|
|
762
|
-
if (enabled === false) {
|
|
763
|
-
throw ( new Error('Agent is currently disabled'));
|
|
764
|
-
}
|
|
765
|
-
}
|
|
766
|
-
}
|
|
767
872
|
attachmentKindsForTelemetry(variableData) {
|
|
768
873
|
return ( variableData.variables.map(v => {
|
|
769
874
|
if (v.kind === 'implicit') {
|
|
@@ -921,7 +1026,8 @@ let ChatService = class ChatService extends Disposable {
|
|
|
921
1026
|
}
|
|
922
1027
|
}
|
|
923
1028
|
}
|
|
924
|
-
this._sessionModels.
|
|
1029
|
+
this._sessionModels.delete(sessionId);
|
|
1030
|
+
model.dispose();
|
|
925
1031
|
this._pendingRequests.get(sessionId)?.cancel();
|
|
926
1032
|
this._pendingRequests.deleteAndDispose(sessionId);
|
|
927
1033
|
this._onDidDisposeSession.fire({ sessionId, reason: 'cleared' });
|
|
@@ -974,9 +1080,10 @@ ChatService = ( __decorate([
|
|
|
974
1080
|
( __param(6, IChatSlashCommandService)),
|
|
975
1081
|
( __param(7, IChatAgentService)),
|
|
976
1082
|
( __param(8, IConfigurationService)),
|
|
977
|
-
( __param(9,
|
|
978
|
-
( __param(10,
|
|
979
|
-
( __param(11,
|
|
1083
|
+
( __param(9, IChatTransferService)),
|
|
1084
|
+
( __param(10, ILanguageModelsService)),
|
|
1085
|
+
( __param(11, IChatSessionsService)),
|
|
1086
|
+
( __param(12, IMcpService))
|
|
980
1087
|
], ChatService));
|
|
981
1088
|
function getCodeBlocks(text) {
|
|
982
1089
|
const lines = text.split('\n');
|
|
@@ -52,6 +52,14 @@ let ChatServiceTelemetry = class ChatServiceTelemetry {
|
|
|
52
52
|
command: action.command,
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
|
+
else if (action.action.kind === 'chatEditingHunkAction') {
|
|
56
|
+
this.telemetryService.publicLog2('chatEditHunk', {
|
|
57
|
+
agentId: action.agentId ?? '',
|
|
58
|
+
outcome: action.action.outcome,
|
|
59
|
+
lineCount: action.action.lineCount,
|
|
60
|
+
hasRemainingEdits: action.action.hasRemainingEdits,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
55
63
|
}
|
|
56
64
|
retrievedFollowups(agentId, command, numFollowups) {
|
|
57
65
|
this.telemetryService.publicLog2('chatFollowupsRetrieved', {
|
|
@@ -8,7 +8,7 @@ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platfo
|
|
|
8
8
|
import { IUserDataProfilesService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service";
|
|
9
9
|
import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
|
|
10
10
|
import { ILifecycleService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service";
|
|
11
|
-
import { ChatModel, ISerializableChatData, ISerializableChatsData } from "@codingame/monaco-vscode-
|
|
11
|
+
import { ChatModel, ISerializableChatData, ISerializableChatsData } from "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel";
|
|
12
12
|
import { ChatAgentLocation, ChatModeKind } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
13
13
|
export declare class ChatSessionStore extends Disposable {
|
|
14
14
|
private readonly fileService;
|
|
@@ -18,7 +18,7 @@ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platfo
|
|
|
18
18
|
import { IUserDataProfilesService } from '@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service';
|
|
19
19
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
20
20
|
import { ILifecycleService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
|
|
21
|
-
import { normalizeSerializableChatData, ChatModel } from '@codingame/monaco-vscode-
|
|
21
|
+
import { normalizeSerializableChatData, ChatModel } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel';
|
|
22
22
|
|
|
23
23
|
const maxPersistedSessions = 25;
|
|
24
24
|
const ChatIndexStorageKey = 'chat.ChatSessionStore.index';
|
|
@@ -51,7 +51,7 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
51
51
|
}
|
|
52
52
|
e.join(this.storeTask, {
|
|
53
53
|
id: 'join.chatSessionStore',
|
|
54
|
-
label: ( localize(
|
|
54
|
+
label: ( localize(5415, "Saving chat history"))
|
|
55
55
|
});
|
|
56
56
|
}));
|
|
57
57
|
}
|
|
@@ -324,7 +324,7 @@ function isChatSessionIndex(data) {
|
|
|
324
324
|
}
|
|
325
325
|
function getSessionMetadata(session) {
|
|
326
326
|
const title = session instanceof ChatModel ?
|
|
327
|
-
(session.title || ( localize(
|
|
327
|
+
(session.title || ( localize(5416, "New Chat"))) :
|
|
328
328
|
session.customTitle ?? ChatModel.getDefaultTitle(session.requests);
|
|
329
329
|
return {
|
|
330
330
|
sessionId: session.sessionId,
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
3
|
+
import { IChatTodoListService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatTodoListService.service";
|
|
4
|
+
export interface IChatTodo {
|
|
5
|
+
id: number;
|
|
6
|
+
title: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
status: "not-started" | "in-progress" | "completed";
|
|
9
|
+
}
|
|
10
|
+
export interface IChatTodoListStorage {
|
|
11
|
+
getTodoList(sessionId: string): IChatTodo[];
|
|
12
|
+
setTodoList(sessionId: string, todoList: IChatTodo[]): void;
|
|
13
|
+
}
|
|
14
|
+
export declare class ChatTodoListStorage implements IChatTodoListStorage {
|
|
15
|
+
private memento;
|
|
16
|
+
constructor(storageService: IStorageService);
|
|
17
|
+
private getSessionData;
|
|
18
|
+
private setSessionData;
|
|
19
|
+
getTodoList(sessionId: string): IChatTodo[];
|
|
20
|
+
setTodoList(sessionId: string, todoList: IChatTodo[]): void;
|
|
21
|
+
}
|
|
22
|
+
export declare class ChatTodoListService extends Disposable implements IChatTodoListService {
|
|
23
|
+
readonly _serviceBrand: undefined;
|
|
24
|
+
private todoListStorage;
|
|
25
|
+
constructor(storageService: IStorageService);
|
|
26
|
+
getChatTodoListStorage(): IChatTodoListStorage;
|
|
27
|
+
}
|