@codingame/monaco-vscode-workbench-service-override 37.6.0 → 38.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common.js +2 -0
- package/index.js +9 -10
- package/package.json +10 -10
- package/session.js +45 -42
- package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.d.ts +1 -0
- package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.js +12 -0
- package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.d.ts → desktopWorkbench.d.ts} +6 -5
- package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.js → desktopWorkbench.js} +23 -25
- package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.d.ts +5 -2
- package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.js +41 -3
- package/vscode/src/vs/sessions/browser/layoutActions.js +25 -41
- package/vscode/src/vs/sessions/browser/mobileWorkbench.d.ts +4 -0
- package/vscode/src/vs/sessions/browser/mobileWorkbench.js +10 -0
- package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.d.ts +10 -5
- package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +138 -34
- package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.d.ts +2 -0
- package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.js +13 -5
- package/vscode/src/vs/sessions/browser/parts/chatGroupView.d.ts +27 -5
- package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +129 -28
- package/vscode/src/vs/sessions/browser/parts/chatGroupsView.d.ts +22 -7
- package/vscode/src/vs/sessions/browser/parts/chatGroupsView.js +260 -21
- package/vscode/src/vs/sessions/browser/parts/chatHeader.d.ts +25 -0
- package/vscode/src/vs/sessions/browser/parts/chatHeader.js +42 -0
- package/vscode/src/vs/sessions/browser/parts/customViewGridPart.js +9 -1
- package/vscode/src/vs/sessions/browser/parts/customViewNode.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/{singlePaneAuxiliaryBarPart.d.ts → desktopAuxiliaryBarPart.d.ts} +4 -4
- package/vscode/src/vs/sessions/browser/parts/desktopAuxiliaryBarPart.js +26 -0
- package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.d.ts → desktopEditorPart.d.ts} +8 -6
- package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.js → desktopEditorPart.js} +25 -5
- package/vscode/src/vs/sessions/browser/parts/editorPart.js +16 -4
- package/vscode/src/vs/sessions/browser/parts/editorParts.d.ts +1 -1
- package/vscode/src/vs/sessions/browser/parts/editorParts.js +7 -6
- package/vscode/src/vs/sessions/browser/parts/gridGap.d.ts +14 -0
- package/vscode/src/vs/sessions/browser/parts/gridGap.js +69 -0
- package/vscode/src/vs/sessions/browser/parts/media/chatCompositeBar.css +132 -4
- package/vscode/src/vs/sessions/browser/parts/media/chatGroupsView.css +10 -0
- package/vscode/src/vs/sessions/browser/parts/media/editorPart.css +46 -2
- package/vscode/src/vs/sessions/browser/parts/media/sessionReadOnlyBanner.css +3 -3
- package/vscode/src/vs/sessions/browser/parts/media/sessionView.css +45 -48
- package/vscode/src/vs/sessions/browser/parts/media/sessionsPart.css +15 -0
- package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +8 -8
- package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.d.ts +9 -1
- package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.js +21 -3
- package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.d.ts +4 -3
- package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.js +29 -15
- package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.d.ts +67 -0
- package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.js +598 -0
- package/vscode/src/vs/sessions/browser/parts/sessionHeader.d.ts +11 -84
- package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +37 -317
- package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.d.ts +103 -0
- package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.js +391 -0
- package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.d.ts +6 -4
- package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +58 -28
- package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.d.ts +4 -0
- package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +66 -23
- package/vscode/src/vs/sessions/browser/parts/sessionView.d.ts +24 -5
- package/vscode/src/vs/sessions/browser/parts/sessionView.js +143 -33
- package/vscode/src/vs/sessions/browser/parts/sessionsPart.d.ts +25 -19
- package/vscode/src/vs/sessions/browser/parts/sessionsPart.js +157 -58
- package/vscode/src/vs/sessions/browser/parts/sessionsParts.d.ts +12 -3
- package/vscode/src/vs/sessions/browser/parts/sessionsParts.js +17 -2
- package/vscode/src/vs/sessions/browser/sessionWorkspace.d.ts +6 -3
- package/vscode/src/vs/sessions/browser/sessionWorkspace.js +2 -2
- package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +66 -20
- package/vscode/src/vs/sessions/browser/sessionsSignInDialog.d.ts +1 -0
- package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +5 -4
- package/vscode/src/vs/sessions/browser/workbenchFactory.d.ts +12 -0
- package/vscode/src/vs/sessions/browser/workbenchFactory.js +17 -0
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.d.ts +85 -1
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +118 -100
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.d.ts +3 -2
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +39 -34
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountTitleBarWidget.css +6 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.d.ts +3 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.js +6 -0
- package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.js +18 -18
- package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.js +12 -12
- package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.js +7 -7
- package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.js +12 -12
- package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.js +10 -10
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.d.ts +78 -8
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.js +1166 -202
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.d.ts +11 -1
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +190 -69
- package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.d.ts +11 -9
- package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +122 -233
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.d.ts +22 -0
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.js +62 -0
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.d.ts +7 -2
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +172 -84
- package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +17 -7
- package/vscode/src/vs/sessions/contrib/automations/browser/media/automationDialog.css +242 -60
- package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.d.ts +24 -36
- package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +104 -420
- package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +15 -14
- package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.d.ts +13 -3
- package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +66 -43
- package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.js +2 -7
- package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +54 -59
- package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +7 -7
- package/vscode/src/vs/sessions/contrib/changes/browser/media/changesActions.css +6 -0
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +25 -21
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +21 -27
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +17 -17
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.d.ts +5 -5
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.js +2 -2
- package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +2 -2
- package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.js +9 -16
- package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +7 -7
- package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +15 -13
- package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.d.ts +13 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +104 -117
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +8 -7
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.js +5 -5
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.js +1 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/media/editorBreadcrumbs.css +0 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/media/editorHeader.css +1 -1
- package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.d.ts +7 -0
- package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.js +77 -13
- package/vscode/src/vs/sessions/contrib/files/browser/filesView.d.ts +2 -1
- package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +14 -4
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.d.ts +45 -10
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +527 -96
- package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.d.ts +18 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.js +95 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.d.ts → desktop/desktopDetailPanelCoordinator.d.ts} +5 -4
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.js → desktop/desktopDetailPanelCoordinator.js} +10 -7
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.d.ts → desktop/desktopDockedTabsCoordinator.d.ts} +15 -12
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.js → desktop/desktopDockedTabsCoordinator.js} +91 -44
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.d.ts → desktop/desktopDraftSessionStrategy.d.ts} +10 -5
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.js → desktop/desktopDraftSessionStrategy.js} +95 -22
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.d.ts → desktop/desktopExistingSessionStrategy.d.ts} +13 -11
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.js → desktop/desktopExistingSessionStrategy.js} +137 -57
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.d.ts → desktop/desktopLayoutStrategy.d.ts} +22 -13
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.js → desktop/desktopLayoutStrategy.js} +2 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.d.ts +22 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.js +136 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneSharedHelpers.d.ts → desktop/desktopSharedHelpers.d.ts} +9 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopSharedHelpers.js +56 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.d.ts → desktop/desktopVisibilityProfileStore.d.ts} +3 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.js → desktop/desktopVisibilityProfileStore.js} +10 -9
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.d.ts +71 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.js +201 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.d.ts +8 -1
- package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +35 -35
- package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.d.ts +39 -0
- package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.js +73 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.d.ts +42 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.js +14 -10
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.js +3 -4
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.d.ts +2 -2
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.js +13 -9
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.js +20 -5
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.d.ts +8 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.js +19 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +21 -20
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +10 -5
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +12 -8
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.d.ts +3 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +12 -7
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.d.ts +9 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +46 -19
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.js +2 -0
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/media/sessionsPolicyBlocked.css +33 -0
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.d.ts +4 -2
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.js +29 -8
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.d.ts +15 -2
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +169 -32
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.js +30 -8
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js +8 -34
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.js +63 -49
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.js +1 -1
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.js +31 -17
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.d.ts +32 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.js +250 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.d.ts +6 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.js +52 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.d.ts +51 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.js +439 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.d.ts +45 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.js +595 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.d.ts +20 -3
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +360 -46
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.d.ts +9 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.js +59 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/media/connectionDiagnostics.css +201 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.d.ts +10 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.js +70 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.d.ts +20 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.js +104 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.d.ts +15 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.js +152 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.d.ts +49 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.js +340 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.d.ts +41 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.js +400 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.d.ts +28 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.js +178 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.d.ts +17 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.js +206 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.js +58 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.d.ts +10 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.js +90 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.d.ts +38 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.js +58 -0
- package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +4 -5
- package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +1 -1
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.js +33 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.d.ts +30 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.js +190 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.d.ts +31 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.js +559 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.d.ts +12 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.js +38 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.d.ts +13 -4
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +155 -22
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +9 -5
- package/vscode/src/vs/sessions/contrib/sessions/browser/media/automationsCards.css +90 -25
- package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css +21 -4
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.d.ts +2 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +11 -7
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.d.ts +116 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +126 -30
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.d.ts +26 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.js +160 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.d.ts +14 -6
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +555 -151
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.d.ts +192 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.js +510 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.d.ts +6 -7
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.js +64 -57
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.d.ts +5 -3
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +83 -51
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.d.ts +5 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +33 -12
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.d.ts +3 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.js +53 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +10 -10
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.d.ts +2 -2
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +103 -55
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.d.ts +7 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +679 -325
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.d.ts +27 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +508 -163
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.d.ts +20 -2
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.js +100 -17
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.d.ts +5 -1
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.js +108 -30
- package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.d.ts +5 -3
- package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.js +47 -35
- package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.d.ts +9 -4
- package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.js +75 -25
- package/vscode/src/vs/sessions/services/customView/browser/customViewService.d.ts +11 -4
- package/vscode/src/vs/sessions/services/customView/browser/customViewService.js +17 -9
- package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.d.ts +5 -0
- package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.js +20 -2
- package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.d.ts +75 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.js +1135 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.d.ts +17 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.js +99 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.d.ts +4 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.js +88 -23
- package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.d.ts +19 -26
- package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.js +115 -74
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.js +1 -1
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.d.ts +22 -7
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +278 -60
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.d.ts +17 -20
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.js +33 -22
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.d.ts +28 -8
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +673 -160
- package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.d.ts +13 -4
- package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.js +105 -15
- package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.js +53 -34
- package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.js +1 -1
- package/vscode/src/vs/workbench/browser/layout.d.ts +46 -70
- package/vscode/src/vs/workbench/browser/layout.js +243 -44
- package/vscode/src/vs/workbench/browser/workbench.d.ts +1 -3
- package/vscode/src/vs/workbench/browser/workbench.js +26 -24
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +41 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.js +56 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +0 -18
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.js +0 -27
- package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.js +0 -36
- package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.d.ts +0 -37
- package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.js +0 -126
- package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.d.ts +0 -59
- package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +0 -232
- package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.d.ts +0 -13
- package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.js +0 -22
- package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +0 -45
- package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +0 -110
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.d.ts +0 -112
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.js +0 -444
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.js +0 -43
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.d.ts +0 -55
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.js +0 -91
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.d.ts +0 -26
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +0 -98
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +0 -33
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +0 -98
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +0 -2
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +0 -13
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +0 -122
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +0 -464
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +0 -35
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +0 -90
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +0 -84
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +0 -328
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +0 -174
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +0 -1390
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +0 -44
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +0 -30
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +0 -78
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +0 -11
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +0 -26
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.d.ts +0 -27
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.js +0 -26
|
@@ -68,15 +68,31 @@
|
|
|
68
68
|
.command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-center {
|
|
69
69
|
display: flex;
|
|
70
70
|
align-items: center;
|
|
71
|
-
gap:
|
|
71
|
+
gap: var(--vscode-spacing-size60);
|
|
72
72
|
height: 100%;
|
|
73
73
|
min-width: 0;
|
|
74
74
|
justify-content: flex-start;
|
|
75
75
|
cursor: pointer;
|
|
76
76
|
overflow: hidden;
|
|
77
77
|
}
|
|
78
|
-
|
|
79
|
-
.command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-
|
|
78
|
+
|
|
79
|
+
.command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-separator {
|
|
80
|
+
flex-shrink: 0;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-workspace-group,
|
|
84
|
+
.command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-branch-group {
|
|
85
|
+
display: flex;
|
|
86
|
+
align-items: center;
|
|
87
|
+
flex: 0 1 auto;
|
|
88
|
+
min-width: 0;
|
|
89
|
+
height: 100%;
|
|
90
|
+
overflow: hidden;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* Workspace and branch names shown beside their icons. */
|
|
94
|
+
.command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-workspace,
|
|
95
|
+
.command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-branch {
|
|
80
96
|
display: flex;
|
|
81
97
|
align-items: center;
|
|
82
98
|
flex: 0 1 auto;
|
|
@@ -87,7 +103,8 @@
|
|
|
87
103
|
white-space: nowrap;
|
|
88
104
|
}
|
|
89
105
|
|
|
90
|
-
.command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-workspace-icon
|
|
106
|
+
.command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-workspace-icon,
|
|
107
|
+
.command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-branch-icon {
|
|
91
108
|
display: flex;
|
|
92
109
|
align-items: center;
|
|
93
110
|
flex-shrink: 0;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service";
|
|
1
2
|
import { ISession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
|
|
2
|
-
export declare function formatSessionDetails(allSessions: readonly ISession[]): string;
|
|
3
|
+
export declare function formatSessionDetails(allSessions: readonly ISession[], labelService: ILabelService): string;
|
|
@@ -6,6 +6,7 @@ import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls'
|
|
|
6
6
|
import { Categories } from '@codingame/monaco-vscode-api/vscode/vs/platform/action/common/actionCommonCategories';
|
|
7
7
|
import { Action2, registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
8
8
|
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
9
|
+
import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
|
|
9
10
|
import { IsSessionsWindowContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
10
11
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
11
12
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
@@ -19,17 +20,20 @@ class ShowSessionDetailsAction extends Action2 {
|
|
|
19
20
|
constructor() {
|
|
20
21
|
super({
|
|
21
22
|
id: ShowSessionDetailsAction.ID,
|
|
22
|
-
title: ( localize2(
|
|
23
|
+
title: ( localize2(5775, "Show Session Details")),
|
|
23
24
|
category: Categories.Developer,
|
|
24
25
|
f1: true,
|
|
25
26
|
precondition: ( ContextKeyExpr.and(IsSessionsWindowContext, ChatContextKeys.enabled))
|
|
26
27
|
});
|
|
27
28
|
}
|
|
28
29
|
async run(accessor) {
|
|
29
|
-
const contents = formatSessionDetails(
|
|
30
|
+
const contents = formatSessionDetails(
|
|
31
|
+
accessor.get(ISessionsManagementService).getSessions(),
|
|
32
|
+
accessor.get(ILabelService)
|
|
33
|
+
);
|
|
30
34
|
const resource = ( URI.from({
|
|
31
35
|
scheme: Schemas.untitled,
|
|
32
|
-
path: ( localize(
|
|
36
|
+
path: ( localize(5776, "Session Details")),
|
|
33
37
|
query: generateUuid()
|
|
34
38
|
}));
|
|
35
39
|
await accessor.get(IEditorService).openEditor({
|
|
@@ -43,7 +47,7 @@ class ShowSessionDetailsAction extends Action2 {
|
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
registerAction2(ShowSessionDetailsAction);
|
|
46
|
-
function formatSessionDetails(allSessions) {
|
|
50
|
+
function formatSessionDetails(allSessions, labelService) {
|
|
47
51
|
const sessions = allSessions.filter(
|
|
48
52
|
session => !session.isArchived.get() && !(session.isAutomation?.get() ?? false)
|
|
49
53
|
);
|
|
@@ -54,7 +58,7 @@ function formatSessionDetails(allSessions) {
|
|
|
54
58
|
}
|
|
55
59
|
for (const [index, session] of sessions.entries()) {
|
|
56
60
|
const title = session.title.get() || getUntitledSessionTitle(session.isQuickChat?.get() ?? false);
|
|
57
|
-
const workingDirectories = session.workspace.get()?.folders.map(folder => formatWorkingDirectory(folder.workingDirectory)) ?? [];
|
|
61
|
+
const workingDirectories = session.workspace.get()?.folders.map(folder => formatWorkingDirectory(folder.workingDirectory, labelService)) ?? [];
|
|
58
62
|
lines.push(`Session: ${title.replace(/\r\n?|\n/g, " ")}`);
|
|
59
63
|
if (workingDirectories.length === 0) {
|
|
60
64
|
lines.push("Working directory: (none)");
|
|
@@ -70,8 +74,8 @@ function formatSessionDetails(allSessions) {
|
|
|
70
74
|
}
|
|
71
75
|
return `${lines.join("\n")}\n`;
|
|
72
76
|
}
|
|
73
|
-
function formatWorkingDirectory(resource) {
|
|
74
|
-
return resource.scheme === Schemas.file ? resource.fsPath : (
|
|
77
|
+
function formatWorkingDirectory(resource, labelService) {
|
|
78
|
+
return resource.scheme === Schemas.file ? resource.fsPath : labelService.getUriLabel(resource);
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
export { formatSessionDetails };
|
|
@@ -1 +1,116 @@
|
|
|
1
|
-
|
|
1
|
+
import { ConfigurationScope } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry";
|
|
2
|
+
import { ExternalSessionApplicationBadgeMode, SessionsChatTabsMode } from "@codingame/monaco-vscode-api/vscode/vs/sessions/common/sessionConfig";
|
|
3
|
+
export declare const sessionsConfiguration: {
|
|
4
|
+
id: string;
|
|
5
|
+
properties: {
|
|
6
|
+
"sessions.sidebar.separateNavigation": {
|
|
7
|
+
type: "boolean";
|
|
8
|
+
tags: string[];
|
|
9
|
+
description: string;
|
|
10
|
+
default: boolean;
|
|
11
|
+
experiment: {
|
|
12
|
+
mode: "auto";
|
|
13
|
+
name: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
"sessions.list.groupExternalSessions": {
|
|
17
|
+
type: "boolean";
|
|
18
|
+
tags: string[];
|
|
19
|
+
description: string;
|
|
20
|
+
default: boolean;
|
|
21
|
+
experiment: {
|
|
22
|
+
mode: "auto";
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
"sessions.list.externalApplicationBadge": {
|
|
26
|
+
type: "string";
|
|
27
|
+
tags: string[];
|
|
28
|
+
enum: ExternalSessionApplicationBadgeMode[];
|
|
29
|
+
enumDescriptions: string[];
|
|
30
|
+
description: string;
|
|
31
|
+
default: ExternalSessionApplicationBadgeMode;
|
|
32
|
+
experiment: {
|
|
33
|
+
mode: "auto";
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
"sessions.list.externalApplicationBadge.showFrom": {
|
|
37
|
+
type: "boolean";
|
|
38
|
+
tags: string[];
|
|
39
|
+
description: string;
|
|
40
|
+
default: boolean;
|
|
41
|
+
experiment: {
|
|
42
|
+
mode: "auto";
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
"sessions.list.showEmptyDefaultGroups": {
|
|
46
|
+
type: "boolean";
|
|
47
|
+
tags: string[];
|
|
48
|
+
description: string;
|
|
49
|
+
default: boolean;
|
|
50
|
+
experiment: {
|
|
51
|
+
mode: "auto";
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
"sessions.list.showUnreadInCollapsedSections": {
|
|
55
|
+
type: "boolean";
|
|
56
|
+
tags: string[];
|
|
57
|
+
description: string;
|
|
58
|
+
default: boolean;
|
|
59
|
+
experiment: {
|
|
60
|
+
mode: "auto";
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
"sessions.list.showArchivedByDefault": {
|
|
64
|
+
type: "boolean";
|
|
65
|
+
tags: string[];
|
|
66
|
+
description: string;
|
|
67
|
+
default: boolean;
|
|
68
|
+
scope: ConfigurationScope.APPLICATION;
|
|
69
|
+
experiment: {
|
|
70
|
+
mode: "auto";
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
"sessions.showChatTabs": {
|
|
74
|
+
type: "string";
|
|
75
|
+
tags: string[];
|
|
76
|
+
enum: SessionsChatTabsMode[];
|
|
77
|
+
enumDescriptions: string[];
|
|
78
|
+
description: string;
|
|
79
|
+
default: SessionsChatTabsMode;
|
|
80
|
+
experiment: {
|
|
81
|
+
mode: "auto";
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
"sessions.markAsDoneConfetti": {
|
|
85
|
+
type: "boolean";
|
|
86
|
+
description: string;
|
|
87
|
+
default: boolean;
|
|
88
|
+
experiment: {
|
|
89
|
+
mode: "auto";
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
"sessions.newSessionButton.style": {
|
|
93
|
+
type: "string";
|
|
94
|
+
enum: string[];
|
|
95
|
+
default: string;
|
|
96
|
+
scope: ConfigurationScope.APPLICATION;
|
|
97
|
+
included: false;
|
|
98
|
+
tags: string[];
|
|
99
|
+
experiment: {
|
|
100
|
+
mode: "auto";
|
|
101
|
+
name: string;
|
|
102
|
+
};
|
|
103
|
+
description: string;
|
|
104
|
+
};
|
|
105
|
+
"sessions.useWorktree": {
|
|
106
|
+
type: "boolean";
|
|
107
|
+
default: boolean;
|
|
108
|
+
scope: ConfigurationScope.APPLICATION;
|
|
109
|
+
description: string;
|
|
110
|
+
experiment: {
|
|
111
|
+
mode: "auto";
|
|
112
|
+
name: string;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
};
|
|
@@ -9,22 +9,22 @@ import { ViewPaneContainer } from '@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
9
9
|
import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
|
|
10
10
|
import { SessionsTitleBarContribution } from './sessionsTitleBarWidget.js';
|
|
11
11
|
import { SessionsTelemetryContribution } from './sessionsTelemetry.contribution.js';
|
|
12
|
-
import {
|
|
12
|
+
import { SessionsAccountTelemetryContribution } from './sessionsAccountTelemetry.js';
|
|
13
|
+
import { NEW_SESSION_BUTTON_STYLE_SETTING, NEW_SESSION_BUTTON_STYLE_TREATMENT, NewSessionActionViewItemContribution, SessionListActionsExperimentContribution, SessionConversationActionsContribution } from './sessionsActions.js';
|
|
13
14
|
import { SessionsView, SessionsViewId } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/views/sessionsView';
|
|
14
15
|
import { AutomationsCustomViewContribution } from './views/automationsView.js';
|
|
15
16
|
import './views/sessionsViewActions.js';
|
|
16
17
|
import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
|
|
17
|
-
import { Extensions as Extensions$1
|
|
18
|
-
import { SESSIONS_LIST_SHOW_EMPTY_DEFAULT_GROUPS_SETTING } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/views/sessionsList';
|
|
19
|
-
import { AUTOMATIONS_NEW_BADGE_STYLE_SETTING, AUTOMATIONS_NEW_BADGE_STYLE_TREATMENT } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/automationsNewBadge';
|
|
18
|
+
import { ConfigurationScope, Extensions as Extensions$1 } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
|
|
19
|
+
import { SESSIONS_LIST_SHOW_ARCHIVED_BY_DEFAULT_SETTING, SESSIONS_LIST_SHOW_UNREAD_IN_COLLAPSED_SECTIONS_SETTING, SESSIONS_LIST_SHOW_EMPTY_DEFAULT_GROUPS_SETTING } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/views/sessionsList';
|
|
20
20
|
import { SessionsMouseNavigationContribution } from './sessionsMouseNavigation.js';
|
|
21
21
|
import './sessionDetailsAction.js';
|
|
22
|
-
import {
|
|
22
|
+
import { SESSIONS_MARK_AS_DONE_CONFETTI_SETTING } from '@codingame/monaco-vscode-api/vscode/vs/platform/chat/common/sessionArchiveActions';
|
|
23
23
|
import { SessionsWindowNotifier } from './sessionsWindowNotifier.js';
|
|
24
|
-
import { USE_WORKTREE_SETTING, USE_WORKTREE_SETTING_TREATMENT } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/sessionConfig';
|
|
24
|
+
import { USE_WORKTREE_SETTING, USE_WORKTREE_SETTING_TREATMENT, SESSIONS_CHAT_TABS_SETTING, SESSIONS_CHAT_TABS_DEFAULT, SessionsChatTabsMode, SESSIONS_LIST_EXTERNAL_APPLICATION_BADGE_SHOW_FROM_SETTING, SESSIONS_LIST_EXTERNAL_APPLICATION_BADGE_SETTING, ExternalSessionApplicationBadgeMode, SESSIONS_LIST_GROUP_EXTERNAL_SESSIONS_SETTING, SESSIONS_SIDEBAR_SEPARATE_NAVIGATION_SETTING, SESSIONS_LIST_REARRANGE_TREATMENT } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/sessionConfig';
|
|
25
25
|
|
|
26
|
-
const agentSessionsViewIcon = registerIcon("chat-sessions-icon", Codicon.commentDiscussionSparkle, ( localize(
|
|
27
|
-
const AGENT_SESSIONS_VIEW_TITLE = ( localize2(
|
|
26
|
+
const agentSessionsViewIcon = registerIcon("chat-sessions-icon", Codicon.commentDiscussionSparkle, ( localize(5778, "Icon for Agent Sessions View")));
|
|
27
|
+
const AGENT_SESSIONS_VIEW_TITLE = ( localize2(5779, "Sessions"));
|
|
28
28
|
const SessionsContainerId = "agentic.workbench.view.sessionsContainer";
|
|
29
29
|
const agentSessionsViewContainer = ( Registry.as(Extensions.ViewContainersRegistry)).registerViewContainer({
|
|
30
30
|
id: SessionsContainerId,
|
|
@@ -38,7 +38,7 @@ const agentSessionsViewContainer = ( Registry.as(Extensions.ViewContainersRegist
|
|
|
38
38
|
order: 6,
|
|
39
39
|
openCommandActionDescriptor: {
|
|
40
40
|
id: SessionsContainerId,
|
|
41
|
-
mnemonicTitle: ( localize(
|
|
41
|
+
mnemonicTitle: ( localize(5780, "&&Sessions")),
|
|
42
42
|
keybindings: {
|
|
43
43
|
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KeyX
|
|
44
44
|
},
|
|
@@ -60,14 +60,69 @@ const sessionsViewPaneDescriptor = {
|
|
|
60
60
|
windowEnablement: WindowEnablement.Sessions
|
|
61
61
|
};
|
|
62
62
|
( Registry.as(Extensions.ViewsRegistry)).registerViews([sessionsViewPaneDescriptor], agentSessionsViewContainer);
|
|
63
|
-
|
|
63
|
+
const sessionsConfiguration = {
|
|
64
64
|
id: "sessions",
|
|
65
65
|
properties: {
|
|
66
|
+
[SESSIONS_SIDEBAR_SEPARATE_NAVIGATION_SETTING]: {
|
|
67
|
+
type: "boolean",
|
|
68
|
+
tags: ["experimental"],
|
|
69
|
+
description: ( localize(
|
|
70
|
+
5781,
|
|
71
|
+
"Controls whether New Session, Automations, and Customizations are shown in a separate navigation list above the Sessions header. When disabled, Automations is shown inside the sessions tree, New Session remains a toolbar button, and Customizations remains a separate section."
|
|
72
|
+
)),
|
|
73
|
+
default: false,
|
|
74
|
+
experiment: {
|
|
75
|
+
mode: "auto",
|
|
76
|
+
name: SESSIONS_LIST_REARRANGE_TREATMENT
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
[SESSIONS_LIST_GROUP_EXTERNAL_SESSIONS_SETTING]: {
|
|
80
|
+
type: "boolean",
|
|
81
|
+
tags: ["preview"],
|
|
82
|
+
description: ( localize(
|
|
83
|
+
5782,
|
|
84
|
+
"Controls whether external sessions are shown in a separate External section instead of workspace or time groups. Pinned sessions and custom groups keep their placement."
|
|
85
|
+
)),
|
|
86
|
+
default: false,
|
|
87
|
+
experiment: {
|
|
88
|
+
mode: "auto"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
[SESSIONS_LIST_EXTERNAL_APPLICATION_BADGE_SETTING]: {
|
|
92
|
+
type: "string",
|
|
93
|
+
tags: ["experimental"],
|
|
94
|
+
enum: [
|
|
95
|
+
ExternalSessionApplicationBadgeMode.Off,
|
|
96
|
+
ExternalSessionApplicationBadgeMode.Title,
|
|
97
|
+
ExternalSessionApplicationBadgeMode.Details
|
|
98
|
+
],
|
|
99
|
+
enumDescriptions: [( localize(5783, "Do not show the creating application.")), ( localize(5784, "Show the creating application next to the session title.")), ( localize(5785, "Show the creating application first in the session details."))],
|
|
100
|
+
description: ( localize(
|
|
101
|
+
5786,
|
|
102
|
+
"Controls where external sessions created in another application show the creating application."
|
|
103
|
+
)),
|
|
104
|
+
default: ExternalSessionApplicationBadgeMode.Off,
|
|
105
|
+
experiment: {
|
|
106
|
+
mode: "auto"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
[SESSIONS_LIST_EXTERNAL_APPLICATION_BADGE_SHOW_FROM_SETTING]: {
|
|
110
|
+
type: "boolean",
|
|
111
|
+
tags: ["experimental", "advanced"],
|
|
112
|
+
description: ( localize(
|
|
113
|
+
5787,
|
|
114
|
+
"Controls whether external session application badges include the word 'From'."
|
|
115
|
+
)),
|
|
116
|
+
default: true,
|
|
117
|
+
experiment: {
|
|
118
|
+
mode: "auto"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
66
121
|
[SESSIONS_LIST_SHOW_EMPTY_DEFAULT_GROUPS_SETTING]: {
|
|
67
122
|
type: "boolean",
|
|
68
123
|
tags: ["preview"],
|
|
69
124
|
description: ( localize(
|
|
70
|
-
|
|
125
|
+
5788,
|
|
71
126
|
"Controls whether the Chats group is shown in the sessions list even when it is empty."
|
|
72
127
|
)),
|
|
73
128
|
default: true,
|
|
@@ -75,27 +130,55 @@ const sessionsViewPaneDescriptor = {
|
|
|
75
130
|
mode: "auto"
|
|
76
131
|
}
|
|
77
132
|
},
|
|
78
|
-
[
|
|
133
|
+
[SESSIONS_LIST_SHOW_UNREAD_IN_COLLAPSED_SECTIONS_SETTING]: {
|
|
79
134
|
type: "boolean",
|
|
80
135
|
tags: ["preview"],
|
|
81
136
|
description: ( localize(
|
|
82
|
-
|
|
83
|
-
"Controls whether
|
|
137
|
+
5789,
|
|
138
|
+
"Controls whether collapsed sections in the sessions list show needs-attention, CI-failure, or unread indicators for the unarchived sessions they contain."
|
|
84
139
|
)),
|
|
85
|
-
default: false
|
|
140
|
+
default: false,
|
|
141
|
+
experiment: {
|
|
142
|
+
mode: "auto"
|
|
143
|
+
}
|
|
86
144
|
},
|
|
87
|
-
[
|
|
88
|
-
type: "
|
|
89
|
-
|
|
90
|
-
|
|
145
|
+
[SESSIONS_LIST_SHOW_ARCHIVED_BY_DEFAULT_SETTING]: {
|
|
146
|
+
type: "boolean",
|
|
147
|
+
tags: ["experimental", "advanced"],
|
|
148
|
+
description: ( localize(
|
|
149
|
+
5790,
|
|
150
|
+
"Controls whether the Done or Archived section is shown by default in the sessions list. This default is ignored after the corresponding filter is changed."
|
|
151
|
+
)),
|
|
152
|
+
default: false,
|
|
91
153
|
scope: ConfigurationScope.APPLICATION,
|
|
92
|
-
included: false,
|
|
93
|
-
tags: ["experimental"],
|
|
94
154
|
experiment: {
|
|
95
|
-
mode: "auto"
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
155
|
+
mode: "auto"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
[SESSIONS_CHAT_TABS_SETTING]: {
|
|
159
|
+
type: "string",
|
|
160
|
+
tags: ["preview"],
|
|
161
|
+
enum: [SessionsChatTabsMode.Multiple, SessionsChatTabsMode.Single],
|
|
162
|
+
enumDescriptions: [( localize(5791, "Each chat is displayed as a tab in the session view.")), ( localize(5792, "The active chat is displayed as the session view."))],
|
|
163
|
+
description: ( localize(
|
|
164
|
+
5793,
|
|
165
|
+
"Controls whether chats in a session are shown as individual tabs or whether the active chat is shown as the session view."
|
|
166
|
+
)),
|
|
167
|
+
default: SESSIONS_CHAT_TABS_DEFAULT,
|
|
168
|
+
experiment: {
|
|
169
|
+
mode: "auto"
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
[SESSIONS_MARK_AS_DONE_CONFETTI_SETTING]: {
|
|
173
|
+
type: "boolean",
|
|
174
|
+
description: ( localize(
|
|
175
|
+
5794,
|
|
176
|
+
"Controls whether a confetti animation is shown when marking a session as done."
|
|
177
|
+
)),
|
|
178
|
+
default: true,
|
|
179
|
+
experiment: {
|
|
180
|
+
mode: "auto"
|
|
181
|
+
}
|
|
99
182
|
},
|
|
100
183
|
[NEW_SESSION_BUTTON_STYLE_SETTING]: {
|
|
101
184
|
type: "string",
|
|
@@ -108,15 +191,15 @@ const sessionsViewPaneDescriptor = {
|
|
|
108
191
|
mode: "auto",
|
|
109
192
|
name: NEW_SESSION_BUTTON_STYLE_TREATMENT
|
|
110
193
|
},
|
|
111
|
-
description: ( localize(
|
|
194
|
+
description: ( localize(5795, "Controls the visual style of the New Session button."))
|
|
112
195
|
},
|
|
113
196
|
[USE_WORKTREE_SETTING]: {
|
|
114
197
|
type: "boolean",
|
|
115
|
-
default:
|
|
198
|
+
default: false,
|
|
116
199
|
scope: ConfigurationScope.APPLICATION,
|
|
117
200
|
description: ( localize(
|
|
118
|
-
|
|
119
|
-
"Controls whether New Worktree is checked
|
|
201
|
+
5796,
|
|
202
|
+
"Controls whether New Worktree is checked for a workspace that has not started a session before. Each workspace otherwise uses the choice from its last started session."
|
|
120
203
|
)),
|
|
121
204
|
experiment: {
|
|
122
205
|
mode: "auto",
|
|
@@ -124,7 +207,8 @@ const sessionsViewPaneDescriptor = {
|
|
|
124
207
|
}
|
|
125
208
|
}
|
|
126
209
|
}
|
|
127
|
-
}
|
|
210
|
+
};
|
|
211
|
+
( Registry.as(Extensions$1.Configuration)).registerConfiguration(sessionsConfiguration);
|
|
128
212
|
registerWorkbenchContribution2(
|
|
129
213
|
AutomationsCustomViewContribution.ID,
|
|
130
214
|
AutomationsCustomViewContribution,
|
|
@@ -140,6 +224,11 @@ registerWorkbenchContribution2(
|
|
|
140
224
|
NewSessionActionViewItemContribution,
|
|
141
225
|
WorkbenchPhase.BlockRestore
|
|
142
226
|
);
|
|
227
|
+
registerWorkbenchContribution2(
|
|
228
|
+
SessionListActionsExperimentContribution.ID,
|
|
229
|
+
SessionListActionsExperimentContribution,
|
|
230
|
+
WorkbenchPhase.BlockRestore
|
|
231
|
+
);
|
|
143
232
|
registerWorkbenchContribution2(
|
|
144
233
|
SessionsMouseNavigationContribution.ID,
|
|
145
234
|
SessionsMouseNavigationContribution,
|
|
@@ -150,6 +239,11 @@ registerWorkbenchContribution2(
|
|
|
150
239
|
SessionsTelemetryContribution,
|
|
151
240
|
WorkbenchPhase.AfterRestored
|
|
152
241
|
);
|
|
242
|
+
registerWorkbenchContribution2(
|
|
243
|
+
SessionsAccountTelemetryContribution.ID,
|
|
244
|
+
SessionsAccountTelemetryContribution,
|
|
245
|
+
WorkbenchPhase.AfterRestored
|
|
246
|
+
);
|
|
153
247
|
registerWorkbenchContribution2(
|
|
154
248
|
SessionsWindowNotifier.ID,
|
|
155
249
|
SessionsWindowNotifier,
|
|
@@ -160,3 +254,5 @@ registerWorkbenchContribution2(
|
|
|
160
254
|
SessionConversationActionsContribution,
|
|
161
255
|
WorkbenchPhase.AfterRestored
|
|
162
256
|
);
|
|
257
|
+
|
|
258
|
+
export { sessionsConfiguration };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IDefaultAccountService } from "@codingame/monaco-vscode-api/vscode/vs/platform/defaultAccount/common/defaultAccount.service";
|
|
3
|
+
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
|
|
4
|
+
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
5
|
+
import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
|
|
6
|
+
import { ICodexAccountService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/agentHost/browser/codexAccountService.service";
|
|
7
|
+
import { IChatEntitlementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service";
|
|
8
|
+
/** Reports startup account context and later changes without fetching account or quota data. */
|
|
9
|
+
export declare class SessionsAccountTelemetryContribution extends Disposable implements IWorkbenchContribution {
|
|
10
|
+
private readonly telemetryService;
|
|
11
|
+
private readonly chatEntitlementService;
|
|
12
|
+
private readonly codexAccountService;
|
|
13
|
+
private readonly logService;
|
|
14
|
+
private readonly defaultAccountService;
|
|
15
|
+
static readonly ID = "workbench.contrib.sessionsAccountTelemetry";
|
|
16
|
+
private lastSnapshot;
|
|
17
|
+
private initialDefaultAccountResolved;
|
|
18
|
+
private readonly startupDeadline;
|
|
19
|
+
constructor(telemetryService: ITelemetryService, chatEntitlementService: IChatEntitlementService, codexAccountService: ICodexAccountService, logService: ILogService, defaultAccountService: IDefaultAccountService);
|
|
20
|
+
private waitForInitialAccount;
|
|
21
|
+
private get copilotEntitlement();
|
|
22
|
+
private hasStartupData;
|
|
23
|
+
private get snapshot();
|
|
24
|
+
private onAccountChanged;
|
|
25
|
+
}
|
|
26
|
+
export declare function getSessionsTelemetryCopilotSku(chatEntitlementService: IChatEntitlementService): string;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { RunOnceScheduler } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
4
|
+
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
|
+
import { IDefaultAccountService } from '@codingame/monaco-vscode-api/vscode/vs/platform/defaultAccount/common/defaultAccount.service';
|
|
6
|
+
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
7
|
+
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
8
|
+
import { ICodexAccountService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/agentHost/browser/codexAccountService.service';
|
|
9
|
+
import { ChatEntitlement, getQuotaUsage, QuotaUsageKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService';
|
|
10
|
+
import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
|
|
11
|
+
|
|
12
|
+
const STARTUP_ACCOUNT_TIMEOUT_MS = 30_000;
|
|
13
|
+
let SessionsAccountTelemetryContribution = class SessionsAccountTelemetryContribution extends Disposable {
|
|
14
|
+
static {
|
|
15
|
+
this.ID = "workbench.contrib.sessionsAccountTelemetry";
|
|
16
|
+
}
|
|
17
|
+
constructor(
|
|
18
|
+
telemetryService,
|
|
19
|
+
chatEntitlementService,
|
|
20
|
+
codexAccountService,
|
|
21
|
+
logService,
|
|
22
|
+
defaultAccountService
|
|
23
|
+
) {
|
|
24
|
+
super();
|
|
25
|
+
this.telemetryService = telemetryService;
|
|
26
|
+
this.chatEntitlementService = chatEntitlementService;
|
|
27
|
+
this.codexAccountService = codexAccountService;
|
|
28
|
+
this.logService = logService;
|
|
29
|
+
this.defaultAccountService = defaultAccountService;
|
|
30
|
+
this.initialDefaultAccountResolved = false;
|
|
31
|
+
this.startupDeadline = this._register(( new RunOnceScheduler(() => this.onAccountChanged(true), STARTUP_ACCOUNT_TIMEOUT_MS)));
|
|
32
|
+
const update = this._register(( new RunOnceScheduler(() => this.onAccountChanged(), 0)));
|
|
33
|
+
this._register(chatEntitlementService.onDidChangeEntitlement(() => update.schedule()));
|
|
34
|
+
this._register(chatEntitlementService.onDidChangeAnonymous(() => update.schedule()));
|
|
35
|
+
this._register(chatEntitlementService.onDidChangeQuotaRemaining(() => update.schedule()));
|
|
36
|
+
this._register(codexAccountService.onDidChangeAccount(() => update.schedule()));
|
|
37
|
+
this._register(defaultAccountService.onDidChangeDefaultAccount(() => update.schedule()));
|
|
38
|
+
this.startupDeadline.schedule();
|
|
39
|
+
void this.waitForInitialAccount(update).catch(
|
|
40
|
+
error => this.logService.error("[SessionsAccountTelemetry] Failed to resolve the initial account.", error)
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
async waitForInitialAccount(update) {
|
|
44
|
+
await this.defaultAccountService.getDefaultAccount();
|
|
45
|
+
if (!this._store.isDisposed) {
|
|
46
|
+
this.initialDefaultAccountResolved = true;
|
|
47
|
+
update.schedule();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
get copilotEntitlement() {
|
|
51
|
+
const entitlement = this.chatEntitlementService.entitlement;
|
|
52
|
+
if (!this.initialDefaultAccountResolved || (entitlement === ChatEntitlement.Unknown && this.defaultAccountService.currentDefaultAccount !== null)) {
|
|
53
|
+
return ChatEntitlement.Unresolved;
|
|
54
|
+
}
|
|
55
|
+
return entitlement;
|
|
56
|
+
}
|
|
57
|
+
hasStartupData() {
|
|
58
|
+
const entitlement = this.copilotEntitlement;
|
|
59
|
+
if (entitlement === ChatEntitlement.Unresolved) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
const {
|
|
63
|
+
sku,
|
|
64
|
+
quotas
|
|
65
|
+
} = this.chatEntitlementService;
|
|
66
|
+
if (entitlement !== ChatEntitlement.Unknown && entitlement !== ChatEntitlement.Available && entitlement !== ChatEntitlement.Unavailable && (sku === undefined || (quotas.premiumChat === undefined && quotas.chat === undefined))) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
const account = this.codexAccountService.account;
|
|
70
|
+
return account.status !== "unknown" && account.status !== "downloading" && (account.status !== "signedIn" || account.rateLimits !== undefined || account.rateLimit !== undefined);
|
|
71
|
+
}
|
|
72
|
+
get snapshot() {
|
|
73
|
+
const entitlement = this.copilotEntitlement;
|
|
74
|
+
const copilotAccountState = entitlement === ChatEntitlement.Unknown ? "signedOut" : entitlement === ChatEntitlement.Unresolved ? "unknown" : "signedIn";
|
|
75
|
+
const now = Date.now();
|
|
76
|
+
return {
|
|
77
|
+
copilotSku: entitlement === ChatEntitlement.Unresolved ? "unknown" : getSessionsTelemetryCopilotSku(this.chatEntitlementService),
|
|
78
|
+
copilotAccountState,
|
|
79
|
+
copilotQuotaPercentRemaining: copilotAccountState === "signedIn" ? getCopilotQuotaPercentRemaining(
|
|
80
|
+
this.chatEntitlementService.quotas.premiumChat ?? this.chatEntitlementService.quotas.chat,
|
|
81
|
+
now,
|
|
82
|
+
this.logService
|
|
83
|
+
) : undefined,
|
|
84
|
+
chatgptAccountState: this.codexAccountService.account.status,
|
|
85
|
+
chatgptQuotaPercentRemaining: getChatGPTQuotaPercentRemaining(this.codexAccountService.account, now, this.logService)
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
onAccountChanged(startupTimedOut = false) {
|
|
89
|
+
const previous = this.lastSnapshot;
|
|
90
|
+
if (!previous && !startupTimedOut && !this.hasStartupData()) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const current = this.snapshot;
|
|
94
|
+
this.lastSnapshot = current;
|
|
95
|
+
if (!previous) {
|
|
96
|
+
this.startupDeadline.cancel();
|
|
97
|
+
this.telemetryService.publicLog2("agents/accountState", current);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const accountChanged = previous.copilotSku !== current.copilotSku || previous.copilotAccountState !== current.copilotAccountState || previous.chatgptAccountState !== current.chatgptAccountState;
|
|
101
|
+
const quotaResolved = (previous.copilotQuotaPercentRemaining === undefined && current.copilotQuotaPercentRemaining !== undefined) || (previous.chatgptQuotaPercentRemaining === undefined && current.chatgptQuotaPercentRemaining !== undefined);
|
|
102
|
+
if (!accountChanged && !quotaResolved) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
this.telemetryService.publicLog2("agents/accountStateChanged", {
|
|
106
|
+
...current,
|
|
107
|
+
changeReason: accountChanged ? "accountChanged" : "quotaResolved",
|
|
108
|
+
previousCopilotSku: previous.copilotSku,
|
|
109
|
+
previousCopilotAccountState: previous.copilotAccountState,
|
|
110
|
+
previousChatgptAccountState: previous.chatgptAccountState
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
SessionsAccountTelemetryContribution = ( __decorate([( __param(0, ITelemetryService)), ( __param(1, IChatEntitlementService)), ( __param(2, ICodexAccountService)), ( __param(3, ILogService)), ( __param(4, IDefaultAccountService))], SessionsAccountTelemetryContribution));
|
|
115
|
+
function getSessionsTelemetryCopilotSku(chatEntitlementService) {
|
|
116
|
+
if (chatEntitlementService.entitlement === ChatEntitlement.Unknown && !chatEntitlementService.anonymous) {
|
|
117
|
+
return "signedOut";
|
|
118
|
+
}
|
|
119
|
+
if (chatEntitlementService.entitlement === ChatEntitlement.Unresolved) {
|
|
120
|
+
return "unknown";
|
|
121
|
+
}
|
|
122
|
+
return chatEntitlementService.sku ?? "unknown";
|
|
123
|
+
}
|
|
124
|
+
function getCopilotQuotaPercentRemaining(quota, now, logService) {
|
|
125
|
+
if (!quota || getQuotaUsage(quota)?.kind !== QuotaUsageKind.Percentage || !hasNotReset(quota.resetAt, now, logService)) {
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
return validPercentage(quota.percentRemaining, logService);
|
|
129
|
+
}
|
|
130
|
+
function getChatGPTQuotaPercentRemaining(account, now, logService) {
|
|
131
|
+
if (account.status !== "signedIn") {
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
const weeklyWindowMins = 7 * 24 * 60;
|
|
135
|
+
const weeklyLimit = account.rateLimits?.find(limit => limit.windowDurationMins === weeklyWindowMins) ?? (account.rateLimit?.windowDurationMins === weeklyWindowMins ? account.rateLimit : undefined);
|
|
136
|
+
if (!weeklyLimit || !hasNotReset(weeklyLimit.resetsAt, now, logService)) {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
const usedPercent = validPercentage(weeklyLimit.usedPercent, logService);
|
|
140
|
+
return usedPercent !== undefined ? 100 - usedPercent : undefined;
|
|
141
|
+
}
|
|
142
|
+
function validPercentage(value, logService) {
|
|
143
|
+
if (!Number.isFinite(value) || value < 0 || value > 100) {
|
|
144
|
+
logService.warn("[SessionsAccountTelemetry] Ignoring an invalid quota percentage.");
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
return value;
|
|
148
|
+
}
|
|
149
|
+
function hasNotReset(resetsAt, now, logService) {
|
|
150
|
+
if (resetsAt === undefined) {
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
if (!Number.isFinite(resetsAt) || resetsAt <= 0) {
|
|
154
|
+
logService.warn("[SessionsAccountTelemetry] Ignoring a quota with an invalid reset time.");
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
return resetsAt * 1000 > now;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export { SessionsAccountTelemetryContribution, getSessionsTelemetryCopilotSku };
|