@codingame/monaco-vscode-workbench-service-override 37.6.1 → 38.0.1
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
|
@@ -11,6 +11,7 @@ import { IUriIdentityService } from '@codingame/monaco-vscode-api/vscode/vs/plat
|
|
|
11
11
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
12
12
|
import { Queue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
13
13
|
import { IWorkspaceFolderLabelService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/workspaces/common/workspaceFolderLabelService.service';
|
|
14
|
+
import { IHistoryService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/history/common/history.service';
|
|
14
15
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
15
16
|
|
|
16
17
|
let WorkspaceFolderManagementContribution = class WorkspaceFolderManagementContribution extends Disposable {
|
|
@@ -23,7 +24,8 @@ let WorkspaceFolderManagementContribution = class WorkspaceFolderManagementContr
|
|
|
23
24
|
workspaceContextService,
|
|
24
25
|
workspaceEditingService,
|
|
25
26
|
workspaceTrustManagementService,
|
|
26
|
-
workspaceFolderLabelService
|
|
27
|
+
workspaceFolderLabelService,
|
|
28
|
+
historyService
|
|
27
29
|
) {
|
|
28
30
|
super();
|
|
29
31
|
this.sessionsService = sessionsService;
|
|
@@ -32,64 +34,74 @@ let WorkspaceFolderManagementContribution = class WorkspaceFolderManagementContr
|
|
|
32
34
|
this.workspaceEditingService = workspaceEditingService;
|
|
33
35
|
this.workspaceTrustManagementService = workspaceTrustManagementService;
|
|
34
36
|
this.workspaceFolderLabelService = workspaceFolderLabelService;
|
|
37
|
+
this.historyService = historyService;
|
|
35
38
|
this.queue = this._register(( new Queue()));
|
|
39
|
+
this._register(this.workspaceContextService.onDidChangeWorkspaceFolders(event => {
|
|
40
|
+
if (event.removed.length > 0) {
|
|
41
|
+
this.historyService.clearRecentlyOpened();
|
|
42
|
+
}
|
|
43
|
+
}));
|
|
36
44
|
this._register(autorun(reader => {
|
|
37
45
|
const activeSession = this.sessionsService.activeSession.read(reader);
|
|
38
|
-
activeSession?.
|
|
39
|
-
|
|
46
|
+
const activeChat = activeSession?.activeChat.read(reader);
|
|
47
|
+
const workspace = activeChat?.workspace.read(reader);
|
|
48
|
+
this.queue.queue(() => this.updateWorkspaceFolders(workspace));
|
|
40
49
|
}));
|
|
41
50
|
}
|
|
42
|
-
async
|
|
43
|
-
await ensureSessionWorktreesTrusted(
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
async updateWorkspaceFolders(workspace) {
|
|
52
|
+
await ensureSessionWorktreesTrusted(workspace, this.workspaceTrustManagementService);
|
|
53
|
+
const activeSessionFolders = this.getWorkspaceFolderData(workspace);
|
|
54
|
+
const currentFolders = this.workspaceContextService.getWorkspace().folders;
|
|
55
|
+
const mountable = await Promise.all(
|
|
56
|
+
activeSessionFolders.map(folder => this.isFolderMountable(workspace, folder.uri))
|
|
57
|
+
);
|
|
58
|
+
if (( mountable.some(isMountable => !isMountable))) {
|
|
59
|
+
if (currentFolders.length > 0) {
|
|
60
|
+
await this.workspaceEditingService.removeFolders(currentFolders.map(folder => folder.uri), true);
|
|
49
61
|
}
|
|
50
62
|
return;
|
|
51
63
|
}
|
|
52
|
-
if (
|
|
53
|
-
if (
|
|
54
|
-
await this.workspaceEditingService.removeFolders(
|
|
64
|
+
if (activeSessionFolders.length === 0) {
|
|
65
|
+
if (currentFolders.length > 0) {
|
|
66
|
+
await this.workspaceEditingService.removeFolders(currentFolders.map(folder => folder.uri), true);
|
|
55
67
|
}
|
|
56
68
|
return;
|
|
57
69
|
}
|
|
58
|
-
if (
|
|
59
|
-
await this.workspaceEditingService.addFolders(
|
|
70
|
+
if (currentFolders.length === 0) {
|
|
71
|
+
await this.workspaceEditingService.addFolders(activeSessionFolders, true);
|
|
60
72
|
return;
|
|
61
73
|
}
|
|
62
|
-
|
|
74
|
+
const foldersMatch = currentFolders.length === activeSessionFolders.length && currentFolders.every(
|
|
75
|
+
(folder, index) => this.uriIdentityService.extUri.isEqual(folder.uri, activeSessionFolders[index].uri) && folder.name === activeSessionFolders[index].name
|
|
76
|
+
);
|
|
77
|
+
if (foldersMatch) {
|
|
63
78
|
return;
|
|
64
79
|
}
|
|
65
|
-
await this.workspaceEditingService.updateFolders(0,
|
|
80
|
+
await this.workspaceEditingService.updateFolders(0, currentFolders.length, activeSessionFolders, true);
|
|
66
81
|
}
|
|
67
|
-
|
|
68
|
-
if (!
|
|
69
|
-
return
|
|
70
|
-
}
|
|
71
|
-
const workspace = session.workspace.get();
|
|
72
|
-
const folder = workspace?.folders[0];
|
|
73
|
-
if (!folder) {
|
|
74
|
-
return undefined;
|
|
82
|
+
getWorkspaceFolderData(workspace) {
|
|
83
|
+
if (!workspace) {
|
|
84
|
+
return [];
|
|
75
85
|
}
|
|
76
|
-
return {
|
|
77
|
-
|
|
78
|
-
|
|
86
|
+
return workspace.folders.map((folder, index) => {
|
|
87
|
+
const name = index === 0 ? workspace.label : folder.name;
|
|
88
|
+
return {
|
|
79
89
|
uri: folder.workingDirectory,
|
|
80
|
-
name:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
90
|
+
name: this.workspaceFolderLabelService.getWorkspaceFolderLabel(( new WorkspaceFolder({
|
|
91
|
+
uri: folder.workingDirectory,
|
|
92
|
+
name,
|
|
93
|
+
index
|
|
94
|
+
})), true) ?? name
|
|
95
|
+
};
|
|
96
|
+
});
|
|
84
97
|
}
|
|
85
|
-
async isFolderMountable(
|
|
86
|
-
const workspace = session?.workspace.get();
|
|
98
|
+
async isFolderMountable(workspace, uri) {
|
|
87
99
|
if (!workspace?.requiresWorkspaceTrust) {
|
|
88
100
|
return true;
|
|
89
101
|
}
|
|
90
102
|
return (await this.workspaceTrustManagementService.getUriTrustInfo(uri)).trusted;
|
|
91
103
|
}
|
|
92
104
|
};
|
|
93
|
-
WorkspaceFolderManagementContribution = ( __decorate([( __param(0, ISessionsService)), ( __param(1, IUriIdentityService)), ( __param(2, IWorkspaceContextService)), ( __param(3, IWorkspaceEditingService)), ( __param(4, IWorkspaceTrustManagementService)), ( __param(5, IWorkspaceFolderLabelService))], WorkspaceFolderManagementContribution));
|
|
105
|
+
WorkspaceFolderManagementContribution = ( __decorate([( __param(0, ISessionsService)), ( __param(1, IUriIdentityService)), ( __param(2, IWorkspaceContextService)), ( __param(3, IWorkspaceEditingService)), ( __param(4, IWorkspaceTrustManagementService)), ( __param(5, IWorkspaceFolderLabelService)), ( __param(6, IHistoryService))], WorkspaceFolderManagementContribution));
|
|
94
106
|
|
|
95
107
|
export { WorkspaceFolderManagementContribution };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
2
2
|
import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
3
|
import { IRemoteAgentHostService } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService.service";
|
|
4
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
4
5
|
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
5
6
|
import { IAgentHostGroup } from "@codingame/monaco-vscode-api/vscode/vs/sessions/common/agentHostSessionsProvider";
|
|
6
7
|
import { ISessionsProvidersService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service";
|
|
@@ -10,18 +11,22 @@ export declare class AgentHostFilterService extends Disposable implements IAgent
|
|
|
10
11
|
private readonly _sessionsProvidersService;
|
|
11
12
|
private readonly _remoteAgentHostService;
|
|
12
13
|
private readonly _storageService;
|
|
14
|
+
private readonly _configurationService;
|
|
13
15
|
readonly _serviceBrand: undefined;
|
|
14
16
|
private readonly _onDidChange;
|
|
15
17
|
readonly onDidChange: Event<void>;
|
|
16
18
|
private readonly _onDidChangeDiscovering;
|
|
17
19
|
readonly onDidChangeDiscovering: Event<void>;
|
|
18
20
|
private _selectedHostId;
|
|
21
|
+
/** Last explicit choice, retained while its host has not been discovered yet. */
|
|
22
|
+
private _preferredHostId;
|
|
19
23
|
/**
|
|
20
24
|
* `true` while {@link _selectedHostId} comes from the fallback rather than
|
|
21
25
|
* from the user. An automatic choice is provisional and can be replaced.
|
|
22
26
|
*/
|
|
23
27
|
private _selectionIsAutomatic;
|
|
24
28
|
private _hosts;
|
|
29
|
+
private _pickerHosts;
|
|
25
30
|
/**
|
|
26
31
|
* Discovery handlers contributed by host providers (e.g. dev tunnels).
|
|
27
32
|
* {@link rediscover} fans out to every handler and waits for them to
|
|
@@ -45,17 +50,17 @@ export declare class AgentHostFilterService extends Disposable implements IAgent
|
|
|
45
50
|
* changes so we always observe the live set.
|
|
46
51
|
*/
|
|
47
52
|
private readonly _providerWatchers;
|
|
48
|
-
constructor(_sessionsProvidersService: ISessionsProvidersService, _remoteAgentHostService: IRemoteAgentHostService, _storageService: IStorageService);
|
|
53
|
+
constructor(_sessionsProvidersService: ISessionsProvidersService, _remoteAgentHostService: IRemoteAgentHostService, _storageService: IStorageService, _configurationService: IConfigurationService);
|
|
49
54
|
get selectedHostId(): string | undefined;
|
|
50
55
|
get selectedHost(): IAgentHostFilterEntry | undefined;
|
|
51
56
|
get hosts(): readonly IAgentHostFilterEntry[];
|
|
52
57
|
get isDiscovering(): boolean;
|
|
53
|
-
rediscover(): Promise<
|
|
58
|
+
rediscover(): Promise<boolean>;
|
|
54
59
|
registerDiscoveryHandler(handler: () => Promise<void>): IDisposable;
|
|
55
60
|
registerHostGroup(group: IAgentHostGroup): IDisposable;
|
|
56
61
|
setSelectedHostId(hostId: string): void;
|
|
57
|
-
reconnect(hostId: string): void
|
|
58
|
-
disconnect(hostId: string): void
|
|
62
|
+
reconnect(hostId: string): Promise<void>;
|
|
63
|
+
disconnect(hostId: string): Promise<void>;
|
|
59
64
|
/**
|
|
60
65
|
* Resolve a selection against the live entry list. A selection made by the
|
|
61
66
|
* fallback is provisional and is replaced once a connectable entry shows
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
-
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
3
|
+
import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
4
4
|
import { Disposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
5
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
6
6
|
import { isWeb } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
7
7
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
8
|
+
import { RemoteAgentHostsEnabledSettingId, getEntryAddress } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService';
|
|
8
9
|
import { IRemoteAgentHostService } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService.service';
|
|
10
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
9
11
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
|
|
10
12
|
import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
|
|
11
13
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
@@ -13,6 +15,7 @@ import { isAgentHostProvider } from '@codingame/monaco-vscode-api/vscode/vs/sess
|
|
|
13
15
|
import { ISessionsProvidersService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service';
|
|
14
16
|
import { AgentHostFilterConnectionStatus } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/agentHostFilter/common/agentHostFilter';
|
|
15
17
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
18
|
+
import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
|
|
16
19
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
17
20
|
|
|
18
21
|
const STORAGE_KEY = "sessions.agentHostFilter.selectedProviderId";
|
|
@@ -47,26 +50,42 @@ function isRemoteAgentHostProvider(provider) {
|
|
|
47
50
|
return isAgentHostProvider(p) && p.connectionStatus !== undefined && typeof p.remoteAddress === "string";
|
|
48
51
|
}
|
|
49
52
|
let AgentHostFilterService = class AgentHostFilterService extends Disposable {
|
|
50
|
-
constructor(
|
|
53
|
+
constructor(
|
|
54
|
+
_sessionsProvidersService,
|
|
55
|
+
_remoteAgentHostService,
|
|
56
|
+
_storageService,
|
|
57
|
+
_configurationService
|
|
58
|
+
) {
|
|
51
59
|
super();
|
|
52
60
|
this._sessionsProvidersService = _sessionsProvidersService;
|
|
53
61
|
this._remoteAgentHostService = _remoteAgentHostService;
|
|
54
62
|
this._storageService = _storageService;
|
|
63
|
+
this._configurationService = _configurationService;
|
|
55
64
|
this._onDidChange = this._register(( new Emitter()));
|
|
56
65
|
this.onDidChange = this._onDidChange.event;
|
|
57
66
|
this._onDidChangeDiscovering = this._register(( new Emitter()));
|
|
58
67
|
this.onDidChangeDiscovering = this._onDidChangeDiscovering.event;
|
|
59
68
|
this._selectionIsAutomatic = false;
|
|
60
69
|
this._hosts = [];
|
|
70
|
+
this._pickerHosts = [];
|
|
61
71
|
this._discoveryHandlers = ( new Set());
|
|
62
72
|
this._discoveringCount = 0;
|
|
63
73
|
this._declaredGroups = ( new Map());
|
|
64
74
|
this._providerWatchers = this._register(( new DisposableStore()));
|
|
65
|
-
this.
|
|
75
|
+
this._preferredHostId = this._storageService.get(STORAGE_KEY, StorageScope.PROFILE, undefined);
|
|
76
|
+
this._selectedHostId = this._preferredHostId;
|
|
66
77
|
this._rewatchProviders();
|
|
67
78
|
this._register(
|
|
68
79
|
this._sessionsProvidersService.onDidChangeProviders(() => this._rewatchProviders())
|
|
69
80
|
);
|
|
81
|
+
this._register(
|
|
82
|
+
this._remoteAgentHostService.onDidChangeConfiguredEntries(() => this._rewatchProviders())
|
|
83
|
+
);
|
|
84
|
+
this._register(this._configurationService.onDidChangeConfiguration(e => {
|
|
85
|
+
if (e.affectsConfiguration(RemoteAgentHostsEnabledSettingId)) {
|
|
86
|
+
this._rewatchProviders();
|
|
87
|
+
}
|
|
88
|
+
}));
|
|
70
89
|
}
|
|
71
90
|
get selectedHostId() {
|
|
72
91
|
return this._selectedHostId;
|
|
@@ -78,21 +97,22 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
|
|
|
78
97
|
return this._hosts.find(h => h.id === this._selectedHostId);
|
|
79
98
|
}
|
|
80
99
|
get hosts() {
|
|
81
|
-
return this.
|
|
100
|
+
return this._pickerHosts;
|
|
82
101
|
}
|
|
83
102
|
get isDiscovering() {
|
|
84
103
|
return this._discoveringCount > 0;
|
|
85
104
|
}
|
|
86
105
|
async rediscover() {
|
|
87
106
|
if (this._discoveryHandlers.size === 0) {
|
|
88
|
-
return;
|
|
107
|
+
return true;
|
|
89
108
|
}
|
|
90
109
|
this._discoveringCount++;
|
|
91
110
|
if (this._discoveringCount === 1) {
|
|
92
111
|
this._onDidChangeDiscovering.fire();
|
|
93
112
|
}
|
|
94
113
|
try {
|
|
95
|
-
await Promise.allSettled([...this._discoveryHandlers].map(
|
|
114
|
+
const results = await Promise.allSettled([...this._discoveryHandlers].map(handler => handler()));
|
|
115
|
+
return results.every(result => result.status === "fulfilled");
|
|
96
116
|
} finally {
|
|
97
117
|
this._discoveringCount--;
|
|
98
118
|
if (this._discoveringCount === 0) {
|
|
@@ -114,47 +134,55 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
|
|
|
114
134
|
});
|
|
115
135
|
}
|
|
116
136
|
setSelectedHostId(hostId) {
|
|
117
|
-
if (!( this.
|
|
137
|
+
if (!( this._pickerHosts.some(h => h.id === hostId))) {
|
|
118
138
|
return;
|
|
119
139
|
}
|
|
120
140
|
const changed = hostId !== this._selectedHostId;
|
|
121
141
|
this._selectedHostId = hostId;
|
|
142
|
+
this._preferredHostId = hostId;
|
|
122
143
|
this._selectionIsAutomatic = false;
|
|
123
144
|
this._persist(hostId);
|
|
124
145
|
if (changed) {
|
|
125
146
|
this._onDidChange.fire();
|
|
126
147
|
}
|
|
127
148
|
}
|
|
128
|
-
reconnect(hostId) {
|
|
149
|
+
async reconnect(hostId) {
|
|
129
150
|
const host = this._hosts.find(h => h.id === hostId);
|
|
130
151
|
if (!host) {
|
|
131
152
|
return;
|
|
132
153
|
}
|
|
133
|
-
|
|
154
|
+
await Promise.all(host.providerIds.map(async providerId => {
|
|
134
155
|
const provider = this._sessionsProvidersService.getProvider(providerId);
|
|
135
156
|
if (provider && isAgentHostProvider(provider) && provider.connect) {
|
|
136
|
-
provider.connect()
|
|
137
|
-
|
|
157
|
+
await provider.connect();
|
|
158
|
+
return;
|
|
138
159
|
}
|
|
139
160
|
const address = provider && isAgentHostProvider(provider) ? provider.remoteAddress : host.address;
|
|
140
161
|
if (address) {
|
|
141
162
|
this._remoteAgentHostService.reconnect(address);
|
|
142
163
|
}
|
|
143
|
-
}
|
|
164
|
+
}));
|
|
144
165
|
}
|
|
145
|
-
disconnect(hostId) {
|
|
166
|
+
async disconnect(hostId) {
|
|
146
167
|
const host = this._hosts.find(h => h.id === hostId);
|
|
147
168
|
if (!host) {
|
|
148
169
|
return;
|
|
149
170
|
}
|
|
150
|
-
|
|
171
|
+
await Promise.all(host.providerIds.map(async providerId => {
|
|
151
172
|
const provider = this._sessionsProvidersService.getProvider(providerId);
|
|
152
173
|
if (provider && isAgentHostProvider(provider) && provider.disconnect) {
|
|
153
|
-
provider.disconnect()
|
|
174
|
+
await provider.disconnect();
|
|
154
175
|
}
|
|
155
|
-
}
|
|
176
|
+
}));
|
|
156
177
|
}
|
|
157
178
|
_validate(hostId) {
|
|
179
|
+
const preferred = this._hosts.find(h => h.id === this._preferredHostId);
|
|
180
|
+
if (preferred) {
|
|
181
|
+
return {
|
|
182
|
+
id: preferred.id,
|
|
183
|
+
automatic: false
|
|
184
|
+
};
|
|
185
|
+
}
|
|
158
186
|
if (this._hosts.length === 0) {
|
|
159
187
|
return {
|
|
160
188
|
id: undefined,
|
|
@@ -168,16 +196,21 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
|
|
|
168
196
|
automatic: this._selectionIsAutomatic
|
|
169
197
|
};
|
|
170
198
|
}
|
|
171
|
-
const connectable = this.
|
|
199
|
+
const connectable = this._pickerHosts.find(h => h.connectable);
|
|
200
|
+
const fallback = connectable ?? current ?? this._pickerHosts[0];
|
|
172
201
|
return {
|
|
173
|
-
id:
|
|
174
|
-
automatic:
|
|
202
|
+
id: fallback?.id,
|
|
203
|
+
automatic: fallback !== undefined
|
|
175
204
|
};
|
|
176
205
|
}
|
|
177
206
|
_rewatchProviders() {
|
|
178
207
|
this._providerWatchers.clear();
|
|
179
208
|
const providers = this._sessionsProvidersService.getProviders().filter(isRemoteAgentHostProvider);
|
|
209
|
+
const providerLabelsChanged = observableSignalFromEvent(this, Event.any(
|
|
210
|
+
...providers.map(provider => provider.onDidChangeSessionTypes ?? Event.None)
|
|
211
|
+
));
|
|
180
212
|
this._providerWatchers.add(autorun(reader => {
|
|
213
|
+
providerLabelsChanged.read(reader);
|
|
181
214
|
const grouped = ( new Map());
|
|
182
215
|
const entries = [];
|
|
183
216
|
const groupEntry = group => {
|
|
@@ -185,13 +218,14 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
|
|
|
185
218
|
if (!entry) {
|
|
186
219
|
entry = {
|
|
187
220
|
id: group.id,
|
|
188
|
-
providerIds: [],
|
|
221
|
+
providerIds: group.sessionCreationProviderId && this._sessionsProvidersService.getProvider(group.sessionCreationProviderId) ? [group.sessionCreationProviderId] : [],
|
|
189
222
|
label: group.label,
|
|
190
223
|
grouped: true,
|
|
191
224
|
address: undefined,
|
|
192
225
|
icon: group.icon ?? Codicon.remote,
|
|
193
226
|
status: AgentHostFilterConnectionStatus.Disconnected,
|
|
194
227
|
connectable: group.connectable !== false,
|
|
228
|
+
sessionCreationProviderId: group.sessionCreationProviderId,
|
|
195
229
|
order: group.order ?? 0
|
|
196
230
|
};
|
|
197
231
|
grouped.set(group.id, entry);
|
|
@@ -202,7 +236,11 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
|
|
|
202
236
|
for (const group of ( this._declaredGroups.values())) {
|
|
203
237
|
groupEntry(group);
|
|
204
238
|
}
|
|
239
|
+
const hiddenProviderIds = ( new Set());
|
|
205
240
|
for (const provider of providers) {
|
|
241
|
+
if (provider.isVisibleInEnvironmentPicker?.read(reader) === false) {
|
|
242
|
+
hiddenProviderIds.add(provider.id);
|
|
243
|
+
}
|
|
206
244
|
const status = mapStatus(provider.connectionStatus.read(reader));
|
|
207
245
|
const group = provider.hostGroup;
|
|
208
246
|
if (!group) {
|
|
@@ -210,6 +248,7 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
|
|
|
210
248
|
id: provider.id,
|
|
211
249
|
providerIds: [provider.id],
|
|
212
250
|
label: provider.label,
|
|
251
|
+
description: provider.hostDescription?.read(reader),
|
|
213
252
|
grouped: false,
|
|
214
253
|
address: provider.remoteAddress,
|
|
215
254
|
icon: provider.icon,
|
|
@@ -223,20 +262,31 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
|
|
|
223
262
|
entry.providerIds.push(provider.id);
|
|
224
263
|
entry.status = rollupStatus([entry.status, status]);
|
|
225
264
|
}
|
|
265
|
+
const selectedHost = this.selectedHost;
|
|
266
|
+
if (isWeb && selectedHost?.address && this._configurationService.getValue(RemoteAgentHostsEnabledSettingId) && selectedHost.id === this._preferredHostId && !( entries.some(entry => entry.id === selectedHost.id)) && ( this._remoteAgentHostService.configuredEntries.some(entry => getEntryAddress(entry) === selectedHost.address))) {
|
|
267
|
+
entries.push({
|
|
268
|
+
...selectedHost,
|
|
269
|
+
providerIds: [...selectedHost.providerIds],
|
|
270
|
+
status: AgentHostFilterConnectionStatus.Disconnected,
|
|
271
|
+
order: 0
|
|
272
|
+
});
|
|
273
|
+
}
|
|
226
274
|
entries.sort((a, b) => a.order - b.order || a.label.localeCompare(b.label));
|
|
227
275
|
this._applyHosts(entries.map((
|
|
228
276
|
{
|
|
229
277
|
order,
|
|
230
278
|
...entry
|
|
231
279
|
}
|
|
232
|
-
) => entry));
|
|
280
|
+
) => entry), hiddenProviderIds);
|
|
233
281
|
}));
|
|
234
282
|
}
|
|
235
|
-
_applyHosts(hosts) {
|
|
236
|
-
const
|
|
237
|
-
|
|
283
|
+
_applyHosts(hosts, hiddenProviderIds) {
|
|
284
|
+
const pickerHosts = hosts.filter(host => !( hiddenProviderIds.has(host.id)));
|
|
285
|
+
const changed = pickerHosts.length !== this._pickerHosts.length || ( pickerHosts.some((host, i) => host.id !== this._pickerHosts[i].id)) || hosts.length !== this._hosts.length || ( hosts.some(
|
|
286
|
+
(h, i) => h.id !== this._hosts[i].id || h.label !== this._hosts[i].label || h.description !== this._hosts[i].description || h.address !== this._hosts[i].address || h.status !== this._hosts[i].status || h.sessionCreationProviderId !== this._hosts[i].sessionCreationProviderId || h.providerIds.length !== this._hosts[i].providerIds.length || ( h.providerIds.some((p, j) => p !== this._hosts[i].providerIds[j]))
|
|
238
287
|
));
|
|
239
288
|
this._hosts = hosts;
|
|
289
|
+
this._pickerHosts = pickerHosts;
|
|
240
290
|
const validated = isWeb ? this._validate(this._selectedHostId) : {
|
|
241
291
|
id: undefined,
|
|
242
292
|
automatic: false
|
|
@@ -254,6 +304,6 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
|
|
|
254
304
|
this._storageService.store(STORAGE_KEY, hostId, StorageScope.PROFILE, StorageTarget.USER);
|
|
255
305
|
}
|
|
256
306
|
};
|
|
257
|
-
AgentHostFilterService = ( __decorate([( __param(0, ISessionsProvidersService)), ( __param(1, IRemoteAgentHostService)), ( __param(2, IStorageService))], AgentHostFilterService));
|
|
307
|
+
AgentHostFilterService = ( __decorate([( __param(0, ISessionsProvidersService)), ( __param(1, IRemoteAgentHostService)), ( __param(2, IStorageService)), ( __param(3, IConfigurationService))], AgentHostFilterService));
|
|
258
308
|
|
|
259
309
|
export { AgentHostFilterService };
|
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
-
import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
2
|
+
import { IObservable, ITransaction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
3
3
|
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
|
|
4
4
|
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
5
5
|
import { ICustomViewDescriptor } from "./customView.js";
|
|
6
6
|
import { ICustomViewService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/customView/browser/customViewService.service";
|
|
7
|
+
export interface ICustomViewOpenRequest {
|
|
8
|
+
readonly descriptor: ICustomViewDescriptor;
|
|
9
|
+
readonly source: "explicit" | "history" | "restore";
|
|
10
|
+
}
|
|
7
11
|
export declare class CustomViewService extends Disposable implements ICustomViewService {
|
|
8
12
|
private readonly _logService;
|
|
9
13
|
private readonly _storageService;
|
|
10
14
|
readonly _serviceBrand: undefined;
|
|
11
15
|
private readonly _descriptors;
|
|
12
16
|
private _desiredCustomViewId;
|
|
13
|
-
private readonly
|
|
17
|
+
private readonly _activeCustomViewOpen;
|
|
18
|
+
readonly activeCustomViewOpen: IObservable<ICustomViewOpenRequest | undefined>;
|
|
14
19
|
readonly activeCustomView: IObservable<ICustomViewDescriptor | undefined>;
|
|
15
20
|
constructor(_logService: ILogService, _storageService: IStorageService);
|
|
16
21
|
registerCustomView(descriptor: ICustomViewDescriptor, options?: {
|
|
17
22
|
readonly restore?: boolean;
|
|
18
23
|
}): IDisposable;
|
|
19
|
-
showCustomView(id: string
|
|
20
|
-
|
|
24
|
+
showCustomView(id: string, options?: {
|
|
25
|
+
readonly source: "history";
|
|
26
|
+
}): void;
|
|
27
|
+
hideCustomView(tx?: ITransaction): void;
|
|
21
28
|
}
|
|
@@ -8,6 +8,7 @@ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode
|
|
|
8
8
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
9
9
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
10
10
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
11
|
+
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
11
12
|
|
|
12
13
|
const ACTIVE_CUSTOM_VIEW_STORAGE_KEY = "sessions.activeCustomView";
|
|
13
14
|
let CustomViewService = class CustomViewService extends Disposable {
|
|
@@ -16,8 +17,9 @@ let CustomViewService = class CustomViewService extends Disposable {
|
|
|
16
17
|
this._logService = _logService;
|
|
17
18
|
this._storageService = _storageService;
|
|
18
19
|
this._descriptors = ( new Map());
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
20
|
+
this._activeCustomViewOpen = observableValue(this, undefined);
|
|
21
|
+
this.activeCustomViewOpen = this._activeCustomViewOpen;
|
|
22
|
+
this.activeCustomView = derived(this, reader => this._activeCustomViewOpen.read(reader)?.descriptor);
|
|
21
23
|
this._desiredCustomViewId = this._storageService.get(ACTIVE_CUSTOM_VIEW_STORAGE_KEY, StorageScope.WORKSPACE);
|
|
22
24
|
}
|
|
23
25
|
registerCustomView(descriptor, options) {
|
|
@@ -30,17 +32,20 @@ let CustomViewService = class CustomViewService extends Disposable {
|
|
|
30
32
|
this._desiredCustomViewId = undefined;
|
|
31
33
|
this._storageService.remove(ACTIVE_CUSTOM_VIEW_STORAGE_KEY, StorageScope.WORKSPACE);
|
|
32
34
|
} else {
|
|
33
|
-
this.
|
|
35
|
+
this._activeCustomViewOpen.set({
|
|
36
|
+
descriptor,
|
|
37
|
+
source: "restore"
|
|
38
|
+
}, undefined);
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
41
|
return toDisposable(() => {
|
|
37
42
|
this._descriptors.delete(descriptor.id);
|
|
38
|
-
if (this.
|
|
39
|
-
this.
|
|
43
|
+
if (this.activeCustomView.get() === descriptor) {
|
|
44
|
+
this._activeCustomViewOpen.set(undefined, undefined);
|
|
40
45
|
}
|
|
41
46
|
});
|
|
42
47
|
}
|
|
43
|
-
showCustomView(id) {
|
|
48
|
+
showCustomView(id, options) {
|
|
44
49
|
const descriptor = this._descriptors.get(id);
|
|
45
50
|
if (!descriptor) {
|
|
46
51
|
this._logService.warn(
|
|
@@ -55,12 +60,15 @@ let CustomViewService = class CustomViewService extends Disposable {
|
|
|
55
60
|
StorageScope.WORKSPACE,
|
|
56
61
|
StorageTarget.MACHINE
|
|
57
62
|
);
|
|
58
|
-
this.
|
|
63
|
+
this._activeCustomViewOpen.set({
|
|
64
|
+
descriptor,
|
|
65
|
+
source: options?.source ?? "explicit"
|
|
66
|
+
}, undefined);
|
|
59
67
|
}
|
|
60
|
-
hideCustomView() {
|
|
68
|
+
hideCustomView(tx) {
|
|
61
69
|
this._desiredCustomViewId = undefined;
|
|
62
70
|
this._storageService.remove(ACTIVE_CUSTOM_VIEW_STORAGE_KEY, StorageScope.WORKSPACE);
|
|
63
|
-
this.
|
|
71
|
+
this._activeCustomViewOpen.set(undefined, tx);
|
|
64
72
|
}
|
|
65
73
|
};
|
|
66
74
|
CustomViewService = ( __decorate([( __param(0, ILogService)), ( __param(1, IStorageService))], CustomViewService));
|
|
@@ -5,6 +5,7 @@ import { ISession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/servic
|
|
|
5
5
|
import { ISessionsManagementService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service";
|
|
6
6
|
import { ISessionsPartService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService.service";
|
|
7
7
|
import { VisibleSessions } from "./visibleSessions.js";
|
|
8
|
+
import { Direction } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid";
|
|
8
9
|
export declare enum ClosedItemKind {
|
|
9
10
|
Chat = "chat",
|
|
10
11
|
Session = "session"
|
|
@@ -22,6 +23,10 @@ export interface IClosedSessionItem {
|
|
|
22
23
|
/** Grid index the slot occupied when the session left the grid. */
|
|
23
24
|
readonly index: number;
|
|
24
25
|
readonly sticky: boolean;
|
|
26
|
+
readonly placement?: {
|
|
27
|
+
readonly sessionId: string | undefined;
|
|
28
|
+
readonly direction: Direction;
|
|
29
|
+
};
|
|
25
30
|
/**
|
|
26
31
|
* Set when the session left the grid because a newly opened slot took its
|
|
27
32
|
* place, holding the id of that slot (`undefined` for the empty
|
|
@@ -7,8 +7,10 @@ import { SessionsHasClosedItemContext } from '@codingame/monaco-vscode-api/vscod
|
|
|
7
7
|
import { SessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
|
|
8
8
|
import { ISessionsManagementService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service';
|
|
9
9
|
import { ISessionsPartService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService.service';
|
|
10
|
+
import { Direction } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid';
|
|
10
11
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
11
12
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
13
|
+
import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
|
|
12
14
|
|
|
13
15
|
var ClosedItemKind;
|
|
14
16
|
(function(ClosedItemKind) {
|
|
@@ -73,7 +75,7 @@ let ClosedItemHistory = class ClosedItemHistory extends Disposable {
|
|
|
73
75
|
if (item.kind === ClosedItemKind.Chat) {
|
|
74
76
|
await this._openChat(session, item.chatResource);
|
|
75
77
|
} else {
|
|
76
|
-
this._reopenSession(item, session);
|
|
78
|
+
transaction(() => this._reopenSession(item, session));
|
|
77
79
|
}
|
|
78
80
|
} finally {
|
|
79
81
|
suspension.dispose();
|
|
@@ -87,7 +89,22 @@ let ClosedItemHistory = class ClosedItemHistory extends Disposable {
|
|
|
87
89
|
return;
|
|
88
90
|
}
|
|
89
91
|
}
|
|
92
|
+
if (!item.replacedBy && (!item.placement || !this._visibility.getSlot(item.placement.sessionId))) {
|
|
93
|
+
const active = this._visibility.setActive(session);
|
|
94
|
+
if (item.sticky && !active?.sticky.get()) {
|
|
95
|
+
this._visibility.toggleStickiness(session);
|
|
96
|
+
}
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
90
99
|
this._visibility.insertAtIndex(session, item.index, item.sticky);
|
|
100
|
+
if (item.placement && this._visibility.getSlot(item.placement.sessionId)) {
|
|
101
|
+
const direction = item.placement.direction;
|
|
102
|
+
this._visibility.insertAt(
|
|
103
|
+
session,
|
|
104
|
+
item.placement.sessionId,
|
|
105
|
+
direction === Direction.Left ? "left" : direction === Direction.Right ? "right" : direction === Direction.Up ? "up" : "down"
|
|
106
|
+
);
|
|
107
|
+
}
|
|
91
108
|
}
|
|
92
109
|
_recordSession(session, index, sticky, replacedBy) {
|
|
93
110
|
if (session.status.get() !== SessionStatus.Untitled) {
|
|
@@ -96,7 +113,8 @@ let ClosedItemHistory = class ClosedItemHistory extends Disposable {
|
|
|
96
113
|
session,
|
|
97
114
|
index,
|
|
98
115
|
sticky,
|
|
99
|
-
replacedBy
|
|
116
|
+
replacedBy,
|
|
117
|
+
placement: this._sessionsPartService.getSessionPlacement(session.sessionId)
|
|
100
118
|
});
|
|
101
119
|
}
|
|
102
120
|
}
|