@codingame/monaco-vscode-workbench-service-override 37.6.0 → 38.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common.js +2 -0
- package/index.js +9 -10
- package/package.json +10 -10
- package/session.js +45 -42
- package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.d.ts +1 -0
- package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.js +12 -0
- package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.d.ts → desktopWorkbench.d.ts} +6 -5
- package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.js → desktopWorkbench.js} +23 -25
- package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.d.ts +5 -2
- package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.js +41 -3
- package/vscode/src/vs/sessions/browser/layoutActions.js +25 -41
- package/vscode/src/vs/sessions/browser/mobileWorkbench.d.ts +4 -0
- package/vscode/src/vs/sessions/browser/mobileWorkbench.js +10 -0
- package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.d.ts +10 -5
- package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +138 -34
- package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.d.ts +2 -0
- package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.js +13 -5
- package/vscode/src/vs/sessions/browser/parts/chatGroupView.d.ts +27 -5
- package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +129 -28
- package/vscode/src/vs/sessions/browser/parts/chatGroupsView.d.ts +22 -7
- package/vscode/src/vs/sessions/browser/parts/chatGroupsView.js +260 -21
- package/vscode/src/vs/sessions/browser/parts/chatHeader.d.ts +25 -0
- package/vscode/src/vs/sessions/browser/parts/chatHeader.js +42 -0
- package/vscode/src/vs/sessions/browser/parts/customViewGridPart.js +9 -1
- package/vscode/src/vs/sessions/browser/parts/customViewNode.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/{singlePaneAuxiliaryBarPart.d.ts → desktopAuxiliaryBarPart.d.ts} +4 -4
- package/vscode/src/vs/sessions/browser/parts/desktopAuxiliaryBarPart.js +26 -0
- package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.d.ts → desktopEditorPart.d.ts} +8 -6
- package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.js → desktopEditorPart.js} +25 -5
- package/vscode/src/vs/sessions/browser/parts/editorPart.js +16 -4
- package/vscode/src/vs/sessions/browser/parts/editorParts.d.ts +1 -1
- package/vscode/src/vs/sessions/browser/parts/editorParts.js +7 -6
- package/vscode/src/vs/sessions/browser/parts/gridGap.d.ts +14 -0
- package/vscode/src/vs/sessions/browser/parts/gridGap.js +69 -0
- package/vscode/src/vs/sessions/browser/parts/media/chatCompositeBar.css +132 -4
- package/vscode/src/vs/sessions/browser/parts/media/chatGroupsView.css +10 -0
- package/vscode/src/vs/sessions/browser/parts/media/editorPart.css +46 -2
- package/vscode/src/vs/sessions/browser/parts/media/sessionReadOnlyBanner.css +3 -3
- package/vscode/src/vs/sessions/browser/parts/media/sessionView.css +45 -48
- package/vscode/src/vs/sessions/browser/parts/media/sessionsPart.css +15 -0
- package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +8 -8
- package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.d.ts +9 -1
- package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.js +21 -3
- package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.d.ts +4 -3
- package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.js +29 -15
- package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.d.ts +67 -0
- package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.js +598 -0
- package/vscode/src/vs/sessions/browser/parts/sessionHeader.d.ts +11 -84
- package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +37 -317
- package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.d.ts +103 -0
- package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.js +391 -0
- package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.d.ts +6 -4
- package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +58 -28
- package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.d.ts +4 -0
- package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +66 -23
- package/vscode/src/vs/sessions/browser/parts/sessionView.d.ts +24 -5
- package/vscode/src/vs/sessions/browser/parts/sessionView.js +143 -33
- package/vscode/src/vs/sessions/browser/parts/sessionsPart.d.ts +25 -19
- package/vscode/src/vs/sessions/browser/parts/sessionsPart.js +157 -58
- package/vscode/src/vs/sessions/browser/parts/sessionsParts.d.ts +12 -3
- package/vscode/src/vs/sessions/browser/parts/sessionsParts.js +17 -2
- package/vscode/src/vs/sessions/browser/sessionWorkspace.d.ts +6 -3
- package/vscode/src/vs/sessions/browser/sessionWorkspace.js +2 -2
- package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +66 -20
- package/vscode/src/vs/sessions/browser/sessionsSignInDialog.d.ts +1 -0
- package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +5 -4
- package/vscode/src/vs/sessions/browser/workbenchFactory.d.ts +12 -0
- package/vscode/src/vs/sessions/browser/workbenchFactory.js +17 -0
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.d.ts +85 -1
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +118 -100
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.d.ts +3 -2
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +39 -34
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountTitleBarWidget.css +6 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.d.ts +3 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.js +6 -0
- package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.js +18 -18
- package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.js +12 -12
- package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.js +7 -7
- package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.js +12 -12
- package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.js +10 -10
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.d.ts +78 -8
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.js +1166 -202
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.d.ts +11 -1
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +190 -69
- package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.d.ts +11 -9
- package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +122 -233
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.d.ts +22 -0
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.js +62 -0
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.d.ts +7 -2
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +172 -84
- package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +17 -7
- package/vscode/src/vs/sessions/contrib/automations/browser/media/automationDialog.css +242 -60
- package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.d.ts +24 -36
- package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +104 -420
- package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +15 -14
- package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.d.ts +13 -3
- package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +66 -43
- package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.js +2 -7
- package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +54 -59
- package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +7 -7
- package/vscode/src/vs/sessions/contrib/changes/browser/media/changesActions.css +6 -0
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +25 -21
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +21 -27
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +17 -17
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.d.ts +5 -5
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.js +2 -2
- package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +2 -2
- package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.js +9 -16
- package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +7 -7
- package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +15 -13
- package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.d.ts +13 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +104 -117
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +8 -7
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.js +5 -5
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.js +1 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/media/editorBreadcrumbs.css +0 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/media/editorHeader.css +1 -1
- package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.d.ts +7 -0
- package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.js +77 -13
- package/vscode/src/vs/sessions/contrib/files/browser/filesView.d.ts +2 -1
- package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +14 -4
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.d.ts +45 -10
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +527 -96
- package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.d.ts +18 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.js +95 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.d.ts → desktop/desktopDetailPanelCoordinator.d.ts} +5 -4
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.js → desktop/desktopDetailPanelCoordinator.js} +10 -7
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.d.ts → desktop/desktopDockedTabsCoordinator.d.ts} +15 -12
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.js → desktop/desktopDockedTabsCoordinator.js} +91 -44
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.d.ts → desktop/desktopDraftSessionStrategy.d.ts} +10 -5
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.js → desktop/desktopDraftSessionStrategy.js} +95 -22
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.d.ts → desktop/desktopExistingSessionStrategy.d.ts} +13 -11
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.js → desktop/desktopExistingSessionStrategy.js} +137 -57
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.d.ts → desktop/desktopLayoutStrategy.d.ts} +22 -13
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.js → desktop/desktopLayoutStrategy.js} +2 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.d.ts +22 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.js +136 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneSharedHelpers.d.ts → desktop/desktopSharedHelpers.d.ts} +9 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopSharedHelpers.js +56 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.d.ts → desktop/desktopVisibilityProfileStore.d.ts} +3 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.js → desktop/desktopVisibilityProfileStore.js} +10 -9
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.d.ts +71 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.js +201 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.d.ts +8 -1
- package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +35 -35
- package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.d.ts +39 -0
- package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.js +73 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.d.ts +42 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.js +14 -10
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.js +3 -4
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.d.ts +2 -2
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.js +13 -9
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.js +20 -5
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.d.ts +8 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.js +19 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +21 -20
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +10 -5
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +12 -8
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.d.ts +3 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +12 -7
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.d.ts +9 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +46 -19
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.js +2 -0
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/media/sessionsPolicyBlocked.css +33 -0
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.d.ts +4 -2
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.js +29 -8
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.d.ts +15 -2
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +169 -32
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.js +30 -8
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js +8 -34
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.js +63 -49
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.js +1 -1
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.js +31 -17
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.d.ts +32 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.js +250 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.d.ts +6 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.js +52 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.d.ts +51 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.js +439 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.d.ts +45 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.js +595 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.d.ts +20 -3
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +360 -46
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.d.ts +9 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.js +59 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/media/connectionDiagnostics.css +201 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.d.ts +10 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.js +70 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.d.ts +20 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.js +104 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.d.ts +15 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.js +152 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.d.ts +49 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.js +340 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.d.ts +41 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.js +400 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.d.ts +28 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.js +178 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.d.ts +17 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.js +206 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.js +58 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.d.ts +10 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.js +90 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.d.ts +38 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.js +58 -0
- package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +4 -5
- package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +1 -1
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.js +33 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.d.ts +30 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.js +190 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.d.ts +31 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.js +559 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.d.ts +12 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.js +38 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.d.ts +13 -4
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +155 -22
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +9 -5
- package/vscode/src/vs/sessions/contrib/sessions/browser/media/automationsCards.css +90 -25
- package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css +21 -4
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.d.ts +2 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +11 -7
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.d.ts +116 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +126 -30
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.d.ts +26 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.js +160 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.d.ts +14 -6
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +555 -151
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.d.ts +192 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.js +510 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.d.ts +6 -7
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.js +64 -57
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.d.ts +5 -3
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +83 -51
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.d.ts +5 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +33 -12
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.d.ts +3 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.js +53 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +10 -10
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.d.ts +2 -2
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +103 -55
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.d.ts +7 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +679 -325
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.d.ts +27 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +508 -163
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.d.ts +20 -2
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.js +100 -17
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.d.ts +5 -1
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.js +108 -30
- package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.d.ts +5 -3
- package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.js +47 -35
- package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.d.ts +9 -4
- package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.js +75 -25
- package/vscode/src/vs/sessions/services/customView/browser/customViewService.d.ts +11 -4
- package/vscode/src/vs/sessions/services/customView/browser/customViewService.js +17 -9
- package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.d.ts +5 -0
- package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.js +20 -2
- package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.d.ts +75 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.js +1135 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.d.ts +17 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.js +99 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.d.ts +4 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.js +88 -23
- package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.d.ts +19 -26
- package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.js +115 -74
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.js +1 -1
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.d.ts +22 -7
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +278 -60
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.d.ts +17 -20
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.js +33 -22
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.d.ts +28 -8
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +673 -160
- package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.d.ts +13 -4
- package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.js +105 -15
- package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.js +53 -34
- package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.js +1 -1
- package/vscode/src/vs/workbench/browser/layout.d.ts +46 -70
- package/vscode/src/vs/workbench/browser/layout.js +243 -44
- package/vscode/src/vs/workbench/browser/workbench.d.ts +1 -3
- package/vscode/src/vs/workbench/browser/workbench.js +26 -24
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +41 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.js +56 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +0 -18
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.js +0 -27
- package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.js +0 -36
- package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.d.ts +0 -37
- package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.js +0 -126
- package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.d.ts +0 -59
- package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +0 -232
- package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.d.ts +0 -13
- package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.js +0 -22
- package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +0 -45
- package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +0 -110
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.d.ts +0 -112
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.js +0 -444
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.js +0 -43
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.d.ts +0 -55
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.js +0 -91
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.d.ts +0 -26
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +0 -98
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +0 -33
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +0 -98
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +0 -2
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +0 -13
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +0 -122
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +0 -464
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +0 -35
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +0 -90
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +0 -84
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +0 -328
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +0 -174
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +0 -1390
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +0 -44
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +0 -30
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +0 -78
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +0 -11
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +0 -26
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.d.ts +0 -27
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.js +0 -26
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
|
|
2
|
+
import { toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
3
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
4
|
+
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
5
|
+
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
6
|
+
|
|
7
|
+
class SessionEditorWorkingSetService {
|
|
8
|
+
constructor() {
|
|
9
|
+
this._restoreState = observableValue(this, ( Object.freeze({
|
|
10
|
+
owner: undefined,
|
|
11
|
+
restoring: false,
|
|
12
|
+
applying: false
|
|
13
|
+
})));
|
|
14
|
+
this.restoreState = this._restoreState;
|
|
15
|
+
this._pendingRestores = 0;
|
|
16
|
+
this._editorsToRetain = ( new Set());
|
|
17
|
+
}
|
|
18
|
+
setCurrentOwner(owner) {
|
|
19
|
+
this._restoreState.set(( Object.freeze({
|
|
20
|
+
owner,
|
|
21
|
+
restoring: this._pendingRestores !== 0,
|
|
22
|
+
applying: false
|
|
23
|
+
})), undefined);
|
|
24
|
+
}
|
|
25
|
+
registerEditorToRetain(input) {
|
|
26
|
+
this._editorsToRetain.add(input);
|
|
27
|
+
return toDisposable(() => this._editorsToRetain.delete(input));
|
|
28
|
+
}
|
|
29
|
+
shouldRetainEditor(input) {
|
|
30
|
+
return ( this._editorsToRetain.has(input));
|
|
31
|
+
}
|
|
32
|
+
beginApply(owner) {
|
|
33
|
+
const state = this._restoreState.get();
|
|
34
|
+
if (!state.restoring || !editorWorkingSetOwnersEqual(state.owner, owner)) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (!state.applying) {
|
|
38
|
+
this._restoreState.set(( Object.freeze({
|
|
39
|
+
owner,
|
|
40
|
+
restoring: true,
|
|
41
|
+
applying: true
|
|
42
|
+
})), undefined);
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
beginRestore(owner) {
|
|
47
|
+
this._pendingRestores++;
|
|
48
|
+
this._restoreState.set(( Object.freeze({
|
|
49
|
+
owner,
|
|
50
|
+
restoring: true,
|
|
51
|
+
applying: false
|
|
52
|
+
})), undefined);
|
|
53
|
+
let settled = false;
|
|
54
|
+
return toDisposable(() => {
|
|
55
|
+
if (settled) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
settled = true;
|
|
59
|
+
if (--this._pendingRestores === 0) {
|
|
60
|
+
this._restoreState.set(( Object.freeze({
|
|
61
|
+
owner: this._restoreState.get().owner,
|
|
62
|
+
restoring: false,
|
|
63
|
+
applying: false
|
|
64
|
+
})), undefined);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function editorWorkingSetOwnersEqual(a, b) {
|
|
70
|
+
return isEqual(a?.sessionResource, b?.sessionResource) && isEqual(a?.chatResource, b?.chatResource);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { SessionEditorWorkingSetService };
|
package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.d.ts
CHANGED
|
@@ -1 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
3
|
+
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
4
|
+
import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
|
|
5
|
+
import { IOnboardingScenarioService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingScenarioService.service";
|
|
6
|
+
import { ISessionsManagementService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service";
|
|
7
|
+
import { ISessionsService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service";
|
|
8
|
+
/**
|
|
9
|
+
* Registers the "new session" onboarding tour and decides *when* it should run.
|
|
10
|
+
*
|
|
11
|
+
* The tour targets brand-new users: it only triggers while the number of
|
|
12
|
+
* sessions the user has ever started (persisted by the sessions telemetry
|
|
13
|
+
* tracker and read via {@link AgentsWindowUsage}) is below {@link MAX_SESSIONS_FOR_TOUR}.
|
|
14
|
+
* When an eligible user sends a request, we wait {@link VISIBILITY_DELAY_MS}
|
|
15
|
+
* and only then pulse the "New Session" button — and only if that session is
|
|
16
|
+
* still visible in the sessions grid (so we don't interrupt a session the user
|
|
17
|
+
* immediately closed or navigated away from). Pressing the pulsing button opens
|
|
18
|
+
* the new-session view and flips the tour's trigger signal. The onboarding
|
|
19
|
+
* engine gates the pulse on the tour's experiment and handles showing the tour
|
|
20
|
+
* at most once.
|
|
21
|
+
*
|
|
22
|
+
* The `onboarding.developerMode` setting bypasses the session-count gate so the
|
|
23
|
+
* tour can be triggered on demand for testing.
|
|
24
|
+
*/
|
|
25
|
+
export declare class NewSessionTourContribution extends Disposable implements IWorkbenchContribution {
|
|
26
|
+
private readonly onboardingScenarioService;
|
|
27
|
+
private readonly sessionsService;
|
|
28
|
+
private readonly configurationService;
|
|
29
|
+
static readonly ID = "sessions.contrib.onboardingTours.newSessionTour";
|
|
30
|
+
/** Only nudge users who are still in their first few sessions. */
|
|
31
|
+
private static readonly MAX_SESSIONS_FOR_TOUR;
|
|
32
|
+
/** Delay after a request before checking the session is still visible. */
|
|
33
|
+
private static readonly VISIBILITY_DELAY_MS;
|
|
34
|
+
/** Drives the tour's `observable` trigger. Flipped to `true` exactly once. */
|
|
35
|
+
private readonly _trigger;
|
|
36
|
+
private readonly _pendingCheck;
|
|
37
|
+
private readonly _pulse;
|
|
38
|
+
private readonly _usage;
|
|
39
|
+
constructor(sessionsManagementService: ISessionsManagementService, onboardingScenarioService: IOnboardingScenarioService, sessionsService: ISessionsService, storageService: IStorageService, configurationService: IConfigurationService);
|
|
40
|
+
private _onWillSendRequest;
|
|
41
|
+
private _startNewSessionButtonPulse;
|
|
42
|
+
}
|
package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.js
CHANGED
|
@@ -6,8 +6,8 @@ import { mainWindow } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/
|
|
|
6
6
|
import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
7
7
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
8
8
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
9
|
-
import { StorageScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
|
|
10
9
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
10
|
+
import { AgentsWindowUsage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/agentsWindowUsage';
|
|
11
11
|
import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
|
|
12
12
|
import { onboardingScenarioRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingRegistry';
|
|
13
13
|
import { isOnboardingDeveloperModeEnabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingScenarioService';
|
|
@@ -15,9 +15,9 @@ import { IOnboardingScenarioService } from '@codingame/monaco-vscode-api/vscode/
|
|
|
15
15
|
import { findOnboardingTarget, pulseOnboardingTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/browser/spotlight/onboardingTarget';
|
|
16
16
|
import { ISessionsManagementService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service';
|
|
17
17
|
import { ISessionsService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service';
|
|
18
|
-
import { TOTAL_SESSIONS_KEY } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker';
|
|
19
18
|
import { createNewSessionTour, NEW_SESSION_TOUR_ID } from './tours/newSessionTour.js';
|
|
20
19
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
20
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
21
21
|
|
|
22
22
|
var NewSessionTourContribution_1;
|
|
23
23
|
const NEW_SESSION_BUTTON_TARGET = "sessions.newSession.button";
|
|
@@ -44,11 +44,11 @@ let NewSessionTourContribution = class NewSessionTourContribution extends Dispos
|
|
|
44
44
|
super();
|
|
45
45
|
this.onboardingScenarioService = onboardingScenarioService;
|
|
46
46
|
this.sessionsService = sessionsService;
|
|
47
|
-
this.storageService = storageService;
|
|
48
47
|
this.configurationService = configurationService;
|
|
49
48
|
this._trigger = observableValue(this, false);
|
|
50
49
|
this._pendingCheck = this._register(( new MutableDisposable()));
|
|
51
50
|
this._pulse = this._register(( new MutableDisposable()));
|
|
51
|
+
this._usage = ( new AgentsWindowUsage(storageService));
|
|
52
52
|
this._register(onboardingScenarioRegistry.register(createNewSessionTour(this._trigger)));
|
|
53
53
|
this._register(
|
|
54
54
|
sessionsManagementService.onWillSendRequest(session => this._onWillSendRequest(session))
|
|
@@ -62,24 +62,26 @@ let NewSessionTourContribution = class NewSessionTourContribution extends Dispos
|
|
|
62
62
|
}
|
|
63
63
|
const developerMode = isOnboardingDeveloperModeEnabled(this.configurationService, NEW_SESSION_TOUR_ID);
|
|
64
64
|
if (!developerMode) {
|
|
65
|
-
const sessionsStarted = this.
|
|
65
|
+
const sessionsStarted = this._usage.createdSessionCount;
|
|
66
66
|
if (sessionsStarted > NewSessionTourContribution_1.MAX_SESSIONS_FOR_TOUR) {
|
|
67
67
|
return;
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
this._pendingCheck.value = disposableTimeout(() => {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
this._pendingCheck.value = autorun(reader => {
|
|
72
|
+
const stillVisible = ( this.sessionsService.visibleSessions.read(undefined).some(s => s?.sessionId === session.sessionId));
|
|
73
|
+
if (stillVisible) {
|
|
74
|
+
this._startNewSessionButtonPulse(reader);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
75
77
|
}, NewSessionTourContribution_1.VISIBILITY_DELAY_MS);
|
|
76
78
|
}
|
|
77
|
-
_startNewSessionButtonPulse() {
|
|
79
|
+
_startNewSessionButtonPulse(reader) {
|
|
78
80
|
if (this._pulse.value || this._trigger.get() || this.onboardingScenarioService.hasBeenShown(NEW_SESSION_TOUR_ID)) {
|
|
79
81
|
return;
|
|
80
82
|
}
|
|
81
83
|
const target = findOnboardingTarget(mainWindow, NEW_SESSION_BUTTON_TARGET);
|
|
82
|
-
if (!target) {
|
|
84
|
+
if (!target || !this.onboardingScenarioService.shouldShowNudge(NEW_SESSION_TOUR_ID, reader)) {
|
|
83
85
|
return;
|
|
84
86
|
}
|
|
85
87
|
const pulse = ( new DisposableStore());
|
|
@@ -107,3 +109,5 @@ registerWorkbenchContribution2(
|
|
|
107
109
|
NewSessionTourContribution,
|
|
108
110
|
WorkbenchPhase.AfterRestored
|
|
109
111
|
);
|
|
112
|
+
|
|
113
|
+
export { NewSessionTourContribution };
|
package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.js
CHANGED
|
@@ -5,15 +5,14 @@ import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monac
|
|
|
5
5
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
6
6
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
7
7
|
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
8
|
-
import { StorageScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
|
|
9
8
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
9
|
+
import { AgentsWindowUsage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/agentsWindowUsage';
|
|
10
10
|
import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
|
|
11
11
|
import { onboardingScenarioRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingRegistry';
|
|
12
12
|
import { isOnboardingDeveloperModeEnabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingScenarioService';
|
|
13
13
|
import { IOnboardingScenarioService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingScenarioService.service';
|
|
14
14
|
import { ISessionsService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service';
|
|
15
15
|
import { SessionWorkspacePickerVisibleContext, SessionHarnessPickerVisibleContext, SessionIsolationPickerVisibleContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
|
|
16
|
-
import { TOTAL_SESSIONS_KEY } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker';
|
|
17
16
|
import { createNewSessionViewTour, NEW_SESSION_VIEW_TOUR_ID } from './tours/newSessionViewTour.js';
|
|
18
17
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
19
18
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
@@ -47,11 +46,11 @@ let NewSessionViewTourContribution = class NewSessionViewTourContribution extend
|
|
|
47
46
|
super();
|
|
48
47
|
this.onboardingScenarioService = onboardingScenarioService;
|
|
49
48
|
this.sessionsService = sessionsService;
|
|
50
|
-
this.storageService = storageService;
|
|
51
49
|
this.configurationService = configurationService;
|
|
52
50
|
this.contextKeyService = contextKeyService;
|
|
53
51
|
this._trigger = observableValue(this, false);
|
|
54
52
|
this._pendingCheck = this._register(( new MutableDisposable()));
|
|
53
|
+
this._usage = ( new AgentsWindowUsage(storageService));
|
|
55
54
|
this._register(
|
|
56
55
|
onboardingScenarioRegistry.register(createNewSessionViewTour(this._trigger))
|
|
57
56
|
);
|
|
@@ -78,7 +77,7 @@ let NewSessionViewTourContribution = class NewSessionViewTourContribution extend
|
|
|
78
77
|
if (isOnboardingDeveloperModeEnabled(this.configurationService, NEW_SESSION_VIEW_TOUR_ID)) {
|
|
79
78
|
return true;
|
|
80
79
|
}
|
|
81
|
-
const requestsSent = this.
|
|
80
|
+
const requestsSent = this._usage.createdSessionCount;
|
|
82
81
|
return requestsSent <= NewSessionViewTourContribution_1.MAX_REQUESTS_FOR_TOUR;
|
|
83
82
|
}
|
|
84
83
|
_isTriggeredOrShown() {
|
package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.d.ts
CHANGED
|
@@ -11,13 +11,13 @@ export declare class NewSessionViewTourTrigger extends Disposable {
|
|
|
11
11
|
private readonly _tourId;
|
|
12
12
|
private readonly _onboardingScenarioService;
|
|
13
13
|
private readonly _sessionsService;
|
|
14
|
-
private readonly _storageService;
|
|
15
14
|
private readonly _configurationService;
|
|
16
15
|
private readonly _contextKeyService;
|
|
17
16
|
private readonly _chatEntitlementService;
|
|
17
|
+
private readonly _usage;
|
|
18
18
|
private readonly _trigger;
|
|
19
19
|
readonly signal: IObservable<boolean>;
|
|
20
|
-
constructor(_tourId: string, _onboardingScenarioService: IOnboardingScenarioService, _sessionsService: ISessionsService,
|
|
20
|
+
constructor(_tourId: string, _onboardingScenarioService: IOnboardingScenarioService, _sessionsService: ISessionsService, storageService: IStorageService, _configurationService: IConfigurationService, _contextKeyService: IContextKeyService, _chatEntitlementService: IChatEntitlementService);
|
|
21
21
|
private _isEligibleUser;
|
|
22
22
|
private _isTriggeredOrShown;
|
|
23
23
|
private _isReady;
|
|
@@ -1,28 +1,35 @@
|
|
|
1
1
|
|
|
2
2
|
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
3
3
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
4
|
-
import {
|
|
4
|
+
import { AgentsWindowUsage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/agentsWindowUsage';
|
|
5
5
|
import { isOnboardingDeveloperModeEnabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingScenarioService';
|
|
6
6
|
import { ChatEntitlement } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService';
|
|
7
7
|
import { SessionWorkspacePickerVisibleContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
|
|
8
|
-
import { TOTAL_SESSIONS_KEY } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker';
|
|
9
8
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
10
9
|
import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
|
|
11
10
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
12
11
|
|
|
13
12
|
const MAX_REQUESTS_FOR_TOUR = 1;
|
|
14
13
|
class NewSessionViewTourTrigger extends Disposable {
|
|
15
|
-
constructor(
|
|
14
|
+
constructor(
|
|
15
|
+
_tourId,
|
|
16
|
+
_onboardingScenarioService,
|
|
17
|
+
_sessionsService,
|
|
18
|
+
storageService,
|
|
19
|
+
_configurationService,
|
|
20
|
+
_contextKeyService,
|
|
21
|
+
_chatEntitlementService
|
|
22
|
+
) {
|
|
16
23
|
super();
|
|
17
24
|
this._tourId = _tourId;
|
|
18
25
|
this._onboardingScenarioService = _onboardingScenarioService;
|
|
19
26
|
this._sessionsService = _sessionsService;
|
|
20
|
-
this._storageService = _storageService;
|
|
21
27
|
this._configurationService = _configurationService;
|
|
22
28
|
this._contextKeyService = _contextKeyService;
|
|
23
29
|
this._chatEntitlementService = _chatEntitlementService;
|
|
24
30
|
this._trigger = observableValue(this, false);
|
|
25
31
|
this.signal = this._trigger;
|
|
32
|
+
this._usage = ( new AgentsWindowUsage(storageService));
|
|
26
33
|
if (!this._isEligibleUser()) {
|
|
27
34
|
return;
|
|
28
35
|
}
|
|
@@ -48,7 +55,7 @@ class NewSessionViewTourTrigger extends Disposable {
|
|
|
48
55
|
if (isOnboardingDeveloperModeEnabled(this._configurationService, this._tourId)) {
|
|
49
56
|
return true;
|
|
50
57
|
}
|
|
51
|
-
const requestsSent = this.
|
|
58
|
+
const requestsSent = this._usage.createdSessionCount;
|
|
52
59
|
return requestsSent <= MAX_REQUESTS_FOR_TOUR;
|
|
53
60
|
}
|
|
54
61
|
_isTriggeredOrShown() {
|
|
@@ -57,10 +64,7 @@ class NewSessionViewTourTrigger extends Disposable {
|
|
|
57
64
|
_isReady() {
|
|
58
65
|
const activeSession = this._sessionsService.activeSession.get();
|
|
59
66
|
const newSessionViewOpen = !activeSession || !activeSession.isCreated.get();
|
|
60
|
-
return this._sessionsService.initialRestoreComplete.get()
|
|
61
|
-
&& newSessionViewOpen
|
|
62
|
-
&& this._chatEntitlementService.entitlement !== ChatEntitlement.Unknown
|
|
63
|
-
&& this._contextKeyService.getContextKeyValue(SessionWorkspacePickerVisibleContext.key) === true;
|
|
67
|
+
return this._sessionsService.initialRestoreComplete.get() && newSessionViewOpen && this._chatEntitlementService.entitlement !== ChatEntitlement.Unknown && this._contextKeyService.getContextKeyValue(SessionWorkspacePickerVisibleContext.key) === true;
|
|
64
68
|
}
|
|
65
69
|
}
|
|
66
70
|
|
package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.js
CHANGED
|
@@ -3,13 +3,17 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
|
|
|
3
3
|
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
4
4
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
5
5
|
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
6
|
+
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
7
|
+
import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
|
|
6
8
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
7
9
|
import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
|
|
8
10
|
import { onboardingScenarioRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingRegistry';
|
|
9
11
|
import { IOnboardingScenarioService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingScenarioService.service';
|
|
10
12
|
import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
|
|
13
|
+
import { IWorkbenchAssignmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service';
|
|
11
14
|
import { ISessionsService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service';
|
|
12
15
|
import { NewSessionViewTourTrigger } from './newSessionViewTourTrigger.js';
|
|
16
|
+
import { resolveNewSessionViewV2TourVariation } from './newSessionViewV2TourVariation.js';
|
|
13
17
|
import { NEW_SESSION_VIEW_V2_TOUR_ID, createNewSessionViewV2Tour } from './tours/newSessionViewV2Tour.js';
|
|
14
18
|
|
|
15
19
|
let NewSessionViewV2TourContribution = class NewSessionViewV2TourContribution extends Disposable {
|
|
@@ -22,9 +26,13 @@ let NewSessionViewV2TourContribution = class NewSessionViewV2TourContribution ex
|
|
|
22
26
|
storageService,
|
|
23
27
|
configurationService,
|
|
24
28
|
contextKeyService,
|
|
25
|
-
chatEntitlementService
|
|
29
|
+
chatEntitlementService,
|
|
30
|
+
assignmentService,
|
|
31
|
+
logService,
|
|
32
|
+
productService
|
|
26
33
|
) {
|
|
27
34
|
super();
|
|
35
|
+
const enabledByDefault = productService.quality === "insider";
|
|
28
36
|
const trigger = this._register(( new NewSessionViewTourTrigger(
|
|
29
37
|
NEW_SESSION_VIEW_V2_TOUR_ID,
|
|
30
38
|
onboardingScenarioService,
|
|
@@ -34,12 +42,19 @@ let NewSessionViewV2TourContribution = class NewSessionViewV2TourContribution ex
|
|
|
34
42
|
contextKeyService,
|
|
35
43
|
chatEntitlementService
|
|
36
44
|
)));
|
|
37
|
-
this._register(
|
|
38
|
-
|
|
39
|
-
|
|
45
|
+
this._register(onboardingScenarioRegistry.register(createNewSessionViewV2Tour(
|
|
46
|
+
trigger.signal,
|
|
47
|
+
() => resolveNewSessionViewV2TourVariation(configurationService, assignmentService, logService, {
|
|
48
|
+
defaultVariation: enabledByDefault ? "workspaceAndModel" : "default",
|
|
49
|
+
useTreatment: !enabledByDefault
|
|
50
|
+
}),
|
|
51
|
+
{
|
|
52
|
+
enabledByDefault
|
|
53
|
+
}
|
|
54
|
+
)));
|
|
40
55
|
}
|
|
41
56
|
};
|
|
42
|
-
NewSessionViewV2TourContribution = ( __decorate([( __param(0, IOnboardingScenarioService)), ( __param(1, ISessionsService)), ( __param(2, IStorageService)), ( __param(3, IConfigurationService)), ( __param(4, IContextKeyService)), ( __param(5, IChatEntitlementService))], NewSessionViewV2TourContribution));
|
|
57
|
+
NewSessionViewV2TourContribution = ( __decorate([( __param(0, IOnboardingScenarioService)), ( __param(1, ISessionsService)), ( __param(2, IStorageService)), ( __param(3, IConfigurationService)), ( __param(4, IContextKeyService)), ( __param(5, IChatEntitlementService)), ( __param(6, IWorkbenchAssignmentService)), ( __param(7, ILogService)), ( __param(8, IProductService))], NewSessionViewV2TourContribution));
|
|
43
58
|
registerWorkbenchContribution2(
|
|
44
59
|
NewSessionViewV2TourContribution.ID,
|
|
45
60
|
NewSessionViewV2TourContribution,
|
package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
2
|
+
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
|
|
3
|
+
import { IWorkbenchAssignmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service";
|
|
4
|
+
import { NewSessionViewV2Variation } from "./tours/newSessionViewV2Tour.js";
|
|
5
|
+
export declare function resolveNewSessionViewV2TourVariation(configurationService: IConfigurationService, assignmentService: IWorkbenchAssignmentService, logService: ILogService, options?: {
|
|
6
|
+
defaultVariation?: NewSessionViewV2Variation;
|
|
7
|
+
useTreatment?: boolean;
|
|
8
|
+
}): Promise<NewSessionViewV2Variation>;
|
package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
|
|
2
|
+
import { getOnboardingDeveloperModeVariation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingScenarioService';
|
|
3
|
+
import { NEW_SESSION_VIEW_V2_TOUR_ID, NEW_SESSION_VIEW_V2_VARIATION_TREATMENT } from './tours/newSessionViewV2Tour.js';
|
|
4
|
+
|
|
5
|
+
async function resolveNewSessionViewV2TourVariation(configurationService, assignmentService, logService, options = {}) {
|
|
6
|
+
const variation = getOnboardingDeveloperModeVariation(configurationService, NEW_SESSION_VIEW_V2_TOUR_ID)
|
|
7
|
+
?? (options.useTreatment !== false ? await assignmentService.getTreatment(NEW_SESSION_VIEW_V2_VARIATION_TREATMENT) : undefined)
|
|
8
|
+
?? options.defaultVariation
|
|
9
|
+
?? 'default';
|
|
10
|
+
if (variation === 'workspaceAndModel') {
|
|
11
|
+
return variation;
|
|
12
|
+
}
|
|
13
|
+
if (variation !== undefined && variation !== '' && variation !== 'default') {
|
|
14
|
+
logService.warn(`[NewSessionViewV2Tour] Unsupported variation '${variation}'; using 'default'.`);
|
|
15
|
+
}
|
|
16
|
+
return 'default';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { resolveNewSessionViewV2TourVariation };
|
|
@@ -14,10 +14,11 @@ import { isAgentHostProviderId } from '@codingame/monaco-vscode-api/vscode/vs/se
|
|
|
14
14
|
import { NEW_SESSION_PROMPT_TYPING_DURATION_MS } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/chat/browser/newSessionComposerService';
|
|
15
15
|
import { getGitHubRepositoryFromUri } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/github/common/utils';
|
|
16
16
|
import { GitHubAuthenticationError } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/github/browser/githubApiClient';
|
|
17
|
-
import {
|
|
17
|
+
import { GitHubIssueState, GitHubPullRequestState } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/github/common/types';
|
|
18
18
|
import { resolveGitHubRepositoryFromGitConfig } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/gitHubRepositoryResolver';
|
|
19
19
|
import { NEW_SESSION_VIEW_V3_TOUR_ID, NEW_SESSION_VIEW_V3_VARIATION_TREATMENT, NEW_SESSION_VIEW_V3_OPTIONS_VARIATION, NEW_SESSION_VIEW_V3_PROMPT_VARIATION, NEW_SESSION_VIEW_V3_GITHUB_PROMPT_VARIATION } from './tours/newSessionViewV3Tour.js';
|
|
20
20
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
21
|
+
import { computeIssueIcon } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/chatIssue';
|
|
21
22
|
import { computePullRequestIcon } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/chatPullRequest';
|
|
22
23
|
|
|
23
24
|
const DEFAULT_GITHUB_LOOKUP_TIMEOUTS = {
|
|
@@ -29,9 +30,9 @@ const DEFAULT_GITHUB_LOOKUP_TIMEOUTS = {
|
|
|
29
30
|
const LOG_PREFIX = "[NewSessionViewV3Prompt]";
|
|
30
31
|
const PROMPT_TEMPLATE_TREATMENT = "onb.newSessionViewV3.promptTemplate";
|
|
31
32
|
const PLACEHOLDER_TREATMENT = "onb.newSessionViewV3.placeholder";
|
|
32
|
-
const DEFAULT_TASK_PLACEHOLDER = ( localize(
|
|
33
|
+
const DEFAULT_TASK_PLACEHOLDER = ( localize(4760, "[describe the coding task]"));
|
|
33
34
|
const DEFAULT_PROMPT_TEMPLATE = ( localize(
|
|
34
|
-
|
|
35
|
+
4761,
|
|
35
36
|
"Help me complete {0} in this project. First, inspect the relevant files and explain your approach briefly. Then implement the solution using existing project conventions, avoid unrelated changes, and run the most relevant tests or checks. If anything is unclear, make a reasonable assumption and state it. When finished, summarize what changed and mention any remaining issues."
|
|
36
37
|
));
|
|
37
38
|
const PROMPT_OPTION_COUNT = 3;
|
|
@@ -1056,7 +1057,7 @@ class NewSessionViewV3PromptRunner {
|
|
|
1056
1057
|
}
|
|
1057
1058
|
_createGitHubPromptOption(candidate) {
|
|
1058
1059
|
const plan = this._createGitHubPrompt(candidate);
|
|
1059
|
-
const title = candidate.strategy === "githubIssue" ? ( localize(
|
|
1060
|
+
const title = candidate.strategy === "githubIssue" ? ( localize(4762, "Tackle issue")) : candidate.strategy === "githubMergeConflict" ? ( localize(4763, "Resolve conflicts")) : candidate.strategy === "githubCiFailure" ? ( localize(4764, "Fix CI")) : ( localize(4765, "Address PR comments"));
|
|
1060
1061
|
const icon = candidate.strategy === "githubIssue" ? computeIssueIcon(GitHubIssueState.Open, undefined) : computePullRequestIcon(GitHubPullRequestState.Open, {
|
|
1061
1062
|
hasMergeConflicts: candidate.strategy === "githubMergeConflict",
|
|
1062
1063
|
hasFailingChecks: candidate.strategy === "githubCiFailure",
|
|
@@ -1073,15 +1074,15 @@ class NewSessionViewV3PromptRunner {
|
|
|
1073
1074
|
};
|
|
1074
1075
|
}
|
|
1075
1076
|
_createStandardPromptOptions() {
|
|
1076
|
-
const implementFeaturePlaceholder = ( localize(
|
|
1077
|
-
const fixBugPlaceholder = ( localize(
|
|
1078
|
-
const fixCiPlaceholder = ( localize(
|
|
1077
|
+
const implementFeaturePlaceholder = ( localize(4766, "[describe the feature]"));
|
|
1078
|
+
const fixBugPlaceholder = ( localize(4767, "[describe the bug]"));
|
|
1079
|
+
const fixCiPlaceholder = ( localize(4768, "[describe the CI failure or paste a link]"));
|
|
1079
1080
|
return [{
|
|
1080
1081
|
id: "standard:implementFeature",
|
|
1081
|
-
title: ( localize(
|
|
1082
|
-
description: ( localize(
|
|
1082
|
+
title: ( localize(4769, "Implement a feature")),
|
|
1083
|
+
description: ( localize(4770, "Describe what you want to build")),
|
|
1083
1084
|
prompt: ( localize(
|
|
1084
|
-
|
|
1085
|
+
4771,
|
|
1085
1086
|
"Help me implement {0} in this project. Ask me questions if anything is unclear regarding the intended behaviour.",
|
|
1086
1087
|
implementFeaturePlaceholder
|
|
1087
1088
|
)),
|
|
@@ -1089,10 +1090,10 @@ class NewSessionViewV3PromptRunner {
|
|
|
1089
1090
|
icon: Codicon.lightbulbSparkleAutofix
|
|
1090
1091
|
}, {
|
|
1091
1092
|
id: "standard:fixBug",
|
|
1092
|
-
title: ( localize(
|
|
1093
|
-
description: ( localize(
|
|
1093
|
+
title: ( localize(4772, "Fix a bug")),
|
|
1094
|
+
description: ( localize(4773, "Describe the unexpected behavior")),
|
|
1094
1095
|
prompt: ( localize(
|
|
1095
|
-
|
|
1096
|
+
4774,
|
|
1096
1097
|
"Help me fix {0} in this project. Ask me questions if anything is unclear regarding the bug or the intended behaviour.",
|
|
1097
1098
|
fixBugPlaceholder
|
|
1098
1099
|
)),
|
|
@@ -1100,10 +1101,10 @@ class NewSessionViewV3PromptRunner {
|
|
|
1100
1101
|
icon: Codicon.bug
|
|
1101
1102
|
}, {
|
|
1102
1103
|
id: "standard:fixCi",
|
|
1103
|
-
title: ( localize(
|
|
1104
|
-
description: ( localize(
|
|
1104
|
+
title: ( localize(4775, "Fix CI")),
|
|
1105
|
+
description: ( localize(4776, "Describe a failing check or paste a link")),
|
|
1105
1106
|
prompt: ( localize(
|
|
1106
|
-
|
|
1107
|
+
4777,
|
|
1107
1108
|
"Help me fix the failing CI for {0} in this project. Ask me questions if anything is unclear regarding the CI failure or how it should be fixed.",
|
|
1108
1109
|
fixCiPlaceholder
|
|
1109
1110
|
)),
|
|
@@ -1113,22 +1114,22 @@ class NewSessionViewV3PromptRunner {
|
|
|
1113
1114
|
}
|
|
1114
1115
|
_createGitHubPrompt(candidate) {
|
|
1115
1116
|
const prompt = candidate.strategy === "githubMergeConflict" ? ( localize(
|
|
1116
|
-
|
|
1117
|
+
4778,
|
|
1117
1118
|
"The following pull request has merge conflicts: \"{0}\" ({1}). Resolve the conflicts and update the pull request.",
|
|
1118
1119
|
candidate.title,
|
|
1119
1120
|
candidate.url
|
|
1120
1121
|
)) : candidate.strategy === "githubCiFailure" ? ( localize(
|
|
1121
|
-
|
|
1122
|
+
4779,
|
|
1122
1123
|
"The following pull request has failing CI checks: \"{0}\" ({1}). Investigate the failures and resolve them.",
|
|
1123
1124
|
candidate.title,
|
|
1124
1125
|
candidate.url
|
|
1125
1126
|
)) : candidate.strategy === "githubReviewComments" ? ( localize(
|
|
1126
|
-
|
|
1127
|
+
4780,
|
|
1127
1128
|
"The following pull request has unresolved review comments that have not been addressed by a newer commit: \"{0}\" ({1}). Address the review comments and update the pull request.",
|
|
1128
1129
|
candidate.title,
|
|
1129
1130
|
candidate.url
|
|
1130
1131
|
)) : ( localize(
|
|
1131
|
-
|
|
1132
|
+
4781,
|
|
1132
1133
|
"Tackle the following issue and create a pull request for it: \"{0}\" ({1}).",
|
|
1133
1134
|
candidate.title,
|
|
1134
1135
|
candidate.url
|
|
@@ -2,10 +2,15 @@
|
|
|
2
2
|
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
3
3
|
import { EditorPartModalContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
4
4
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
5
|
+
import { onboardingScenarioRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingRegistry';
|
|
5
6
|
import { SPOTLIGHT_PRESENTATION_KIND } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/browser/spotlight/spotlightTypes';
|
|
6
7
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
8
|
+
import { NewSessionOnboardingHandoffContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
|
|
7
9
|
|
|
8
10
|
const NEW_SESSION_TOUR_ID = "sessions.onboarding.newSession";
|
|
11
|
+
onboardingScenarioRegistry.registerDescriptor({
|
|
12
|
+
id: NEW_SESSION_TOUR_ID
|
|
13
|
+
});
|
|
9
14
|
const NEW_SESSION_ONBOARDING_SEEN_KEY = NEW_SESSION_TOUR_ID;
|
|
10
15
|
const NEW_SESSION_EXPERIMENT = {
|
|
11
16
|
behaviorFlag: "onb.newSession.show",
|
|
@@ -15,18 +20,18 @@ const newSessionPayload = {
|
|
|
15
20
|
steps: [{
|
|
16
21
|
id: "workspacePicker",
|
|
17
22
|
targetId: "sessions.newSession.workspacePicker",
|
|
18
|
-
title: ( localize(
|
|
23
|
+
title: ( localize(4782, "Work Across Workspaces")),
|
|
19
24
|
description: ( localize(
|
|
20
|
-
|
|
25
|
+
4783,
|
|
21
26
|
"Choose between the folders and repositories you work in. Run multiple sessions at once in a single workspace, or across many."
|
|
22
27
|
)),
|
|
23
28
|
placement: "above"
|
|
24
29
|
}, {
|
|
25
30
|
id: "isolation",
|
|
26
31
|
targetId: "sessions.newSession.isolation",
|
|
27
|
-
title: ( localize(
|
|
32
|
+
title: ( localize(4784, "Isolate Your Work")),
|
|
28
33
|
description: ( localize(
|
|
29
|
-
|
|
34
|
+
4785,
|
|
30
35
|
"Use a worktree to work on multiple tasks in the same project without conflicts. Each task stays isolated, so you can experiment freely and safely."
|
|
31
36
|
)),
|
|
32
37
|
placement: "below"
|
|
@@ -36,7 +41,7 @@ function createNewSessionTour(signal) {
|
|
|
36
41
|
return {
|
|
37
42
|
id: NEW_SESSION_TOUR_ID,
|
|
38
43
|
seenKey: NEW_SESSION_ONBOARDING_SEEN_KEY,
|
|
39
|
-
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( EditorPartModalContext.toNegated()))),
|
|
44
|
+
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( EditorPartModalContext.toNegated()), ( NewSessionOnboardingHandoffContext.toNegated()))),
|
|
40
45
|
trigger: {
|
|
41
46
|
kind: "observable",
|
|
42
47
|
signal
|
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
3
3
|
import { EditorPartModalVisibleContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
4
4
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
5
|
+
import { onboardingScenarioRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/common/onboardingRegistry';
|
|
5
6
|
import { SPOTLIGHT_PRESENTATION_KIND } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/onboarding/browser/spotlight/spotlightTypes';
|
|
6
7
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
8
|
import { NEW_SESSION_ONBOARDING_SEEN_KEY } from './newSessionTour.js';
|
|
8
|
-
import { SessionWorkspacePickerVisibleContext, SessionHarnessPickerVisibleContext, SessionIsolationPickerVisibleContext, IsNewChatSessionContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
|
|
9
|
+
import { SessionWorkspacePickerVisibleContext, SessionHarnessPickerVisibleContext, SessionIsolationPickerVisibleContext, IsNewChatSessionContext, NewSessionOnboardingHandoffContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
|
|
9
10
|
|
|
10
11
|
const NEW_SESSION_VIEW_TOUR_ID = "sessions.onboarding.newSessionView";
|
|
12
|
+
onboardingScenarioRegistry.registerDescriptor({
|
|
13
|
+
id: NEW_SESSION_VIEW_TOUR_ID
|
|
14
|
+
});
|
|
11
15
|
const NEW_SESSION_VIEW_EXPERIMENT = {
|
|
12
16
|
behaviorFlag: "onb.newSessionView.show",
|
|
13
17
|
assignmentContextIdFlag: "onb.newSessionView.id"
|
|
@@ -16,9 +20,9 @@ const newSessionViewPayload = {
|
|
|
16
20
|
steps: [{
|
|
17
21
|
id: "workspacePicker",
|
|
18
22
|
targetId: "sessions.newSession.workspacePicker",
|
|
19
|
-
title: ( localize(
|
|
23
|
+
title: ( localize(4786, "Work Across Workspaces")),
|
|
20
24
|
description: ( localize(
|
|
21
|
-
|
|
25
|
+
4787,
|
|
22
26
|
"Choose between the folders and repositories you work in. Run multiple sessions at once in a single workspace, or across many."
|
|
23
27
|
)),
|
|
24
28
|
placement: "above",
|
|
@@ -27,9 +31,9 @@ const newSessionViewPayload = {
|
|
|
27
31
|
}, {
|
|
28
32
|
id: "harnessPicker",
|
|
29
33
|
targetId: "sessions.newSession.harnessPicker",
|
|
30
|
-
title: ( localize(
|
|
34
|
+
title: ( localize(4788, "Choose a Harness")),
|
|
31
35
|
description: ( localize(
|
|
32
|
-
|
|
36
|
+
4789,
|
|
33
37
|
"Each has different strengths; choose what works best for your task and switch anytime."
|
|
34
38
|
)),
|
|
35
39
|
placement: "above",
|
|
@@ -38,9 +42,9 @@ const newSessionViewPayload = {
|
|
|
38
42
|
}, {
|
|
39
43
|
id: "isolation",
|
|
40
44
|
targetId: "sessions.newSession.isolation",
|
|
41
|
-
title: ( localize(
|
|
45
|
+
title: ( localize(4790, "Isolate Your Work")),
|
|
42
46
|
description: ( localize(
|
|
43
|
-
|
|
47
|
+
4791,
|
|
44
48
|
"Use a worktree to work on multiple tasks in the same project without conflicts. Each task stays isolated, so you can experiment freely and safely."
|
|
45
49
|
)),
|
|
46
50
|
placement: "below",
|
|
@@ -52,7 +56,7 @@ function createNewSessionViewTour(signal) {
|
|
|
52
56
|
return {
|
|
53
57
|
id: NEW_SESSION_VIEW_TOUR_ID,
|
|
54
58
|
seenKey: NEW_SESSION_ONBOARDING_SEEN_KEY,
|
|
55
|
-
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, IsNewChatSessionContext, ( EditorPartModalVisibleContext.toNegated()))),
|
|
59
|
+
when: ( ContextKeyExpr.and(ChatContextKeys.enabled, IsNewChatSessionContext, ( EditorPartModalVisibleContext.toNegated()), ( NewSessionOnboardingHandoffContext.toNegated()))),
|
|
56
60
|
trigger: {
|
|
57
61
|
kind: "observable",
|
|
58
62
|
signal
|