@codingame/monaco-vscode-chat-service-override 23.2.2 → 24.1.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 +13 -10
- package/package.json +5 -41
- package/vscode/src/vs/platform/domWidget/browser/domWidget.d.ts +52 -0
- package/vscode/src/vs/platform/domWidget/browser/domWidget.js +53 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +61 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +152 -0
- 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/chatContextActions.js +37 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +9 -9
- 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.d.ts +3 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +7 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +12 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +21 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +27 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +4 -4
- 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/chatSessionActions.d.ts +6 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +44 -208
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +17 -17
- 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 +23 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +140 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +85 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +358 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +222 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +241 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.d.ts +11 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.js +67 -230
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +65 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +186 -62
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +140 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsview.css +2 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +115 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +389 -166
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +22 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.d.ts +10 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.js +63 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimeline.d.ts +7 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +14 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +173 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +66 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +32 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +6 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +8 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +5 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +15 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +13 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +66 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +6 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +6 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +2 -2
- 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.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +15 -4
- 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 +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +30 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +13 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +23 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +20 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +47 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +270 -143
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +310 -170
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +12 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +42 -42
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +35 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.d.ts +1 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +22 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.d.ts +18 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +80 -72
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.d.ts +2 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +48 -77
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +16 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +257 -77
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{chatSetup.d.ts → chatSetup/chatSetupContributions.d.ts} +4 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +622 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +53 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +359 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +89 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +667 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +260 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/chatSetup.css +4 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatus.js → chatStatus/chatStatusDashboard.js} +193 -325
- package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatus.d.ts → chatStatus/chatStatusEntry.d.ts} +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +190 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusItemService.d.ts → chatStatus/chatStatusItemService.d.ts} +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatStatus/media}/chatStatus.css +22 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusWidget.d.ts +25 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusWidget.js +108 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTerminalOutputAccessibleView.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTerminalOutputAccessibleView.js +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +57 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +478 -146
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewTitleControl.d.ts +43 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewTitleControl.js +204 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWidgetService.d.ts +44 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWidgetService.js +187 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +108 -62
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +37 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +37 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +232 -97
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatusWidget.css +57 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewPane.css +142 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewTitleControl.css +39 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +51 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +19 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatCodeMapperService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatModelStore.d.ts +49 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatModelStore.js +100 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +3 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +41 -15
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +208 -162
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +15 -7
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +61 -7
- package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +60 -43
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +27 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +37 -47
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +120 -87
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +49 -42
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +293 -187
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +17 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +43 -9
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +48 -29
- 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 +8 -13
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +36 -41
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +18 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +142 -38
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +3 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +19 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +78 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +7 -11
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +26 -44
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +9 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +23 -17
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +4 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +26 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +32 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +15 -29
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +10 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +38 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +32 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +5 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +4 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +4 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +128 -62
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +12 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +68 -22
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +20 -22
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +13 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +20 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +72 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +5 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.d.ts +0 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.js +0 -154
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +0 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +0 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.d.ts +0 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.js +0 -135
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.d.ts +0 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +0 -216
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +0 -1617
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +0 -44
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +0 -313
- /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/apple-dark.svg +0 -0
- /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/apple-light.svg +0 -0
- /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/github.svg +0 -0
- /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/google.svg +0 -0
- /package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusItemService.js → chatStatus/chatStatusItemService.js} +0 -0
|
@@ -3,17 +3,18 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
|
|
|
3
3
|
import { DeferredPromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
4
4
|
import { CancellationToken, CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
5
5
|
import { toErrorMessage } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errorMessage';
|
|
6
|
-
import { ErrorNoTelemetry } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
6
|
+
import { ErrorNoTelemetry, BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
7
7
|
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
8
8
|
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
9
9
|
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
10
|
-
import { Disposable,
|
|
10
|
+
import { Disposable, DisposableResourceMap, DisposableStore, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
11
11
|
import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
|
|
12
12
|
import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
13
13
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
14
14
|
import { StopWatch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stopwatch';
|
|
15
15
|
import { isDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
16
16
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
17
|
+
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
17
18
|
import { OffsetRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/offsetRange';
|
|
18
19
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
19
20
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
@@ -24,12 +25,16 @@ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode
|
|
|
24
25
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
25
26
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
26
27
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
28
|
+
import { InlineChatConfigKeys } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
|
|
27
29
|
import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
|
|
30
|
+
import { awaitStatsForSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chat';
|
|
28
31
|
import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
32
|
+
import { chatEditingSessionIsReady } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
|
|
33
|
+
import { normalizeSerializableChatData, ChatModel, ChatRequestRemovalReason, updateRanges, toChatHistoryContent, ChatRequestModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModel';
|
|
34
|
+
import { ChatModelStore } from './chatModelStore.js';
|
|
35
|
+
import { ChatRequestTextPart, ChatRequestAgentPart, ChatRequestAgentSubcommandPart, chatSubcommandLeader, chatAgentLeader, ChatRequestSlashCommandPart, getPromptText } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
|
|
36
|
+
import { ChatRequestParser } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatRequestParser';
|
|
37
|
+
import { ResponseModelState, ChatMcpServersStarting } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService';
|
|
33
38
|
import { ChatServiceTelemetry, ChatRequestTelemetry } from './chatServiceTelemetry.js';
|
|
34
39
|
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
35
40
|
import { ChatSessionStore } from './chatSessionStore.js';
|
|
@@ -41,7 +46,6 @@ import { ChatMessageRole } from '@codingame/monaco-vscode-api/vscode/vs/workbenc
|
|
|
41
46
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
|
|
42
47
|
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
43
48
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
44
|
-
import { ObservableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/map';
|
|
45
49
|
|
|
46
50
|
const serializedChatKey = 'interactive.sessions';
|
|
47
51
|
const TransferredGlobalChatKey = 'chat.workspaceTransfer';
|
|
@@ -65,60 +69,16 @@ let CancellableRequest = class CancellableRequest {
|
|
|
65
69
|
CancellableRequest = ( __decorate([
|
|
66
70
|
( __param(2, ILanguageModelToolsService))
|
|
67
71
|
], CancellableRequest));
|
|
68
|
-
class ChatModelStore {
|
|
69
|
-
constructor() {
|
|
70
|
-
this._models = ( new ObservableMap());
|
|
71
|
-
}
|
|
72
|
-
get observable() {
|
|
73
|
-
return this._models.observable;
|
|
74
|
-
}
|
|
75
|
-
values() {
|
|
76
|
-
return ( this._models.values());
|
|
77
|
-
}
|
|
78
|
-
get(uri) {
|
|
79
|
-
return this._models.get(this.toKey(uri));
|
|
80
|
-
}
|
|
81
|
-
has(uri) {
|
|
82
|
-
return ( this._models.has(this.toKey(uri)));
|
|
83
|
-
}
|
|
84
|
-
set(uri, value) {
|
|
85
|
-
this._models.set(this.toKey(uri), value);
|
|
86
|
-
}
|
|
87
|
-
delete(uri) {
|
|
88
|
-
return this._models.delete(this.toKey(uri));
|
|
89
|
-
}
|
|
90
|
-
toKey(uri) {
|
|
91
|
-
return ( uri.toString());
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
class DisposableResourceMap extends Disposable {
|
|
95
|
-
constructor() {
|
|
96
|
-
super(...arguments);
|
|
97
|
-
this._map = this._register(( new DisposableMap()));
|
|
98
|
-
}
|
|
99
|
-
get(sessionResource) {
|
|
100
|
-
return this._map.get(this.toKey(sessionResource));
|
|
101
|
-
}
|
|
102
|
-
set(sessionResource, value) {
|
|
103
|
-
this._map.set(this.toKey(sessionResource), value);
|
|
104
|
-
}
|
|
105
|
-
has(sessionResource) {
|
|
106
|
-
return ( this._map.has(this.toKey(sessionResource)));
|
|
107
|
-
}
|
|
108
|
-
deleteAndLeak(sessionResource) {
|
|
109
|
-
return this._map.deleteAndLeak(this.toKey(sessionResource));
|
|
110
|
-
}
|
|
111
|
-
deleteAndDispose(sessionResource) {
|
|
112
|
-
this._map.deleteAndDispose(this.toKey(sessionResource));
|
|
113
|
-
}
|
|
114
|
-
toKey(uri) {
|
|
115
|
-
return ( uri.toString());
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
72
|
let ChatService = class ChatService extends Disposable {
|
|
119
73
|
get transferredSessionData() {
|
|
120
74
|
return this._transferredSessionData;
|
|
121
75
|
}
|
|
76
|
+
setSaveModelsEnabled(enabled) {
|
|
77
|
+
this._saveModelsEnabled = enabled;
|
|
78
|
+
}
|
|
79
|
+
waitForModelDisposals() {
|
|
80
|
+
return this._sessionModels.waitForModelDisposals();
|
|
81
|
+
}
|
|
122
82
|
get edits2Enabled() {
|
|
123
83
|
return this.configurationService.getValue(ChatConfiguration.Edits2Enabled);
|
|
124
84
|
}
|
|
@@ -139,9 +99,8 @@ let ChatService = class ChatService extends Disposable {
|
|
|
139
99
|
this.chatTransferService = chatTransferService;
|
|
140
100
|
this.chatSessionService = chatSessionService;
|
|
141
101
|
this.mcpService = mcpService;
|
|
142
|
-
this._sessionModels = ( new ChatModelStore());
|
|
143
|
-
this._contentProviderSessionModels = this._register(( new DisposableResourceMap()));
|
|
144
102
|
this._pendingRequests = this._register(( new DisposableResourceMap()));
|
|
103
|
+
this._saveModelsEnabled = true;
|
|
145
104
|
this._onDidSubmitRequest = this._register(( new Emitter()));
|
|
146
105
|
this.onDidSubmitRequest = this._onDidSubmitRequest.event;
|
|
147
106
|
this._onDidPerformUserAction = this._register(( new Emitter()));
|
|
@@ -149,6 +108,26 @@ let ChatService = class ChatService extends Disposable {
|
|
|
149
108
|
this._onDidDisposeSession = this._register(( new Emitter()));
|
|
150
109
|
this.onDidDisposeSession = this._onDidDisposeSession.event;
|
|
151
110
|
this._sessionFollowupCancelTokens = this._register(( new DisposableResourceMap()));
|
|
111
|
+
this._sessionModels = this._register(instantiationService.createInstance(ChatModelStore, {
|
|
112
|
+
createModel: (props) => this._startSession(props),
|
|
113
|
+
willDisposeModel: async (model) => {
|
|
114
|
+
const localSessionId = LocalChatSessionUri.parseLocalSessionId(model.sessionResource);
|
|
115
|
+
if (localSessionId && this.shouldStoreSession(model)) {
|
|
116
|
+
if (model.getRequests().length === 0 && !model.customTitle) {
|
|
117
|
+
await this._chatSessionStore.deleteSession(localSessionId);
|
|
118
|
+
}
|
|
119
|
+
else if (this._saveModelsEnabled) {
|
|
120
|
+
await this._chatSessionStore.storeSessions([model]);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else if (!localSessionId && model.getRequests().length > 0) {
|
|
124
|
+
await this._chatSessionStore.storeSessionsMetadataOnly([model]);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}));
|
|
128
|
+
this._register(this._sessionModels.onDidDisposeModel(model => {
|
|
129
|
+
this._onDidDisposeSession.fire({ sessionResource: model.sessionResource, reason: 'cleared' });
|
|
130
|
+
}));
|
|
152
131
|
this._chatServiceTelemetry = this.instantiationService.createInstance(ChatServiceTelemetry);
|
|
153
132
|
const sessionData = storageService.get(serializedChatKey, this.isEmptyWindow ? StorageScope.APPLICATION : StorageScope.WORKSPACE, '');
|
|
154
133
|
if (sessionData) {
|
|
@@ -168,18 +147,20 @@ let ChatService = class ChatService extends Disposable {
|
|
|
168
147
|
this._persistedSessions[transferredChat.sessionId] = transferredChat;
|
|
169
148
|
this._transferredSessionData = {
|
|
170
149
|
sessionId: transferredChat.sessionId,
|
|
171
|
-
inputValue: transferredData.inputValue,
|
|
172
150
|
location: transferredData.location,
|
|
173
|
-
|
|
151
|
+
inputState: transferredData.inputState
|
|
174
152
|
};
|
|
175
153
|
}
|
|
176
154
|
this._chatSessionStore = this._register(this.instantiationService.createInstance(ChatSessionStore));
|
|
177
155
|
this._chatSessionStore.migrateDataIfNeeded(() => this._persistedSessions);
|
|
178
|
-
this.initializePersistedSessionsFromFileStorage()
|
|
156
|
+
this.initializePersistedSessionsFromFileStorage().then(() => {
|
|
157
|
+
this.reviveSessionsWithEdits();
|
|
158
|
+
});
|
|
179
159
|
this._register(storageService.onWillSaveState(() => this.saveState()));
|
|
160
|
+
this.chatModels = derived(this, reader => [...( this._sessionModels.observable.read(reader).values())]);
|
|
180
161
|
this.requestInProgressObs = derived(reader => {
|
|
181
162
|
const models = ( this._sessionModels.observable.read(reader).values());
|
|
182
|
-
return (
|
|
163
|
+
return ( Iterable.some(models, model => model.requestInProgress.read(reader)));
|
|
183
164
|
});
|
|
184
165
|
}
|
|
185
166
|
get editingSessions() {
|
|
@@ -189,14 +170,21 @@ let ChatService = class ChatService extends Disposable {
|
|
|
189
170
|
return this.chatAgentService.getContributedDefaultAgent(location) !== undefined;
|
|
190
171
|
}
|
|
191
172
|
saveState() {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
173
|
+
if (!this._saveModelsEnabled) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const liveLocalChats = Array.from(( this._sessionModels.values()))
|
|
177
|
+
.filter(session => this.shouldStoreSession(session));
|
|
178
|
+
this._chatSessionStore.storeSessions(liveLocalChats);
|
|
179
|
+
const liveNonLocalChats = Array.from(( this._sessionModels.values()))
|
|
180
|
+
.filter(session => !LocalChatSessionUri.parseLocalSessionId(session.sessionResource));
|
|
181
|
+
this._chatSessionStore.storeSessionsMetadataOnly(liveNonLocalChats);
|
|
182
|
+
}
|
|
183
|
+
shouldStoreSession(session) {
|
|
184
|
+
if (!LocalChatSessionUri.parseLocalSessionId(session.sessionResource)) {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
return session.initialLocation === ChatAgentLocation.Chat && !session.isImported;
|
|
200
188
|
}
|
|
201
189
|
notifyUserAction(action) {
|
|
202
190
|
this._chatServiceTelemetry.notifyUserAction(action);
|
|
@@ -209,13 +197,15 @@ let ChatService = class ChatService extends Disposable {
|
|
|
209
197
|
}
|
|
210
198
|
}
|
|
211
199
|
async setChatSessionTitle(sessionResource, title) {
|
|
212
|
-
const sessionId = this.toLocalSessionId(sessionResource);
|
|
213
200
|
const model = this._sessionModels.get(sessionResource);
|
|
214
201
|
if (model) {
|
|
215
202
|
model.setCustomTitle(title);
|
|
216
203
|
}
|
|
217
|
-
|
|
218
|
-
|
|
204
|
+
const localSessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
|
|
205
|
+
if (localSessionId) {
|
|
206
|
+
await this._chatSessionStore.setSessionTitle(localSessionId, title);
|
|
207
|
+
this.saveState();
|
|
208
|
+
}
|
|
219
209
|
}
|
|
220
210
|
trace(method, message) {
|
|
221
211
|
if (message) {
|
|
@@ -271,6 +261,19 @@ let ChatService = class ChatService extends Disposable {
|
|
|
271
261
|
this.storageService.store(TransferredGlobalChatKey, JSON.stringify(filtered), StorageScope.PROFILE, StorageTarget.MACHINE);
|
|
272
262
|
return transferred;
|
|
273
263
|
}
|
|
264
|
+
async reviveSessionsWithEdits() {
|
|
265
|
+
await Promise.all(( ( Object.values(this._persistedSessions)).map(async (session) => {
|
|
266
|
+
if (!session.hasPendingEdits) {
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const sessionResource = LocalChatSessionUri.forSession(session.sessionId);
|
|
270
|
+
const sessionRef = await this.getOrRestoreSession(sessionResource);
|
|
271
|
+
if (sessionRef?.object.editingSession) {
|
|
272
|
+
await chatEditingSessionIsReady(sessionRef.object.editingSession);
|
|
273
|
+
sessionRef.dispose();
|
|
274
|
+
}
|
|
275
|
+
})));
|
|
276
|
+
}
|
|
274
277
|
async initializePersistedSessionsFromFileStorage() {
|
|
275
278
|
const index = await this._chatSessionStore.getIndex();
|
|
276
279
|
const sessionIds = ( Object.keys(index));
|
|
@@ -283,48 +286,69 @@ let ChatService = class ChatService extends Disposable {
|
|
|
283
286
|
customTitle: metadata.title,
|
|
284
287
|
creationDate: Date.now(),
|
|
285
288
|
lastMessageDate: metadata.lastMessageDate,
|
|
286
|
-
isImported: metadata.isImported || false,
|
|
287
289
|
initialLocation: metadata.initialLocation,
|
|
288
290
|
requests: [],
|
|
289
|
-
requesterUsername: '',
|
|
290
291
|
responderUsername: '',
|
|
291
|
-
requesterAvatarIconUri: undefined,
|
|
292
292
|
responderAvatarIconUri: undefined,
|
|
293
|
+
hasPendingEdits: metadata.hasPendingEdits,
|
|
293
294
|
};
|
|
294
295
|
this._persistedSessions[sessionId] = minimalSession;
|
|
295
296
|
}
|
|
296
297
|
}
|
|
297
298
|
}
|
|
298
299
|
async getLocalSessionHistory() {
|
|
299
|
-
const liveSessionItems =
|
|
300
|
+
const liveSessionItems = await this.getLiveSessionItems();
|
|
301
|
+
const historySessionItems = await this.getHistorySessionItems();
|
|
302
|
+
return [...liveSessionItems, ...historySessionItems];
|
|
303
|
+
}
|
|
304
|
+
async getLiveSessionItems() {
|
|
305
|
+
return await Promise.all(( Array.from(( this._sessionModels.values()))
|
|
300
306
|
.filter(session => this.shouldBeInHistory(session))
|
|
301
|
-
.map((session) => {
|
|
302
|
-
const title = session.title || ( localize(
|
|
307
|
+
.map(async (session) => {
|
|
308
|
+
const title = session.title || ( localize(5945, "New Chat"));
|
|
303
309
|
return {
|
|
304
310
|
sessionResource: session.sessionResource,
|
|
305
311
|
title,
|
|
306
312
|
lastMessageDate: session.lastMessageDate,
|
|
313
|
+
timing: session.timing,
|
|
307
314
|
isActive: true,
|
|
315
|
+
stats: await awaitStatsForSession(session),
|
|
316
|
+
lastResponseState: session.lastRequest?.response?.state ?? ResponseModelState.Pending,
|
|
308
317
|
};
|
|
309
|
-
}));
|
|
318
|
+
})));
|
|
319
|
+
}
|
|
320
|
+
async getHistorySessionItems() {
|
|
310
321
|
const index = await this._chatSessionStore.getIndex();
|
|
311
|
-
|
|
312
|
-
.filter(entry => !
|
|
322
|
+
return ( ( Object.values(index))
|
|
323
|
+
.filter(entry => !entry.isExternal)
|
|
324
|
+
.filter(entry => !( this._sessionModels.has(LocalChatSessionUri.forSession(entry.sessionId))) && entry.initialLocation === ChatAgentLocation.Chat && !entry.isEmpty)
|
|
313
325
|
.map((entry) => {
|
|
314
326
|
const sessionResource = LocalChatSessionUri.forSession(entry.sessionId);
|
|
315
327
|
return ({
|
|
316
328
|
...entry,
|
|
317
329
|
sessionResource,
|
|
318
|
-
|
|
330
|
+
timing: entry.timing ?? { startTime: entry.lastMessageDate },
|
|
331
|
+
isActive: ( this._sessionModels.has(sessionResource)),
|
|
332
|
+
lastResponseState: entry.lastResponseState ?? ResponseModelState.Complete
|
|
319
333
|
});
|
|
320
334
|
}));
|
|
321
|
-
return [...liveSessionItems, ...entries];
|
|
322
335
|
}
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
336
|
+
async getMetadataForSession(sessionResource) {
|
|
337
|
+
const index = await this._chatSessionStore.getIndex();
|
|
338
|
+
const metadata = index[( sessionResource.toString())];
|
|
339
|
+
if (metadata) {
|
|
340
|
+
return {
|
|
341
|
+
...metadata,
|
|
342
|
+
sessionResource,
|
|
343
|
+
timing: metadata.timing ?? { startTime: metadata.lastMessageDate },
|
|
344
|
+
isActive: ( this._sessionModels.has(sessionResource)),
|
|
345
|
+
lastResponseState: metadata.lastResponseState ?? ResponseModelState.Complete,
|
|
346
|
+
};
|
|
326
347
|
}
|
|
327
|
-
return
|
|
348
|
+
return undefined;
|
|
349
|
+
}
|
|
350
|
+
shouldBeInHistory(entry) {
|
|
351
|
+
return !entry.isImported && !!LocalChatSessionUri.parseLocalSessionId(entry.sessionResource) && entry.initialLocation === ChatAgentLocation.Chat;
|
|
328
352
|
}
|
|
329
353
|
async removeHistoryEntry(sessionResource) {
|
|
330
354
|
await this._chatSessionStore.deleteSession(this.toLocalSessionId(sessionResource));
|
|
@@ -332,21 +356,30 @@ let ChatService = class ChatService extends Disposable {
|
|
|
332
356
|
async clearAllHistoryEntries() {
|
|
333
357
|
await this._chatSessionStore.clearAllSessions();
|
|
334
358
|
}
|
|
335
|
-
startSession(location,
|
|
359
|
+
startSession(location, options) {
|
|
336
360
|
this.trace('startSession');
|
|
337
|
-
|
|
361
|
+
const sessionId = generateUuid();
|
|
362
|
+
const sessionResource = LocalChatSessionUri.forSession(sessionId);
|
|
363
|
+
return this._sessionModels.acquireOrCreate({
|
|
364
|
+
initialData: undefined,
|
|
365
|
+
location,
|
|
366
|
+
sessionResource,
|
|
367
|
+
sessionId,
|
|
368
|
+
canUseTools: options?.canUseTools ?? true,
|
|
369
|
+
disableBackgroundKeepAlive: options?.disableBackgroundKeepAlive
|
|
370
|
+
});
|
|
338
371
|
}
|
|
339
|
-
_startSession(
|
|
340
|
-
const
|
|
372
|
+
_startSession(props) {
|
|
373
|
+
const { initialData, location, sessionResource, sessionId, canUseTools, transferEditingSession, disableBackgroundKeepAlive, inputState } = props;
|
|
374
|
+
const model = this.instantiationService.createInstance(ChatModel, initialData, { initialLocation: location, canUseTools, resource: sessionResource, sessionId, disableBackgroundKeepAlive, inputState });
|
|
341
375
|
if (location === ChatAgentLocation.Chat) {
|
|
342
|
-
model.startEditingSession(
|
|
376
|
+
model.startEditingSession(true, transferEditingSession);
|
|
343
377
|
}
|
|
344
|
-
this.
|
|
345
|
-
this.initializeSession(model, token);
|
|
378
|
+
this.initializeSession(model);
|
|
346
379
|
return model;
|
|
347
380
|
}
|
|
348
|
-
initializeSession(model
|
|
349
|
-
this.trace('initializeSession', `Initialize session ${model.
|
|
381
|
+
initializeSession(model) {
|
|
382
|
+
this.trace('initializeSession', `Initialize session ${model.sessionResource}`);
|
|
350
383
|
this.activateDefaultAgent(model.initialLocation).catch(e => this.logService.error(e));
|
|
351
384
|
}
|
|
352
385
|
async activateDefaultAgent(location) {
|
|
@@ -370,14 +403,14 @@ let ChatService = class ChatService extends Disposable {
|
|
|
370
403
|
getSession(sessionResource) {
|
|
371
404
|
return this._sessionModels.get(sessionResource);
|
|
372
405
|
}
|
|
373
|
-
|
|
374
|
-
return
|
|
406
|
+
getActiveSessionReference(sessionResource) {
|
|
407
|
+
return this._sessionModels.acquireExisting(sessionResource);
|
|
375
408
|
}
|
|
376
409
|
async getOrRestoreSession(sessionResource) {
|
|
377
410
|
this.trace('getOrRestoreSession', `${sessionResource}`);
|
|
378
|
-
const
|
|
379
|
-
if (
|
|
380
|
-
return
|
|
411
|
+
const existingRef = this._sessionModels.acquireExisting(sessionResource);
|
|
412
|
+
if (existingRef) {
|
|
413
|
+
return existingRef;
|
|
381
414
|
}
|
|
382
415
|
const sessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
|
|
383
416
|
if (!sessionId) {
|
|
@@ -393,12 +426,18 @@ let ChatService = class ChatService extends Disposable {
|
|
|
393
426
|
if (!sessionData) {
|
|
394
427
|
return undefined;
|
|
395
428
|
}
|
|
396
|
-
const
|
|
429
|
+
const sessionRef = this._sessionModels.acquireOrCreate({
|
|
430
|
+
initialData: sessionData,
|
|
431
|
+
location: sessionData.initialLocation ?? ChatAgentLocation.Chat,
|
|
432
|
+
sessionResource,
|
|
433
|
+
sessionId,
|
|
434
|
+
canUseTools: true,
|
|
435
|
+
});
|
|
397
436
|
const isTransferred = this.transferredSessionData?.sessionId === sessionId;
|
|
398
437
|
if (isTransferred) {
|
|
399
438
|
this._transferredSessionData = undefined;
|
|
400
439
|
}
|
|
401
|
-
return
|
|
440
|
+
return sessionRef;
|
|
402
441
|
}
|
|
403
442
|
isPersistedSessionEmpty(sessionResource) {
|
|
404
443
|
const sessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
|
|
@@ -432,35 +471,50 @@ let ChatService = class ChatService extends Disposable {
|
|
|
432
471
|
return undefined;
|
|
433
472
|
}
|
|
434
473
|
loadSessionFromContent(data) {
|
|
435
|
-
|
|
474
|
+
const sessionId = 'sessionId' in data && data.sessionId ? data.sessionId : generateUuid();
|
|
475
|
+
const sessionResource = LocalChatSessionUri.forSession(sessionId);
|
|
476
|
+
return this._sessionModels.acquireOrCreate({
|
|
477
|
+
initialData: data,
|
|
478
|
+
location: data.initialLocation ?? ChatAgentLocation.Chat,
|
|
479
|
+
sessionResource,
|
|
480
|
+
sessionId,
|
|
481
|
+
canUseTools: true,
|
|
482
|
+
});
|
|
436
483
|
}
|
|
437
484
|
async loadSessionForResource(chatSessionResource, location, token) {
|
|
438
485
|
if (chatSessionResource.scheme === Schemas.vscodeLocalChatSession) {
|
|
439
486
|
return this.getOrRestoreSession(chatSessionResource);
|
|
440
487
|
}
|
|
441
|
-
const
|
|
442
|
-
if (
|
|
443
|
-
return
|
|
488
|
+
const existingRef = this._sessionModels.acquireExisting(chatSessionResource);
|
|
489
|
+
if (existingRef) {
|
|
490
|
+
return existingRef;
|
|
444
491
|
}
|
|
445
492
|
const providedSession = await this.chatSessionService.getOrCreateChatSession(chatSessionResource, CancellationToken.None);
|
|
446
493
|
const chatSessionType = chatSessionResource.scheme;
|
|
447
|
-
const
|
|
448
|
-
|
|
494
|
+
const modelRef = this._sessionModels.acquireOrCreate({
|
|
495
|
+
initialData: undefined,
|
|
496
|
+
location,
|
|
497
|
+
sessionResource: chatSessionResource,
|
|
498
|
+
canUseTools: false,
|
|
499
|
+
transferEditingSession: providedSession.transferredState?.editingSession,
|
|
500
|
+
inputState: providedSession.transferredState?.inputState,
|
|
501
|
+
});
|
|
502
|
+
modelRef.object.setContributedChatSession({
|
|
449
503
|
chatSessionResource,
|
|
450
504
|
chatSessionType,
|
|
451
505
|
isUntitled: chatSessionResource.path.startsWith('/untitled-')
|
|
452
506
|
});
|
|
507
|
+
const model = modelRef.object;
|
|
453
508
|
const disposables = ( new DisposableStore());
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
this._contentProviderSessionModels.deleteAndDispose(chatSessionResource);
|
|
509
|
+
disposables.add(modelRef.object.onDidDispose(() => {
|
|
510
|
+
disposables.dispose();
|
|
457
511
|
providedSession.dispose();
|
|
458
512
|
}));
|
|
459
513
|
let lastRequest;
|
|
460
514
|
for (const message of providedSession.history) {
|
|
461
515
|
if (message.type === 'request') {
|
|
462
516
|
if (lastRequest) {
|
|
463
|
-
|
|
517
|
+
lastRequest.response?.completeResponseIfNeeded();
|
|
464
518
|
}
|
|
465
519
|
const requestText = message.prompt;
|
|
466
520
|
const parsedRequest = {
|
|
@@ -475,8 +529,8 @@ let ChatService = class ChatService extends Disposable {
|
|
|
475
529
|
undefined,
|
|
476
530
|
undefined,
|
|
477
531
|
undefined,
|
|
478
|
-
|
|
479
|
-
);
|
|
532
|
+
false,
|
|
533
|
+
undefined, undefined, message.id);
|
|
480
534
|
}
|
|
481
535
|
else {
|
|
482
536
|
if (lastRequest) {
|
|
@@ -486,6 +540,9 @@ let ChatService = class ChatService extends Disposable {
|
|
|
486
540
|
}
|
|
487
541
|
}
|
|
488
542
|
}
|
|
543
|
+
if (providedSession.isCompleteObs?.get()) {
|
|
544
|
+
lastRequest?.response?.completeResponseIfNeeded();
|
|
545
|
+
}
|
|
489
546
|
if (providedSession.progressObs && lastRequest && providedSession.interruptActiveResponseCallback) {
|
|
490
547
|
const initialCancellationRequest = this.instantiationService.createInstance(CancellableRequest, ( new CancellationTokenSource()), undefined);
|
|
491
548
|
this._pendingRequests.set(model.sessionResource, initialCancellationRequest);
|
|
@@ -514,17 +571,18 @@ let ChatService = class ChatService extends Disposable {
|
|
|
514
571
|
lastProgressLength = progressArray.length;
|
|
515
572
|
}
|
|
516
573
|
if (isComplete) {
|
|
517
|
-
|
|
574
|
+
lastRequest.response?.completeResponseIfNeeded();
|
|
518
575
|
cancellationListener.clear();
|
|
519
576
|
}
|
|
520
577
|
}));
|
|
521
578
|
}
|
|
522
579
|
else {
|
|
523
|
-
if (lastRequest) {
|
|
524
|
-
model.
|
|
580
|
+
if (lastRequest && model.editingSession) {
|
|
581
|
+
await chatEditingSessionIsReady(model.editingSession);
|
|
582
|
+
lastRequest.response?.completeResponseIfNeeded();
|
|
525
583
|
}
|
|
526
584
|
}
|
|
527
|
-
return
|
|
585
|
+
return modelRef;
|
|
528
586
|
}
|
|
529
587
|
getChatSessionFromInternalUri(sessionResource) {
|
|
530
588
|
const model = this._sessionModels.get(sessionResource);
|
|
@@ -654,7 +712,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
654
712
|
const isLast = i === progress.length - 1;
|
|
655
713
|
const progressItem = progress[i];
|
|
656
714
|
if (progressItem.kind === 'markdownContent') {
|
|
657
|
-
this.trace('sendRequest', `Provider returned progress for session ${model.
|
|
715
|
+
this.trace('sendRequest', `Provider returned progress for session ${model.sessionResource}, ${progressItem.content.value.length} chars`);
|
|
658
716
|
}
|
|
659
717
|
else {
|
|
660
718
|
this.trace('sendRequest', `Provider returned progress: ${JSON.stringify(progressItem)}`);
|
|
@@ -667,7 +725,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
667
725
|
let detectedCommand;
|
|
668
726
|
const stopWatch = ( new StopWatch(false));
|
|
669
727
|
store.add(token.onCancellationRequested(() => {
|
|
670
|
-
this.trace('sendRequest', `Request for session ${model.
|
|
728
|
+
this.trace('sendRequest', `Request for session ${model.sessionResource} was cancelled`);
|
|
671
729
|
if (!request) {
|
|
672
730
|
return;
|
|
673
731
|
}
|
|
@@ -703,7 +761,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
703
761
|
message = promptTextResult.message;
|
|
704
762
|
}
|
|
705
763
|
const agentRequest = {
|
|
706
|
-
|
|
764
|
+
sessionResource: model.sessionResource,
|
|
707
765
|
requestId: request.id,
|
|
708
766
|
agentId: agent.id,
|
|
709
767
|
message,
|
|
@@ -720,7 +778,6 @@ let ChatService = class ChatService extends Disposable {
|
|
|
720
778
|
userSelectedTools: options?.userSelectedTools?.get(),
|
|
721
779
|
modeInstructions: options?.modeInfo?.modeInstructions,
|
|
722
780
|
editedFileEvents: request.editedFileEvents,
|
|
723
|
-
chatSummary: options?.chatSummary
|
|
724
781
|
};
|
|
725
782
|
let isInitialTools = true;
|
|
726
783
|
store.add(autorun(reader => {
|
|
@@ -742,10 +799,11 @@ let ChatService = class ChatService extends Disposable {
|
|
|
742
799
|
!commandPart &&
|
|
743
800
|
!agentSlashCommandPart &&
|
|
744
801
|
enableCommandDetection &&
|
|
802
|
+
(location !== ChatAgentLocation.EditorInline || !this.configurationService.getValue(InlineChatConfigKeys.EnableV2)) &&
|
|
745
803
|
options?.modeInfo?.kind !== ChatModeKind.Agent &&
|
|
746
804
|
options?.modeInfo?.kind !== ChatModeKind.Edit &&
|
|
747
805
|
!options?.agentIdSilent) {
|
|
748
|
-
const defaultAgentHistory = this.getHistoryEntriesFromModel(requests,
|
|
806
|
+
const defaultAgentHistory = this.getHistoryEntriesFromModel(requests, location, defaultAgent.id);
|
|
749
807
|
const chatAgentRequest = prepareChatAgentRequest(defaultAgent, undefined, enableCommandDetection, undefined, false);
|
|
750
808
|
const result = await this.chatAgentService.detectAgentOrCommand(chatAgentRequest, defaultAgentHistory, { location }, token);
|
|
751
809
|
if (result && this.chatAgentService.getAgent(result.agent.id)?.locations?.includes(location)) {
|
|
@@ -757,7 +815,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
757
815
|
const agent = (detectedAgent ?? agentPart?.agent ?? defaultAgent);
|
|
758
816
|
const command = detectedCommand ?? agentSlashCommandPart?.command;
|
|
759
817
|
await this.extensionService.activateByEvent(`onChatParticipant:${agent.id}`);
|
|
760
|
-
const history = this.getHistoryEntriesFromModel(requests,
|
|
818
|
+
const history = this.getHistoryEntriesFromModel(requests, location, agent.id);
|
|
761
819
|
const requestProps = prepareChatAgentRequest(agent, command, enableCommandDetection, request , !!detectedAgent);
|
|
762
820
|
const pendingRequest = this._pendingRequests.get(sessionResource);
|
|
763
821
|
if (pendingRequest && !pendingRequest.requestId) {
|
|
@@ -775,7 +833,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
775
833
|
rawResult = agentResult;
|
|
776
834
|
agentOrCommandFollowups = this.chatAgentService.getFollowups(agent.id, requestProps, agentResult, history, followupsCancelToken);
|
|
777
835
|
if (model.getRequests().length === 1 && !model.customTitle) {
|
|
778
|
-
const chatHistory = this.getHistoryEntriesFromModel(model.getRequests(),
|
|
836
|
+
const chatHistory = this.getHistoryEntriesFromModel(model.getRequests(), location, agent.id);
|
|
779
837
|
chatTitlePromise = this.chatAgentService.getChatTitle(agent.id, chatHistory, CancellationToken.None).then((title) => {
|
|
780
838
|
if (title === undefined) {
|
|
781
839
|
const defaultAgentForTitle = this.chatAgentService.getDefaultAgent(location);
|
|
@@ -803,7 +861,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
803
861
|
const message = parsedRequest.text;
|
|
804
862
|
const commandResult = await this.chatSlashCommandService.executeCommand(commandPart.slashCommand.command, message.substring(commandPart.slashCommand.command.length + 1).trimStart(), ( new Progress(p => {
|
|
805
863
|
progressCallback([p]);
|
|
806
|
-
})), history, location, token);
|
|
864
|
+
})), history, location, model.sessionResource, token);
|
|
807
865
|
agentOrCommandFollowups = Promise.resolve(commandResult?.followUp);
|
|
808
866
|
rawResult = {};
|
|
809
867
|
}
|
|
@@ -815,8 +873,8 @@ let ChatService = class ChatService extends Disposable {
|
|
|
815
873
|
}
|
|
816
874
|
else {
|
|
817
875
|
if (!rawResult) {
|
|
818
|
-
this.trace('sendRequest', `Provider returned no response for session ${model.
|
|
819
|
-
rawResult = { errorDetails: { message: ( localize(
|
|
876
|
+
this.trace('sendRequest', `Provider returned no response for session ${model.sessionResource}`);
|
|
877
|
+
rawResult = { errorDetails: { message: ( localize(5946, "Provider returned null response")) } };
|
|
820
878
|
}
|
|
821
879
|
const result = rawResult.errorDetails?.responseIsFiltered ? 'filtered' :
|
|
822
880
|
rawResult.errorDetails && gotProgress ? 'errorWithOutput' :
|
|
@@ -832,8 +890,8 @@ let ChatService = class ChatService extends Disposable {
|
|
|
832
890
|
});
|
|
833
891
|
model.setResponse(request, rawResult);
|
|
834
892
|
completeResponseCreated();
|
|
835
|
-
this.trace('sendRequest', `Provider returned response for session ${model.
|
|
836
|
-
|
|
893
|
+
this.trace('sendRequest', `Provider returned response for session ${model.sessionResource}`);
|
|
894
|
+
request.response?.complete();
|
|
837
895
|
if (agentOrCommandFollowups) {
|
|
838
896
|
agentOrCommandFollowups.then(followups => {
|
|
839
897
|
model.setFollowups(request, followups);
|
|
@@ -862,7 +920,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
862
920
|
const rawResult = { errorDetails: { message: err.message } };
|
|
863
921
|
model.setResponse(request, rawResult);
|
|
864
922
|
completeResponseCreated();
|
|
865
|
-
|
|
923
|
+
request.response?.complete();
|
|
866
924
|
}
|
|
867
925
|
}
|
|
868
926
|
finally {
|
|
@@ -896,14 +954,14 @@ let ChatService = class ChatService extends Disposable {
|
|
|
896
954
|
});
|
|
897
955
|
return attachedContextVariables;
|
|
898
956
|
}
|
|
899
|
-
getHistoryEntriesFromModel(requests,
|
|
957
|
+
getHistoryEntriesFromModel(requests, location, forAgentId) {
|
|
900
958
|
const history = [];
|
|
901
959
|
const agent = this.chatAgentService.getAgent(forAgentId);
|
|
902
960
|
for (const request of requests) {
|
|
903
961
|
if (!request.response) {
|
|
904
962
|
continue;
|
|
905
963
|
}
|
|
906
|
-
if (forAgentId !== request.response.agent?.id && !agent?.isDefault) {
|
|
964
|
+
if (forAgentId !== request.response.agent?.id && !agent?.isDefault && !agent?.canAccessPreviousChatHistory) {
|
|
907
965
|
continue;
|
|
908
966
|
}
|
|
909
967
|
if (location === ChatAgentLocation.EditorInline) {
|
|
@@ -911,7 +969,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
911
969
|
}
|
|
912
970
|
const promptTextResult = getPromptText(request.message);
|
|
913
971
|
const historyRequest = {
|
|
914
|
-
|
|
972
|
+
sessionResource: request.session.sessionResource,
|
|
915
973
|
requestId: request.id,
|
|
916
974
|
agentId: request.response.agent?.id ?? '',
|
|
917
975
|
message: promptTextResult.message,
|
|
@@ -976,34 +1034,13 @@ let ChatService = class ChatService extends Disposable {
|
|
|
976
1034
|
if (response.followups !== undefined) {
|
|
977
1035
|
model.setFollowups(request, response.followups);
|
|
978
1036
|
}
|
|
979
|
-
|
|
1037
|
+
request.response?.complete();
|
|
980
1038
|
}
|
|
981
1039
|
cancelCurrentRequestForSession(sessionResource) {
|
|
982
1040
|
this.trace('cancelCurrentRequestForSession', `session: ${sessionResource}`);
|
|
983
1041
|
this._pendingRequests.get(sessionResource)?.cancel();
|
|
984
1042
|
this._pendingRequests.deleteAndDispose(sessionResource);
|
|
985
1043
|
}
|
|
986
|
-
async clearSession(sessionResource) {
|
|
987
|
-
this.trace('clearSession', `session: ${sessionResource}`);
|
|
988
|
-
const model = this._sessionModels.get(sessionResource);
|
|
989
|
-
if (!model) {
|
|
990
|
-
throw ( new Error(`Unknown session: ${sessionResource}`));
|
|
991
|
-
}
|
|
992
|
-
const localSessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
|
|
993
|
-
if (localSessionId && (model.initialLocation === ChatAgentLocation.Chat)) {
|
|
994
|
-
if (model.getRequests().length === 0 && !model.customTitle) {
|
|
995
|
-
await this._chatSessionStore.deleteSession(localSessionId);
|
|
996
|
-
}
|
|
997
|
-
else {
|
|
998
|
-
await this._chatSessionStore.storeSessions([model]);
|
|
999
|
-
}
|
|
1000
|
-
}
|
|
1001
|
-
this._sessionModels.delete(sessionResource);
|
|
1002
|
-
model.dispose();
|
|
1003
|
-
this._pendingRequests.get(sessionResource)?.cancel();
|
|
1004
|
-
this._pendingRequests.deleteAndDispose(sessionResource);
|
|
1005
|
-
this._onDidDisposeSession.fire({ sessionResource, reason: 'cleared' });
|
|
1006
|
-
}
|
|
1007
1044
|
hasSessions() {
|
|
1008
1045
|
return this._chatSessionStore.hasSessions();
|
|
1009
1046
|
}
|
|
@@ -1019,13 +1056,12 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1019
1056
|
chat: model.toJSON(),
|
|
1020
1057
|
timestampInMilliseconds: Date.now(),
|
|
1021
1058
|
toWorkspace: toWorkspace,
|
|
1022
|
-
|
|
1059
|
+
inputState: transferredSessionData.inputState,
|
|
1023
1060
|
location: transferredSessionData.location,
|
|
1024
|
-
mode: transferredSessionData.mode,
|
|
1025
1061
|
});
|
|
1026
1062
|
this.storageService.store(TransferredGlobalChatKey, JSON.stringify(existingRaw), StorageScope.PROFILE, StorageTarget.MACHINE);
|
|
1027
1063
|
this.chatTransferService.addWorkspaceToTransferred(toWorkspace);
|
|
1028
|
-
this.trace('transferChatSession', `Transferred session ${model.
|
|
1064
|
+
this.trace('transferChatSession', `Transferred session ${model.sessionResource} to workspace ${( toWorkspace.toString())}`);
|
|
1029
1065
|
}
|
|
1030
1066
|
getChatStorageFolder() {
|
|
1031
1067
|
return this._chatSessionStore.getChatStorageFolder();
|
|
@@ -1033,6 +1069,16 @@ let ChatService = class ChatService extends Disposable {
|
|
|
1033
1069
|
logChatIndex() {
|
|
1034
1070
|
this._chatSessionStore.logIndex();
|
|
1035
1071
|
}
|
|
1072
|
+
setTitle(sessionResource, title) {
|
|
1073
|
+
this._sessionModels.get(sessionResource)?.setCustomTitle(title);
|
|
1074
|
+
}
|
|
1075
|
+
appendProgress(request, progress) {
|
|
1076
|
+
const model = this._sessionModels.get(request.session.sessionResource);
|
|
1077
|
+
if (!(request instanceof ChatRequestModel)) {
|
|
1078
|
+
throw ( new BugIndicatingError('Can only append progress to requests of type ChatRequestModel'));
|
|
1079
|
+
}
|
|
1080
|
+
model?.acceptResponseProgress(request, progress);
|
|
1081
|
+
}
|
|
1036
1082
|
toLocalSessionId(sessionResource) {
|
|
1037
1083
|
const localSessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
|
|
1038
1084
|
if (!localSessionId) {
|