@codingame/monaco-vscode-workbench-service-override 37.6.0 → 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 +15 -13
- 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 -96
- 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.d.ts +46 -70
- package/vscode/src/vs/workbench/browser/layout.js +243 -44
- package/vscode/src/vs/workbench/browser/workbench.d.ts +1 -3
- package/vscode/src/vs/workbench/browser/workbench.js +26 -24
- 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
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
2
|
+
import { IChatLayoutOwner } from "@codingame/monaco-vscode-api/vscode/vs/sessions/common/chatLayout";
|
|
3
|
+
import { ISession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
|
|
4
|
+
export declare class ChatLayoutOwnerKeyRegistry {
|
|
5
|
+
private readonly _keysBySession;
|
|
6
|
+
resolveKey(owner: IChatLayoutOwner, mainChatResource: URI): URI;
|
|
7
|
+
registerPersistedKey(key: URI): void;
|
|
8
|
+
private _registerKey;
|
|
9
|
+
forgetChat(sessionResource: URI, chatResource: URI): URI | undefined;
|
|
10
|
+
forgetSession(sessionResource: URI): readonly URI[];
|
|
11
|
+
remapSession(replacement: {
|
|
12
|
+
readonly from: ISession;
|
|
13
|
+
readonly to: ISession;
|
|
14
|
+
}): readonly {
|
|
15
|
+
readonly oldKey: URI;
|
|
16
|
+
readonly newKey: URI;
|
|
17
|
+
}[];
|
|
18
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
|
|
2
|
+
import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
|
|
3
|
+
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
4
|
+
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
5
|
+
import { getChatLayoutOwnerAfterReplacement } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/chatLayout';
|
|
6
|
+
|
|
7
|
+
const CHAT_LAYOUT_OWNER_KEY_SCHEME = "vscode-chat-layout-owner";
|
|
8
|
+
class ChatLayoutOwnerKeyRegistry {
|
|
9
|
+
constructor() {
|
|
10
|
+
this._keysBySession = ( new ResourceMap());
|
|
11
|
+
}
|
|
12
|
+
resolveKey(owner, mainChatResource) {
|
|
13
|
+
if (isEqual(owner.chatResource, mainChatResource)) {
|
|
14
|
+
return owner.sessionResource;
|
|
15
|
+
}
|
|
16
|
+
const bySession = this._keysBySession.get(owner.sessionResource);
|
|
17
|
+
const existing = bySession?.get(owner.chatResource);
|
|
18
|
+
if (existing) {
|
|
19
|
+
return existing;
|
|
20
|
+
}
|
|
21
|
+
const key = ( URI.from({
|
|
22
|
+
scheme: CHAT_LAYOUT_OWNER_KEY_SCHEME,
|
|
23
|
+
path: `/${encodeURIComponent(( owner.sessionResource.toString()))}/${encodeURIComponent(( owner.chatResource.toString()))}`
|
|
24
|
+
}));
|
|
25
|
+
this._registerKey(owner, key);
|
|
26
|
+
return key;
|
|
27
|
+
}
|
|
28
|
+
registerPersistedKey(key) {
|
|
29
|
+
if (key.scheme !== CHAT_LAYOUT_OWNER_KEY_SCHEME) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const segments = key.path.split("/");
|
|
33
|
+
if (segments.length !== 3 || !segments[1] || !segments[2]) {
|
|
34
|
+
throw ( new Error(`Malformed chat layout owner key: ${( key.toString())}`));
|
|
35
|
+
}
|
|
36
|
+
this._registerKey({
|
|
37
|
+
sessionResource: ( URI.parse(decodeURIComponent(segments[1]))),
|
|
38
|
+
chatResource: ( URI.parse(decodeURIComponent(segments[2])))
|
|
39
|
+
}, key);
|
|
40
|
+
}
|
|
41
|
+
_registerKey(owner, key) {
|
|
42
|
+
let bySession = this._keysBySession.get(owner.sessionResource);
|
|
43
|
+
if (!bySession) {
|
|
44
|
+
bySession = ( new ResourceMap());
|
|
45
|
+
this._keysBySession.set(owner.sessionResource, bySession);
|
|
46
|
+
}
|
|
47
|
+
bySession.set(owner.chatResource, key);
|
|
48
|
+
}
|
|
49
|
+
forgetChat(sessionResource, chatResource) {
|
|
50
|
+
const bySession = this._keysBySession.get(sessionResource);
|
|
51
|
+
const key = bySession?.get(chatResource);
|
|
52
|
+
if (!key) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
bySession.delete(chatResource);
|
|
56
|
+
if (bySession.size === 0) {
|
|
57
|
+
this._keysBySession.delete(sessionResource);
|
|
58
|
+
}
|
|
59
|
+
return key;
|
|
60
|
+
}
|
|
61
|
+
forgetSession(sessionResource) {
|
|
62
|
+
const bySession = this._keysBySession.get(sessionResource);
|
|
63
|
+
if (!bySession) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
const keys = [];
|
|
67
|
+
bySession.forEach(key => keys.push(key));
|
|
68
|
+
this._keysBySession.delete(sessionResource);
|
|
69
|
+
return keys;
|
|
70
|
+
}
|
|
71
|
+
remapSession(replacement) {
|
|
72
|
+
const bySession = this._keysBySession.get(replacement.from.resource);
|
|
73
|
+
if (!bySession) {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
const entries = [];
|
|
77
|
+
bySession.forEach((key, chatResource) => entries.push([chatResource, key]));
|
|
78
|
+
this._keysBySession.delete(replacement.from.resource);
|
|
79
|
+
const result = [];
|
|
80
|
+
for (const [chatResource, oldKey] of entries) {
|
|
81
|
+
const newOwner = getChatLayoutOwnerAfterReplacement({
|
|
82
|
+
sessionResource: replacement.from.resource,
|
|
83
|
+
chatResource
|
|
84
|
+
}, replacement);
|
|
85
|
+
const newKey = this.resolveKey(newOwner, replacement.to.mainChat.get().resource);
|
|
86
|
+
result.push({
|
|
87
|
+
oldKey,
|
|
88
|
+
newKey
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export { ChatLayoutOwnerKeyRegistry };
|
|
@@ -9,13 +9,14 @@ export declare enum DetailPanelTarget {
|
|
|
9
9
|
Changes = 2,
|
|
10
10
|
ChangesForced = 3,
|
|
11
11
|
Files = 4,
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
FilesHidden = 5,
|
|
13
|
+
FilesForced = 6,
|
|
14
|
+
Preserve = 7
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
|
-
* Shared mechanics for selecting the
|
|
17
|
+
* Shared mechanics for selecting the desktop detail content.
|
|
17
18
|
*/
|
|
18
|
-
export declare class
|
|
19
|
+
export declare class DesktopDetailPanelCoordinator extends Disposable {
|
|
19
20
|
private readonly _layoutService;
|
|
20
21
|
private readonly _viewsService;
|
|
21
22
|
private readonly _hasDockedDetailsContext;
|
|
@@ -21,10 +21,11 @@ var DetailPanelTarget;
|
|
|
21
21
|
DetailPanelTarget[DetailPanelTarget["Changes"] = 2] = "Changes";
|
|
22
22
|
DetailPanelTarget[DetailPanelTarget["ChangesForced"] = 3] = "ChangesForced";
|
|
23
23
|
DetailPanelTarget[DetailPanelTarget["Files"] = 4] = "Files";
|
|
24
|
-
DetailPanelTarget[DetailPanelTarget["
|
|
25
|
-
DetailPanelTarget[DetailPanelTarget["
|
|
24
|
+
DetailPanelTarget[DetailPanelTarget["FilesHidden"] = 5] = "FilesHidden";
|
|
25
|
+
DetailPanelTarget[DetailPanelTarget["FilesForced"] = 6] = "FilesForced";
|
|
26
|
+
DetailPanelTarget[DetailPanelTarget["Preserve"] = 7] = "Preserve";
|
|
26
27
|
})(DetailPanelTarget || (DetailPanelTarget = {}));
|
|
27
|
-
let
|
|
28
|
+
let DesktopDetailPanelCoordinator = class DesktopDetailPanelCoordinator extends Disposable {
|
|
28
29
|
constructor(_layoutService, _viewsService, sessionsService, contextKeyService) {
|
|
29
30
|
super();
|
|
30
31
|
this._layoutService = _layoutService;
|
|
@@ -40,7 +41,8 @@ let SinglePaneDetailPanelCoordinator = class SinglePaneDetailPanelCoordinator ex
|
|
|
40
41
|
}));
|
|
41
42
|
this._register(autorun(reader => {
|
|
42
43
|
const activeSession = sessionsService.activeSession.read(reader);
|
|
43
|
-
|
|
44
|
+
const activeChat = activeSession?.activeChat.read(reader);
|
|
45
|
+
if (!activeSession || (!(activeSession.isQuickChat?.read(reader) ?? false) && !activeChat?.workspace.read(reader))) {
|
|
44
46
|
this.sync(DetailPanelTarget.Preserve);
|
|
45
47
|
}
|
|
46
48
|
}));
|
|
@@ -48,7 +50,7 @@ let SinglePaneDetailPanelCoordinator = class SinglePaneDetailPanelCoordinator ex
|
|
|
48
50
|
sync(target) {
|
|
49
51
|
this._target = target;
|
|
50
52
|
this._hasDockedDetailsContext.set(
|
|
51
|
-
target === DetailPanelTarget.Changes || target === DetailPanelTarget.ChangesForced || target === DetailPanelTarget.Files || target === DetailPanelTarget.FilesForced
|
|
53
|
+
target === DetailPanelTarget.Changes || target === DetailPanelTarget.ChangesForced || target === DetailPanelTarget.Files || target === DetailPanelTarget.FilesHidden || target === DetailPanelTarget.FilesForced
|
|
52
54
|
);
|
|
53
55
|
this._queueTarget(target);
|
|
54
56
|
}
|
|
@@ -66,6 +68,7 @@ let SinglePaneDetailPanelCoordinator = class SinglePaneDetailPanelCoordinator ex
|
|
|
66
68
|
await this._viewsService.openViewContainer(CHANGES_VIEW_CONTAINER_ID, false);
|
|
67
69
|
return;
|
|
68
70
|
case DetailPanelTarget.Files:
|
|
71
|
+
case DetailPanelTarget.FilesHidden:
|
|
69
72
|
case DetailPanelTarget.FilesForced:
|
|
70
73
|
await this._viewsService.openViewContainer(SESSIONS_FILES_CONTAINER_ID, false);
|
|
71
74
|
return;
|
|
@@ -76,6 +79,6 @@ let SinglePaneDetailPanelCoordinator = class SinglePaneDetailPanelCoordinator ex
|
|
|
76
79
|
}
|
|
77
80
|
}
|
|
78
81
|
};
|
|
79
|
-
|
|
82
|
+
DesktopDetailPanelCoordinator = ( __decorate([( __param(0, IAgentWorkbenchLayoutService)), ( __param(1, IViewsService)), ( __param(2, ISessionsService)), ( __param(3, IContextKeyService))], DesktopDetailPanelCoordinator));
|
|
80
83
|
|
|
81
|
-
export {
|
|
84
|
+
export { DesktopDetailPanelCoordinator, DetailPanelTarget };
|
|
@@ -3,6 +3,7 @@ import { IReader } from "@codingame/monaco-vscode-api/vscode/vs/base/common/obse
|
|
|
3
3
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
4
4
|
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
5
5
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
6
|
+
import { ISessionEditorWorkingSetService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.service";
|
|
6
7
|
import { EditorInput } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor/editorInput";
|
|
7
8
|
import { IEditorGroupsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service";
|
|
8
9
|
import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
|
|
@@ -11,7 +12,7 @@ import { ISessionsService } from "@codingame/monaco-vscode-api/vscode/vs/session
|
|
|
11
12
|
import { ISessionChangesService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/changes/browser/sessionChangesService";
|
|
12
13
|
import { IChangesViewService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/changes/common/changesViewService.service";
|
|
13
14
|
import { ISessionWorkspace } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
|
|
14
|
-
import {
|
|
15
|
+
import { IDesktopLayoutContext } from "./desktopLayoutStrategy.js";
|
|
15
16
|
/**
|
|
16
17
|
* What the active session wants from its managed docked tabs.
|
|
17
18
|
* - `changesSessionResource`: set for any workspace session (the Changes multi-diff tab). `undefined` otherwise.
|
|
@@ -32,9 +33,7 @@ export interface IManagedTabsTarget {
|
|
|
32
33
|
export interface IReconcileTrigger {
|
|
33
34
|
/** Open the default docked tabs *if the group is empty* — a session switch, a side-pane reveal, or a settled layout restore. */
|
|
34
35
|
readonly openDefaultsIfEmpty?: boolean;
|
|
35
|
-
/**
|
|
36
|
-
readonly ensureChanges?: boolean;
|
|
37
|
-
/** Ensure the Changes tab, opened **active**, even in a non-empty group — new-session submit (so the detail panel maps to Changes rather than the still-present Files placeholder). */
|
|
36
|
+
/** Activate an existing Changes tab after new-session submit so the detail panel maps to Changes rather than Files. */
|
|
38
37
|
readonly ensureChangesActive?: boolean;
|
|
39
38
|
/** A saved working set finished restoring for the active session. */
|
|
40
39
|
readonly workingSetRestored?: boolean;
|
|
@@ -43,15 +42,15 @@ export interface IReconcileTrigger {
|
|
|
43
42
|
* Owns the two managed docked tabs (the pinned Changes multi-diff tab and the empty Files
|
|
44
43
|
* placeholder tab for workspace sessions) and the detail-only editor-area collapse. Shared
|
|
45
44
|
* (not a strategy) because both belong to one reconcile pipeline that must stay single-instance
|
|
46
|
-
* across the New→Existing submit transition — see `
|
|
47
|
-
* Owned and disposed by {@link import('./
|
|
48
|
-
* `
|
|
45
|
+
* across the New→Existing submit transition — see `DesktopLayoutStrategy`'s doc comment.
|
|
46
|
+
* Owned and disposed by {@link import('./desktopExistingSessionStrategy.js').DesktopExistingSessionStrategy}.
|
|
47
|
+
* `DesktopDraftSessionStrategy` supplies workspace-draft supplementary reconcile intents via
|
|
49
48
|
* {@link queueReconcile}; workspace-less drafts never want managed tabs, so the ambient
|
|
50
49
|
* session-change trigger below reconciles them away on its own.
|
|
51
50
|
*
|
|
52
|
-
* See `
|
|
51
|
+
* See `DESKTOP.md` for the full reconcile rules.
|
|
53
52
|
*/
|
|
54
|
-
export declare class
|
|
53
|
+
export declare class DesktopDockedTabsCoordinator extends Disposable {
|
|
55
54
|
private readonly _ctx;
|
|
56
55
|
private readonly _layoutService;
|
|
57
56
|
private readonly _sessionsService;
|
|
@@ -60,8 +59,9 @@ export declare class SinglePaneDockedTabsCoordinator extends Disposable {
|
|
|
60
59
|
private readonly _sessionChangesService;
|
|
61
60
|
private readonly _changesViewService;
|
|
62
61
|
private readonly _instantiationService;
|
|
62
|
+
private readonly _editorWorkingSetService;
|
|
63
63
|
/** Non-docked editors closed (as reopenable inputs + tab index) while the editor area is hidden. */
|
|
64
|
-
private
|
|
64
|
+
private readonly _collapsedEditorsByOwner;
|
|
65
65
|
private readonly _sequencer;
|
|
66
66
|
private _generation;
|
|
67
67
|
private _lastSyncedSessionKey;
|
|
@@ -75,9 +75,10 @@ export declare class SinglePaneDockedTabsCoordinator extends Disposable {
|
|
|
75
75
|
private readonly _filesTabAvailableContext;
|
|
76
76
|
/** Last observed editor-area visibility, to act only on transitions. */
|
|
77
77
|
private _editorAreaVisible;
|
|
78
|
-
constructor(_ctx:
|
|
78
|
+
constructor(_ctx: IDesktopLayoutContext, _layoutService: IAgentWorkbenchLayoutService, _sessionsService: ISessionsService, _editorService: IEditorService, _editorGroupsService: IEditorGroupsService, _sessionChangesService: ISessionChangesService, _changesViewService: IChangesViewService, contextKeyService: IContextKeyService, _instantiationService: IInstantiationService, _editorWorkingSetService: ISessionEditorWorkingSetService);
|
|
79
79
|
/** The resource this managed Changes editor input shows, if it is one. */
|
|
80
80
|
getChangesEditorResource(editor: EditorInput): URI | undefined;
|
|
81
|
+
private _ownerKeyString;
|
|
81
82
|
prepareWorkingSetRestore(hasSavedWorkingSet: boolean): void;
|
|
82
83
|
/** Reads the current managed-tabs target for the active session (or for `reader`'s transaction, if given). */
|
|
83
84
|
readTarget(reader: IReader | undefined): IManagedTabsTarget;
|
|
@@ -85,11 +86,13 @@ export declare class SinglePaneDockedTabsCoordinator extends Disposable {
|
|
|
85
86
|
queueReconcile(target: IManagedTabsTarget, trigger: IReconcileTrigger): void;
|
|
86
87
|
private _readTarget;
|
|
87
88
|
dispose(): void;
|
|
89
|
+
remapOwnerKey(oldKey: URI, newKey: URI): void;
|
|
90
|
+
forgetOwnerKeys(keys: readonly URI[]): void;
|
|
88
91
|
/** Queues coordinator-owned work, dropping tasks and failures that outlive disposal. */
|
|
89
92
|
private _queue;
|
|
90
93
|
private _reconcile;
|
|
91
94
|
private _reconcileCore;
|
|
92
|
-
/**
|
|
95
|
+
/** Legacy session switches discard collapsed inputs; chat-owned inputs survive until their owner is removed. */
|
|
93
96
|
private _resetCollapsedEditorsOnSessionChange;
|
|
94
97
|
/** Opens the Changes editor pinned first (active on submit). Returns `false` if the reconcile is cancelled mid-open. */
|
|
95
98
|
private _openChangesTab;
|
|
@@ -11,12 +11,13 @@ import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/reso
|
|
|
11
11
|
import { EditorActivation } from '@codingame/monaco-vscode-api/vscode/vs/platform/editor/common/editor';
|
|
12
12
|
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
13
13
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
14
|
+
import { ISessionEditorWorkingSetService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.service';
|
|
14
15
|
import { EditorResourceAccessor, SideBySideEditor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
|
|
15
16
|
import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
|
|
16
17
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
17
18
|
import { Parts } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService';
|
|
18
19
|
import { IAgentWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/workbench.service';
|
|
19
|
-
import {
|
|
20
|
+
import { DesktopChangesTabMissingContext, DesktopFilesTabMissingContext, DesktopChangesTabAvailableContext, DesktopFilesTabAvailableContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
|
|
20
21
|
import { DockedEditorInput } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/dockedEditorInput';
|
|
21
22
|
import { ISessionsService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service';
|
|
22
23
|
import { SessionChangesEditorInput } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/changes/browser/sessionChangesEditorInput';
|
|
@@ -25,6 +26,7 @@ import { IChangesViewService } from '@codingame/monaco-vscode-api/vscode/vs/sess
|
|
|
25
26
|
import { EmptyFileEditorInput } from '../../../editor/browser/emptyFileEditorInput.js';
|
|
26
27
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
27
28
|
import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
|
|
29
|
+
import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
|
|
28
30
|
import { ISessionChangesService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/changes/common/sessionChangesService.service';
|
|
29
31
|
|
|
30
32
|
const CHANGES_TAB_OPTIONS = {
|
|
@@ -51,12 +53,11 @@ const FILES_TAB_OPTIONS = {
|
|
|
51
53
|
function mergeTriggers(a, b) {
|
|
52
54
|
return {
|
|
53
55
|
openDefaultsIfEmpty: a.openDefaultsIfEmpty || b.openDefaultsIfEmpty,
|
|
54
|
-
ensureChanges: a.ensureChanges || b.ensureChanges,
|
|
55
56
|
ensureChangesActive: a.ensureChangesActive || b.ensureChangesActive,
|
|
56
57
|
workingSetRestored: a.workingSetRestored || b.workingSetRestored
|
|
57
58
|
};
|
|
58
59
|
}
|
|
59
|
-
let
|
|
60
|
+
let DesktopDockedTabsCoordinator = class DesktopDockedTabsCoordinator extends Disposable {
|
|
60
61
|
constructor(
|
|
61
62
|
_ctx,
|
|
62
63
|
_layoutService,
|
|
@@ -66,7 +67,8 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
66
67
|
_sessionChangesService,
|
|
67
68
|
_changesViewService,
|
|
68
69
|
contextKeyService,
|
|
69
|
-
_instantiationService
|
|
70
|
+
_instantiationService,
|
|
71
|
+
_editorWorkingSetService
|
|
70
72
|
) {
|
|
71
73
|
super();
|
|
72
74
|
this._ctx = _ctx;
|
|
@@ -77,25 +79,23 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
77
79
|
this._sessionChangesService = _sessionChangesService;
|
|
78
80
|
this._changesViewService = _changesViewService;
|
|
79
81
|
this._instantiationService = _instantiationService;
|
|
82
|
+
this._editorWorkingSetService = _editorWorkingSetService;
|
|
83
|
+
this._collapsedEditorsByOwner = ( new Map());
|
|
80
84
|
this._sequencer = ( new Sequencer());
|
|
81
85
|
this._generation = 0;
|
|
82
86
|
this._filesTabDismissed = false;
|
|
83
87
|
this._changingFilesInternally = false;
|
|
84
|
-
this._changesTabMissingContext =
|
|
85
|
-
this._filesTabMissingContext =
|
|
86
|
-
this._changesTabAvailableContext =
|
|
87
|
-
this._filesTabAvailableContext =
|
|
88
|
-
let previousChangesSessionResource;
|
|
88
|
+
this._changesTabMissingContext = DesktopChangesTabMissingContext.bindTo(contextKeyService);
|
|
89
|
+
this._filesTabMissingContext = DesktopFilesTabMissingContext.bindTo(contextKeyService);
|
|
90
|
+
this._changesTabAvailableContext = DesktopChangesTabAvailableContext.bindTo(contextKeyService);
|
|
91
|
+
this._filesTabAvailableContext = DesktopFilesTabAvailableContext.bindTo(contextKeyService);
|
|
89
92
|
this._register(autorun(reader => {
|
|
90
93
|
const target = this._readTarget(reader);
|
|
91
|
-
const ensureChanges = !!target.changesSessionResource && (!previousChangesSessionResource || !isEqual(previousChangesSessionResource, target.changesSessionResource));
|
|
92
|
-
previousChangesSessionResource = target.changesSessionResource;
|
|
93
94
|
if (!target.wantsChangesTab) {
|
|
94
95
|
this._filesTabDismissed = false;
|
|
95
96
|
}
|
|
96
97
|
this.queueReconcile(target, {
|
|
97
|
-
openDefaultsIfEmpty:
|
|
98
|
-
ensureChanges
|
|
98
|
+
openDefaultsIfEmpty: this._layoutService.isSidePaneVisible()
|
|
99
99
|
});
|
|
100
100
|
}));
|
|
101
101
|
this._register(this._layoutService.onDidRevealSidePane(() => {
|
|
@@ -104,22 +104,26 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
104
104
|
});
|
|
105
105
|
}));
|
|
106
106
|
const partVisibilityChangedSignal = observableSignalFromEvent(this, this._layoutService.onDidChangePartVisibility);
|
|
107
|
-
const
|
|
107
|
+
const mainEditorsChanged = Event.filter(
|
|
108
|
+
this._editorService.onDidEditorsChange,
|
|
109
|
+
e => !!this._editorGroupsService.mainPart.getGroup(e.groupId)
|
|
110
|
+
);
|
|
111
|
+
const editorsChangedSignal = observableSignalFromEvent(this, mainEditorsChanged);
|
|
112
|
+
const activeMainGroup = observableFromEvent(
|
|
113
|
+
this,
|
|
108
114
|
this._editorService.onDidActiveEditorChange,
|
|
109
|
-
this.
|
|
110
|
-
)
|
|
115
|
+
() => this._editorGroupsService.mainPart.activeGroup
|
|
116
|
+
);
|
|
111
117
|
this._register(autorun(reader => {
|
|
112
118
|
partVisibilityChangedSignal.read(reader);
|
|
113
119
|
editorsChangedSignal.read(reader);
|
|
120
|
+
activeMainGroup.read(reader);
|
|
114
121
|
this.queueReconcile(this._readTarget(undefined), {});
|
|
115
122
|
}));
|
|
116
123
|
this._register(this._ctx.onDidEndSessionLayoutRestore(() => {
|
|
117
|
-
const session = this._sessionsService.activeSession.get();
|
|
118
124
|
const target = this._readTarget(undefined);
|
|
119
|
-
const ensureChanges = target.wantsChangesTab && session?.isCreated.get() === false;
|
|
120
125
|
this.queueReconcile(target, {
|
|
121
|
-
openDefaultsIfEmpty:
|
|
122
|
-
ensureChanges,
|
|
126
|
+
openDefaultsIfEmpty: this._layoutService.isSidePaneVisible(),
|
|
123
127
|
workingSetRestored: true
|
|
124
128
|
});
|
|
125
129
|
}));
|
|
@@ -157,20 +161,24 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
157
161
|
return;
|
|
158
162
|
}
|
|
159
163
|
if (visible) {
|
|
160
|
-
|
|
164
|
+
const ownerKey = this._ownerKeyString();
|
|
165
|
+
this._queue(() => this._restoreCollapsedTabs(ownerKey));
|
|
161
166
|
return;
|
|
162
167
|
}
|
|
163
168
|
if (this._ctx.togglingSidePane) {
|
|
164
169
|
return;
|
|
165
170
|
}
|
|
166
|
-
|
|
167
|
-
|
|
171
|
+
this._queueCollapseIfDetailsOnly();
|
|
172
|
+
}));
|
|
173
|
+
this._register(this._ctx.onDidEndSessionLayoutRestore(() => {
|
|
174
|
+
if (this._ctx.chatLayoutActive() && this._layoutService.isVisible(Parts.EDITOR_PART, mainWindow)) {
|
|
175
|
+
const ownerKey = this._ownerKeyString();
|
|
176
|
+
this._queue(() => this._restoreCollapsedTabs(ownerKey));
|
|
177
|
+
} else {
|
|
178
|
+
this._queueCollapseIfDetailsOnly();
|
|
168
179
|
}
|
|
169
180
|
}));
|
|
170
|
-
this._register(
|
|
171
|
-
this._ctx.onDidEndSessionLayoutRestore(() => this._queueCollapseIfDetailsOnly())
|
|
172
|
-
);
|
|
173
|
-
this._register(this._editorService.onDidEditorsChange(() => {
|
|
181
|
+
this._register(mainEditorsChanged(() => {
|
|
174
182
|
if (!this._ctx.isRestoringSessionLayout) {
|
|
175
183
|
this._queueCollapseIfDetailsOnly();
|
|
176
184
|
}
|
|
@@ -180,15 +188,23 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
180
188
|
const resource = editor.resource;
|
|
181
189
|
return resource && this._sessionChangesService.getSessionResource(resource) ? resource : undefined;
|
|
182
190
|
}
|
|
191
|
+
_ownerKeyString() {
|
|
192
|
+
const session = this._sessionsService.activeSession.get();
|
|
193
|
+
if (!session) {
|
|
194
|
+
return undefined;
|
|
195
|
+
}
|
|
196
|
+
const ownerKey = this._ctx.chatLayoutActive() ? this._ctx.ownerKeyFor(session) : undefined;
|
|
197
|
+
return ( (ownerKey ?? session.resource).toString());
|
|
198
|
+
}
|
|
183
199
|
prepareWorkingSetRestore(hasSavedWorkingSet) {
|
|
184
|
-
const sessionKey = this.
|
|
200
|
+
const sessionKey = this._ownerKeyString();
|
|
185
201
|
this._preserveMissingFilesForSessionKey = hasSavedWorkingSet && this._filesTabDismissed ? sessionKey : undefined;
|
|
186
202
|
}
|
|
187
203
|
readTarget(reader) {
|
|
188
204
|
return this._readTarget(reader);
|
|
189
205
|
}
|
|
190
206
|
queueReconcile(target, trigger) {
|
|
191
|
-
const sessionKey = this.
|
|
207
|
+
const sessionKey = this._ownerKeyString();
|
|
192
208
|
const mergedTrigger = this._pending && this._pending.sessionKey === sessionKey ? mergeTriggers(this._pending.trigger, trigger) : trigger;
|
|
193
209
|
this._pending = {
|
|
194
210
|
sessionKey,
|
|
@@ -221,8 +237,24 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
221
237
|
dispose() {
|
|
222
238
|
this._generation++;
|
|
223
239
|
this._pending = undefined;
|
|
240
|
+
this._collapsedEditorsByOwner.clear();
|
|
224
241
|
super.dispose();
|
|
225
242
|
}
|
|
243
|
+
remapOwnerKey(oldKey, newKey) {
|
|
244
|
+
if (isEqual(oldKey, newKey)) {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
const captured = this._collapsedEditorsByOwner.get(( oldKey.toString()));
|
|
248
|
+
if (captured) {
|
|
249
|
+
this._collapsedEditorsByOwner.set(( newKey.toString()), captured);
|
|
250
|
+
this._collapsedEditorsByOwner.delete(( oldKey.toString()));
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
forgetOwnerKeys(keys) {
|
|
254
|
+
for (const key of keys) {
|
|
255
|
+
this._collapsedEditorsByOwner.delete(( key.toString()));
|
|
256
|
+
}
|
|
257
|
+
}
|
|
226
258
|
_queue(task) {
|
|
227
259
|
void this._sequencer.queue(() => this._store.isDisposed ? Promise.resolve() : task()).catch(error => {
|
|
228
260
|
if (!this._store.isDisposed) {
|
|
@@ -246,6 +278,9 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
246
278
|
trigger: mergeTriggers(successor.trigger, pending.trigger)
|
|
247
279
|
};
|
|
248
280
|
}
|
|
281
|
+
if (generation === this._generation && !this._ctx.isRestoringSessionLayout) {
|
|
282
|
+
this._ctx.completeChangesEditorTransition();
|
|
283
|
+
}
|
|
249
284
|
}
|
|
250
285
|
}
|
|
251
286
|
async _reconcileCore(target, trigger, generation) {
|
|
@@ -262,7 +297,7 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
262
297
|
return;
|
|
263
298
|
}
|
|
264
299
|
this._updateFilesEditors(group, target.workspace);
|
|
265
|
-
const sessionKey = this.
|
|
300
|
+
const sessionKey = this._ownerKeyString();
|
|
266
301
|
const preserveMissingFiles = !!trigger.workingSetRestored && this._preserveMissingFilesForSessionKey === sessionKey;
|
|
267
302
|
if (preserveMissingFiles) {
|
|
268
303
|
await this._removeFilesTab(group);
|
|
@@ -270,13 +305,13 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
270
305
|
return;
|
|
271
306
|
}
|
|
272
307
|
}
|
|
273
|
-
const openIntoEmpty = !!trigger.openDefaultsIfEmpty && group.editors.length === 0;
|
|
308
|
+
const openIntoEmpty = !!trigger.openDefaultsIfEmpty && this._layoutService.isSidePaneVisible() && group.editors.length === 0;
|
|
274
309
|
const changesPresent = !!changesResource && !!this._findChangesEditor(group, changesResource);
|
|
275
310
|
const filesPresent = ( group.editors.some(editor => editor instanceof EmptyFileEditorInput));
|
|
276
311
|
const activeChangesResource = this._editorService.activeEditor && this.getChangesEditorResource(this._editorService.activeEditor);
|
|
277
|
-
const activateChanges = !!trigger.ensureChangesActive && !!changesResource && (!activeChangesResource || !isEqual(activeChangesResource, changesResource));
|
|
312
|
+
const activateChanges = !!trigger.ensureChangesActive && changesPresent && !!changesResource && (!activeChangesResource || !isEqual(activeChangesResource, changesResource));
|
|
278
313
|
const ensureAllInputs = this._layoutService.isVisible(Parts.AUXILIARYBAR_PART) && !this._layoutService.isVisible(Parts.EDITOR_PART, mainWindow);
|
|
279
|
-
const openChanges = target.wantsChangesTab && !!changesResource && (activateChanges || (!changesPresent && (openIntoEmpty || ensureAllInputs
|
|
314
|
+
const openChanges = target.wantsChangesTab && !!changesResource && (activateChanges || (!changesPresent && (openIntoEmpty || ensureAllInputs)));
|
|
280
315
|
const openFiles = target.wantsFilesTab && !filesPresent && !preserveMissingFiles && (openIntoEmpty || ensureAllInputs);
|
|
281
316
|
const isCreated = this._sessionsService.activeSession.get()?.isCreated.get() ?? false;
|
|
282
317
|
const openFilesFirst = openChanges && openFiles && !isCreated && group.editors.length === 0;
|
|
@@ -319,9 +354,11 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
319
354
|
}
|
|
320
355
|
}
|
|
321
356
|
_resetCollapsedEditorsOnSessionChange() {
|
|
322
|
-
const sessionKey = this.
|
|
357
|
+
const sessionKey = this._ownerKeyString();
|
|
323
358
|
if (sessionKey !== this._lastSyncedSessionKey) {
|
|
324
|
-
this.
|
|
359
|
+
if (!this._ctx.chatLayoutActive() && !this._ctx.chatLayoutSuspended()) {
|
|
360
|
+
this._collapsedEditorsByOwner.clear();
|
|
361
|
+
}
|
|
325
362
|
this._lastSyncedSessionKey = sessionKey;
|
|
326
363
|
}
|
|
327
364
|
}
|
|
@@ -443,17 +480,24 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
443
480
|
}
|
|
444
481
|
_queueCollapseIfDetailsOnly() {
|
|
445
482
|
if (!this._layoutService.isVisible(Parts.EDITOR_PART, mainWindow) && this._layoutService.isVisible(Parts.AUXILIARYBAR_PART)) {
|
|
446
|
-
|
|
483
|
+
const ownerKey = this._ownerKeyString();
|
|
484
|
+
this._queue(() => this._collapseNonManagedTabs(ownerKey));
|
|
447
485
|
}
|
|
448
486
|
}
|
|
449
|
-
async _collapseNonManagedTabs() {
|
|
487
|
+
async _collapseNonManagedTabs(ownerKey) {
|
|
488
|
+
if (this._ctx.isRestoringSessionLayout || this._ctx.chatLayoutSuspended() || this._ctx.togglingSidePane || ownerKey !== this._ownerKeyString() || this._layoutService.isVisible(Parts.EDITOR_PART, mainWindow) || !this._layoutService.isVisible(Parts.AUXILIARYBAR_PART)) {
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
450
491
|
const group = this._editorGroupsService.mainPart.activeGroup;
|
|
451
|
-
const captured = [...(this.
|
|
492
|
+
const captured = [...(this._collapsedEditorsByOwner.get(ownerKey) ?? [])];
|
|
452
493
|
const toClose = [];
|
|
453
494
|
group.editors.forEach((editor, index) => {
|
|
454
495
|
if (editor instanceof DockedEditorInput || this.getChangesEditorResource(editor)) {
|
|
455
496
|
return;
|
|
456
497
|
}
|
|
498
|
+
if (this._editorWorkingSetService.shouldRetainEditor(editor)) {
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
457
501
|
const untyped = editor.toUntyped();
|
|
458
502
|
if (untyped) {
|
|
459
503
|
captured.push({
|
|
@@ -466,7 +510,7 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
466
510
|
if (toClose.length === 0) {
|
|
467
511
|
return;
|
|
468
512
|
}
|
|
469
|
-
this.
|
|
513
|
+
this._collapsedEditorsByOwner.set(ownerKey, captured);
|
|
470
514
|
const suppressEditorPartAutoVisibility = this._layoutService.suppressEditorPartAutoVisibility();
|
|
471
515
|
try {
|
|
472
516
|
await this._editorService.closeEditors(toClose.map(editor => ({
|
|
@@ -479,9 +523,12 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
479
523
|
suppressEditorPartAutoVisibility.dispose();
|
|
480
524
|
}
|
|
481
525
|
}
|
|
482
|
-
async _restoreCollapsedTabs() {
|
|
483
|
-
|
|
484
|
-
|
|
526
|
+
async _restoreCollapsedTabs(ownerKey) {
|
|
527
|
+
if (this._ctx.isRestoringSessionLayout || this._ctx.chatLayoutSuspended() || ownerKey !== this._ownerKeyString() || !this._layoutService.isVisible(Parts.EDITOR_PART, mainWindow)) {
|
|
528
|
+
return;
|
|
529
|
+
}
|
|
530
|
+
const captured = this._collapsedEditorsByOwner.get(ownerKey);
|
|
531
|
+
this._collapsedEditorsByOwner.delete(ownerKey);
|
|
485
532
|
if (!captured || captured.length === 0) {
|
|
486
533
|
return;
|
|
487
534
|
}
|
|
@@ -508,6 +555,6 @@ let SinglePaneDockedTabsCoordinator = class SinglePaneDockedTabsCoordinator exte
|
|
|
508
555
|
}
|
|
509
556
|
}
|
|
510
557
|
};
|
|
511
|
-
|
|
558
|
+
DesktopDockedTabsCoordinator = ( __decorate([( __param(1, IAgentWorkbenchLayoutService)), ( __param(2, ISessionsService)), ( __param(3, IEditorService)), ( __param(4, IEditorGroupsService)), ( __param(5, ISessionChangesService)), ( __param(6, IChangesViewService)), ( __param(7, IContextKeyService)), ( __param(8, IInstantiationService)), ( __param(9, ISessionEditorWorkingSetService))], DesktopDockedTabsCoordinator));
|
|
512
559
|
|
|
513
|
-
export {
|
|
560
|
+
export { DesktopDockedTabsCoordinator };
|
|
@@ -4,13 +4,13 @@ import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench
|
|
|
4
4
|
import { IAgentWorkbenchLayoutService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/browser/workbench.service";
|
|
5
5
|
import { ISessionsService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service";
|
|
6
6
|
import { ISessionChangesService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/changes/browser/sessionChangesService";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { DesktopDetailPanelCoordinator } from "./desktopDetailPanelCoordinator.js";
|
|
8
|
+
import { IDesktopLayoutContext, DesktopLayoutStrategy } from "./desktopLayoutStrategy.js";
|
|
9
|
+
import { DesktopVisibilityProfileStore } from "./desktopVisibilityProfileStore.js";
|
|
10
10
|
/**
|
|
11
11
|
* Owns workspace-backed and workspace-less draft layout behavior.
|
|
12
12
|
*/
|
|
13
|
-
export declare class
|
|
13
|
+
export declare class DesktopDraftSessionStrategy extends DesktopLayoutStrategy {
|
|
14
14
|
private readonly _detailPanel;
|
|
15
15
|
private readonly _visibilityStore;
|
|
16
16
|
private readonly _layoutService;
|
|
@@ -27,7 +27,12 @@ export declare class SinglePaneDraftSessionStrategy extends SinglePaneLayoutStra
|
|
|
27
27
|
private _activeQuickChatKey;
|
|
28
28
|
private _pendingEditorRestoreKey;
|
|
29
29
|
private _changingVisibility;
|
|
30
|
-
constructor(ctx:
|
|
30
|
+
constructor(ctx: IDesktopLayoutContext, _detailPanel: DesktopDetailPanelCoordinator, _visibilityStore: DesktopVisibilityProfileStore, _layoutService: IAgentWorkbenchLayoutService, _sessionsService: ISessionsService, _editorService: IEditorService, _editorGroupsService: IEditorGroupsService, _sessionChangesService: ISessionChangesService, _logService: ILogService);
|
|
31
|
+
private _activeOwnerKey;
|
|
32
|
+
private _readOwnerComposition;
|
|
33
|
+
private _applyOwnerComposition;
|
|
34
|
+
private _captureOwnerCompositionIfApplicable;
|
|
35
|
+
private _registerOwnerComposition;
|
|
31
36
|
private _registerEntryEditorHide;
|
|
32
37
|
private _registerQuickChatVisibility;
|
|
33
38
|
private _captureQuickChatSharedVisibility;
|