@codingame/monaco-vscode-chat-service-override 25.1.2 → 26.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 +24 -3
- package/package.json +5 -5
- package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +23 -3
- package/vscode/src/vs/platform/browserElements/common/browserElements.js +13 -6
- package/vscode/src/vs/platform/domWidget/browser/domWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +42 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +218 -74
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatTerminalOutputAccessibleView.js +6 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +14 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +165 -168
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +27 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +141 -140
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +189 -121
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +14 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +60 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +435 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +28 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +10 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +37 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +54 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +73 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +71 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +151 -89
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +12 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +39 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +90 -125
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +263 -143
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +188 -126
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +37 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +21 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +392 -226
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +31 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +25 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +83 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +319 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +215 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +179 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +951 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agentsessionprojection.css +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +388 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/unifiedQuickAccess.css +195 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +120 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +394 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.d.ts +38 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +95 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +31 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +49 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +4 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/media/simpleBrowserOverlay.css +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +188 -151
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +1012 -639
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +256 -151
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +182 -101
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +79 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +193 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +9 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.d.ts +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +253 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +69 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +52 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +5 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +274 -155
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +2 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +130 -104
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +12 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +385 -160
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +53 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +112 -75
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +19 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +31 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +39 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNewNotebookContentEdits.js +10 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +25 -16
- 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 +265 -203
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +29 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.js +114 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +16 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +44 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +119 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +152 -136
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +12 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +51 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +323 -217
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +653 -401
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +52 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +43 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +182 -136
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +33 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +548 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +222 -138
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +151 -113
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +6 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +453 -217
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +162 -88
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/media/chatSetup.css +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +1 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +309 -233
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +55 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.js +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +109 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +35 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.d.ts +9 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +73 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +47 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +333 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +39 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +9 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +23 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +20 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +65 -57
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +48 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +20 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +52 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +155 -159
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +24 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +521 -246
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +107 -76
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +28 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.js +10 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.js +57 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatLayoutService.js +4 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +56 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +0 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +37 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatEditorInputContentProvider.js +5 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +1284 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +179 -125
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +9 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/editorHoverWrapper.js +7 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +96 -78
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +58 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +25 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +484 -292
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.d.ts +1 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +65 -92
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +16 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +331 -189
- package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +81 -93
- package/vscode/src/vs/workbench/contrib/chat/common/ignoredFiles.js +1 -3
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +6 -7
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +36 -8
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +169 -31
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +141 -0
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -4
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +218 -144
- package/vscode/src/vs/workbench/contrib/chat/common/model/chatTransferService.js +20 -10
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +109 -0
- package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +349 -0
- package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +9 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +139 -36
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +3 -6
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +64 -51
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +49 -34
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +21 -13
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +125 -97
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +91 -131
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +8 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +488 -222
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +32 -12
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +58 -13
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +717 -200
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +79 -18
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +371 -130
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +3 -7
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +79 -61
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +27 -21
- package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +7 -10
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +26 -32
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -60
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +115 -426
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +127 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -37
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +21 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +51 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +334 -0
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +424 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +58 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +195 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +368 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +7 -0
- 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 +1 -1
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +23 -25
- package/vscode/src/vs/workbench/contrib/remoteCodingAgents/common/remoteCodingAgentsService.js +7 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +34 -38
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +8 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +103 -95
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +28 -16
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +4 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +12 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +65 -54
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +86 -60
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +13 -26
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +56 -46
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +63 -31
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +35 -30
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +44 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +3 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +70 -50
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +26 -394
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +85 -49
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +68 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +67 -45
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +106 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +177 -97
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +136 -49
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +128 -112
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +51 -49
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +25 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +21 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +5 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +2 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +29 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +30 -31
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +16 -17
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +19 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +58 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +31 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +325 -199
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +33 -38
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +45 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +746 -456
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +145 -98
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +88 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +120 -51
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +25 -28
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +58 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.js +17 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +47 -28
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +37 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +171 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +0 -58
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +0 -213
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +0 -39
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +0 -243
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.d.ts +0 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +0 -41
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +0 -166
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +0 -607
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +0 -255
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -396
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -379
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -117
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +0 -141
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +0 -961
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +0 -36
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +0 -447
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.d.ts +0 -6
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.js +0 -251
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.d.ts +0 -10
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +0 -42
|
@@ -9,6 +9,7 @@ import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marsh
|
|
|
9
9
|
import { joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
10
10
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
11
11
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
12
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
12
13
|
import { IEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service';
|
|
13
14
|
import { toFileOperationResult, FileOperationResult } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files';
|
|
14
15
|
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
@@ -20,18 +21,31 @@ import { IUserDataProfilesService } from '@codingame/monaco-vscode-api/vscode/vs
|
|
|
20
21
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
21
22
|
import { ILifecycleService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
|
|
22
23
|
import { awaitStatsForSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chat';
|
|
23
|
-
import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService';
|
|
24
|
-
import { normalizeSerializableChatData, ChatModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
|
|
25
24
|
import { ResponseModelState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
25
|
+
import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService';
|
|
26
|
+
import { ChatModel, normalizeSerializableChatData } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
|
|
27
|
+
import { ChatSessionOperationLog } from './chatSessionOperationLog.js';
|
|
26
28
|
import { LocalChatSessionUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
|
|
27
29
|
|
|
28
30
|
var ChatSessionStore_1;
|
|
29
|
-
const maxPersistedSessions =
|
|
30
|
-
const ChatIndexStorageKey =
|
|
31
|
-
const ChatTransferIndexStorageKey =
|
|
31
|
+
const maxPersistedSessions = 50;
|
|
32
|
+
const ChatIndexStorageKey = "chat.ChatSessionStore.index";
|
|
33
|
+
const ChatTransferIndexStorageKey = "ChatSessionStore.transferIndex";
|
|
32
34
|
let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
33
|
-
static {
|
|
34
|
-
|
|
35
|
+
static {
|
|
36
|
+
ChatSessionStore_1 = this;
|
|
37
|
+
}
|
|
38
|
+
constructor(
|
|
39
|
+
fileService,
|
|
40
|
+
environmentService,
|
|
41
|
+
logService,
|
|
42
|
+
workspaceContextService,
|
|
43
|
+
telemetryService,
|
|
44
|
+
storageService,
|
|
45
|
+
lifecycleService,
|
|
46
|
+
userDataProfilesService,
|
|
47
|
+
configurationService
|
|
48
|
+
) {
|
|
35
49
|
super();
|
|
36
50
|
this.fileService = fileService;
|
|
37
51
|
this.environmentService = environmentService;
|
|
@@ -41,26 +55,33 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
41
55
|
this.storageService = storageService;
|
|
42
56
|
this.lifecycleService = lifecycleService;
|
|
43
57
|
this.userDataProfilesService = userDataProfilesService;
|
|
58
|
+
this.configurationService = configurationService;
|
|
44
59
|
this.storeQueue = ( new Sequencer());
|
|
45
60
|
this.shuttingDown = false;
|
|
46
61
|
const workspace = this.workspaceContextService.getWorkspace();
|
|
47
62
|
const isEmptyWindow = !workspace.configuration && workspace.folders.length === 0;
|
|
48
63
|
const workspaceId = this.workspaceContextService.getWorkspace().id;
|
|
49
|
-
this.storageRoot = isEmptyWindow ?
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
64
|
+
this.storageRoot = isEmptyWindow ? joinPath(
|
|
65
|
+
this.userDataProfilesService.defaultProfile.globalStorageHome,
|
|
66
|
+
"emptyWindowChatSessions"
|
|
67
|
+
) : joinPath(this.environmentService.workspaceStorageHome, workspaceId, "chatSessions");
|
|
68
|
+
this.previousEmptyWindowStorageRoot = isEmptyWindow ? joinPath(
|
|
69
|
+
this.environmentService.workspaceStorageHome,
|
|
70
|
+
"no-workspace",
|
|
71
|
+
"chatSessions"
|
|
72
|
+
) : undefined;
|
|
73
|
+
this.transferredSessionStorageRoot = joinPath(
|
|
74
|
+
this.userDataProfilesService.defaultProfile.globalStorageHome,
|
|
75
|
+
"transferredChatSessions"
|
|
76
|
+
);
|
|
56
77
|
this._register(this.lifecycleService.onWillShutdown(e => {
|
|
57
78
|
this.shuttingDown = true;
|
|
58
79
|
if (!this.storeTask) {
|
|
59
80
|
return;
|
|
60
81
|
}
|
|
61
82
|
e.join(this.storeTask, {
|
|
62
|
-
id:
|
|
63
|
-
label: ( localize(
|
|
83
|
+
id: "join.chatSessionStore",
|
|
84
|
+
label: ( localize(6253, "Saving chat history"))
|
|
64
85
|
});
|
|
65
86
|
}));
|
|
66
87
|
}
|
|
@@ -74,14 +95,12 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
74
95
|
await Promise.all(( sessions.map(session => this.writeSession(session))));
|
|
75
96
|
await this.trimEntries();
|
|
76
97
|
await this.flushIndex();
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
this.reportError('storeSessions', 'Error storing chat sessions', e);
|
|
98
|
+
} catch (e) {
|
|
99
|
+
this.reportError("storeSessions", "Error storing chat sessions", e);
|
|
80
100
|
}
|
|
81
101
|
});
|
|
82
102
|
await this.storeTask;
|
|
83
|
-
}
|
|
84
|
-
finally {
|
|
103
|
+
} finally {
|
|
85
104
|
this.storeTask = undefined;
|
|
86
105
|
}
|
|
87
106
|
}
|
|
@@ -94,14 +113,12 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
94
113
|
try {
|
|
95
114
|
await Promise.all(( sessions.map(session => this.writeSessionMetadataOnly(session))));
|
|
96
115
|
await this.flushIndex();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
this.reportError('storeSessions', 'Error storing chat sessions', e);
|
|
116
|
+
} catch (e) {
|
|
117
|
+
this.reportError("storeSessions", "Error storing chat sessions", e);
|
|
100
118
|
}
|
|
101
119
|
});
|
|
102
120
|
await this.storeTask;
|
|
103
|
-
}
|
|
104
|
-
finally {
|
|
121
|
+
} finally {
|
|
105
122
|
this.storeTask = undefined;
|
|
106
123
|
}
|
|
107
124
|
}
|
|
@@ -116,10 +133,9 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
116
133
|
const existingStorageLocation = this.getTransferredSessionStorageLocation(existingSessionResource);
|
|
117
134
|
await this.fileService.del(existingStorageLocation);
|
|
118
135
|
}
|
|
119
|
-
}
|
|
120
|
-
catch (e) {
|
|
136
|
+
} catch (e) {
|
|
121
137
|
if (toFileOperationResult(e) !== FileOperationResult.FILE_NOT_FOUND) {
|
|
122
|
-
this.reportError(
|
|
138
|
+
this.reportError("storeTransferSession", "Error deleting old transferred session file", e);
|
|
123
139
|
}
|
|
124
140
|
}
|
|
125
141
|
}
|
|
@@ -127,30 +143,34 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
127
143
|
const content = JSON.stringify(session, undefined, 2);
|
|
128
144
|
const storageLocation = this.getTransferredSessionStorageLocation(session.sessionResource);
|
|
129
145
|
await this.fileService.writeFile(storageLocation, VSBuffer.fromString(content));
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
this.reportError('sessionWrite', 'Error writing chat session', e);
|
|
146
|
+
} catch (e) {
|
|
147
|
+
this.reportError("sessionWrite", "Error writing chat session", e);
|
|
133
148
|
return;
|
|
134
149
|
}
|
|
135
150
|
index[workspaceKey] = transferData;
|
|
136
151
|
try {
|
|
137
|
-
this.storageService.store(
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
152
|
+
this.storageService.store(
|
|
153
|
+
ChatTransferIndexStorageKey,
|
|
154
|
+
index,
|
|
155
|
+
StorageScope.PROFILE,
|
|
156
|
+
StorageTarget.MACHINE
|
|
157
|
+
);
|
|
158
|
+
} catch (e) {
|
|
159
|
+
this.reportError("storeTransferSession", "Error storing chat transfer session", e);
|
|
141
160
|
}
|
|
142
161
|
}
|
|
143
162
|
getTransferredSessionIndex() {
|
|
144
163
|
try {
|
|
145
164
|
const data = this.storageService.getObject(ChatTransferIndexStorageKey, StorageScope.PROFILE, {});
|
|
146
165
|
return data;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
this.reportError('getTransferredSessionIndex', 'Error reading chat transfer index', e);
|
|
166
|
+
} catch (e) {
|
|
167
|
+
this.reportError("getTransferredSessionIndex", "Error reading chat transfer index", e);
|
|
150
168
|
return {};
|
|
151
169
|
}
|
|
152
170
|
}
|
|
153
|
-
static {
|
|
171
|
+
static {
|
|
172
|
+
this.TRANSFER_EXPIRATION_MS = 60 * 1000 * 5;
|
|
173
|
+
}
|
|
154
174
|
getTransferredSessionData() {
|
|
155
175
|
try {
|
|
156
176
|
const index = this.getTransferredSessionIndex();
|
|
@@ -165,14 +185,13 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
165
185
|
}
|
|
166
186
|
const revivedTransferData = revive(transferredSessionForWorkspace);
|
|
167
187
|
if (Date.now() - transferredSessionForWorkspace.timestampInMilliseconds > ChatSessionStore_1.TRANSFER_EXPIRATION_MS) {
|
|
168
|
-
this.logService.info(
|
|
188
|
+
this.logService.info("ChatSessionStore: Transferred session has expired");
|
|
169
189
|
this.cleanupTransferredSession(revivedTransferData.sessionResource);
|
|
170
190
|
return undefined;
|
|
171
191
|
}
|
|
172
192
|
return !!LocalChatSessionUri.parseLocalSessionId(revivedTransferData.sessionResource) && revivedTransferData.sessionResource;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
this.reportError('getTransferredSession', 'Error getting transferred chat session URI', e);
|
|
193
|
+
} catch (e) {
|
|
194
|
+
this.reportError("getTransferredSession", "Error getting transferred chat session URI", e);
|
|
176
195
|
return undefined;
|
|
177
196
|
}
|
|
178
197
|
}
|
|
@@ -183,12 +202,11 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
183
202
|
if (!sessionId) {
|
|
184
203
|
return undefined;
|
|
185
204
|
}
|
|
186
|
-
const sessionData = await this.readSessionFromLocation(storageLocation, sessionId);
|
|
205
|
+
const sessionData = await this.readSessionFromLocation(storageLocation, undefined, sessionId);
|
|
187
206
|
await this.cleanupTransferredSession(sessionResource);
|
|
188
207
|
return sessionData;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
this.reportError('getTransferredSession', 'Error getting transferred chat session', e);
|
|
208
|
+
} catch (e) {
|
|
209
|
+
this.reportError("getTransferredSession", "Error getting transferred chat session", e);
|
|
192
210
|
return undefined;
|
|
193
211
|
}
|
|
194
212
|
}
|
|
@@ -199,14 +217,18 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
199
217
|
if (workspaceFolders.length === 1) {
|
|
200
218
|
const workspaceKey = ( workspaceFolders[0].uri.toString());
|
|
201
219
|
delete index[workspaceKey];
|
|
202
|
-
this.storageService.store(
|
|
220
|
+
this.storageService.store(
|
|
221
|
+
ChatTransferIndexStorageKey,
|
|
222
|
+
index,
|
|
223
|
+
StorageScope.PROFILE,
|
|
224
|
+
StorageTarget.MACHINE
|
|
225
|
+
);
|
|
203
226
|
}
|
|
204
227
|
const storageLocation = this.getTransferredSessionStorageLocation(sessionResource);
|
|
205
228
|
await this.fileService.del(storageLocation);
|
|
206
|
-
}
|
|
207
|
-
catch (e) {
|
|
229
|
+
} catch (e) {
|
|
208
230
|
if (toFileOperationResult(e) !== FileOperationResult.FILE_NOT_FOUND) {
|
|
209
|
-
this.reportError(
|
|
231
|
+
this.reportError("cleanupTransferredSession", "Error cleaning up transferred session", e);
|
|
210
232
|
}
|
|
211
233
|
}
|
|
212
234
|
}
|
|
@@ -214,12 +236,30 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
214
236
|
try {
|
|
215
237
|
const index = this.internalGetIndex();
|
|
216
238
|
const storageLocation = this.getStorageLocation(session.sessionId);
|
|
217
|
-
|
|
218
|
-
|
|
239
|
+
if (storageLocation.log) {
|
|
240
|
+
if (session instanceof ChatModel) {
|
|
241
|
+
if (!session.dataSerializer) {
|
|
242
|
+
session.dataSerializer = ( new ChatSessionOperationLog());
|
|
243
|
+
}
|
|
244
|
+
const {
|
|
245
|
+
op,
|
|
246
|
+
data
|
|
247
|
+
} = session.dataSerializer.write(session);
|
|
248
|
+
if (data.byteLength > 0) {
|
|
249
|
+
await this.fileService.writeFile(storageLocation.log, data, {
|
|
250
|
+
append: op === "append"
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
} else {
|
|
254
|
+
const content = ( new ChatSessionOperationLog()).createInitialFromSerialized(session);
|
|
255
|
+
await this.fileService.writeFile(storageLocation.log, content);
|
|
256
|
+
}
|
|
257
|
+
} else {
|
|
258
|
+
await this.fileService.writeFile(storageLocation.flat, VSBuffer.fromString(JSON.stringify(session)));
|
|
259
|
+
}
|
|
219
260
|
index.entries[session.sessionId] = await getSessionMetadata(session);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
this.reportError('sessionWrite', 'Error writing chat session', e);
|
|
261
|
+
} catch (e) {
|
|
262
|
+
this.reportError("sessionWrite", "Error writing chat session", e);
|
|
223
263
|
}
|
|
224
264
|
}
|
|
225
265
|
async writeSessionMetadataOnly(session) {
|
|
@@ -230,18 +270,21 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
230
270
|
const index = this.internalGetIndex();
|
|
231
271
|
const externalSessionId = ( session.sessionResource.toString());
|
|
232
272
|
index.entries[externalSessionId] = await getSessionMetadata(session);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
this.reportError('sessionMetadataWrite', 'Error writing chat session metadata', e);
|
|
273
|
+
} catch (e) {
|
|
274
|
+
this.reportError("sessionMetadataWrite", "Error writing chat session metadata", e);
|
|
236
275
|
}
|
|
237
276
|
}
|
|
238
277
|
async flushIndex() {
|
|
239
278
|
const index = this.internalGetIndex();
|
|
240
279
|
try {
|
|
241
|
-
this.storageService.store(
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
280
|
+
this.storageService.store(
|
|
281
|
+
ChatIndexStorageKey,
|
|
282
|
+
index,
|
|
283
|
+
this.getIndexStorageScope(),
|
|
284
|
+
StorageTarget.MACHINE
|
|
285
|
+
);
|
|
286
|
+
} catch (e) {
|
|
287
|
+
this.reportError("indexWrite", "Error writing index", e);
|
|
245
288
|
}
|
|
246
289
|
}
|
|
247
290
|
getIndexStorageScope() {
|
|
@@ -251,16 +294,15 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
251
294
|
}
|
|
252
295
|
async trimEntries() {
|
|
253
296
|
const index = this.internalGetIndex();
|
|
254
|
-
const entries = ( Object.entries(index.entries)
|
|
255
|
-
.filter(([_id, entry]) => !entry.isExternal)
|
|
256
|
-
.sort((a, b) => b[1].lastMessageDate - a[1].lastMessageDate)
|
|
257
|
-
.map(([id]) => id));
|
|
297
|
+
const entries = ( Object.entries(index.entries).filter(([_id, entry]) => !entry.isExternal).sort((a, b) => b[1].lastMessageDate - a[1].lastMessageDate).map(([id]) => id));
|
|
258
298
|
if (entries.length > maxPersistedSessions) {
|
|
259
299
|
const entriesToDelete = entries.slice(maxPersistedSessions);
|
|
260
300
|
for (const entry of entriesToDelete) {
|
|
261
301
|
delete index.entries[entry];
|
|
262
302
|
}
|
|
263
|
-
this.logService.trace(
|
|
303
|
+
this.logService.trace(
|
|
304
|
+
`ChatSessionStore: Trimmed ${entriesToDelete.length} old chat sessions from index`
|
|
305
|
+
);
|
|
264
306
|
}
|
|
265
307
|
}
|
|
266
308
|
async internalDeleteSession(sessionId) {
|
|
@@ -269,15 +311,16 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
269
311
|
return;
|
|
270
312
|
}
|
|
271
313
|
const storageLocation = this.getStorageLocation(sessionId);
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
314
|
+
for (const uri of [storageLocation.flat, storageLocation.log]) {
|
|
315
|
+
try {
|
|
316
|
+
if (uri) {
|
|
317
|
+
await this.fileService.del(uri);
|
|
318
|
+
}
|
|
319
|
+
} catch (e) {
|
|
320
|
+
if (toFileOperationResult(e) !== FileOperationResult.FILE_NOT_FOUND) {
|
|
321
|
+
this.reportError("sessionDelete", "Error deleting chat session", e);
|
|
322
|
+
}
|
|
278
323
|
}
|
|
279
|
-
}
|
|
280
|
-
finally {
|
|
281
324
|
delete index.entries[sessionId];
|
|
282
325
|
}
|
|
283
326
|
}
|
|
@@ -312,9 +355,13 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
312
355
|
});
|
|
313
356
|
}
|
|
314
357
|
reportError(reasonForTelemetry, message, error) {
|
|
315
|
-
this.logService.error(`ChatSessionStore: ` + message, toErrorMessage(error));
|
|
316
358
|
const fileOperationReason = error && toFileOperationResult(error);
|
|
317
|
-
|
|
359
|
+
if (fileOperationReason === FileOperationResult.FILE_NOT_FOUND) {
|
|
360
|
+
this.logService.trace(`ChatSessionStore: ` + message, toErrorMessage(error));
|
|
361
|
+
} else {
|
|
362
|
+
this.logService.error(`ChatSessionStore: ` + message, toErrorMessage(error));
|
|
363
|
+
}
|
|
364
|
+
this.telemetryService.publicLog2("chatSessionStoreError", {
|
|
318
365
|
reason: reasonForTelemetry,
|
|
319
366
|
fileOperationReason: fileOperationReason ?? -1
|
|
320
367
|
});
|
|
@@ -325,23 +372,30 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
325
372
|
}
|
|
326
373
|
const data = this.storageService.get(ChatIndexStorageKey, this.getIndexStorageScope(), undefined);
|
|
327
374
|
if (!data) {
|
|
328
|
-
this.indexCache = {
|
|
375
|
+
this.indexCache = {
|
|
376
|
+
version: 1,
|
|
377
|
+
entries: {}
|
|
378
|
+
};
|
|
329
379
|
return this.indexCache;
|
|
330
380
|
}
|
|
331
381
|
try {
|
|
332
382
|
const index = JSON.parse(data);
|
|
333
383
|
if (isChatSessionIndex(index)) {
|
|
334
384
|
this.indexCache = index;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
this.
|
|
338
|
-
|
|
385
|
+
} else {
|
|
386
|
+
this.reportError("invalidIndexFormat", `Invalid index format: ${data}`);
|
|
387
|
+
this.indexCache = {
|
|
388
|
+
version: 1,
|
|
389
|
+
entries: {}
|
|
390
|
+
};
|
|
339
391
|
}
|
|
340
392
|
return this.indexCache;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
this.
|
|
344
|
-
|
|
393
|
+
} catch (e) {
|
|
394
|
+
this.reportError("invalidIndexJSON", `Index corrupt: ${data}`, e);
|
|
395
|
+
this.indexCache = {
|
|
396
|
+
version: 1,
|
|
397
|
+
entries: {}
|
|
398
|
+
};
|
|
345
399
|
return this.indexCache;
|
|
346
400
|
}
|
|
347
401
|
}
|
|
@@ -360,7 +414,7 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
360
414
|
}
|
|
361
415
|
logIndex() {
|
|
362
416
|
const data = this.storageService.get(ChatIndexStorageKey, this.getIndexStorageScope(), undefined);
|
|
363
|
-
this.logService.info(
|
|
417
|
+
this.logService.info("ChatSessionStore index: ", data);
|
|
364
418
|
}
|
|
365
419
|
async migrateDataIfNeeded(getInitialData) {
|
|
366
420
|
await this.storeQueue.queue(async () => {
|
|
@@ -376,8 +430,10 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
376
430
|
}
|
|
377
431
|
async migrate(initialData) {
|
|
378
432
|
const numSessions = ( Object.keys(initialData)).length;
|
|
379
|
-
this.logService.info(
|
|
380
|
-
|
|
433
|
+
this.logService.info(
|
|
434
|
+
`ChatSessionStore: Migrating ${numSessions} chat sessions from storage service to file system`
|
|
435
|
+
);
|
|
436
|
+
await Promise.all(( ( Object.values(initialData)).map(async session => {
|
|
381
437
|
await this.writeSession(session);
|
|
382
438
|
})));
|
|
383
439
|
await this.flushIndex();
|
|
@@ -385,42 +441,64 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
385
441
|
async readSession(sessionId) {
|
|
386
442
|
return await this.storeQueue.queue(async () => {
|
|
387
443
|
const storageLocation = this.getStorageLocation(sessionId);
|
|
388
|
-
return this.readSessionFromLocation(storageLocation, sessionId);
|
|
444
|
+
return this.readSessionFromLocation(storageLocation.flat, storageLocation.log, sessionId);
|
|
389
445
|
});
|
|
390
446
|
}
|
|
391
|
-
async readSessionFromLocation(
|
|
447
|
+
async readSessionFromLocation(flatStorageLocation, logStorageLocation, sessionId) {
|
|
448
|
+
let fromLocation = flatStorageLocation;
|
|
392
449
|
let rawData;
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
rawData = await this.readSessionFromPreviousLocation(sessionId);
|
|
450
|
+
if (logStorageLocation) {
|
|
451
|
+
try {
|
|
452
|
+
rawData = (await this.fileService.readFile(logStorageLocation)).value;
|
|
453
|
+
fromLocation = logStorageLocation;
|
|
454
|
+
} catch (e) {
|
|
455
|
+
this.reportError("sessionReadFile", `Error reading log chat session file ${sessionId}`, e);
|
|
400
456
|
}
|
|
401
|
-
|
|
402
|
-
|
|
457
|
+
}
|
|
458
|
+
if (!rawData) {
|
|
459
|
+
try {
|
|
460
|
+
rawData = (await this.fileService.readFile(flatStorageLocation)).value;
|
|
461
|
+
fromLocation = flatStorageLocation;
|
|
462
|
+
} catch (e) {
|
|
463
|
+
this.reportError("sessionReadFile", `Error reading flat chat session file ${sessionId}`, e);
|
|
464
|
+
if (toFileOperationResult(e) === FileOperationResult.FILE_NOT_FOUND && this.previousEmptyWindowStorageRoot) {
|
|
465
|
+
rawData = await this.readSessionFromPreviousLocation(sessionId);
|
|
466
|
+
}
|
|
403
467
|
}
|
|
404
468
|
}
|
|
469
|
+
if (!rawData) {
|
|
470
|
+
return undefined;
|
|
471
|
+
}
|
|
405
472
|
try {
|
|
406
|
-
|
|
473
|
+
let session;
|
|
474
|
+
const log = ( new ChatSessionOperationLog());
|
|
475
|
+
if (fromLocation === logStorageLocation) {
|
|
476
|
+
session = revive(log.read(rawData));
|
|
477
|
+
} else {
|
|
478
|
+
session = revive(JSON.parse(( rawData.toString())));
|
|
479
|
+
}
|
|
407
480
|
for (const request of session.requests) {
|
|
408
481
|
if (Array.isArray(request.response)) {
|
|
409
|
-
request.response = ( request.response.map(
|
|
410
|
-
if (typeof response ===
|
|
482
|
+
request.response = ( request.response.map(response => {
|
|
483
|
+
if (typeof response === "string") {
|
|
411
484
|
return ( new MarkdownString(response));
|
|
412
485
|
}
|
|
413
486
|
return response;
|
|
414
487
|
}));
|
|
415
|
-
}
|
|
416
|
-
else if (typeof request.response === 'string') {
|
|
488
|
+
} else if (typeof request.response === "string") {
|
|
417
489
|
request.response = [( new MarkdownString(request.response))];
|
|
418
490
|
}
|
|
419
491
|
}
|
|
420
|
-
return
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
492
|
+
return {
|
|
493
|
+
value: normalizeSerializableChatData(session),
|
|
494
|
+
serializer: log
|
|
495
|
+
};
|
|
496
|
+
} catch (err) {
|
|
497
|
+
this.reportError(
|
|
498
|
+
"malformedSession",
|
|
499
|
+
`Malformed session data in ${fromLocation.fsPath}: [${( rawData.slice(0, 20).toString())}${rawData.byteLength > 20 ? "..." : ""}]`,
|
|
500
|
+
err
|
|
501
|
+
);
|
|
424
502
|
return undefined;
|
|
425
503
|
}
|
|
426
504
|
}
|
|
@@ -429,18 +507,24 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
429
507
|
if (this.previousEmptyWindowStorageRoot) {
|
|
430
508
|
const storageLocation2 = joinPath(this.previousEmptyWindowStorageRoot, `${sessionId}.json`);
|
|
431
509
|
try {
|
|
432
|
-
rawData = (
|
|
510
|
+
rawData = (await this.fileService.readFile(storageLocation2)).value;
|
|
433
511
|
this.logService.info(`ChatSessionStore: Read chat session ${sessionId} from previous location`);
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
|
|
512
|
+
} catch (e) {
|
|
513
|
+
this.reportError(
|
|
514
|
+
"sessionReadFile",
|
|
515
|
+
`Error reading chat session file ${sessionId} from previous location`,
|
|
516
|
+
e
|
|
517
|
+
);
|
|
437
518
|
return undefined;
|
|
438
519
|
}
|
|
439
520
|
}
|
|
440
521
|
return rawData;
|
|
441
522
|
}
|
|
442
523
|
getStorageLocation(chatSessionId) {
|
|
443
|
-
return
|
|
524
|
+
return {
|
|
525
|
+
flat: joinPath(this.storageRoot, `${chatSessionId}.json`),
|
|
526
|
+
log: this.configurationService.getValue("chat.useLogSessionStorage") !== false ? joinPath(this.storageRoot, `${chatSessionId}.jsonl`) : undefined
|
|
527
|
+
};
|
|
444
528
|
}
|
|
445
529
|
getTransferredSessionStorageLocation(sessionResource) {
|
|
446
530
|
const sessionId = LocalChatSessionUri.parseLocalSessionId(sessionResource);
|
|
@@ -450,32 +534,19 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
450
534
|
return this.storageRoot;
|
|
451
535
|
}
|
|
452
536
|
};
|
|
453
|
-
ChatSessionStore = ChatSessionStore_1 = ( __decorate([
|
|
454
|
-
( __param(0, IFileService)),
|
|
455
|
-
( __param(1, IEnvironmentService)),
|
|
456
|
-
( __param(2, ILogService)),
|
|
457
|
-
( __param(3, IWorkspaceContextService)),
|
|
458
|
-
( __param(4, ITelemetryService)),
|
|
459
|
-
( __param(5, IStorageService)),
|
|
460
|
-
( __param(6, ILifecycleService)),
|
|
461
|
-
( __param(7, IUserDataProfilesService))
|
|
462
|
-
], ChatSessionStore));
|
|
537
|
+
ChatSessionStore = ChatSessionStore_1 = ( __decorate([( __param(0, IFileService)), ( __param(1, IEnvironmentService)), ( __param(2, ILogService)), ( __param(3, IWorkspaceContextService)), ( __param(4, ITelemetryService)), ( __param(5, IStorageService)), ( __param(6, ILifecycleService)), ( __param(7, IUserDataProfilesService)), ( __param(8, IConfigurationService))], ChatSessionStore));
|
|
463
538
|
function isChatSessionEntryMetadata(obj) {
|
|
464
|
-
return (!!obj &&
|
|
465
|
-
typeof obj === 'object' &&
|
|
466
|
-
typeof obj.sessionId === 'string' &&
|
|
467
|
-
typeof obj.title === 'string' &&
|
|
468
|
-
typeof obj.lastMessageDate === 'number');
|
|
539
|
+
return (!!obj && typeof obj === "object" && typeof obj.sessionId === "string" && typeof obj.title === "string" && typeof obj.lastMessageDate === "number");
|
|
469
540
|
}
|
|
470
541
|
function isChatSessionIndex(data) {
|
|
471
|
-
if (typeof data !==
|
|
542
|
+
if (typeof data !== "object" || data === null) {
|
|
472
543
|
return false;
|
|
473
544
|
}
|
|
474
545
|
const index = data;
|
|
475
546
|
if (index.version !== 1) {
|
|
476
547
|
return false;
|
|
477
548
|
}
|
|
478
|
-
if (typeof index.entries !==
|
|
549
|
+
if (typeof index.entries !== "object" || index.entries === null) {
|
|
479
550
|
return false;
|
|
480
551
|
}
|
|
481
552
|
for (const key in index.entries) {
|
|
@@ -491,25 +562,28 @@ async function getSessionMetadata(session) {
|
|
|
491
562
|
if (session instanceof ChatModel) {
|
|
492
563
|
stats = await awaitStatsForSession(session);
|
|
493
564
|
}
|
|
494
|
-
const
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
565
|
+
const lastMessageDate = session instanceof ChatModel ? session.lastMessageDate : session.requests.at(-1)?.timestamp ?? session.creationDate;
|
|
566
|
+
const timing = session instanceof ChatModel ? session.timing :
|
|
567
|
+
{
|
|
568
|
+
created: session.creationDate,
|
|
569
|
+
lastRequestStarted: session.requests.at(-1)?.timestamp,
|
|
570
|
+
lastRequestEnded: lastMessageDate
|
|
571
|
+
};
|
|
572
|
+
let lastResponseState = session instanceof ChatModel ? (session.lastRequest?.response?.state ?? ResponseModelState.Complete) : ResponseModelState.Complete;
|
|
573
|
+
if (lastResponseState === ResponseModelState.Pending || lastResponseState === ResponseModelState.NeedsInput) {
|
|
574
|
+
lastResponseState = ResponseModelState.Cancelled;
|
|
575
|
+
}
|
|
500
576
|
return {
|
|
501
577
|
sessionId: session.sessionId,
|
|
502
|
-
title: title || ( localize(
|
|
503
|
-
lastMessageDate
|
|
578
|
+
title: title || ( localize(6254, "New Chat")),
|
|
579
|
+
lastMessageDate,
|
|
504
580
|
timing,
|
|
505
581
|
initialLocation: session.initialLocation,
|
|
506
582
|
hasPendingEdits: session instanceof ChatModel ? (session.editingSession?.entries.get().some(e => e.state.get() === ModifiedFileEntryState.Modified)) : false,
|
|
507
583
|
isEmpty: session instanceof ChatModel ? session.getRequests().length === 0 : session.requests.length === 0,
|
|
508
584
|
stats,
|
|
509
585
|
isExternal: session instanceof ChatModel && !LocalChatSessionUri.parseLocalSessionId(session.sessionResource),
|
|
510
|
-
lastResponseState
|
|
511
|
-
(session.lastRequest?.response?.state ?? ResponseModelState.Complete) :
|
|
512
|
-
ResponseModelState.Complete
|
|
586
|
+
lastResponseState
|
|
513
587
|
};
|
|
514
588
|
}
|
|
515
589
|
|