@codingame/monaco-vscode-workbench-service-override 37.6.1 → 38.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/common.js +2 -0
  2. package/index.js +9 -10
  3. package/package.json +10 -10
  4. package/session.js +45 -42
  5. package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.d.ts +1 -0
  6. package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.js +12 -0
  7. package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.d.ts → desktopWorkbench.d.ts} +6 -5
  8. package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.js → desktopWorkbench.js} +23 -25
  9. package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.d.ts +5 -2
  10. package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.js +41 -3
  11. package/vscode/src/vs/sessions/browser/layoutActions.js +25 -41
  12. package/vscode/src/vs/sessions/browser/mobileWorkbench.d.ts +4 -0
  13. package/vscode/src/vs/sessions/browser/mobileWorkbench.js +10 -0
  14. package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.d.ts +10 -5
  15. package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +138 -34
  16. package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.d.ts +2 -0
  17. package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.js +13 -5
  18. package/vscode/src/vs/sessions/browser/parts/chatGroupView.d.ts +27 -5
  19. package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +129 -28
  20. package/vscode/src/vs/sessions/browser/parts/chatGroupsView.d.ts +22 -7
  21. package/vscode/src/vs/sessions/browser/parts/chatGroupsView.js +260 -21
  22. package/vscode/src/vs/sessions/browser/parts/chatHeader.d.ts +25 -0
  23. package/vscode/src/vs/sessions/browser/parts/chatHeader.js +42 -0
  24. package/vscode/src/vs/sessions/browser/parts/customViewGridPart.js +9 -1
  25. package/vscode/src/vs/sessions/browser/parts/customViewNode.js +1 -1
  26. package/vscode/src/vs/sessions/browser/parts/{singlePaneAuxiliaryBarPart.d.ts → desktopAuxiliaryBarPart.d.ts} +4 -4
  27. package/vscode/src/vs/sessions/browser/parts/desktopAuxiliaryBarPart.js +26 -0
  28. package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.d.ts → desktopEditorPart.d.ts} +8 -6
  29. package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.js → desktopEditorPart.js} +25 -5
  30. package/vscode/src/vs/sessions/browser/parts/editorPart.js +16 -4
  31. package/vscode/src/vs/sessions/browser/parts/editorParts.d.ts +1 -1
  32. package/vscode/src/vs/sessions/browser/parts/editorParts.js +7 -6
  33. package/vscode/src/vs/sessions/browser/parts/gridGap.d.ts +14 -0
  34. package/vscode/src/vs/sessions/browser/parts/gridGap.js +69 -0
  35. package/vscode/src/vs/sessions/browser/parts/media/chatCompositeBar.css +132 -4
  36. package/vscode/src/vs/sessions/browser/parts/media/chatGroupsView.css +10 -0
  37. package/vscode/src/vs/sessions/browser/parts/media/editorPart.css +46 -2
  38. package/vscode/src/vs/sessions/browser/parts/media/sessionReadOnlyBanner.css +3 -3
  39. package/vscode/src/vs/sessions/browser/parts/media/sessionView.css +45 -48
  40. package/vscode/src/vs/sessions/browser/parts/media/sessionsPart.css +15 -0
  41. package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +8 -8
  42. package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.js +1 -1
  43. package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.d.ts +9 -1
  44. package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.js +21 -3
  45. package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.js +1 -1
  46. package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.d.ts +4 -3
  47. package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.js +29 -15
  48. package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.d.ts +67 -0
  49. package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.js +598 -0
  50. package/vscode/src/vs/sessions/browser/parts/sessionHeader.d.ts +11 -84
  51. package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +37 -317
  52. package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.d.ts +103 -0
  53. package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.js +391 -0
  54. package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.d.ts +6 -4
  55. package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +58 -28
  56. package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.d.ts +4 -0
  57. package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +66 -23
  58. package/vscode/src/vs/sessions/browser/parts/sessionView.d.ts +24 -5
  59. package/vscode/src/vs/sessions/browser/parts/sessionView.js +143 -33
  60. package/vscode/src/vs/sessions/browser/parts/sessionsPart.d.ts +25 -19
  61. package/vscode/src/vs/sessions/browser/parts/sessionsPart.js +157 -58
  62. package/vscode/src/vs/sessions/browser/parts/sessionsParts.d.ts +12 -3
  63. package/vscode/src/vs/sessions/browser/parts/sessionsParts.js +17 -2
  64. package/vscode/src/vs/sessions/browser/sessionWorkspace.d.ts +6 -3
  65. package/vscode/src/vs/sessions/browser/sessionWorkspace.js +2 -2
  66. package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +66 -20
  67. package/vscode/src/vs/sessions/browser/sessionsSignInDialog.d.ts +1 -0
  68. package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +5 -4
  69. package/vscode/src/vs/sessions/browser/workbenchFactory.d.ts +12 -0
  70. package/vscode/src/vs/sessions/browser/workbenchFactory.js +17 -0
  71. package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.d.ts +85 -1
  72. package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +118 -100
  73. package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.d.ts +3 -2
  74. package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +39 -34
  75. package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountTitleBarWidget.css +6 -0
  76. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.d.ts +3 -0
  77. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.js +6 -0
  78. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.js +18 -18
  79. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.js +12 -12
  80. package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.js +7 -7
  81. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.js +12 -12
  82. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.js +10 -10
  83. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.d.ts +78 -8
  84. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.js +1166 -202
  85. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.d.ts +11 -1
  86. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +190 -69
  87. package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.d.ts +11 -9
  88. package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +122 -233
  89. package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.d.ts +22 -0
  90. package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.js +62 -0
  91. package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.d.ts +7 -2
  92. package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +172 -84
  93. package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +17 -7
  94. package/vscode/src/vs/sessions/contrib/automations/browser/media/automationDialog.css +242 -60
  95. package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.d.ts +24 -36
  96. package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +104 -420
  97. package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +15 -14
  98. package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.d.ts +13 -3
  99. package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +66 -43
  100. package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.js +2 -7
  101. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +54 -59
  102. package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +7 -7
  103. package/vscode/src/vs/sessions/contrib/changes/browser/media/changesActions.css +6 -0
  104. package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +25 -21
  105. package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +21 -27
  106. package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +17 -17
  107. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.d.ts +5 -5
  108. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.js +2 -2
  109. package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +2 -2
  110. package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.js +9 -16
  111. package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +7 -7
  112. package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +10 -10
  113. package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.d.ts +13 -1
  114. package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +104 -117
  115. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +8 -7
  116. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.js +5 -5
  117. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.js +1 -1
  118. package/vscode/src/vs/sessions/contrib/editor/browser/media/editorBreadcrumbs.css +0 -1
  119. package/vscode/src/vs/sessions/contrib/editor/browser/media/editorHeader.css +1 -1
  120. package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.d.ts +7 -0
  121. package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.js +77 -13
  122. package/vscode/src/vs/sessions/contrib/files/browser/filesView.d.ts +2 -1
  123. package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +14 -4
  124. package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.d.ts +45 -10
  125. package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +527 -77
  126. package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.d.ts +18 -0
  127. package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.js +95 -0
  128. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.d.ts → desktop/desktopDetailPanelCoordinator.d.ts} +5 -4
  129. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.js → desktop/desktopDetailPanelCoordinator.js} +10 -7
  130. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.d.ts → desktop/desktopDockedTabsCoordinator.d.ts} +15 -12
  131. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.js → desktop/desktopDockedTabsCoordinator.js} +91 -44
  132. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.d.ts → desktop/desktopDraftSessionStrategy.d.ts} +10 -5
  133. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.js → desktop/desktopDraftSessionStrategy.js} +95 -22
  134. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.d.ts → desktop/desktopExistingSessionStrategy.d.ts} +13 -11
  135. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.js → desktop/desktopExistingSessionStrategy.js} +137 -57
  136. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.d.ts → desktop/desktopLayoutStrategy.d.ts} +22 -13
  137. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.js → desktop/desktopLayoutStrategy.js} +2 -2
  138. package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.d.ts +22 -0
  139. package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.js +136 -0
  140. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneSharedHelpers.d.ts → desktop/desktopSharedHelpers.d.ts} +9 -2
  141. package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopSharedHelpers.js +56 -0
  142. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.d.ts → desktop/desktopVisibilityProfileStore.d.ts} +3 -2
  143. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.js → desktop/desktopVisibilityProfileStore.js} +10 -9
  144. package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.d.ts +71 -0
  145. package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.js +201 -0
  146. package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.d.ts +8 -1
  147. package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +35 -35
  148. package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.d.ts +39 -0
  149. package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.js +73 -0
  150. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.d.ts +42 -1
  151. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.js +14 -10
  152. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.js +3 -4
  153. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.d.ts +2 -2
  154. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.js +13 -9
  155. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.js +20 -5
  156. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.d.ts +8 -0
  157. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.js +19 -0
  158. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +21 -20
  159. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +10 -5
  160. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +12 -8
  161. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.d.ts +3 -1
  162. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +12 -7
  163. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.d.ts +9 -1
  164. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +46 -19
  165. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.js +2 -0
  166. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/media/sessionsPolicyBlocked.css +33 -0
  167. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.d.ts +4 -2
  168. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.js +29 -8
  169. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.d.ts +15 -2
  170. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +169 -32
  171. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.js +30 -8
  172. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js +8 -34
  173. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.js +63 -49
  174. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.js +1 -1
  175. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.js +31 -17
  176. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.d.ts +32 -0
  177. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.js +250 -0
  178. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.d.ts +6 -0
  179. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.js +52 -0
  180. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.d.ts +51 -0
  181. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.js +439 -0
  182. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.d.ts +45 -0
  183. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.js +595 -0
  184. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.d.ts +20 -3
  185. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +360 -46
  186. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.d.ts +9 -0
  187. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.js +59 -0
  188. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/media/connectionDiagnostics.css +201 -0
  189. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.d.ts +10 -0
  190. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.js +70 -0
  191. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.d.ts +20 -0
  192. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.js +104 -0
  193. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.d.ts +15 -0
  194. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.js +152 -0
  195. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.d.ts +49 -0
  196. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.js +340 -0
  197. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.d.ts +41 -0
  198. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.js +400 -0
  199. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.d.ts +28 -0
  200. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.js +178 -0
  201. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.d.ts +17 -0
  202. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.js +206 -0
  203. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.d.ts +1 -0
  204. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.js +58 -0
  205. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.d.ts +10 -0
  206. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.js +90 -0
  207. package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.d.ts +38 -0
  208. package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.js +58 -0
  209. package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +4 -5
  210. package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +1 -1
  211. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.d.ts +1 -0
  212. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.js +33 -0
  213. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.d.ts +30 -0
  214. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.js +190 -0
  215. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.d.ts +31 -0
  216. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.js +559 -0
  217. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.d.ts +12 -0
  218. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.js +38 -0
  219. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.d.ts +13 -4
  220. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +155 -22
  221. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +9 -5
  222. package/vscode/src/vs/sessions/contrib/sessions/browser/media/automationsCards.css +90 -25
  223. package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css +21 -4
  224. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.d.ts +2 -1
  225. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +11 -7
  226. package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.d.ts +116 -1
  227. package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +126 -30
  228. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.d.ts +26 -0
  229. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.js +160 -0
  230. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.d.ts +14 -6
  231. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +555 -151
  232. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.d.ts +192 -0
  233. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.js +510 -0
  234. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.d.ts +6 -7
  235. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.js +64 -57
  236. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.d.ts +5 -3
  237. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +83 -51
  238. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.d.ts +5 -1
  239. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +33 -12
  240. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.d.ts +3 -0
  241. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.js +53 -0
  242. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +10 -10
  243. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.d.ts +2 -2
  244. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +103 -55
  245. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.d.ts +7 -1
  246. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +679 -325
  247. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.d.ts +27 -1
  248. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +508 -163
  249. package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.d.ts +20 -2
  250. package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.js +100 -17
  251. package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.d.ts +5 -1
  252. package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.js +108 -30
  253. package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.d.ts +5 -3
  254. package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.js +47 -35
  255. package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.d.ts +9 -4
  256. package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.js +75 -25
  257. package/vscode/src/vs/sessions/services/customView/browser/customViewService.d.ts +11 -4
  258. package/vscode/src/vs/sessions/services/customView/browser/customViewService.js +17 -9
  259. package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.d.ts +5 -0
  260. package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.js +20 -2
  261. package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.d.ts +75 -0
  262. package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.js +1135 -0
  263. package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.d.ts +17 -0
  264. package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.js +99 -0
  265. package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.d.ts +4 -0
  266. package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.js +88 -23
  267. package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.d.ts +19 -26
  268. package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.js +115 -74
  269. package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.js +1 -1
  270. package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.d.ts +22 -7
  271. package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +278 -60
  272. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.d.ts +17 -20
  273. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.js +33 -22
  274. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.d.ts +28 -8
  275. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +673 -160
  276. package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.d.ts +13 -4
  277. package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.js +105 -15
  278. package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.js +53 -34
  279. package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.js +1 -1
  280. package/vscode/src/vs/workbench/browser/layout.js +1 -1
  281. package/vscode/src/vs/workbench/browser/workbench.d.ts +0 -2
  282. package/vscode/src/vs/workbench/browser/workbench.js +23 -20
  283. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +6 -0
  284. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +41 -0
  285. package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.d.ts +15 -0
  286. package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.js +56 -0
  287. package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +0 -18
  288. package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.js +0 -27
  289. package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.js +0 -36
  290. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.d.ts +0 -37
  291. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.js +0 -126
  292. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.d.ts +0 -59
  293. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +0 -232
  294. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.d.ts +0 -13
  295. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.js +0 -22
  296. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +0 -45
  297. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +0 -110
  298. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.d.ts +0 -112
  299. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.js +0 -444
  300. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.js +0 -43
  301. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.d.ts +0 -55
  302. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.js +0 -91
  303. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.d.ts +0 -26
  304. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +0 -98
  305. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +0 -33
  306. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +0 -98
  307. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +0 -2
  308. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +0 -13
  309. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +0 -122
  310. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +0 -464
  311. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +0 -35
  312. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +0 -90
  313. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +0 -84
  314. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +0 -328
  315. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +0 -174
  316. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +0 -1390
  317. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +0 -44
  318. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +0 -30
  319. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +0 -78
  320. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +0 -11
  321. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +0 -26
  322. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.d.ts +0 -27
  323. 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 };
@@ -1 +1,42 @@
1
- export {};
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
+ }
@@ -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.storageService.getNumber(TOTAL_SESSIONS_KEY, StorageScope.APPLICATION, 0);
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
- const stillVisible = ( this.sessionsService.visibleSessions.get().some(s => s?.sessionId === session.sessionId));
72
- if (stillVisible) {
73
- this._startNewSessionButtonPulse();
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 };
@@ -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.storageService.getNumber(TOTAL_SESSIONS_KEY, StorageScope.APPLICATION, 0);
80
+ const requestsSent = this._usage.createdSessionCount;
82
81
  return requestsSent <= NewSessionViewTourContribution_1.MAX_REQUESTS_FOR_TOUR;
83
82
  }
84
83
  _isTriggeredOrShown() {
@@ -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, _storageService: IStorageService, _configurationService: IConfigurationService, _contextKeyService: IContextKeyService, _chatEntitlementService: IChatEntitlementService);
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 { StorageScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
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(_tourId, _onboardingScenarioService, _sessionsService, _storageService, _configurationService, _contextKeyService, _chatEntitlementService) {
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._storageService.getNumber(TOTAL_SESSIONS_KEY, StorageScope.APPLICATION, 0);
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
 
@@ -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
- onboardingScenarioRegistry.register(createNewSessionViewV2Tour(trigger.signal))
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,
@@ -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>;
@@ -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 { computeIssueIcon, GitHubIssueState, GitHubPullRequestState } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/github/common/types';
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(4122, "[describe the coding task]"));
33
+ const DEFAULT_TASK_PLACEHOLDER = ( localize(4760, "[describe the coding task]"));
33
34
  const DEFAULT_PROMPT_TEMPLATE = ( localize(
34
- 4123,
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(4124, "Tackle issue")) : candidate.strategy === "githubMergeConflict" ? ( localize(4125, "Resolve conflicts")) : candidate.strategy === "githubCiFailure" ? ( localize(4126, "Fix CI")) : ( localize(4127, "Address PR comments"));
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(4128, "[describe the feature]"));
1077
- const fixBugPlaceholder = ( localize(4129, "[describe the bug]"));
1078
- const fixCiPlaceholder = ( localize(4130, "[describe the CI failure or paste a link]"));
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(4131, "Implement a feature")),
1082
- description: ( localize(4132, "Describe what you want to build")),
1082
+ title: ( localize(4769, "Implement a feature")),
1083
+ description: ( localize(4770, "Describe what you want to build")),
1083
1084
  prompt: ( localize(
1084
- 4133,
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(4134, "Fix a bug")),
1093
- description: ( localize(4135, "Describe the unexpected behavior")),
1093
+ title: ( localize(4772, "Fix a bug")),
1094
+ description: ( localize(4773, "Describe the unexpected behavior")),
1094
1095
  prompt: ( localize(
1095
- 4136,
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(4137, "Fix CI")),
1104
- description: ( localize(4138, "Describe a failing check or paste a link")),
1104
+ title: ( localize(4775, "Fix CI")),
1105
+ description: ( localize(4776, "Describe a failing check or paste a link")),
1105
1106
  prompt: ( localize(
1106
- 4139,
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
- 4140,
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
- 4141,
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
- 4142,
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
- 4143,
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(4144, "Work Across Workspaces")),
23
+ title: ( localize(4782, "Work Across Workspaces")),
19
24
  description: ( localize(
20
- 4145,
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(4146, "Isolate Your Work")),
32
+ title: ( localize(4784, "Isolate Your Work")),
28
33
  description: ( localize(
29
- 4147,
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(4148, "Work Across Workspaces")),
23
+ title: ( localize(4786, "Work Across Workspaces")),
20
24
  description: ( localize(
21
- 4149,
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(4150, "Choose a Harness")),
34
+ title: ( localize(4788, "Choose a Harness")),
31
35
  description: ( localize(
32
- 4151,
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(4152, "Isolate Your Work")),
45
+ title: ( localize(4790, "Isolate Your Work")),
42
46
  description: ( localize(
43
- 4153,
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