@codingame/monaco-vscode-workbench-service-override 37.6.1 → 38.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common.js +2 -0
- package/index.js +9 -10
- package/package.json +10 -10
- package/session.js +45 -42
- package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.d.ts +1 -0
- package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.js +12 -0
- package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.d.ts → desktopWorkbench.d.ts} +6 -5
- package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.js → desktopWorkbench.js} +23 -25
- package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.d.ts +5 -2
- package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.js +41 -3
- package/vscode/src/vs/sessions/browser/layoutActions.js +25 -41
- package/vscode/src/vs/sessions/browser/mobileWorkbench.d.ts +4 -0
- package/vscode/src/vs/sessions/browser/mobileWorkbench.js +10 -0
- package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.d.ts +10 -5
- package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +138 -34
- package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.d.ts +2 -0
- package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.js +13 -5
- package/vscode/src/vs/sessions/browser/parts/chatGroupView.d.ts +27 -5
- package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +129 -28
- package/vscode/src/vs/sessions/browser/parts/chatGroupsView.d.ts +22 -7
- package/vscode/src/vs/sessions/browser/parts/chatGroupsView.js +260 -21
- package/vscode/src/vs/sessions/browser/parts/chatHeader.d.ts +25 -0
- package/vscode/src/vs/sessions/browser/parts/chatHeader.js +42 -0
- package/vscode/src/vs/sessions/browser/parts/customViewGridPart.js +9 -1
- package/vscode/src/vs/sessions/browser/parts/customViewNode.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/{singlePaneAuxiliaryBarPart.d.ts → desktopAuxiliaryBarPart.d.ts} +4 -4
- package/vscode/src/vs/sessions/browser/parts/desktopAuxiliaryBarPart.js +26 -0
- package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.d.ts → desktopEditorPart.d.ts} +8 -6
- package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.js → desktopEditorPart.js} +25 -5
- package/vscode/src/vs/sessions/browser/parts/editorPart.js +16 -4
- package/vscode/src/vs/sessions/browser/parts/editorParts.d.ts +1 -1
- package/vscode/src/vs/sessions/browser/parts/editorParts.js +7 -6
- package/vscode/src/vs/sessions/browser/parts/gridGap.d.ts +14 -0
- package/vscode/src/vs/sessions/browser/parts/gridGap.js +69 -0
- package/vscode/src/vs/sessions/browser/parts/media/chatCompositeBar.css +132 -4
- package/vscode/src/vs/sessions/browser/parts/media/chatGroupsView.css +10 -0
- package/vscode/src/vs/sessions/browser/parts/media/editorPart.css +46 -2
- package/vscode/src/vs/sessions/browser/parts/media/sessionReadOnlyBanner.css +3 -3
- package/vscode/src/vs/sessions/browser/parts/media/sessionView.css +45 -48
- package/vscode/src/vs/sessions/browser/parts/media/sessionsPart.css +15 -0
- package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +8 -8
- package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.d.ts +9 -1
- package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.js +21 -3
- package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.d.ts +4 -3
- package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.js +29 -15
- package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.d.ts +67 -0
- package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.js +598 -0
- package/vscode/src/vs/sessions/browser/parts/sessionHeader.d.ts +11 -84
- package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +37 -317
- package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.d.ts +103 -0
- package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.js +391 -0
- package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.d.ts +6 -4
- package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +58 -28
- package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.d.ts +4 -0
- package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +66 -23
- package/vscode/src/vs/sessions/browser/parts/sessionView.d.ts +24 -5
- package/vscode/src/vs/sessions/browser/parts/sessionView.js +143 -33
- package/vscode/src/vs/sessions/browser/parts/sessionsPart.d.ts +25 -19
- package/vscode/src/vs/sessions/browser/parts/sessionsPart.js +157 -58
- package/vscode/src/vs/sessions/browser/parts/sessionsParts.d.ts +12 -3
- package/vscode/src/vs/sessions/browser/parts/sessionsParts.js +17 -2
- package/vscode/src/vs/sessions/browser/sessionWorkspace.d.ts +6 -3
- package/vscode/src/vs/sessions/browser/sessionWorkspace.js +2 -2
- package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +66 -20
- package/vscode/src/vs/sessions/browser/sessionsSignInDialog.d.ts +1 -0
- package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +5 -4
- package/vscode/src/vs/sessions/browser/workbenchFactory.d.ts +12 -0
- package/vscode/src/vs/sessions/browser/workbenchFactory.js +17 -0
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.d.ts +85 -1
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +118 -100
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.d.ts +3 -2
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +39 -34
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountTitleBarWidget.css +6 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.d.ts +3 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.js +6 -0
- package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.js +18 -18
- package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.js +12 -12
- package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.js +7 -7
- package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.js +12 -12
- package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.js +10 -10
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.d.ts +78 -8
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.js +1166 -202
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.d.ts +11 -1
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +190 -69
- package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.d.ts +11 -9
- package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +122 -233
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.d.ts +22 -0
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.js +62 -0
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.d.ts +7 -2
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +172 -84
- package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +17 -7
- package/vscode/src/vs/sessions/contrib/automations/browser/media/automationDialog.css +242 -60
- package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.d.ts +24 -36
- package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +104 -420
- package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +15 -14
- package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.d.ts +13 -3
- package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +66 -43
- package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.js +2 -7
- package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +54 -59
- package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +7 -7
- package/vscode/src/vs/sessions/contrib/changes/browser/media/changesActions.css +6 -0
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +25 -21
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +21 -27
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +17 -17
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.d.ts +5 -5
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.js +2 -2
- package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +2 -2
- package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.js +9 -16
- package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +7 -7
- package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +10 -10
- package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.d.ts +13 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +104 -117
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +8 -7
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.js +5 -5
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.js +1 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/media/editorBreadcrumbs.css +0 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/media/editorHeader.css +1 -1
- package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.d.ts +7 -0
- package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.js +77 -13
- package/vscode/src/vs/sessions/contrib/files/browser/filesView.d.ts +2 -1
- package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +14 -4
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.d.ts +45 -10
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +527 -77
- package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.d.ts +18 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.js +95 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.d.ts → desktop/desktopDetailPanelCoordinator.d.ts} +5 -4
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.js → desktop/desktopDetailPanelCoordinator.js} +10 -7
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.d.ts → desktop/desktopDockedTabsCoordinator.d.ts} +15 -12
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.js → desktop/desktopDockedTabsCoordinator.js} +91 -44
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.d.ts → desktop/desktopDraftSessionStrategy.d.ts} +10 -5
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.js → desktop/desktopDraftSessionStrategy.js} +95 -22
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.d.ts → desktop/desktopExistingSessionStrategy.d.ts} +13 -11
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.js → desktop/desktopExistingSessionStrategy.js} +137 -57
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.d.ts → desktop/desktopLayoutStrategy.d.ts} +22 -13
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.js → desktop/desktopLayoutStrategy.js} +2 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.d.ts +22 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.js +136 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneSharedHelpers.d.ts → desktop/desktopSharedHelpers.d.ts} +9 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopSharedHelpers.js +56 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.d.ts → desktop/desktopVisibilityProfileStore.d.ts} +3 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.js → desktop/desktopVisibilityProfileStore.js} +10 -9
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.d.ts +71 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.js +201 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.d.ts +8 -1
- package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +35 -35
- package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.d.ts +39 -0
- package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.js +73 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.d.ts +42 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.js +14 -10
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.js +3 -4
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.d.ts +2 -2
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.js +13 -9
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.js +20 -5
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.d.ts +8 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.js +19 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +21 -20
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +10 -5
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +12 -8
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.d.ts +3 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +12 -7
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.d.ts +9 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +46 -19
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.js +2 -0
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/media/sessionsPolicyBlocked.css +33 -0
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.d.ts +4 -2
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.js +29 -8
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.d.ts +15 -2
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +169 -32
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.js +30 -8
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js +8 -34
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.js +63 -49
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.js +1 -1
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.js +31 -17
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.d.ts +32 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.js +250 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.d.ts +6 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.js +52 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.d.ts +51 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.js +439 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.d.ts +45 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.js +595 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.d.ts +20 -3
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +360 -46
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.d.ts +9 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.js +59 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/media/connectionDiagnostics.css +201 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.d.ts +10 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.js +70 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.d.ts +20 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.js +104 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.d.ts +15 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.js +152 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.d.ts +49 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.js +340 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.d.ts +41 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.js +400 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.d.ts +28 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.js +178 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.d.ts +17 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.js +206 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.js +58 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.d.ts +10 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.js +90 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.d.ts +38 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.js +58 -0
- package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +4 -5
- package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +1 -1
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.js +33 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.d.ts +30 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.js +190 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.d.ts +31 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.js +559 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.d.ts +12 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.js +38 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.d.ts +13 -4
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +155 -22
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +9 -5
- package/vscode/src/vs/sessions/contrib/sessions/browser/media/automationsCards.css +90 -25
- package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css +21 -4
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.d.ts +2 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +11 -7
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.d.ts +116 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +126 -30
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.d.ts +26 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.js +160 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.d.ts +14 -6
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +555 -151
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.d.ts +192 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.js +510 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.d.ts +6 -7
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.js +64 -57
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.d.ts +5 -3
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +83 -51
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.d.ts +5 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +33 -12
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.d.ts +3 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.js +53 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +10 -10
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.d.ts +2 -2
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +103 -55
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.d.ts +7 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +679 -325
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.d.ts +27 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +508 -163
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.d.ts +20 -2
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.js +100 -17
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.d.ts +5 -1
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.js +108 -30
- package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.d.ts +5 -3
- package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.js +47 -35
- package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.d.ts +9 -4
- package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.js +75 -25
- package/vscode/src/vs/sessions/services/customView/browser/customViewService.d.ts +11 -4
- package/vscode/src/vs/sessions/services/customView/browser/customViewService.js +17 -9
- package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.d.ts +5 -0
- package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.js +20 -2
- package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.d.ts +75 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.js +1135 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.d.ts +17 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.js +99 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.d.ts +4 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.js +88 -23
- package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.d.ts +19 -26
- package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.js +115 -74
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.js +1 -1
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.d.ts +22 -7
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +278 -60
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.d.ts +17 -20
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.js +33 -22
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.d.ts +28 -8
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +673 -160
- package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.d.ts +13 -4
- package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.js +105 -15
- package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.js +53 -34
- package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.js +1 -1
- package/vscode/src/vs/workbench/browser/layout.js +1 -1
- package/vscode/src/vs/workbench/browser/workbench.d.ts +0 -2
- package/vscode/src/vs/workbench/browser/workbench.js +23 -20
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +41 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.js +56 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +0 -18
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.js +0 -27
- package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.js +0 -36
- package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.d.ts +0 -37
- package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.js +0 -126
- package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.d.ts +0 -59
- package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +0 -232
- package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.d.ts +0 -13
- package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.js +0 -22
- package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +0 -45
- package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +0 -110
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.d.ts +0 -112
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.js +0 -444
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.js +0 -43
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.d.ts +0 -55
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.js +0 -91
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.d.ts +0 -26
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +0 -98
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +0 -33
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +0 -98
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +0 -2
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +0 -13
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +0 -122
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +0 -464
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +0 -35
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +0 -90
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +0 -84
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +0 -328
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +0 -174
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +0 -1390
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +0 -44
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +0 -30
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +0 -78
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +0 -11
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +0 -26
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.d.ts +0 -27
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.js +0 -26
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { registerCss } from '@codingame/monaco-vscode-api/css';
|
|
3
3
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
4
4
|
import * as chatGroupsView from './media/chatGroupsView.css';
|
|
5
|
-
import { $, isAncestorOfActiveElement, size } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
5
|
+
import { $, getActiveElement, isAncestorOfActiveElement, size } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
6
6
|
import { Color } from '@codingame/monaco-vscode-api/vscode/vs/base/common/color';
|
|
7
7
|
import { onUnexpectedError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
8
8
|
import { MutableDisposable, DisposableMap, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
@@ -10,6 +10,9 @@ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/in
|
|
|
10
10
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
11
11
|
import { SerializableGrid, Sizing, Direction } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid';
|
|
12
12
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
13
|
+
import { LocalSelectionTransfer } from '@codingame/monaco-vscode-api/vscode/vs/platform/dnd/browser/dnd';
|
|
14
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
15
|
+
import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
|
|
13
16
|
import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
|
|
14
17
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
15
18
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colorUtils';
|
|
@@ -25,11 +28,13 @@ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quic
|
|
|
25
28
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
|
|
26
29
|
import { Themable } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService';
|
|
27
30
|
import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
|
|
28
|
-
import { agentsPanelBorder } from '@codingame/monaco-vscode-api/vscode/vs/
|
|
31
|
+
import { agentsPanelBorder } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/agentsColors';
|
|
32
|
+
import { ChatOriginKind } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
|
|
29
33
|
import { ISessionsService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service';
|
|
30
34
|
import { ChatGroupView } from './chatGroupView.js';
|
|
31
35
|
import { ChatGroupDropTarget } from './chatGroupDropTarget.js';
|
|
32
|
-
import { isSessionChatDrag } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/dnd';
|
|
36
|
+
import { SessionsDataTransfers, DraggedSessionIdentifier, getSessionChatDragData, isSessionChatDrag } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/dnd';
|
|
37
|
+
import { SESSIONS_CHAT_TABS_SETTING, SESSIONS_CHAT_TABS_DEFAULT, SessionsChatTabsMode } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/sessionConfig';
|
|
33
38
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
34
39
|
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
35
40
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
@@ -47,7 +52,13 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
47
52
|
get groupCount() {
|
|
48
53
|
return this._groupCount;
|
|
49
54
|
}
|
|
50
|
-
constructor(
|
|
55
|
+
constructor(
|
|
56
|
+
themeService,
|
|
57
|
+
_instantiationService,
|
|
58
|
+
_sessionsService,
|
|
59
|
+
_storageService,
|
|
60
|
+
configurationService
|
|
61
|
+
) {
|
|
51
62
|
super(themeService);
|
|
52
63
|
this._instantiationService = _instantiationService;
|
|
53
64
|
this._sessionsService = _sessionsService;
|
|
@@ -61,8 +72,19 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
61
72
|
this._sessionActive = true;
|
|
62
73
|
this._sessionVisible = true;
|
|
63
74
|
this._singleGroupTabsReplaceHeader = observableValue(this, false);
|
|
75
|
+
this._knownChatsByResource = ( new Map());
|
|
76
|
+
this._pendingNewGroupResourceIds = ( new Set());
|
|
64
77
|
this._restorePending = false;
|
|
65
78
|
this._gridDidLayout = false;
|
|
79
|
+
const chatTabsMode = observableConfigValue(
|
|
80
|
+
SESSIONS_CHAT_TABS_SETTING,
|
|
81
|
+
SESSIONS_CHAT_TABS_DEFAULT,
|
|
82
|
+
configurationService
|
|
83
|
+
);
|
|
84
|
+
this.showChatAsSessionView = derived(reader => chatTabsMode.read(reader) === SessionsChatTabsMode.Single);
|
|
85
|
+
this._showGroupChatHeaders = derived(
|
|
86
|
+
reader => this.showChatAsSessionView.read(reader) && this._groupCount.read(reader) > 1
|
|
87
|
+
);
|
|
66
88
|
}
|
|
67
89
|
setSingleGroupTabsReplaceHeader(enabled) {
|
|
68
90
|
this._singleGroupTabsReplaceHeader.set(enabled, undefined);
|
|
@@ -84,6 +106,8 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
84
106
|
this._activeGroup = undefined;
|
|
85
107
|
this._restoreAssignment = undefined;
|
|
86
108
|
this._restoreOrder = undefined;
|
|
109
|
+
this._knownChatsByResource.clear();
|
|
110
|
+
this._pendingNewGroupResourceIds.clear();
|
|
87
111
|
this._restorePending = false;
|
|
88
112
|
this._lastSessionActiveChatId = undefined;
|
|
89
113
|
this._setGroupCount(1);
|
|
@@ -97,8 +121,14 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
97
121
|
store.add(grid);
|
|
98
122
|
this.element.replaceChildren(grid.element);
|
|
99
123
|
store.add(toDisposable(() => grid.element.remove()));
|
|
124
|
+
const sessionTransfer = LocalSelectionTransfer.getInstance();
|
|
125
|
+
const isMainChatDrag = event => event.dataTransfer?.types.includes(SessionsDataTransfers.SESSION) === true && sessionTransfer.getData(DraggedSessionIdentifier.prototype)?.some(dragged => dragged.sessionId === session.sessionId) === true;
|
|
100
126
|
const dropDelegate = {
|
|
101
|
-
isChatDrag: event => isSessionChatDrag(event, session.sessionId),
|
|
127
|
+
isChatDrag: event => isSessionChatDrag(event, session.sessionId) || isMainChatDrag(event),
|
|
128
|
+
getChatDragData: event => getSessionChatDragData(event) ?? (isMainChatDrag(event) ? {
|
|
129
|
+
sessionId: session.sessionId,
|
|
130
|
+
resource: ( session.mainChat.get().resource.toString())
|
|
131
|
+
} : undefined),
|
|
102
132
|
findTargetGroup: child => this._findTargetGroup(child),
|
|
103
133
|
onChatDrop: (groupId, zone, data) => {
|
|
104
134
|
this._onChatDrop(groupId, zone, data).catch(onUnexpectedError);
|
|
@@ -173,6 +203,9 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
173
203
|
if (g.activeResourceId) {
|
|
174
204
|
entry.activeResourceId.set(g.activeResourceId, undefined);
|
|
175
205
|
}
|
|
206
|
+
if (g.pinnedResourceId && g.resourceIds.includes(g.pinnedResourceId)) {
|
|
207
|
+
entry.pinnedResourceId.set(g.pinnedResourceId, undefined);
|
|
208
|
+
}
|
|
176
209
|
});
|
|
177
210
|
this._groups = groups;
|
|
178
211
|
this._restoreAssignment = assignment;
|
|
@@ -191,6 +224,7 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
191
224
|
this._groupDisposables.set(id, store);
|
|
192
225
|
const resourceIds = observableValue(`chatGroup.${id}.resourceIds`, []);
|
|
193
226
|
const activeResourceId = observableValue(`chatGroup.${id}.activeResourceId`, "");
|
|
227
|
+
const pinnedResourceId = observableValue(`chatGroup.${id}.pinnedResourceId`, undefined);
|
|
194
228
|
const chats = derived(reader => {
|
|
195
229
|
const all = session.visibleChatTabs.read(reader);
|
|
196
230
|
const ids = resourceIds.read(reader);
|
|
@@ -204,7 +238,7 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
204
238
|
return result;
|
|
205
239
|
});
|
|
206
240
|
const tabsVisible = derived(reader => {
|
|
207
|
-
if (!session.isCreated.read(reader)) {
|
|
241
|
+
if (!session.isCreated.read(reader) || this.showChatAsSessionView.read(reader)) {
|
|
208
242
|
return false;
|
|
209
243
|
}
|
|
210
244
|
if (this._groupCount.read(reader) > 1) {
|
|
@@ -215,12 +249,14 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
215
249
|
const showSessionActions = derived(
|
|
216
250
|
reader => this._singleGroupTabsReplaceHeader.read(reader) && this._groupCount.read(reader) === 1 && tabsVisible.read(reader)
|
|
217
251
|
);
|
|
252
|
+
const activeChatIsPinned = derived(reader => pinnedResourceId.read(reader) === activeResourceId.read(reader));
|
|
218
253
|
const view = store.add(this._instantiationService.createInstance(ChatGroupView));
|
|
219
254
|
const entry = {
|
|
220
255
|
id,
|
|
221
256
|
view,
|
|
222
257
|
resourceIds,
|
|
223
258
|
activeResourceId,
|
|
259
|
+
pinnedResourceId,
|
|
224
260
|
chats,
|
|
225
261
|
tabsVisible
|
|
226
262
|
};
|
|
@@ -232,7 +268,10 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
232
268
|
activeChatResource: activeResourceId,
|
|
233
269
|
mainChatResource: this._mainChatResource,
|
|
234
270
|
tabsVisible,
|
|
271
|
+
chatHeaderVisible: this._showGroupChatHeaders,
|
|
272
|
+
activeChatIsPinned,
|
|
235
273
|
showSessionActions,
|
|
274
|
+
activate: () => this._setActiveGroup(entry),
|
|
236
275
|
openChat: resource => this._openChat(entry, resource),
|
|
237
276
|
onTabDragStart: () => {},
|
|
238
277
|
onTabDragEnd: () => {}
|
|
@@ -247,22 +286,55 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
247
286
|
if (!session) {
|
|
248
287
|
return;
|
|
249
288
|
}
|
|
289
|
+
const catalogIds = ( new Set());
|
|
290
|
+
for (const chat of session.chats.read(reader)) {
|
|
291
|
+
const resourceId = ( chat.resource.toString());
|
|
292
|
+
catalogIds.add(resourceId);
|
|
293
|
+
this._knownChatsByResource.set(resourceId, chat);
|
|
294
|
+
}
|
|
250
295
|
const chats = session.visibleChatTabs.read(reader);
|
|
251
|
-
const
|
|
296
|
+
const sessionActiveChat = session.activeChat.read(reader);
|
|
252
297
|
const orderedIds = chats.map(c => ( c.resource.toString()));
|
|
253
298
|
const validIds = ( new Set(orderedIds));
|
|
299
|
+
const groupActiveResource = this._activeGroup?.activeResourceId.get();
|
|
300
|
+
const removedGroupActiveChat = groupActiveResource && !( validIds.has(groupActiveResource)) ? this._knownChatsByResource.get(groupActiveResource) : undefined;
|
|
301
|
+
const owningChat = this._activeGroup && removedGroupActiveChat ? this._getOwningChatToRestoreOnClose(this._activeGroup, removedGroupActiveChat) : undefined;
|
|
302
|
+
const owningChatToRestore = owningChat && ( validIds.has(( owningChat.resource.toString()))) ? owningChat : undefined;
|
|
303
|
+
for (const resourceId of ( this._knownChatsByResource.keys())) {
|
|
304
|
+
if (!( catalogIds.has(resourceId)) && !( validIds.has(resourceId))) {
|
|
305
|
+
this._knownChatsByResource.delete(resourceId);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
const activeChat = owningChatToRestore ?? sessionActiveChat;
|
|
254
309
|
const activeId = activeChat?.resource.toString();
|
|
255
310
|
const hasUnassignedVisibleChats = ( orderedIds.some(id => !( this._groups.some(group => group.resourceIds.get().includes(id)))));
|
|
311
|
+
const activeChatChanged = !!activeId && activeId !== this._lastSessionActiveChatId;
|
|
312
|
+
const activeOwner = activeId ? this._groups.find(group => group.resourceIds.get().includes(activeId)) : undefined;
|
|
313
|
+
const activeParentResource = activeId ? activeChat?.origin?.parentChat : undefined;
|
|
314
|
+
const activeParentGroup = activeParentResource ? this._groups.find(group => group.resourceIds.get().includes(( activeParentResource.toString()))) : undefined;
|
|
315
|
+
const singleChatPresentation = this.showChatAsSessionView.read(reader);
|
|
316
|
+
const activeOpeningInNewGroup = !!activeId && ( this._pendingNewGroupResourceIds.has(activeId));
|
|
317
|
+
const activeOwnerPinnedResource = activeOwner?.pinnedResourceId.get();
|
|
318
|
+
const activeNeedsNewOwner = !this._restorePending && activeChatChanged && !!activeId && ((!activeOwner && this._activeGroup?.pinnedResourceId.get() !== undefined) || (!!activeOwnerPinnedResource && activeOwnerPinnedResource !== activeId));
|
|
319
|
+
const activeReplacesCurrentPeer = !this._restorePending && singleChatPresentation && activeChatChanged && !!activeId && !activeOwner && !activeParentResource && !activeOpeningInNewGroup && this._activeGroup?.pinnedResourceId.get() === undefined;
|
|
256
320
|
if (!this._restorePending && !hasUnassignedVisibleChats) {
|
|
257
321
|
this._removeGroupsWithoutVisibleChats(validIds);
|
|
258
322
|
}
|
|
323
|
+
const activeTarget = activeNeedsNewOwner ? this._getOrCreateUnpinnedGroup(activeOwner, activeParentGroup) : activeReplacesCurrentPeer ? this._activeGroup : undefined;
|
|
259
324
|
transaction(tx => {
|
|
325
|
+
if (activeReplacesCurrentPeer && activeTarget) {
|
|
326
|
+
activeTarget.resourceIds.set([], tx);
|
|
327
|
+
}
|
|
260
328
|
for (const group of this._groups) {
|
|
261
329
|
const ids = group.resourceIds.get();
|
|
262
330
|
const pruned = ids.filter(id => ( validIds.has(id)));
|
|
263
331
|
if (pruned.length !== ids.length) {
|
|
264
332
|
group.resourceIds.set(pruned, tx);
|
|
265
333
|
}
|
|
334
|
+
const pinnedResource = group.pinnedResourceId.get();
|
|
335
|
+
if (pinnedResource && !( validIds.has(pinnedResource))) {
|
|
336
|
+
group.pinnedResourceId.set(undefined, tx);
|
|
337
|
+
}
|
|
266
338
|
}
|
|
267
339
|
const assigned = ( new Set());
|
|
268
340
|
for (const group of this._groups) {
|
|
@@ -275,7 +347,11 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
275
347
|
continue;
|
|
276
348
|
}
|
|
277
349
|
const savedGroupId = this._restoreAssignment?.get(id);
|
|
350
|
+
if (singleChatPresentation && savedGroupId === undefined && (id !== activeId || ( this._pendingNewGroupResourceIds.has(id)))) {
|
|
351
|
+
continue;
|
|
352
|
+
}
|
|
278
353
|
let target = savedGroupId !== undefined ? this._groups.find(g => g.id === savedGroupId) : undefined;
|
|
354
|
+
target ??= id === activeId ? activeTarget : undefined;
|
|
279
355
|
const chat = chats.find(chat => ( chat.resource.toString()) === id);
|
|
280
356
|
const parentResource = id === activeId ? chat?.origin?.parentChat : undefined;
|
|
281
357
|
const parentGroup = parentResource ? this._groups.find(group => group.resourceIds.get().includes(( parentResource.toString()))) : undefined;
|
|
@@ -285,6 +361,15 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
285
361
|
target.resourceIds.set([...target.resourceIds.get(), id], tx);
|
|
286
362
|
}
|
|
287
363
|
}
|
|
364
|
+
if (activeId && activeTarget) {
|
|
365
|
+
const owner = this._groups.find(group => group.resourceIds.get().includes(activeId));
|
|
366
|
+
if (owner && owner !== activeTarget) {
|
|
367
|
+
this._detachChatFromGroup(owner, activeId, tx);
|
|
368
|
+
}
|
|
369
|
+
if (!activeTarget.resourceIds.get().includes(activeId)) {
|
|
370
|
+
activeTarget.resourceIds.set([...activeTarget.resourceIds.get(), activeId], tx);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
288
373
|
if (this._restorePending && this._restoreOrder) {
|
|
289
374
|
const restoreOrder = this._restoreOrder;
|
|
290
375
|
for (const group of this._groups) {
|
|
@@ -307,7 +392,10 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
307
392
|
this._lastSessionActiveChatId = activeId;
|
|
308
393
|
for (const group of this._groups) {
|
|
309
394
|
const ids = group.resourceIds.get();
|
|
310
|
-
|
|
395
|
+
const pinnedResource = group.pinnedResourceId.get();
|
|
396
|
+
if (pinnedResource && ids.includes(pinnedResource)) {
|
|
397
|
+
group.activeResourceId.set(pinnedResource, tx);
|
|
398
|
+
} else if (ids.length && !ids.includes(group.activeResourceId.get())) {
|
|
311
399
|
group.activeResourceId.set(ids[0], tx);
|
|
312
400
|
}
|
|
313
401
|
}
|
|
@@ -325,6 +413,9 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
325
413
|
this._removeEmptyGroups();
|
|
326
414
|
this._persistLayout();
|
|
327
415
|
}
|
|
416
|
+
if (owningChatToRestore && ( session.activeChat.get().resource.toString()) !== ( owningChatToRestore.resource.toString())) {
|
|
417
|
+
this._sessionsService.openChat(session, owningChatToRestore.resource).catch(onUnexpectedError);
|
|
418
|
+
}
|
|
328
419
|
}
|
|
329
420
|
_findTargetGroup(child) {
|
|
330
421
|
for (const group of this._groups) {
|
|
@@ -353,6 +444,11 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
353
444
|
if (!( session.chats.get().some(chat => ( chat.resource.toString()) === id))) {
|
|
354
445
|
return;
|
|
355
446
|
}
|
|
447
|
+
if (this.showChatAsSessionView.get() && zone !== "center" && target) {
|
|
448
|
+
const referenceId = target.activeResourceId.get();
|
|
449
|
+
await this._openChatInNewGroup(resource, referenceId ? ( URI.parse(referenceId)) : undefined, zone);
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
356
452
|
await this._sessionsService.openChat(session, resource);
|
|
357
453
|
if (this._session !== session) {
|
|
358
454
|
return;
|
|
@@ -377,11 +473,15 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
377
473
|
}
|
|
378
474
|
_moveChatToGroup(resource, source, target) {
|
|
379
475
|
const id = ( resource.toString());
|
|
476
|
+
const wasPinned = source.pinnedResourceId.get() === id;
|
|
380
477
|
transaction(tx => {
|
|
381
478
|
this._detachChatFromGroup(source, id, tx);
|
|
382
479
|
if (!target.resourceIds.get().includes(id)) {
|
|
383
480
|
target.resourceIds.set([...target.resourceIds.get(), id], tx);
|
|
384
481
|
}
|
|
482
|
+
if (target.pinnedResourceId.get() !== id) {
|
|
483
|
+
target.pinnedResourceId.set(wasPinned ? id : undefined, tx);
|
|
484
|
+
}
|
|
385
485
|
target.activeResourceId.set(id, tx);
|
|
386
486
|
});
|
|
387
487
|
this._setActiveGroup(target);
|
|
@@ -394,6 +494,7 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
394
494
|
return;
|
|
395
495
|
}
|
|
396
496
|
const id = ( resource.toString());
|
|
497
|
+
const wasPinned = source.pinnedResourceId.get() === id;
|
|
397
498
|
const newGroup = this._createGroupEntry(this._session);
|
|
398
499
|
this._grid.addView(
|
|
399
500
|
newGroup.view,
|
|
@@ -407,6 +508,9 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
407
508
|
this._detachChatFromGroup(source, id, tx);
|
|
408
509
|
newGroup.resourceIds.set([id], tx);
|
|
409
510
|
newGroup.activeResourceId.set(id, tx);
|
|
511
|
+
if (wasPinned) {
|
|
512
|
+
newGroup.pinnedResourceId.set(id, tx);
|
|
513
|
+
}
|
|
410
514
|
});
|
|
411
515
|
this._setActiveGroup(newGroup);
|
|
412
516
|
await this._sessionsService.openChat(this._session, resource);
|
|
@@ -417,19 +521,73 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
417
521
|
_detachChatFromGroup(group, id, tx) {
|
|
418
522
|
const remaining = group.resourceIds.get().filter(x => x !== id);
|
|
419
523
|
group.resourceIds.set(remaining, tx);
|
|
524
|
+
if (group.pinnedResourceId.get() === id) {
|
|
525
|
+
group.pinnedResourceId.set(undefined, tx);
|
|
526
|
+
}
|
|
420
527
|
if (group.activeResourceId.get() === id && remaining.length) {
|
|
421
528
|
group.activeResourceId.set(remaining[0], tx);
|
|
422
529
|
}
|
|
423
530
|
}
|
|
424
|
-
|
|
531
|
+
_getOrCreateUnpinnedGroup(excludedGroup, preferredGroup) {
|
|
532
|
+
if (preferredGroup && preferredGroup !== excludedGroup && preferredGroup.pinnedResourceId.get() === undefined) {
|
|
533
|
+
return preferredGroup;
|
|
534
|
+
}
|
|
535
|
+
const activeGroup = this._activeGroup;
|
|
536
|
+
if (activeGroup !== excludedGroup && activeGroup?.pinnedResourceId.get() === undefined) {
|
|
537
|
+
return activeGroup;
|
|
538
|
+
}
|
|
539
|
+
const existing = this._groups.find(
|
|
540
|
+
group => group !== excludedGroup && group.pinnedResourceId.get() === undefined
|
|
541
|
+
);
|
|
542
|
+
if (existing) {
|
|
543
|
+
return existing;
|
|
544
|
+
}
|
|
545
|
+
if (!this._grid || !this._currentSessionStore || !this._session) {
|
|
546
|
+
return undefined;
|
|
547
|
+
}
|
|
548
|
+
const reference = preferredGroup ?? excludedGroup ?? activeGroup ?? this._groups[this._groups.length - 1];
|
|
549
|
+
if (!reference) {
|
|
550
|
+
return undefined;
|
|
551
|
+
}
|
|
552
|
+
const newGroup = this._createGroupEntry(this._session);
|
|
553
|
+
this._grid.addView(newGroup.view, Sizing.Distribute, reference.view, Direction.Right);
|
|
554
|
+
this._insertGroup(newGroup, reference, "right");
|
|
555
|
+
this._setGroupCount(this._groups.length);
|
|
556
|
+
this._applyLayout();
|
|
557
|
+
return newGroup;
|
|
558
|
+
}
|
|
559
|
+
_toggleActiveChatPin(group) {
|
|
560
|
+
const activeResource = group.activeResourceId.get();
|
|
561
|
+
if (!activeResource) {
|
|
562
|
+
return;
|
|
563
|
+
}
|
|
564
|
+
group.pinnedResourceId.set(
|
|
565
|
+
group.pinnedResourceId.get() === activeResource ? undefined : activeResource,
|
|
566
|
+
undefined
|
|
567
|
+
);
|
|
568
|
+
this._persistLayout();
|
|
569
|
+
}
|
|
570
|
+
async openChatInNewGroup(resource, referenceChatResource) {
|
|
571
|
+
await this._openChatInNewGroup(resource, referenceChatResource, "right");
|
|
572
|
+
if (referenceChatResource && this._session?.sessionId === this._sessionsService.activeSession.get()?.sessionId && this._activeGroup?.activeResourceId.get() === ( resource.toString())) {
|
|
573
|
+
this._activeGroup.view.focus();
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
async _openChatInNewGroup(resource, referenceChatResource, zone) {
|
|
425
577
|
if (!this._session || !this._grid || !this._currentSessionStore) {
|
|
426
578
|
return;
|
|
427
579
|
}
|
|
428
580
|
const id = ( resource.toString());
|
|
581
|
+
const referenceId = referenceChatResource?.toString();
|
|
582
|
+
const findReferenceGroup = () => referenceId && referenceId !== id ? this._groups.find(group => group.resourceIds.get().includes(referenceId)) : undefined;
|
|
583
|
+
const referenceGroup = findReferenceGroup();
|
|
584
|
+
if (referenceGroup && referenceId) {
|
|
585
|
+
referenceGroup.activeResourceId.set(referenceId, undefined);
|
|
586
|
+
}
|
|
429
587
|
const existing = this._groups.find(g => g.resourceIds.get().includes(id));
|
|
430
588
|
if (existing) {
|
|
431
589
|
if (existing.resourceIds.get().length > 1) {
|
|
432
|
-
await this._splitChatIntoNewGroup(resource, existing, existing, "right");
|
|
590
|
+
await this._splitChatIntoNewGroup(resource, existing, referenceGroup ?? existing, "right");
|
|
433
591
|
return;
|
|
434
592
|
}
|
|
435
593
|
existing.activeResourceId.set(id, undefined);
|
|
@@ -437,24 +595,41 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
437
595
|
await this._sessionsService.openChat(this._session, resource);
|
|
438
596
|
return;
|
|
439
597
|
}
|
|
440
|
-
const
|
|
441
|
-
if (!
|
|
598
|
+
const initialReference = referenceGroup ?? this._activeGroup ?? this._groups[0];
|
|
599
|
+
if (!initialReference) {
|
|
442
600
|
return;
|
|
443
601
|
}
|
|
444
602
|
const session = this._session;
|
|
445
|
-
|
|
603
|
+
this._pendingNewGroupResourceIds.add(id);
|
|
604
|
+
try {
|
|
605
|
+
await this._sessionsService.openChat(session, resource);
|
|
606
|
+
} finally {
|
|
607
|
+
this._pendingNewGroupResourceIds.delete(id);
|
|
608
|
+
}
|
|
446
609
|
if (this._session !== session || !( session.visibleChatTabs.get().some(chat => ( chat.resource.toString()) === id))) {
|
|
447
610
|
return;
|
|
448
611
|
}
|
|
612
|
+
const reference = referenceChatResource ? findReferenceGroup() ?? this._activeGroup ?? this._groups[0] : this._groups.includes(initialReference) ? initialReference : this._activeGroup ?? this._groups[0];
|
|
613
|
+
if (!reference) {
|
|
614
|
+
return;
|
|
615
|
+
}
|
|
449
616
|
const newGroup = this._createGroupEntry(session);
|
|
450
|
-
this._grid.addView(
|
|
451
|
-
|
|
617
|
+
this._grid.addView(
|
|
618
|
+
newGroup.view,
|
|
619
|
+
Sizing.Distribute,
|
|
620
|
+
reference.view,
|
|
621
|
+
this._zoneToDirection(zone)
|
|
622
|
+
);
|
|
623
|
+
this._insertGroup(newGroup, reference, zone);
|
|
452
624
|
this._setGroupCount(this._groups.length);
|
|
453
625
|
transaction(tx => {
|
|
454
626
|
const assignedGroup = this._groups.find(group => group !== newGroup && group.resourceIds.get().includes(id));
|
|
455
627
|
if (assignedGroup) {
|
|
456
628
|
this._detachChatFromGroup(assignedGroup, id, tx);
|
|
457
629
|
}
|
|
630
|
+
if (referenceId && reference.resourceIds.get().includes(referenceId)) {
|
|
631
|
+
reference.activeResourceId.set(referenceId, tx);
|
|
632
|
+
}
|
|
458
633
|
newGroup.resourceIds.set([id], tx);
|
|
459
634
|
newGroup.activeResourceId.set(id, tx);
|
|
460
635
|
});
|
|
@@ -514,7 +689,7 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
514
689
|
if (this._groups.length <= 1) {
|
|
515
690
|
break;
|
|
516
691
|
}
|
|
517
|
-
const hadFocus = group.view.element.contains(group.view.element.ownerDocument
|
|
692
|
+
const hadFocus = group.view.element.contains(getActiveElement(group.view.element.ownerDocument));
|
|
518
693
|
this._grid.removeView(group.view, Sizing.Distribute);
|
|
519
694
|
this._groups = this._groups.filter(g => g !== group);
|
|
520
695
|
if (this._activeGroup === group) {
|
|
@@ -546,6 +721,63 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
546
721
|
const activeResource = group.activeResourceId.get();
|
|
547
722
|
return group.chats.get().find(chat => ( chat.resource.toString()) === activeResource);
|
|
548
723
|
}
|
|
724
|
+
getActiveChat() {
|
|
725
|
+
const activeResource = this._activeGroup?.activeResourceId.get();
|
|
726
|
+
return activeResource ? this._activeGroup?.chats.get().find(chat => ( chat.resource.toString()) === activeResource) : undefined;
|
|
727
|
+
}
|
|
728
|
+
toggleActiveChatPin() {
|
|
729
|
+
if (this._activeGroup) {
|
|
730
|
+
this._toggleActiveChatPin(this._activeGroup);
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
async closeChatGroup(chatResource) {
|
|
734
|
+
const session = this._session;
|
|
735
|
+
if (!session || !this.showChatAsSessionView.get()) {
|
|
736
|
+
return false;
|
|
737
|
+
}
|
|
738
|
+
const resourceId = ( chatResource.toString());
|
|
739
|
+
const source = this._groups.find(group => group.activeResourceId.get() === resourceId);
|
|
740
|
+
if (!source) {
|
|
741
|
+
return false;
|
|
742
|
+
}
|
|
743
|
+
if (this._groups.length === 1) {
|
|
744
|
+
this._sessionsService.closeSession(session);
|
|
745
|
+
return true;
|
|
746
|
+
}
|
|
747
|
+
const target = this._findAdjacentGroup(source);
|
|
748
|
+
const targetResourceId = target?.activeResourceId.get();
|
|
749
|
+
if (!target || !targetResourceId) {
|
|
750
|
+
return false;
|
|
751
|
+
}
|
|
752
|
+
if (( session.activeChat.get().resource.toString()) !== targetResourceId) {
|
|
753
|
+
await this._sessionsService.openChat(session, ( URI.parse(targetResourceId)));
|
|
754
|
+
}
|
|
755
|
+
if (this._session !== session || !this._groups.includes(source) || !this._groups.includes(target)) {
|
|
756
|
+
return false;
|
|
757
|
+
}
|
|
758
|
+
this._setActiveGroup(target);
|
|
759
|
+
this._removeGroups(group => group === source);
|
|
760
|
+
this._applyLayout();
|
|
761
|
+
this._persistLayout();
|
|
762
|
+
return true;
|
|
763
|
+
}
|
|
764
|
+
_getOwningChatToRestoreOnClose(group, chat) {
|
|
765
|
+
if ((chat.origin?.kind !== ChatOriginKind.SideChat && chat.origin?.kind !== ChatOriginKind.Tool) || !chat.origin.parentChat) {
|
|
766
|
+
return undefined;
|
|
767
|
+
}
|
|
768
|
+
const parentResource = ( chat.origin.parentChat.toString());
|
|
769
|
+
if (group.activeResourceId.get() !== ( chat.resource.toString()) || !group.resourceIds.get().includes(parentResource)) {
|
|
770
|
+
return undefined;
|
|
771
|
+
}
|
|
772
|
+
return group.chats.get().find(candidate => ( candidate.resource.toString()) === parentResource);
|
|
773
|
+
}
|
|
774
|
+
startFocusedChatTitleEditing() {
|
|
775
|
+
return this._getFocusedGroup()?.view.startFocusedChatTitleEditing() ?? false;
|
|
776
|
+
}
|
|
777
|
+
startChatTitleEditing(chatResource) {
|
|
778
|
+
const group = this._groups.find(group => ( group.chats.get().some(chat => ( chat.resource.toString()) === ( chatResource.toString()))));
|
|
779
|
+
return group?.view.startChatTitleEditing(chatResource) ?? false;
|
|
780
|
+
}
|
|
549
781
|
_getFocusedGroup() {
|
|
550
782
|
return this._groups.find(group => isAncestorOfActiveElement(group.view.element));
|
|
551
783
|
}
|
|
@@ -583,7 +815,13 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
583
815
|
this._groups.forEach((group, index) => group.view.setGroupPosition(index, count));
|
|
584
816
|
}
|
|
585
817
|
_openChat(entry, resource) {
|
|
586
|
-
|
|
818
|
+
const resourceId = ( resource.toString());
|
|
819
|
+
transaction(tx => {
|
|
820
|
+
if (entry.pinnedResourceId.get() !== resourceId) {
|
|
821
|
+
entry.pinnedResourceId.set(undefined, tx);
|
|
822
|
+
}
|
|
823
|
+
entry.activeResourceId.set(resourceId, tx);
|
|
824
|
+
});
|
|
587
825
|
this._setActiveGroup(entry);
|
|
588
826
|
if (this._session) {
|
|
589
827
|
this._sessionsService.openChat(this._session, resource).catch(onUnexpectedError);
|
|
@@ -656,8 +894,8 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
656
894
|
selectWorkspace(folderUri, options) {
|
|
657
895
|
return this._activeGroup?.view.selectWorkspace(folderUri, options) ?? "notReady";
|
|
658
896
|
}
|
|
659
|
-
selectNoWorkspace() {
|
|
660
|
-
this._activeGroup?.view.selectNoWorkspace();
|
|
897
|
+
selectNoWorkspace(options) {
|
|
898
|
+
this._activeGroup?.view.selectNoWorkspace(options);
|
|
661
899
|
}
|
|
662
900
|
prefillInput(text) {
|
|
663
901
|
this._activeGroup?.view.prefillInput(text);
|
|
@@ -724,7 +962,8 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
724
962
|
grid: this._grid.serialize(),
|
|
725
963
|
groups: this._groups.map(group => ({
|
|
726
964
|
resourceIds: group.resourceIds.get(),
|
|
727
|
-
activeResourceId: group.activeResourceId.get()
|
|
965
|
+
activeResourceId: group.activeResourceId.get(),
|
|
966
|
+
pinnedResourceId: group.pinnedResourceId.get()
|
|
728
967
|
})),
|
|
729
968
|
activeGroupIndex: Math.max(0, this._groups.indexOf(this._activeGroup))
|
|
730
969
|
};
|
|
@@ -766,6 +1005,6 @@ let ChatGroupsView = class ChatGroupsView extends Themable {
|
|
|
766
1005
|
super.dispose();
|
|
767
1006
|
}
|
|
768
1007
|
};
|
|
769
|
-
ChatGroupsView = ChatGroupsView_1 = ( __decorate([( __param(0, IThemeService)), ( __param(1, IInstantiationService)), ( __param(2, ISessionsService)), ( __param(3, IStorageService))], ChatGroupsView));
|
|
1008
|
+
ChatGroupsView = ChatGroupsView_1 = ( __decorate([( __param(0, IThemeService)), ( __param(1, IInstantiationService)), ( __param(2, ISessionsService)), ( __param(3, IStorageService)), ( __param(4, IConfigurationService))], ChatGroupsView));
|
|
770
1009
|
|
|
771
1010
|
export { ChatGroupsView };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
2
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
|
+
import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
4
|
+
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
5
|
+
import { IActiveSession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement";
|
|
6
|
+
import { IChat } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
|
|
7
|
+
export interface IChatHeaderContext {
|
|
8
|
+
readonly session: IActiveSession;
|
|
9
|
+
readonly chat: IObservable<IChat | undefined>;
|
|
10
|
+
readonly activate: () => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Header for one chat group. Its title and actions target that group's chat.
|
|
14
|
+
*/
|
|
15
|
+
export declare class ChatHeader extends Disposable {
|
|
16
|
+
private readonly _bar;
|
|
17
|
+
get element(): HTMLElement;
|
|
18
|
+
get visible(): boolean;
|
|
19
|
+
get height(): number;
|
|
20
|
+
get onDidChangeVisibility(): Event<boolean>;
|
|
21
|
+
get onDidChangeHeight(): Event<void>;
|
|
22
|
+
constructor(instantiationService: IInstantiationService);
|
|
23
|
+
setChat(context: IChatHeaderContext | undefined): void;
|
|
24
|
+
setVisible(visible: boolean): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
4
|
+
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
5
|
+
import { SessionHeaderBar } from './sessionHeaderBar.js';
|
|
6
|
+
|
|
7
|
+
let ChatHeader = class ChatHeader extends Disposable {
|
|
8
|
+
get element() {
|
|
9
|
+
return this._bar.element;
|
|
10
|
+
}
|
|
11
|
+
get visible() {
|
|
12
|
+
return this._bar.visible;
|
|
13
|
+
}
|
|
14
|
+
get height() {
|
|
15
|
+
return this._bar.height;
|
|
16
|
+
}
|
|
17
|
+
get onDidChangeVisibility() {
|
|
18
|
+
return this._bar.onDidChangeVisibility;
|
|
19
|
+
}
|
|
20
|
+
get onDidChangeHeight() {
|
|
21
|
+
return this._bar.onDidChangeHeight;
|
|
22
|
+
}
|
|
23
|
+
constructor(instantiationService) {
|
|
24
|
+
super();
|
|
25
|
+
this._bar = this._register(instantiationService.createInstance(SessionHeaderBar, undefined));
|
|
26
|
+
this._bar.element.draggable = false;
|
|
27
|
+
}
|
|
28
|
+
setChat(context) {
|
|
29
|
+
this._bar.setContext(context ? {
|
|
30
|
+
session: context.session,
|
|
31
|
+
chat: context.chat,
|
|
32
|
+
actionsTargetChat: true,
|
|
33
|
+
activateChatGroup: context.activate
|
|
34
|
+
} : undefined);
|
|
35
|
+
}
|
|
36
|
+
setVisible(visible) {
|
|
37
|
+
this._bar.setVisible(visible);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
ChatHeader = ( __decorate([( __param(0, IInstantiationService))], ChatHeader));
|
|
41
|
+
|
|
42
|
+
export { ChatHeader };
|
|
@@ -13,6 +13,7 @@ import { Part } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/p
|
|
|
13
13
|
import { Parts } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService';
|
|
14
14
|
import { applyAgentsPartCardStyles, getAgentsPartCardContentSize } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/agentsPartCard';
|
|
15
15
|
import { CustomViewNode } from './customViewNode.js';
|
|
16
|
+
import { isPhoneLayout } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/mobile/mobileLayout';
|
|
16
17
|
import { IAgentWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/workbench.service';
|
|
17
18
|
|
|
18
19
|
registerCss(customViewGridPart, 0);
|
|
@@ -83,7 +84,14 @@ let CustomViewGridPart = class CustomViewGridPart extends Part {
|
|
|
83
84
|
if (!this.layoutService.isVisible(Parts.CUSTOM_VIEW_GRID_PART)) {
|
|
84
85
|
return;
|
|
85
86
|
}
|
|
86
|
-
const cardSize = getAgentsPartCardContentSize(
|
|
87
|
+
const cardSize = getAgentsPartCardContentSize(
|
|
88
|
+
width,
|
|
89
|
+
height,
|
|
90
|
+
this.agentWorkbenchLayoutService.isEditorPaneVisible(),
|
|
91
|
+
this.layoutService.isVisible(Parts.SIDEBAR_PART),
|
|
92
|
+
isPhoneLayout(this.layoutService),
|
|
93
|
+
this.layoutService.isModernUICompact()
|
|
94
|
+
);
|
|
87
95
|
const {
|
|
88
96
|
contentSize
|
|
89
97
|
} = this.layoutContents(cardSize.width, cardSize.height);
|
|
@@ -12,7 +12,7 @@ import { MenuItemAction } from '@codingame/monaco-vscode-api/vscode/vs/platform/
|
|
|
12
12
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
13
13
|
import { asCssVariable } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colorUtils';
|
|
14
14
|
import { AGENTS_CENTERED_CONTENT_MAX_WIDTH } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/layoutConstants';
|
|
15
|
-
import { activeSessionViewBackground, activeSessionViewForeground } from '@codingame/monaco-vscode-api/vscode/vs/
|
|
15
|
+
import { activeSessionViewBackground, activeSessionViewForeground } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/agentsColors';
|
|
16
16
|
import { ChatPillActionViewItem } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/chatPills';
|
|
17
17
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
18
18
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { AuxiliaryBarPart } from "@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/auxiliaryBarPart";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Desktop variant of the auxiliary bar. In the desktop layout the
|
|
4
4
|
* auxiliary bar is docked inside the editor part as a contextual detail panel:
|
|
5
|
-
* it has no title/composite bar,
|
|
6
|
-
*
|
|
5
|
+
* it has no title/composite bar, uses the editor background by default, and
|
|
6
|
+
* fills the exact rectangle the workbench positions it in.
|
|
7
7
|
*/
|
|
8
|
-
export declare class
|
|
8
|
+
export declare class DesktopAuxiliaryBarPart extends AuxiliaryBarPart {
|
|
9
9
|
create(parent: HTMLElement): void;
|
|
10
10
|
protected shouldShowCompositeBar(): boolean;
|
|
11
11
|
protected getPartBackgroundColor(): string;
|