@codingame/monaco-vscode-workbench-service-override 37.6.1 → 38.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/common.js +2 -0
- package/index.js +9 -10
- package/package.json +10 -10
- package/session.js +45 -42
- package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.d.ts +1 -0
- package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.js +12 -0
- package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.d.ts → desktopWorkbench.d.ts} +6 -5
- package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.js → desktopWorkbench.js} +23 -25
- package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.d.ts +5 -2
- package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.js +41 -3
- package/vscode/src/vs/sessions/browser/layoutActions.js +25 -41
- package/vscode/src/vs/sessions/browser/mobileWorkbench.d.ts +4 -0
- package/vscode/src/vs/sessions/browser/mobileWorkbench.js +10 -0
- package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.d.ts +10 -5
- package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +138 -34
- package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.d.ts +2 -0
- package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.js +13 -5
- package/vscode/src/vs/sessions/browser/parts/chatGroupView.d.ts +27 -5
- package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +129 -28
- package/vscode/src/vs/sessions/browser/parts/chatGroupsView.d.ts +22 -7
- package/vscode/src/vs/sessions/browser/parts/chatGroupsView.js +260 -21
- package/vscode/src/vs/sessions/browser/parts/chatHeader.d.ts +25 -0
- package/vscode/src/vs/sessions/browser/parts/chatHeader.js +42 -0
- package/vscode/src/vs/sessions/browser/parts/customViewGridPart.js +9 -1
- package/vscode/src/vs/sessions/browser/parts/customViewNode.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/{singlePaneAuxiliaryBarPart.d.ts → desktopAuxiliaryBarPart.d.ts} +4 -4
- package/vscode/src/vs/sessions/browser/parts/desktopAuxiliaryBarPart.js +26 -0
- package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.d.ts → desktopEditorPart.d.ts} +8 -6
- package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.js → desktopEditorPart.js} +25 -5
- package/vscode/src/vs/sessions/browser/parts/editorPart.js +16 -4
- package/vscode/src/vs/sessions/browser/parts/editorParts.d.ts +1 -1
- package/vscode/src/vs/sessions/browser/parts/editorParts.js +7 -6
- package/vscode/src/vs/sessions/browser/parts/gridGap.d.ts +14 -0
- package/vscode/src/vs/sessions/browser/parts/gridGap.js +69 -0
- package/vscode/src/vs/sessions/browser/parts/media/chatCompositeBar.css +132 -4
- package/vscode/src/vs/sessions/browser/parts/media/chatGroupsView.css +10 -0
- package/vscode/src/vs/sessions/browser/parts/media/editorPart.css +46 -2
- package/vscode/src/vs/sessions/browser/parts/media/sessionReadOnlyBanner.css +3 -3
- package/vscode/src/vs/sessions/browser/parts/media/sessionView.css +45 -48
- package/vscode/src/vs/sessions/browser/parts/media/sessionsPart.css +15 -0
- package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +8 -8
- package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.d.ts +9 -1
- package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.js +21 -3
- package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.d.ts +4 -3
- package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.js +29 -15
- package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.d.ts +67 -0
- package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.js +598 -0
- package/vscode/src/vs/sessions/browser/parts/sessionHeader.d.ts +11 -84
- package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +37 -317
- package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.d.ts +103 -0
- package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.js +391 -0
- package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.d.ts +6 -4
- package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +58 -28
- package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.d.ts +4 -0
- package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +66 -23
- package/vscode/src/vs/sessions/browser/parts/sessionView.d.ts +24 -5
- package/vscode/src/vs/sessions/browser/parts/sessionView.js +143 -33
- package/vscode/src/vs/sessions/browser/parts/sessionsPart.d.ts +25 -19
- package/vscode/src/vs/sessions/browser/parts/sessionsPart.js +157 -58
- package/vscode/src/vs/sessions/browser/parts/sessionsParts.d.ts +12 -3
- package/vscode/src/vs/sessions/browser/parts/sessionsParts.js +17 -2
- package/vscode/src/vs/sessions/browser/sessionWorkspace.d.ts +6 -3
- package/vscode/src/vs/sessions/browser/sessionWorkspace.js +2 -2
- package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +66 -20
- package/vscode/src/vs/sessions/browser/sessionsSignInDialog.d.ts +1 -0
- package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +5 -4
- package/vscode/src/vs/sessions/browser/workbenchFactory.d.ts +12 -0
- package/vscode/src/vs/sessions/browser/workbenchFactory.js +17 -0
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.d.ts +85 -1
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +118 -100
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.d.ts +3 -2
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +39 -34
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountTitleBarWidget.css +6 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.d.ts +3 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.js +6 -0
- package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.js +18 -18
- package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.js +12 -12
- package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.js +7 -7
- package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.js +12 -12
- package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.js +10 -10
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.d.ts +78 -8
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.js +1166 -202
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.d.ts +11 -1
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +190 -69
- package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.d.ts +11 -9
- package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +122 -233
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.d.ts +22 -0
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.js +62 -0
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.d.ts +7 -2
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +172 -84
- package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +17 -7
- package/vscode/src/vs/sessions/contrib/automations/browser/media/automationDialog.css +242 -60
- package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.d.ts +24 -36
- package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +104 -420
- package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +15 -14
- package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.d.ts +13 -3
- package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +66 -43
- package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.js +2 -7
- package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +54 -59
- package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +7 -7
- package/vscode/src/vs/sessions/contrib/changes/browser/media/changesActions.css +6 -0
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +25 -21
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +21 -27
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +17 -17
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.d.ts +5 -5
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.js +2 -2
- package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +2 -2
- package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.js +9 -16
- package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +7 -7
- package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +10 -10
- package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.d.ts +13 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +104 -117
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +8 -7
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.js +5 -5
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.js +1 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/media/editorBreadcrumbs.css +0 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/media/editorHeader.css +1 -1
- package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.d.ts +7 -0
- package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.js +77 -13
- package/vscode/src/vs/sessions/contrib/files/browser/filesView.d.ts +2 -1
- package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +14 -4
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.d.ts +45 -10
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +527 -77
- package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.d.ts +18 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.js +95 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.d.ts → desktop/desktopDetailPanelCoordinator.d.ts} +5 -4
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.js → desktop/desktopDetailPanelCoordinator.js} +10 -7
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.d.ts → desktop/desktopDockedTabsCoordinator.d.ts} +15 -12
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.js → desktop/desktopDockedTabsCoordinator.js} +91 -44
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.d.ts → desktop/desktopDraftSessionStrategy.d.ts} +10 -5
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.js → desktop/desktopDraftSessionStrategy.js} +95 -22
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.d.ts → desktop/desktopExistingSessionStrategy.d.ts} +13 -11
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.js → desktop/desktopExistingSessionStrategy.js} +137 -57
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.d.ts → desktop/desktopLayoutStrategy.d.ts} +22 -13
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.js → desktop/desktopLayoutStrategy.js} +2 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.d.ts +22 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.js +136 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneSharedHelpers.d.ts → desktop/desktopSharedHelpers.d.ts} +9 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopSharedHelpers.js +56 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.d.ts → desktop/desktopVisibilityProfileStore.d.ts} +3 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.js → desktop/desktopVisibilityProfileStore.js} +10 -9
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.d.ts +71 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.js +201 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.d.ts +8 -1
- package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +35 -35
- package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.d.ts +39 -0
- package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.js +73 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.d.ts +42 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.js +14 -10
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.js +3 -4
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.d.ts +2 -2
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.js +13 -9
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.js +20 -5
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.d.ts +8 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.js +19 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +21 -20
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +10 -5
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +12 -8
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.d.ts +3 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +12 -7
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.d.ts +9 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +46 -19
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.js +2 -0
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/media/sessionsPolicyBlocked.css +33 -0
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.d.ts +4 -2
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.js +29 -8
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.d.ts +15 -2
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +169 -32
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.js +30 -8
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js +8 -34
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.js +63 -49
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.js +1 -1
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.js +31 -17
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.d.ts +32 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.js +250 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.d.ts +6 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.js +52 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.d.ts +51 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.js +439 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.d.ts +45 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.js +595 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.d.ts +20 -3
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +360 -46
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.d.ts +9 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.js +59 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/media/connectionDiagnostics.css +201 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.d.ts +10 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.js +70 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.d.ts +20 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.js +104 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.d.ts +15 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.js +152 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.d.ts +49 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.js +340 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.d.ts +41 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.js +400 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.d.ts +28 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.js +178 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.d.ts +17 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.js +206 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.js +58 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.d.ts +10 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.js +90 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.d.ts +38 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.js +58 -0
- package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +4 -5
- package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +1 -1
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.js +33 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.d.ts +30 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.js +190 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.d.ts +31 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.js +559 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.d.ts +12 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.js +38 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.d.ts +13 -4
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +155 -22
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +9 -5
- package/vscode/src/vs/sessions/contrib/sessions/browser/media/automationsCards.css +90 -25
- package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css +21 -4
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.d.ts +2 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +11 -7
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.d.ts +116 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +126 -30
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.d.ts +26 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.js +160 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.d.ts +14 -6
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +555 -151
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.d.ts +192 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.js +510 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.d.ts +6 -7
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.js +64 -57
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.d.ts +5 -3
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +83 -51
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.d.ts +5 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +33 -12
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.d.ts +3 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.js +53 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +10 -10
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.d.ts +2 -2
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +103 -55
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.d.ts +7 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +679 -325
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.d.ts +27 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +508 -163
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.d.ts +20 -2
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.js +100 -17
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.d.ts +5 -1
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.js +108 -30
- package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.d.ts +5 -3
- package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.js +47 -35
- package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.d.ts +9 -4
- package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.js +75 -25
- package/vscode/src/vs/sessions/services/customView/browser/customViewService.d.ts +11 -4
- package/vscode/src/vs/sessions/services/customView/browser/customViewService.js +17 -9
- package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.d.ts +5 -0
- package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.js +20 -2
- package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.d.ts +75 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.js +1135 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.d.ts +17 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.js +99 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.d.ts +4 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.js +88 -23
- package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.d.ts +19 -26
- package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.js +115 -74
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.js +1 -1
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.d.ts +22 -7
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +278 -60
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.d.ts +17 -20
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.js +33 -22
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.d.ts +28 -8
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +673 -160
- package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.d.ts +13 -4
- package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.js +105 -15
- package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.js +53 -34
- package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.js +1 -1
- package/vscode/src/vs/workbench/browser/layout.js +1 -1
- package/vscode/src/vs/workbench/browser/workbench.d.ts +0 -2
- package/vscode/src/vs/workbench/browser/workbench.js +23 -20
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +41 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.js +56 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +0 -18
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.js +0 -27
- package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.js +0 -36
- package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.d.ts +0 -37
- package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.js +0 -126
- package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.d.ts +0 -59
- package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +0 -232
- package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.d.ts +0 -13
- package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.js +0 -22
- package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +0 -45
- package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +0 -110
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.d.ts +0 -112
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.js +0 -444
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.js +0 -43
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.d.ts +0 -55
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.js +0 -91
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.d.ts +0 -26
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +0 -98
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +0 -33
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +0 -98
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +0 -2
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +0 -13
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +0 -122
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +0 -464
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +0 -35
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +0 -90
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +0 -84
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +0 -328
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +0 -174
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +0 -1390
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +0 -44
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +0 -30
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +0 -78
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +0 -11
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +0 -26
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.d.ts +0 -27
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.js +0 -26
|
@@ -3,30 +3,33 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
|
|
|
3
3
|
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
4
4
|
import { raceCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
5
5
|
import { CancellationTokenSource, CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
6
|
-
import { CancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
6
|
+
import { isCancellationError, CancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
7
|
+
import { toErrorMessage } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errorMessage';
|
|
7
8
|
import { Disposable, DisposableMap, DisposableStore, toDisposable, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
8
9
|
import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
|
|
9
10
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
10
11
|
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
12
|
+
import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
|
|
11
13
|
import { agentHostAuthority } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/agentHostUri';
|
|
12
14
|
import { IRemoteAgentHostService } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService.service';
|
|
13
15
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
|
|
14
16
|
import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
15
17
|
import { IChatWidgetHistoryService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/widget/chatWidgetHistoryService.service';
|
|
16
18
|
import { dedupeMigratedCopilotCliSessions, getCopilotCliSessionRawId, buildHostLocalEventsPath } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/copilotCliEventsUri';
|
|
17
|
-
import
|
|
19
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService';
|
|
18
20
|
import { IUriIdentityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service';
|
|
19
21
|
import { getSessionReferenceResource } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionReference';
|
|
20
22
|
import { WorkspaceNotTrustedError } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement';
|
|
21
23
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
22
24
|
import { ISessionsProvidersService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service';
|
|
23
|
-
import { SessionStatus, ChatModelSource } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
|
|
25
|
+
import { SessionStatus, ChatModelSource, isActiveSessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
|
|
24
26
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
|
|
25
27
|
import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
|
|
26
28
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
27
29
|
import { IWorkspaceTrustManagementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service';
|
|
28
30
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
29
31
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
32
|
+
import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/platform/path/common/pathService.service';
|
|
30
33
|
|
|
31
34
|
const LAST_USED_QUICK_CHAT_SESSION_TYPE_STORAGE_KEY = "sessions.quickChat.lastUsedSessionType";
|
|
32
35
|
let SessionsManagementService = class SessionsManagementService extends Disposable {
|
|
@@ -39,7 +42,8 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
39
42
|
storageService,
|
|
40
43
|
pathService,
|
|
41
44
|
remoteAgentHostService,
|
|
42
|
-
workspaceTrustManagementService
|
|
45
|
+
workspaceTrustManagementService,
|
|
46
|
+
notificationService
|
|
43
47
|
) {
|
|
44
48
|
super();
|
|
45
49
|
this.logService = logService;
|
|
@@ -51,6 +55,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
51
55
|
this.pathService = pathService;
|
|
52
56
|
this.remoteAgentHostService = remoteAgentHostService;
|
|
53
57
|
this.workspaceTrustManagementService = workspaceTrustManagementService;
|
|
58
|
+
this.notificationService = notificationService;
|
|
54
59
|
this._onDidChangeSessions = this._register(( new Emitter()));
|
|
55
60
|
this.onDidChangeSessions = this._onDidChangeSessions.event;
|
|
56
61
|
this._onDidStartSession = this._register(( new Emitter()));
|
|
@@ -75,6 +80,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
75
80
|
this.onDidChangeSessionTypes = this._onDidChangeSessionTypes.event;
|
|
76
81
|
this._onDidReplaceSession = this._register(( new Emitter()));
|
|
77
82
|
this.onDidReplaceSession = this._onDidReplaceSession.event;
|
|
83
|
+
this._explicitlyMarkedUnreadMainChats = ( new ResourceMap());
|
|
78
84
|
this._onDidDiscardNewSession = this._register(( new Emitter()));
|
|
79
85
|
this.onDidDiscardNewSession = this._onDidDiscardNewSession.event;
|
|
80
86
|
this._onDidReplaceNewDraftSession = this._register(( new Emitter()));
|
|
@@ -124,13 +130,23 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
124
130
|
for (const provider of e.removed) {
|
|
125
131
|
this._providerListeners.deleteAndDispose(provider.id);
|
|
126
132
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
133
|
+
const added = this._subscribeToProviders(e.added);
|
|
134
|
+
this._onDidChangeSessions.fire({
|
|
135
|
+
added,
|
|
136
|
+
removed: [],
|
|
137
|
+
changed: []
|
|
138
|
+
});
|
|
130
139
|
}
|
|
131
140
|
_subscribeToProviders(providers) {
|
|
141
|
+
const added = [];
|
|
132
142
|
for (const provider of providers) {
|
|
143
|
+
const sessions = provider.getSessions();
|
|
144
|
+
if (this.sessionsProvidersService.getProvider(provider.id) !== provider) {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
133
147
|
const disposables = ( new DisposableStore());
|
|
148
|
+
this._providerListeners.set(provider.id, disposables);
|
|
149
|
+
added.push(...sessions);
|
|
134
150
|
disposables.add(
|
|
135
151
|
provider.onDidChangeSessions(e => this.onDidChangeSessionsFromSessionsProviders(e))
|
|
136
152
|
);
|
|
@@ -142,10 +158,11 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
142
158
|
if (provider.onDidChangeSessionTypes) {
|
|
143
159
|
disposables.add(provider.onDidChangeSessionTypes(() => this._updateSessionTypes()));
|
|
144
160
|
}
|
|
145
|
-
this._providerListeners.set(provider.id, disposables);
|
|
146
161
|
}
|
|
162
|
+
return added;
|
|
147
163
|
}
|
|
148
164
|
_handleDidReplaceSession(from, to) {
|
|
165
|
+
this._explicitlyMarkedUnreadMainChats.delete(from.resource);
|
|
149
166
|
this.chatWidgetHistoryService.moveHistory(ChatAgentLocation.Chat, from.sessionId, to.sessionId);
|
|
150
167
|
this._onDidReplaceSession.fire({
|
|
151
168
|
from,
|
|
@@ -190,25 +207,67 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
190
207
|
return resource;
|
|
191
208
|
}
|
|
192
209
|
getSessions() {
|
|
193
|
-
|
|
210
|
+
const sessions = this._getMergedSessions();
|
|
211
|
+
for (const {
|
|
212
|
+
session
|
|
213
|
+
} of ( this._inFlightNewSessionRequests.values())) {
|
|
214
|
+
if (!( sessions.some(
|
|
215
|
+
candidate => this.uriIdentityService.extUri.isEqual(candidate.resource, session.resource)
|
|
216
|
+
))) {
|
|
217
|
+
sessions.push(session);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return this._dedupeMigratedCopilotCliSessions(sessions);
|
|
194
221
|
}
|
|
195
222
|
getInFlightNewSessionRequests() {
|
|
196
223
|
return Array.from(( this._inFlightNewSessionRequests.values()), entry => entry.session);
|
|
197
224
|
}
|
|
198
|
-
|
|
225
|
+
getInFlightNewSessionRequest(resource) {
|
|
226
|
+
return this._inFlightNewSessionRequests.get(resource)?.input;
|
|
227
|
+
}
|
|
228
|
+
trackInFlightNewSessionRequest(session, options) {
|
|
199
229
|
const entry = this._inFlightNewSessionRequests.get(session.resource);
|
|
200
230
|
if (entry) {
|
|
201
231
|
entry.count++;
|
|
202
232
|
} else {
|
|
233
|
+
const published = !( this._getMergedSessions().some(
|
|
234
|
+
candidate => this.uriIdentityService.extUri.isEqual(candidate.resource, session.resource)
|
|
235
|
+
));
|
|
203
236
|
this._inFlightNewSessionRequests.set(session.resource, {
|
|
204
237
|
session,
|
|
238
|
+
input: options ? {
|
|
239
|
+
query: options.query,
|
|
240
|
+
attachedContext: options.attachedContext?.slice()
|
|
241
|
+
} : undefined,
|
|
242
|
+
published,
|
|
205
243
|
count: 1
|
|
206
244
|
});
|
|
245
|
+
if (published) {
|
|
246
|
+
this._onDidChangeSessions.fire({
|
|
247
|
+
added: [session],
|
|
248
|
+
removed: [],
|
|
249
|
+
changed: []
|
|
250
|
+
});
|
|
251
|
+
}
|
|
207
252
|
}
|
|
208
253
|
return toDisposable(() => {
|
|
209
254
|
const current = this._inFlightNewSessionRequests.get(session.resource);
|
|
210
255
|
if (current?.count === 1) {
|
|
211
256
|
this._inFlightNewSessionRequests.delete(session.resource);
|
|
257
|
+
if (current.published) {
|
|
258
|
+
const listedSession = this._getMergedSessions().find(
|
|
259
|
+
candidate => this.uriIdentityService.extUri.isEqual(candidate.resource, session.resource)
|
|
260
|
+
);
|
|
261
|
+
this._onDidChangeSessions.fire(listedSession ? {
|
|
262
|
+
added: [],
|
|
263
|
+
removed: [],
|
|
264
|
+
changed: [listedSession]
|
|
265
|
+
} : {
|
|
266
|
+
added: [],
|
|
267
|
+
removed: [],
|
|
268
|
+
changed: []
|
|
269
|
+
});
|
|
270
|
+
}
|
|
212
271
|
} else if (current) {
|
|
213
272
|
current.count--;
|
|
214
273
|
}
|
|
@@ -250,6 +309,10 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
250
309
|
}
|
|
251
310
|
return undefined;
|
|
252
311
|
}
|
|
312
|
+
getSessionContextReference(resource) {
|
|
313
|
+
const ownedChat = this.getSessionForChatResource(resource);
|
|
314
|
+
return ownedChat ? this._getProvider(ownedChat.session)?.getSessionContextReference?.(ownedChat.chat.resource) : undefined;
|
|
315
|
+
}
|
|
253
316
|
getAllSessionTypes() {
|
|
254
317
|
return [...this._sessionTypes];
|
|
255
318
|
}
|
|
@@ -370,7 +433,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
370
433
|
let provider;
|
|
371
434
|
let workspace;
|
|
372
435
|
let sessionTypeId;
|
|
373
|
-
const requiresWorktreeConfiguration = options?.isolationMode === "worktree" || options?.
|
|
436
|
+
const requiresWorktreeConfiguration = options?.isolationMode === "worktree" || options?.branch !== undefined || options?.pullRequestUrl !== undefined;
|
|
374
437
|
const resolveSessionTypeId = candidate => {
|
|
375
438
|
const sessionTypes = candidate.getSessionTypes(folderUri);
|
|
376
439
|
if (options?.sessionTypeId) {
|
|
@@ -443,7 +506,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
443
506
|
const session = provider.createNewSession(
|
|
444
507
|
folderUri,
|
|
445
508
|
sessionTypeId,
|
|
446
|
-
this._providerCreateSessionOptions(provider, options)
|
|
509
|
+
this._providerCreateSessionOptions(provider, sessionTypeId, options)
|
|
447
510
|
);
|
|
448
511
|
if (previousNewSession && previousNewSession.sessionId !== session.sessionId) {
|
|
449
512
|
this._getProvider(previousNewSession)?.deleteNewSession(previousNewSession.sessionId);
|
|
@@ -460,12 +523,17 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
460
523
|
provider,
|
|
461
524
|
sessionTypeId
|
|
462
525
|
} = this._resolveProviderForNewSession(folderUri, options);
|
|
526
|
+
if (provider.automations?.catalogueState.get() !== "ready") {
|
|
527
|
+
throw ( new Error(( localize(
|
|
528
|
+
6336,
|
|
529
|
+
"The selected provider does not currently provide Automation configuration."
|
|
530
|
+
))));
|
|
531
|
+
}
|
|
463
532
|
const previousAutomationSession = this._automationSession.get();
|
|
464
|
-
const session = provider.createNewSession(
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
);
|
|
533
|
+
const session = provider.createNewSession(folderUri, sessionTypeId, {
|
|
534
|
+
...this._providerCreateSessionOptions(provider, sessionTypeId, options),
|
|
535
|
+
isAutomationDraft: true
|
|
536
|
+
});
|
|
469
537
|
if (previousAutomationSession && previousAutomationSession.sessionId !== session.sessionId) {
|
|
470
538
|
this._getProvider(previousAutomationSession)?.deleteNewSession(previousAutomationSession.sessionId);
|
|
471
539
|
}
|
|
@@ -525,7 +593,10 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
525
593
|
sessionTypeId
|
|
526
594
|
} = this._resolveProviderForQuickChat(options);
|
|
527
595
|
const previousNewSession = this._newSession.get();
|
|
528
|
-
const session = provider.createQuickChat(
|
|
596
|
+
const session = provider.createQuickChat(
|
|
597
|
+
sessionTypeId,
|
|
598
|
+
this._providerCreateSessionOptions(provider, sessionTypeId, options)
|
|
599
|
+
);
|
|
529
600
|
this._newSession.set(session, undefined);
|
|
530
601
|
this.storageService.store(
|
|
531
602
|
LAST_USED_QUICK_CHAT_SESSION_TYPE_STORAGE_KEY,
|
|
@@ -543,26 +614,64 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
543
614
|
provider,
|
|
544
615
|
sessionTypeId
|
|
545
616
|
} = this._resolveProviderForQuickChat(options);
|
|
617
|
+
if (provider.automations?.catalogueState.get() !== "ready") {
|
|
618
|
+
throw ( new Error(( localize(
|
|
619
|
+
6336,
|
|
620
|
+
"The selected provider does not currently provide Automation configuration."
|
|
621
|
+
))));
|
|
622
|
+
}
|
|
546
623
|
const previousAutomationSession = this._automationSession.get();
|
|
547
|
-
const session = provider.createQuickChat(sessionTypeId,
|
|
624
|
+
const session = provider.createQuickChat(sessionTypeId, {
|
|
625
|
+
...this._providerCreateSessionOptions(provider, sessionTypeId, options),
|
|
626
|
+
isAutomationDraft: true
|
|
627
|
+
});
|
|
548
628
|
if (previousAutomationSession && previousAutomationSession.sessionId !== session.sessionId) {
|
|
549
629
|
this._getProvider(previousAutomationSession)?.deleteNewSession(previousAutomationSession.sessionId);
|
|
550
630
|
}
|
|
551
631
|
this._automationSession.set(session, undefined);
|
|
552
632
|
return session;
|
|
553
633
|
}
|
|
554
|
-
_providerCreateSessionOptions(provider, options) {
|
|
634
|
+
_providerCreateSessionOptions(provider, sessionTypeId, options) {
|
|
555
635
|
const sessionTemplate = options?.sessionTemplate ?? options?.automationConfiguration?.sessionTemplate;
|
|
556
636
|
if (sessionTemplate && provider.supportsAutomationSessionConfiguration !== true) {
|
|
557
637
|
throw ( new Error(
|
|
558
638
|
`Sessions provider '${provider.id}' does not support Automation session templates.`
|
|
559
639
|
));
|
|
560
640
|
}
|
|
641
|
+
if (options?.modelConfiguration && !options.modelId) {
|
|
642
|
+
throw ( new Error("Session model configuration requires a model identifier."));
|
|
643
|
+
}
|
|
644
|
+
if (options?.modelConfiguration && provider.supportsModelConfigurationForCreation !== true) {
|
|
645
|
+
throw ( new Error(
|
|
646
|
+
`Sessions provider '${provider.id}' does not support model configuration during session creation.`
|
|
647
|
+
));
|
|
648
|
+
}
|
|
649
|
+
if (options?.permissionId && provider.supportsPermissionsForCreation !== true) {
|
|
650
|
+
throw ( new Error(
|
|
651
|
+
`Sessions provider '${provider.id}' does not support permission '${options.permissionId}' for session type '${sessionTypeId}'.`
|
|
652
|
+
));
|
|
653
|
+
}
|
|
561
654
|
const automationConfiguration = sessionTemplate ? {
|
|
562
655
|
sessionTemplate
|
|
563
656
|
} : options?.automationConfiguration;
|
|
564
657
|
return {
|
|
565
658
|
metadata: options?.metadata,
|
|
659
|
+
...(options?.createdBySession ? {
|
|
660
|
+
createdBySession: options.createdBySession
|
|
661
|
+
} : {}),
|
|
662
|
+
...(options?.modelId && options.modelConfiguration ? {
|
|
663
|
+
modelId: options.modelId,
|
|
664
|
+
modelConfiguration: options.modelConfiguration
|
|
665
|
+
} : {}),
|
|
666
|
+
...(options?.permissionId ? {
|
|
667
|
+
permissionId: options.permissionId
|
|
668
|
+
} : {}),
|
|
669
|
+
...(options?.modeId ? {
|
|
670
|
+
modeId: options.modeId
|
|
671
|
+
} : {}),
|
|
672
|
+
...(options?.pullRequestUrl ? {
|
|
673
|
+
pullRequestUrl: options.pullRequestUrl
|
|
674
|
+
} : {}),
|
|
566
675
|
...(automationConfiguration ? {
|
|
567
676
|
automationConfiguration
|
|
568
677
|
} : {})
|
|
@@ -636,7 +745,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
636
745
|
remainingAttachments = remaining;
|
|
637
746
|
}
|
|
638
747
|
}
|
|
639
|
-
const isTroubleshoot = /^\s*\/troubleshoot
|
|
748
|
+
const isTroubleshoot = /^\s*\/troubleshoot(?=\s|$)/.test(options.query);
|
|
640
749
|
if (!isTroubleshoot && referencedResources.length === 0) {
|
|
641
750
|
return options;
|
|
642
751
|
}
|
|
@@ -672,17 +781,21 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
672
781
|
throw ( new Error(`Sessions provider '${session.providerId}' not found`));
|
|
673
782
|
}
|
|
674
783
|
const isNewSessionRequest = session.status.get() === SessionStatus.Untitled;
|
|
675
|
-
const inFlightRequest = isNewSessionRequest ? this.trackInFlightNewSessionRequest(session) : undefined;
|
|
784
|
+
const inFlightRequest = isNewSessionRequest ? this.trackInFlightNewSessionRequest(session, options) : undefined;
|
|
676
785
|
if (options.background) {
|
|
677
786
|
this._newSession.set(undefined, undefined);
|
|
678
787
|
void this._prepareAndSendNewChatRequestInBackground(provider, session, options).catch(e => {
|
|
679
|
-
|
|
788
|
+
if (!isCancellationError(e) && !(e instanceof WorkspaceNotTrustedError)) {
|
|
789
|
+
this.logService.error("[SessionsManagement] Failed to send background request:", e);
|
|
790
|
+
this.notificationService.error(( localize(6337, "Failed to start session: {0}", toErrorMessage(e))));
|
|
791
|
+
}
|
|
680
792
|
}).finally(() => inFlightRequest?.dispose());
|
|
681
793
|
return;
|
|
682
794
|
}
|
|
683
795
|
const requestActivity = ( new MutableDisposable());
|
|
684
796
|
try {
|
|
685
797
|
requestActivity.value = provider.startNewSessionRequest?.(session.sessionId);
|
|
798
|
+
const newSessionConfig = provider.getNewSessionConfig ? await provider.getNewSessionConfig(session.sessionId) : undefined;
|
|
686
799
|
({
|
|
687
800
|
provider,
|
|
688
801
|
session
|
|
@@ -710,6 +823,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
710
823
|
chat,
|
|
711
824
|
isNewSession: true,
|
|
712
825
|
isNewChat: true,
|
|
826
|
+
newSessionConfig,
|
|
713
827
|
options
|
|
714
828
|
});
|
|
715
829
|
} finally {
|
|
@@ -775,12 +889,10 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
775
889
|
if (requestActivity) {
|
|
776
890
|
requestActivity.value = preparedRequestActivity;
|
|
777
891
|
}
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
});
|
|
783
|
-
}
|
|
892
|
+
this._onDidReplaceNewDraftSession.fire({
|
|
893
|
+
from: originalSession,
|
|
894
|
+
to: preparedSession
|
|
895
|
+
});
|
|
784
896
|
return {
|
|
785
897
|
provider: preparedProvider,
|
|
786
898
|
session: preparedSession
|
|
@@ -801,14 +913,14 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
801
913
|
const session = provider.createNewSession(
|
|
802
914
|
folderUri,
|
|
803
915
|
sessionTypeId,
|
|
804
|
-
this._providerCreateSessionOptions(provider, createOptions)
|
|
916
|
+
this._providerCreateSessionOptions(provider, sessionTypeId, createOptions)
|
|
805
917
|
);
|
|
806
918
|
this._unlistedNewSessions.set(session.resource, session);
|
|
807
919
|
const requestActivity = ( new MutableDisposable());
|
|
808
920
|
try {
|
|
809
921
|
try {
|
|
810
922
|
requestActivity.value = isDeferredNewSessionRequestOptions(options) ? provider.startNewSessionRequest?.(session.sessionId, options.activity) : provider.startNewSessionRequest?.(session.sessionId);
|
|
811
|
-
createOptions?.onSessionCreated?.(session);
|
|
923
|
+
await createOptions?.onSessionCreated?.(session);
|
|
812
924
|
} catch (error) {
|
|
813
925
|
provider.deleteNewSession(session.sessionId);
|
|
814
926
|
throw error;
|
|
@@ -834,7 +946,16 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
834
946
|
provider,
|
|
835
947
|
sessionTypeId
|
|
836
948
|
} = this._resolveProviderForQuickChat(createOptions);
|
|
837
|
-
const session = provider.createQuickChat(
|
|
949
|
+
const session = provider.createQuickChat(
|
|
950
|
+
sessionTypeId,
|
|
951
|
+
this._providerCreateSessionOptions(provider, sessionTypeId, createOptions)
|
|
952
|
+
);
|
|
953
|
+
try {
|
|
954
|
+
await createOptions?.onSessionCreated?.(session);
|
|
955
|
+
} catch (error) {
|
|
956
|
+
provider.deleteNewSession(session.sessionId);
|
|
957
|
+
throw error;
|
|
958
|
+
}
|
|
838
959
|
return this._configureAndSendNewSession(provider, session, options, createOptions, false, token);
|
|
839
960
|
}
|
|
840
961
|
async _configureAndSendNewSession(
|
|
@@ -871,8 +992,9 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
871
992
|
if (token.isCancellationRequested) {
|
|
872
993
|
throw ( new CancellationError());
|
|
873
994
|
}
|
|
995
|
+
const newSessionConfig = provider.getNewSessionConfig ? await raceCancellationError(provider.getNewSessionConfig(session.sessionId), token) : undefined;
|
|
874
996
|
return await raceCancellationError(
|
|
875
|
-
this._sendNewChatRequestInBackground(provider, session, resolvedOptions, token),
|
|
997
|
+
this._sendNewChatRequestInBackground(provider, session, resolvedOptions, newSessionConfig, token),
|
|
876
998
|
token
|
|
877
999
|
);
|
|
878
1000
|
} catch (e) {
|
|
@@ -905,12 +1027,10 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
905
1027
|
if (createOptions?.permissionLevel) {
|
|
906
1028
|
provider.setPermissionLevel?.(session.sessionId, createOptions.permissionLevel);
|
|
907
1029
|
}
|
|
908
|
-
if (supportsWorktreeConfiguration && (createOptions?.isolationMode || createOptions?.
|
|
1030
|
+
if (supportsWorktreeConfiguration && (createOptions?.isolationMode || createOptions?.branch)) {
|
|
909
1031
|
if (provider.setWorktreeConfiguration) {
|
|
910
1032
|
await raceCancellationError(provider.setWorktreeConfiguration(session.sessionId, {
|
|
911
1033
|
isolationMode: createOptions.isolationMode,
|
|
912
|
-
worktreeBranchTrack: createOptions.worktreeBranchTrack,
|
|
913
|
-
worktreeCreateNewBranch: createOptions.worktreeCreateNewBranch,
|
|
914
1034
|
branch: createOptions.branch
|
|
915
1035
|
}), token);
|
|
916
1036
|
} else {
|
|
@@ -920,18 +1040,6 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
920
1040
|
token
|
|
921
1041
|
);
|
|
922
1042
|
}
|
|
923
|
-
if (createOptions.worktreeBranchTrack !== undefined && provider.setWorktreeBranchTrack) {
|
|
924
|
-
await raceCancellationError(
|
|
925
|
-
provider.setWorktreeBranchTrack(session.sessionId, createOptions.worktreeBranchTrack),
|
|
926
|
-
token
|
|
927
|
-
);
|
|
928
|
-
}
|
|
929
|
-
if (createOptions.worktreeCreateNewBranch !== undefined && provider.setWorktreeCreateNewBranch) {
|
|
930
|
-
await raceCancellationError(
|
|
931
|
-
provider.setWorktreeCreateNewBranch(session.sessionId, createOptions.worktreeCreateNewBranch),
|
|
932
|
-
token
|
|
933
|
-
);
|
|
934
|
-
}
|
|
935
1043
|
if (createOptions.branch && provider.setBranch) {
|
|
936
1044
|
await raceCancellationError(provider.setBranch(session.sessionId, createOptions.branch), token);
|
|
937
1045
|
}
|
|
@@ -1005,17 +1113,24 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
1005
1113
|
let graduatingProvider = provider;
|
|
1006
1114
|
let graduatingSession = session;
|
|
1007
1115
|
try {
|
|
1116
|
+
const newSessionConfig = provider.getNewSessionConfig ? await provider.getNewSessionConfig(session.sessionId) : undefined;
|
|
1008
1117
|
({
|
|
1009
1118
|
provider: graduatingProvider,
|
|
1010
1119
|
session: graduatingSession
|
|
1011
1120
|
} = await this._prepareNewSessionForSend(provider, session, undefined, false, options.query));
|
|
1012
|
-
await this._sendNewChatRequestInBackground(graduatingProvider, graduatingSession, options);
|
|
1121
|
+
await this._sendNewChatRequestInBackground(graduatingProvider, graduatingSession, options, newSessionConfig);
|
|
1013
1122
|
} catch (error) {
|
|
1014
1123
|
graduatingProvider.deleteNewSession(graduatingSession.sessionId);
|
|
1015
1124
|
throw error;
|
|
1016
1125
|
}
|
|
1017
1126
|
}
|
|
1018
|
-
async _sendNewChatRequestInBackground(
|
|
1127
|
+
async _sendNewChatRequestInBackground(
|
|
1128
|
+
provider,
|
|
1129
|
+
session,
|
|
1130
|
+
options,
|
|
1131
|
+
newSessionConfig,
|
|
1132
|
+
token = CancellationToken.None
|
|
1133
|
+
) {
|
|
1019
1134
|
if (token.isCancellationRequested) {
|
|
1020
1135
|
throw ( new CancellationError());
|
|
1021
1136
|
}
|
|
@@ -1049,6 +1164,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
1049
1164
|
chat,
|
|
1050
1165
|
isNewSession: true,
|
|
1051
1166
|
isNewChat: true,
|
|
1167
|
+
newSessionConfig,
|
|
1052
1168
|
options
|
|
1053
1169
|
});
|
|
1054
1170
|
return updatedSession;
|
|
@@ -1113,7 +1229,10 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
1113
1229
|
return this.sessionsProvidersService.getProviders().find(p => p.id === session.providerId);
|
|
1114
1230
|
}
|
|
1115
1231
|
async cancelCurrentRequest(session) {
|
|
1116
|
-
|
|
1232
|
+
await this._cancelChatRequest(session.mainChat.get());
|
|
1233
|
+
}
|
|
1234
|
+
async _cancelChatRequest(chat) {
|
|
1235
|
+
const resource = chat.resource;
|
|
1117
1236
|
const modelRef = await this.chatService.acquireOrLoadSession(
|
|
1118
1237
|
resource,
|
|
1119
1238
|
ChatAgentLocation.Chat,
|
|
@@ -1121,7 +1240,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
1121
1240
|
"sessionsManagement:cancel"
|
|
1122
1241
|
);
|
|
1123
1242
|
if (!modelRef) {
|
|
1124
|
-
throw ( new Error(( localize(
|
|
1243
|
+
throw ( new Error(( localize(6338, "Failed to load chat session for cancellation."))));
|
|
1125
1244
|
}
|
|
1126
1245
|
try {
|
|
1127
1246
|
await this.chatService.cancelCurrentRequestForSession(resource, "sessionsManagement");
|
|
@@ -1130,27 +1249,95 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
1130
1249
|
}
|
|
1131
1250
|
}
|
|
1132
1251
|
async archiveSession(session) {
|
|
1252
|
+
const activeChats = session.chats.get().filter(chat => isActiveSessionStatus(chat.status.get()));
|
|
1253
|
+
if (activeChats.length === 0 && isActiveSessionStatus(session.status.get())) {
|
|
1254
|
+
await this._cancelChatRequest(session.mainChat.get());
|
|
1255
|
+
}
|
|
1256
|
+
for (const chat of activeChats) {
|
|
1257
|
+
await this._cancelChatRequest(chat);
|
|
1258
|
+
}
|
|
1133
1259
|
await this._getProvider(session)?.archiveSession(session.sessionId);
|
|
1134
1260
|
this._onDidArchiveSession.fire(session);
|
|
1135
1261
|
}
|
|
1262
|
+
getSessionWorktreeDiskUsage(session) {
|
|
1263
|
+
return this._getProvider(session)?.getSessionWorktreeDiskUsage?.(session.sessionId) ?? Promise.resolve(undefined);
|
|
1264
|
+
}
|
|
1136
1265
|
async unarchiveSession(session) {
|
|
1137
1266
|
await this._getProvider(session)?.unarchiveSession(session.sessionId);
|
|
1138
1267
|
this._onDidUnarchiveSession.fire(session);
|
|
1139
1268
|
}
|
|
1269
|
+
async archiveChat(session, chat) {
|
|
1270
|
+
const provider = this._getProvider(session);
|
|
1271
|
+
if (!provider?.archiveChat) {
|
|
1272
|
+
throw ( new Error(
|
|
1273
|
+
`Provider does not support archiving chats for session: ${session.sessionId}`
|
|
1274
|
+
));
|
|
1275
|
+
}
|
|
1276
|
+
await provider.archiveChat(session.sessionId, chat.resource);
|
|
1277
|
+
}
|
|
1278
|
+
async unarchiveChat(session, chat) {
|
|
1279
|
+
const provider = this._getProvider(session);
|
|
1280
|
+
if (!provider?.unarchiveChat) {
|
|
1281
|
+
throw ( new Error(
|
|
1282
|
+
`Provider does not support restoring chats for session: ${session.sessionId}`
|
|
1283
|
+
));
|
|
1284
|
+
}
|
|
1285
|
+
await provider.unarchiveChat(session.sessionId, chat.resource);
|
|
1286
|
+
}
|
|
1140
1287
|
async setSessionReadState(session, isRead) {
|
|
1288
|
+
if (isRead) {
|
|
1289
|
+
this._explicitlyMarkedUnreadMainChats.delete(session.resource);
|
|
1290
|
+
}
|
|
1141
1291
|
await this._getProvider(session)?.setSessionReadState(session.sessionId, isRead);
|
|
1142
1292
|
}
|
|
1143
|
-
|
|
1144
|
-
return this.
|
|
1293
|
+
async markChatRead(session, chat) {
|
|
1294
|
+
return this._getProvider(session)?.setChatReadState?.(session.sessionId, chat.resource, true) ?? false;
|
|
1295
|
+
}
|
|
1296
|
+
markRead(session, options) {
|
|
1297
|
+
if (options?.preserveExplicitUnread && ( this._explicitlyMarkedUnreadMainChats.has(session.resource)) && this._explicitlyMarkedUnreadMainChats.get(session.resource) === this._getMainChatReadMarker(session)) {
|
|
1298
|
+
return Promise.resolve();
|
|
1299
|
+
}
|
|
1300
|
+
return this._setMainChatReadState(session, true);
|
|
1145
1301
|
}
|
|
1146
|
-
|
|
1147
|
-
|
|
1302
|
+
_getMainChatReadMarker(session) {
|
|
1303
|
+
const chat = session.mainChat.get();
|
|
1304
|
+
return (chat.lastTurnEnd.get() ?? chat.updatedAt.get())?.getTime();
|
|
1305
|
+
}
|
|
1306
|
+
async markUnread(session) {
|
|
1307
|
+
const provider = this._getProvider(session);
|
|
1308
|
+
if (!provider) {
|
|
1309
|
+
return;
|
|
1310
|
+
}
|
|
1311
|
+
const hadExplicitUnread = ( this._explicitlyMarkedUnreadMainChats.has(session.resource));
|
|
1312
|
+
const previousMarker = this._explicitlyMarkedUnreadMainChats.get(session.resource);
|
|
1313
|
+
this._explicitlyMarkedUnreadMainChats.set(session.resource, this._getMainChatReadMarker(session));
|
|
1314
|
+
try {
|
|
1315
|
+
await this._setMainChatReadState(session, false, provider);
|
|
1316
|
+
} catch (error) {
|
|
1317
|
+
if (hadExplicitUnread) {
|
|
1318
|
+
this._explicitlyMarkedUnreadMainChats.set(session.resource, previousMarker);
|
|
1319
|
+
} else {
|
|
1320
|
+
this._explicitlyMarkedUnreadMainChats.delete(session.resource);
|
|
1321
|
+
}
|
|
1322
|
+
throw error;
|
|
1323
|
+
}
|
|
1324
|
+
}
|
|
1325
|
+
_setMainChatReadState(session, isRead, provider = this._getProvider(session)) {
|
|
1326
|
+
if (isRead) {
|
|
1327
|
+
this._explicitlyMarkedUnreadMainChats.delete(session.resource);
|
|
1328
|
+
}
|
|
1329
|
+
if (!provider) {
|
|
1330
|
+
return Promise.resolve(false);
|
|
1331
|
+
}
|
|
1332
|
+
const mainChat = session.mainChat.get();
|
|
1333
|
+
return provider.setChatReadState ? provider.setChatReadState(session.sessionId, mainChat.resource, isRead) : provider.setSessionReadState(session.sessionId, isRead);
|
|
1148
1334
|
}
|
|
1149
1335
|
async markAllRead(sessions) {
|
|
1150
1336
|
await Promise.all(sessions.map(session => this.setSessionReadState(session, true)));
|
|
1151
1337
|
}
|
|
1152
1338
|
async deleteSession(session) {
|
|
1153
1339
|
await this._getProvider(session)?.deleteSession(session.sessionId);
|
|
1340
|
+
this._explicitlyMarkedUnreadMainChats.delete(session.resource);
|
|
1154
1341
|
this._onDidDeleteSession.fire(session);
|
|
1155
1342
|
}
|
|
1156
1343
|
async deleteSessions(sessions) {
|
|
@@ -1172,6 +1359,7 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
1172
1359
|
try {
|
|
1173
1360
|
await provider.deleteSessions(providerSessions.map(session => session.sessionId));
|
|
1174
1361
|
for (const session of providerSessions) {
|
|
1362
|
+
this._explicitlyMarkedUnreadMainChats.delete(session.resource);
|
|
1175
1363
|
this._onDidDeleteSession.fire(session);
|
|
1176
1364
|
}
|
|
1177
1365
|
} catch (error) {
|
|
@@ -1183,10 +1371,16 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
1183
1371
|
}
|
|
1184
1372
|
}
|
|
1185
1373
|
async deleteChat(session, chatUri, options) {
|
|
1186
|
-
const
|
|
1374
|
+
const deletedChat = ( Object.freeze({
|
|
1375
|
+
session,
|
|
1376
|
+
sessionResource: session.resource,
|
|
1377
|
+
chatResource: chatUri
|
|
1378
|
+
}));
|
|
1379
|
+
const deleted = (await this._getProvider(session)?.deleteChat(session.sessionId, chatUri, options)) ?? false;
|
|
1187
1380
|
if (deleted) {
|
|
1188
|
-
this._onDidDeleteChat.fire(
|
|
1381
|
+
this._onDidDeleteChat.fire(deletedChat);
|
|
1189
1382
|
}
|
|
1383
|
+
return deleted;
|
|
1190
1384
|
}
|
|
1191
1385
|
async renameChat(session, chatUri, title) {
|
|
1192
1386
|
await this._getProvider(session)?.renameChat(session.sessionId, chatUri, title);
|
|
@@ -1196,15 +1390,39 @@ let SessionsManagementService = class SessionsManagementService extends Disposab
|
|
|
1196
1390
|
await this._getProvider(session)?.renameSession(session.sessionId, title);
|
|
1197
1391
|
this._onDidRenameSession.fire(session);
|
|
1198
1392
|
}
|
|
1393
|
+
async listCanvases(session, chat) {
|
|
1394
|
+
const provider = this._getProvider(session);
|
|
1395
|
+
if (!session.capabilities.get().supportsCanvases || !provider?.listCanvases) {
|
|
1396
|
+
return [];
|
|
1397
|
+
}
|
|
1398
|
+
return provider.listCanvases(session.sessionId, chat.resource);
|
|
1399
|
+
}
|
|
1400
|
+
async openCanvas(session, chat, canvas, instanceId) {
|
|
1401
|
+
const provider = this._getProvider(session);
|
|
1402
|
+
if (!session.capabilities.get().supportsCanvases || !provider?.openCanvas) {
|
|
1403
|
+
throw ( new Error(( localize(6339, "Opening canvases is not supported for this session."))));
|
|
1404
|
+
}
|
|
1405
|
+
await provider.openCanvas(session.sessionId, chat.resource, canvas, instanceId);
|
|
1406
|
+
}
|
|
1199
1407
|
async removeSessionArtifact(session, artifactId) {
|
|
1200
1408
|
const provider = this._getProvider(session);
|
|
1201
1409
|
if (!session.capabilities.get().supportsRemoveArtifacts || !provider?.removeSessionArtifact) {
|
|
1202
|
-
throw ( new Error(( localize(
|
|
1410
|
+
throw ( new Error(( localize(6340, "Removing artifacts is not supported for this session."))));
|
|
1203
1411
|
}
|
|
1204
1412
|
await provider.removeSessionArtifact(session.sessionId, artifactId);
|
|
1205
1413
|
}
|
|
1414
|
+
async importSession(session) {
|
|
1415
|
+
const provider = this._getProvider(session);
|
|
1416
|
+
if (!session.isExternal?.get()) {
|
|
1417
|
+
return;
|
|
1418
|
+
}
|
|
1419
|
+
if (!session.capabilities.get().supportsImport || !provider?.importSession) {
|
|
1420
|
+
throw ( new Error(( localize(6341, "Importing is not supported for this session."))));
|
|
1421
|
+
}
|
|
1422
|
+
await provider.importSession(session.sessionId);
|
|
1423
|
+
}
|
|
1206
1424
|
};
|
|
1207
|
-
SessionsManagementService = ( __decorate([( __param(0, ILogService)), ( __param(1, ISessionsProvidersService)), ( __param(2, IUriIdentityService)), ( __param(3, IChatService)), ( __param(4, IChatWidgetHistoryService)), ( __param(5, IStorageService)), ( __param(6, IPathService)), ( __param(7, IRemoteAgentHostService)), ( __param(8, IWorkspaceTrustManagementService))], SessionsManagementService));
|
|
1425
|
+
SessionsManagementService = ( __decorate([( __param(0, ILogService)), ( __param(1, ISessionsProvidersService)), ( __param(2, IUriIdentityService)), ( __param(3, IChatService)), ( __param(4, IChatWidgetHistoryService)), ( __param(5, IStorageService)), ( __param(6, IPathService)), ( __param(7, IRemoteAgentHostService)), ( __param(8, IWorkspaceTrustManagementService)), ( __param(9, INotificationService))], SessionsManagementService));
|
|
1208
1426
|
function isDeferredNewSessionRequestOptions(options) {
|
|
1209
1427
|
return options.kind === "deferred";
|
|
1210
1428
|
}
|