@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
@@ -2,8 +2,10 @@ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platf
2
2
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
3
3
  import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
4
4
  import { IThemeService } from "@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service";
5
+ import { IAccessibilityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service";
6
+ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
5
7
  import { LayoutPriority } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/splitview/splitview";
6
- import { SerializableGrid } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid";
8
+ import { Direction, ISerializedGrid } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid";
7
9
  import { Part } from "@codingame/monaco-vscode-api/vscode/vs/workbench/browser/part";
8
10
  import { IActiveSession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement";
9
11
  import { SessionView } from "./sessionView.js";
@@ -11,10 +13,14 @@ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"
11
13
  import { IProgressIndicator } from "@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress";
12
14
  import { IAgentWorkbenchLayoutService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/browser/workbench.service";
13
15
  import { ISessionsChatBackgroundService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/chatBackground/browser/chatBackgroundService.service";
16
+ import { ISessionGridSlot, SessionGridRequest } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService";
17
+ import { SessionGridLayout } from "./sessionGridLayout.js";
14
18
  export declare class SessionsPart extends Part {
15
19
  private readonly agentWorkbenchLayoutService;
16
20
  private readonly instantiationService;
17
21
  private readonly chatBackgroundService;
22
+ private readonly accessibilityService;
23
+ private readonly telemetryService;
18
24
  readonly minimumWidth: number;
19
25
  readonly maximumWidth: number;
20
26
  readonly minimumHeight: number;
@@ -23,22 +29,18 @@ export declare class SessionsPart extends Part {
23
29
  /** Border width on the card (1px each side) */
24
30
  static readonly BORDER_WIDTH = 1;
25
31
  /** Internal grid that hosts the part's session views. */
26
- protected _gridWidget: SerializableGrid<SessionView> | undefined;
32
+ protected _gridWidget: SessionGridLayout | undefined;
33
+ private _gridRequest;
34
+ private readonly _onDidInteractWithGrid;
35
+ readonly onDidInteractWithGrid: Event<void>;
27
36
  /** Lazily-created progress bar shown at the top of the content area. */
28
37
  private _progressBar;
29
38
  private _progressIndicator;
30
- /**
31
- * Session views mounted in the grid, in display order (left-to-right). Slots
32
- * are reused across reconciliations: only the slot count changes with the
33
- * number of visible sessions; each slot is rebound to its session by position
34
- * via {@link SessionView.openSession}. There is always at least one slot — a
35
- * new-session placeholder (`boundSessionId === undefined`) when no sessions
36
- * are visible.
37
- */
39
+ /** Stable model slots in depth-first grid order, including the empty composer. */
38
40
  private readonly _slots;
39
41
  private readonly _onDidFocusSession;
40
42
  /** Fired when a session view in the grid receives keyboard focus. */
41
- readonly onDidFocusSession: Event<string>;
43
+ readonly onDidFocusSession: Event<string | undefined>;
42
44
  protected _lastLayout: {
43
45
  readonly width: number;
44
46
  readonly height: number;
@@ -47,6 +49,8 @@ export declare class SessionsPart extends Part {
47
49
  } | undefined;
48
50
  private readonly _multipleSessionsVisibleKey;
49
51
  private readonly _sessionsFocusKey;
52
+ private readonly _pickerVisibilityContextKeys;
53
+ private readonly _activeViewPickerVisibility;
50
54
  /**
51
55
  * Whether the part itself is visible in the workbench grid. Starts `true`
52
56
  * because the workbench grid only calls {@link setVisible} on change.
@@ -57,17 +61,12 @@ export declare class SessionsPart extends Part {
57
61
  private get _sessionViewsVisible();
58
62
  get preferredHeight(): number | undefined;
59
63
  readonly priority = LayoutPriority.High;
60
- constructor(themeService: IThemeService, storageService: IStorageService, agentWorkbenchLayoutService: IAgentWorkbenchLayoutService, contextKeyService: IContextKeyService, instantiationService: IInstantiationService, chatBackgroundService: ISessionsChatBackgroundService);
64
+ constructor(themeService: IThemeService, storageService: IStorageService, agentWorkbenchLayoutService: IAgentWorkbenchLayoutService, contextKeyService: IContextKeyService, instantiationService: IInstantiationService, chatBackgroundService: ISessionsChatBackgroundService, accessibilityService: IAccessibilityService, telemetryService: ITelemetryService);
61
65
  create(parent: HTMLElement): void;
62
66
  protected createContentArea(parent: HTMLElement): HTMLElement;
67
+ private activateCodicon;
63
68
  private _findTargetView;
64
- /**
65
- * Reconcile the grid with the desired set of visible sessions. Reuses the
66
- * existing {@link SessionView} slots, growing or shrinking the pool only when
67
- * the number of visible sessions changes, and rebinds each slot to its
68
- * session by position via {@link SessionView.openSession}.
69
- */
70
- updateVisibleSessions(visible: readonly (IActiveSession | undefined)[], active: IActiveSession | undefined): void;
69
+ updateVisibleSessions(visible: readonly (IActiveSession | undefined)[], active: IActiveSession | undefined, gridSlots?: readonly ISessionGridSlot[], request?: SessionGridRequest): void;
71
70
  private _updateContextKeys;
72
71
  /**
73
72
  * Pushes the grid's current maximized state into each {@link SessionView} so
@@ -84,6 +83,13 @@ export declare class SessionsPart extends Part {
84
83
  * the call was a no-op.
85
84
  */
86
85
  toggleMaximizeSession(sessionId: string | undefined): boolean | undefined;
86
+ getGridLayout(): ISerializedGrid | undefined;
87
+ getNeighborSession(sessionId: string | undefined, direction: Direction): IActiveSession | null | undefined;
88
+ getSessionPlacement(sessionId: string): {
89
+ sessionId: string | undefined;
90
+ direction: Direction;
91
+ } | undefined;
92
+ resizeSession(sessionId: string | undefined, direction: Direction, amount: number): void;
87
93
  /**
88
94
  * Returns the {@link SessionView} currently hosting the given session id, or
89
95
  * the placeholder (new-session) view when `sessionId` is `undefined`. Returns
@@ -2,20 +2,25 @@
2
2
  import { registerCss } from '@codingame/monaco-vscode-api/css';
3
3
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
4
  import * as sessionsPart from './media/sessionsPart.css';
5
+ import { triggerConfettiAnimation } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/animations/animations';
5
6
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
6
7
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
7
8
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
8
9
  import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
9
- import { agentsPanelBorder } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/theme';
10
+ import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
11
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
12
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
13
+ import { agentsPanelBorder } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/agentsColors';
10
14
  import { Parts } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService';
11
15
  import { assertReturnsDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
12
16
  import { LayoutPriority } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/splitview/splitview';
13
- import { SerializableGrid, Sizing, Direction } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid';
17
+ import { Direction } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid';
14
18
  import { Part } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/part';
15
19
  import { ActiveSessionsContext, SessionsFocusContext, MultipleSessionsVisibleContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
16
- import { $, trackFocus, isAncestor, isAncestorOfActiveElement, addDisposableListener, EventType, addDisposableGenericMouseDownListener } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
20
+ import { $, trackFocus, addDisposableListener, EventType, isHTMLElement, isAncestor, isAncestorOfActiveElement, addDisposableGenericMouseDownListener } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
17
21
  import { SessionView } from './sessionView.js';
18
- import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
22
+ import { MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
23
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
19
24
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
20
25
  import { Color } from '@codingame/monaco-vscode-api/vscode/vs/base/common/color';
21
26
  import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colorUtils';
@@ -34,9 +39,14 @@ import { ProgressBar } from '@codingame/monaco-vscode-api/vscode/vs/base/browser
34
39
  import { defaultProgressBarStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
35
40
  import { AbstractProgressScope, ScopedProgressIndicator } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/progress/browser/progressIndicator';
36
41
  import { IAgentWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/workbench.service';
37
- import { applyAgentsPartCardStyles, getAgentsPartCardContentSize } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/agentsPartCard';
42
+ import { applyAgentsPartCardStyles, getAgentsPartCardContentSize, getSessionsPartCardMarginRight } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/agentsPartCard';
43
+ import { isPhoneLayout } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/mobile/mobileLayout';
38
44
  import { SessionsChatBackgroundRenderer } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/chatBackground/browser/chatBackgroundRenderer';
39
45
  import { ISessionsChatBackgroundService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/chatBackground/browser/chatBackgroundService.service';
46
+ import { SessionPickerVisibilityContextKeys, noSessionPickerVisibility } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionPickerVisibility';
47
+ import { SessionGridLayout } from './sessionGridLayout.js';
48
+ import { AGENTS_FLOATING_PANEL_GAP } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/agentsSizes';
49
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
40
50
 
41
51
  registerCss(sessionsPart, 0);
42
52
  let SessionsPart = class SessionsPart extends Part {
@@ -58,7 +68,9 @@ let SessionsPart = class SessionsPart extends Part {
58
68
  agentWorkbenchLayoutService,
59
69
  contextKeyService,
60
70
  instantiationService,
61
- chatBackgroundService
71
+ chatBackgroundService,
72
+ accessibilityService,
73
+ telemetryService
62
74
  ) {
63
75
  super(Parts.SESSIONS_PART, {
64
76
  hasTitle: false,
@@ -67,19 +79,25 @@ let SessionsPart = class SessionsPart extends Part {
67
79
  this.agentWorkbenchLayoutService = agentWorkbenchLayoutService;
68
80
  this.instantiationService = instantiationService;
69
81
  this.chatBackgroundService = chatBackgroundService;
82
+ this.accessibilityService = accessibilityService;
83
+ this.telemetryService = telemetryService;
70
84
  this.minimumWidth = 300;
71
85
  this.maximumWidth = Number.POSITIVE_INFINITY;
72
86
  this.minimumHeight = 0;
73
87
  this.maximumHeight = Number.POSITIVE_INFINITY;
88
+ this._onDidInteractWithGrid = this._register(( new Emitter()));
89
+ this.onDidInteractWithGrid = this._onDidInteractWithGrid.event;
74
90
  this._slots = [];
75
91
  this._onDidFocusSession = this._register(( new Emitter()));
76
92
  this.onDidFocusSession = this._onDidFocusSession.event;
93
+ this._activeViewPickerVisibility = this._register(( new MutableDisposable()));
77
94
  this._isPartVisible = true;
78
95
  this._contentVisible = true;
79
96
  this.priority = LayoutPriority.High;
80
97
  ActiveSessionsContext.bindTo(contextKeyService);
81
98
  this._sessionsFocusKey = SessionsFocusContext.bindTo(contextKeyService);
82
99
  this._multipleSessionsVisibleKey = MultipleSessionsVisibleContext.bindTo(contextKeyService);
100
+ this._pickerVisibilityContextKeys = this._register(( new SessionPickerVisibilityContextKeys(contextKeyService)));
83
101
  }
84
102
  create(parent) {
85
103
  this.element = parent;
@@ -87,7 +105,10 @@ let SessionsPart = class SessionsPart extends Part {
87
105
  super.create(parent);
88
106
  }
89
107
  createContentArea(parent) {
90
- const backgroundRenderer = this._register(( new SessionsChatBackgroundRenderer(parent)));
108
+ const backgroundRenderer = this._register(( new SessionsChatBackgroundRenderer(parent, true)));
109
+ this._register(
110
+ backgroundRenderer.onDidActivateCodicon(element => this.activateCodicon(element))
111
+ );
91
112
  const updateBackground = () => backgroundRenderer.setBackground(this.chatBackgroundService.getBackground());
92
113
  this._register(this.chatBackgroundService.onDidChangeBackground(updateBackground));
93
114
  updateBackground();
@@ -98,16 +119,24 @@ let SessionsPart = class SessionsPart extends Part {
98
119
  this._register(focusTracker.onDidBlur(() => this._sessionsFocusKey.set(false)));
99
120
  this._progressBar = this._register(( new ProgressBar(contentArea, defaultProgressBarStyles)));
100
121
  this._progressBar.hide();
101
- const placeholder = this._createSlot();
102
- this._gridWidget = this._register(( new SerializableGrid(placeholder.view, {
103
- styles: {
104
- separatorBorder: this._gridSeparatorBorder
105
- }
106
- })));
122
+ const placeholder = this._createSlot("initial");
123
+ this._gridWidget = this._register(( new SessionGridLayout()));
124
+ this._gridWidget.style({
125
+ separatorBorder: this._gridSeparatorBorder
126
+ });
127
+ this._gridWidget.reconcile([{
128
+ id: placeholder.id,
129
+ view: placeholder.view
130
+ }], placeholder.id);
107
131
  this._slots.push(placeholder);
108
132
  contentArea.appendChild(this._gridWidget.element);
133
+ this._register(this._gridWidget.onDidChangeMaximized(() => this._updateMaximizedState()));
109
134
  this._register(
110
- this._gridWidget.onDidChangeViewMaximized(() => this._updateMaximizedState())
135
+ addDisposableListener(this._gridWidget.element, EventType.POINTER_DOWN, event => {
136
+ if (isHTMLElement(event.target) && event.target.closest(".monaco-sash")) {
137
+ this._onDidInteractWithGrid.fire();
138
+ }
139
+ })
111
140
  );
112
141
  const dropDelegate = {
113
142
  findTargetView: child => this._findTargetView(child)
@@ -117,6 +146,13 @@ let SessionsPart = class SessionsPart extends Part {
117
146
  );
118
147
  return contentArea;
119
148
  }
149
+ activateCodicon(element) {
150
+ if (!this.accessibilityService.isMotionReduced()) {
151
+ triggerConfettiAnimation(element);
152
+ }
153
+ this.accessibilityService.status(( localize(3457, "Confetti!")));
154
+ this.telemetryService.publicLog2("vscodeAgents.codiconBackground/confetti", {});
155
+ }
120
156
  _findTargetView(child) {
121
157
  for (const slot of this._slots) {
122
158
  if (slot.boundSessionId === undefined) {
@@ -131,41 +167,62 @@ let SessionsPart = class SessionsPart extends Part {
131
167
  }
132
168
  return undefined;
133
169
  }
134
- updateVisibleSessions(visible, active) {
170
+ updateVisibleSessions(visible, active, gridSlots, request) {
135
171
  if (!this._gridWidget) {
136
172
  return;
137
173
  }
138
- const desiredCount = Math.max(visible.length, 1);
139
- while (this._slots.length < desiredCount) {
140
- const slot = this._createSlot();
141
- const reference = this._slots[this._slots.length - 1].view;
142
- this._gridWidget.addView(slot.view, Sizing.Distribute, reference, Direction.Right);
143
- this._slots.push(slot);
144
- }
145
- while (this._slots.length > desiredCount) {
146
- const slot = this._slots.pop();
147
- this._gridWidget.removeView(slot.view, Sizing.Distribute);
148
- slot.disposables.dispose();
149
- }
150
- for (let i = 0; i < this._slots.length; i++) {
151
- const slot = this._slots[i];
152
- const session = visible[i];
174
+ this._activeViewPickerVisibility.clear();
175
+ const sessions = visible.length ? visible : [undefined];
176
+ const oldSlots = ( new Map(this._slots.map(slot => [slot.id, slot])));
177
+ const next = sessions.map((session, index) => {
178
+ const id = gridSlots?.[index].id ?? session?.sessionId ?? "initial";
179
+ const slot = oldSlots.get(id) ?? this._createSlot(id);
180
+ oldSlots.delete(id);
153
181
  slot.boundSessionId = session?.sessionId;
182
+ slot.session = session;
154
183
  slot.view.openSession(session, {});
155
- }
184
+ return slot;
185
+ });
186
+ this._slots.splice(0, this._slots.length, ...next);
156
187
  const activeId = active?.sessionId;
188
+ const activeSlot = this._slots.find(slot => slot.boundSessionId === activeId) ?? (this._slots.length === 1 ? this._slots[0] : undefined);
157
189
  for (const slot of this._slots) {
158
- const isActive = (slot.boundSessionId !== undefined && slot.boundSessionId === activeId) || this._slots.length === 1;
190
+ const isActive = slot === activeSlot;
159
191
  slot.view.element.classList.toggle("is-active", isActive);
160
192
  slot.view.setActive(isActive);
161
193
  }
162
- if (this._gridWidget.hasMaximizedView()) {
163
- const maximizedSlot = this._slots.find(s => this._gridWidget.isViewMaximized(s.view));
164
- if (maximizedSlot && maximizedSlot.boundSessionId !== activeId) {
165
- this._gridWidget.exitMaximizedView();
194
+ this._gridWidget.reconcile(next.map((slot, index) => ({
195
+ id: slot.id,
196
+ view: slot.view,
197
+ placement: gridSlots?.[index].placement
198
+ })), activeSlot?.id ?? next[0].id);
199
+ for (const slot of ( oldSlots.values())) {
200
+ slot.disposables.dispose();
201
+ }
202
+ if (request && request !== this._gridRequest) {
203
+ this._gridRequest = request;
204
+ if (request.type === "arrange") {
205
+ this._gridWidget.arrange();
206
+ } else {
207
+ this._gridWidget.restore(request.grid);
166
208
  }
167
209
  }
210
+ this._updateMaximizedState();
211
+ if (this._lastLayout) {
212
+ const {
213
+ width,
214
+ height,
215
+ top,
216
+ left
217
+ } = this._lastLayout;
218
+ this.layout(width, height, top, left);
219
+ }
168
220
  this._updateContextKeys(visible);
221
+ this._activeViewPickerVisibility.value = autorun(reader => {
222
+ this._pickerVisibilityContextKeys.set(
223
+ activeSlot?.view.pickerVisibility.read(reader) ?? noSessionPickerVisibility
224
+ );
225
+ });
169
226
  }
170
227
  _updateContextKeys(visible) {
171
228
  this._multipleSessionsVisibleKey.set(visible.length > 1);
@@ -175,7 +232,7 @@ let SessionsPart = class SessionsPart extends Part {
175
232
  return;
176
233
  }
177
234
  for (const slot of this._slots) {
178
- slot.view.setMaximized(this._gridWidget.isViewMaximized(slot.view));
235
+ slot.view.setMaximized(this._gridWidget.maximized === slot.id);
179
236
  }
180
237
  }
181
238
  toggleMaximizeSession(sessionId) {
@@ -186,16 +243,50 @@ let SessionsPart = class SessionsPart extends Part {
186
243
  if (!slot) {
187
244
  return undefined;
188
245
  }
189
- if (this._gridWidget.isViewMaximized(slot.view)) {
190
- this._gridWidget.exitMaximizedView();
191
- return false;
192
- } else if (this._slots.filter(s => s.boundSessionId !== undefined).length >= 2) {
193
- this._gridWidget.maximizeView(slot.view);
246
+ const maximized = this._gridWidget.toggleMaximized(slot.id);
247
+ if (maximized !== undefined) {
248
+ this._onDidInteractWithGrid.fire();
194
249
  slot.view.focus();
195
- return true;
250
+ }
251
+ return maximized;
252
+ }
253
+ getGridLayout() {
254
+ return this._gridWidget?.serialize();
255
+ }
256
+ getNeighborSession(sessionId, direction) {
257
+ const slot = this._slots.find(slot => slot.boundSessionId === sessionId);
258
+ const neighbor = slot && this._gridWidget?.neighbor(slot.id, direction);
259
+ const target = this._slots.find(slot => slot.id === neighbor);
260
+ return target ? target.session ?? null : undefined;
261
+ }
262
+ getSessionPlacement(sessionId) {
263
+ const slot = this._slots.find(slot => slot.boundSessionId === sessionId);
264
+ if (slot) {
265
+ const placement = this._gridWidget?.placement(slot.id);
266
+ const reference = this._slots.find(slot => slot.id === placement?.reference);
267
+ if (reference && placement) {
268
+ return {
269
+ sessionId: reference.boundSessionId,
270
+ direction: placement.direction
271
+ };
272
+ }
196
273
  }
197
274
  return undefined;
198
275
  }
276
+ resizeSession(sessionId, direction, amount) {
277
+ const slot = this._slots.find(slot => slot.boundSessionId === sessionId);
278
+ const size = slot && this._gridWidget?.getSize(slot.id);
279
+ if (slot && size) {
280
+ this._onDidInteractWithGrid.fire();
281
+ const horizontal = direction === Direction.Left || direction === Direction.Right;
282
+ const delta = direction === Direction.Left || direction === Direction.Up ? -amount : amount;
283
+ this._gridWidget?.resize(
284
+ slot.id,
285
+ size.width + (horizontal ? delta : 0),
286
+ size.height + (horizontal ? 0 : delta)
287
+ );
288
+ }
289
+ }
199
290
  getSessionView(sessionId) {
200
291
  return this._slots.find(s => s.boundSessionId === sessionId)?.view;
201
292
  }
@@ -216,7 +307,7 @@ let SessionsPart = class SessionsPart extends Part {
216
307
  }
217
308
  const containerRect = this._gridWidget.element.getBoundingClientRect();
218
309
  const viewRect = view.element.getBoundingClientRect();
219
- const isFullyVisible = viewRect.left >= containerRect.left - 1 && viewRect.right <= containerRect.right + 1;
310
+ const isFullyVisible = viewRect.left >= containerRect.left - 1 && viewRect.right <= containerRect.right + 1 && viewRect.top >= containerRect.top - 1 && viewRect.bottom <= containerRect.bottom + 1;
220
311
  if (!isFullyVisible) {
221
312
  view.element.scrollIntoView({
222
313
  block: "nearest",
@@ -242,36 +333,32 @@ let SessionsPart = class SessionsPart extends Part {
242
333
  }
243
334
  return this._progressIndicator;
244
335
  }
245
- _createSlot() {
336
+ _createSlot(id) {
246
337
  const disposables = ( new DisposableStore());
247
338
  const view = disposables.add(this.instantiationService.createInstance(SessionView));
248
339
  view.setPartVisible(this._sessionViewsVisible);
249
340
  const slot = {
341
+ id,
250
342
  view,
251
343
  disposables,
252
344
  boundSessionId: undefined
253
345
  };
254
346
  const fireFocus = () => {
255
- if (slot.boundSessionId !== undefined) {
256
- this._restoreSessionOnActivation(view);
257
- this._onDidFocusSession.fire(slot.boundSessionId);
258
- }
347
+ this._restoreSessionOnActivation(slot);
348
+ this._onDidFocusSession.fire(slot.boundSessionId);
259
349
  };
260
350
  disposables.add(addDisposableListener(view.element, EventType.FOCUS_IN, fireFocus, true));
261
351
  disposables.add(addDisposableGenericMouseDownListener(view.element, fireFocus, true));
262
352
  return slot;
263
353
  }
264
- _restoreSessionOnActivation(view) {
354
+ _restoreSessionOnActivation(slot) {
265
355
  if (!this._gridWidget) {
266
356
  return;
267
357
  }
268
- const viewSize = this._gridWidget.getViewSize(view);
269
- if (viewSize.width === view.minimumWidth) {
270
- this._gridWidget.expandView(view);
271
- }
358
+ this._gridWidget.expand(slot.id);
272
359
  }
273
360
  get _gridSeparatorBorder() {
274
- return this.theme.getColor(agentsPanelBorder) || this.theme.getColor(contrastBorder) || Color.transparent;
361
+ return this.theme.getColor(contrastBorder) || this.theme.getColor(agentsPanelBorder)?.transparent(0.5) || Color.transparent;
275
362
  }
276
363
  updateStyles() {
277
364
  super.updateStyles();
@@ -311,14 +398,26 @@ let SessionsPart = class SessionsPart extends Part {
311
398
  top,
312
399
  left
313
400
  };
314
- const cardSize = getAgentsPartCardContentSize(width, height, this.agentWorkbenchLayoutService.isEditorPaneVisible());
401
+ const phoneLayout = isPhoneLayout(this.layoutService);
402
+ const compactLayout = this.layoutService.isModernUICompact();
403
+ const cardSize = getAgentsPartCardContentSize(
404
+ width,
405
+ height,
406
+ this.agentWorkbenchLayoutService.isEditorPaneVisible(),
407
+ this.layoutService.isVisible(Parts.SIDEBAR_PART),
408
+ phoneLayout,
409
+ compactLayout,
410
+ getSessionsPartCardMarginRight(this.layoutService.mainContainer)
411
+ );
315
412
  const {
316
413
  contentSize
317
414
  } = this.layoutContents(cardSize.width, cardSize.height);
318
- this._gridWidget?.layout(contentSize.width, contentSize.height, top, left);
415
+ const gridGap = phoneLayout || compactLayout ? 0 : AGENTS_FLOATING_PANEL_GAP;
416
+ this._gridWidget?.layout(contentSize.width, contentSize.height, top, left, phoneLayout, gridGap);
319
417
  super.layout(width, height, top, left);
320
418
  }
321
419
  dispose() {
420
+ this._activeViewPickerVisibility.clear();
322
421
  for (const slot of this._slots) {
323
422
  slot.disposables.dispose();
324
423
  }
@@ -331,6 +430,6 @@ let SessionsPart = class SessionsPart extends Part {
331
430
  };
332
431
  }
333
432
  };
334
- SessionsPart = ( __decorate([( __param(0, IThemeService)), ( __param(1, IStorageService)), ( __param(2, IAgentWorkbenchLayoutService)), ( __param(3, IContextKeyService)), ( __param(4, IInstantiationService)), ( __param(5, ISessionsChatBackgroundService))], SessionsPart));
433
+ SessionsPart = ( __decorate([( __param(0, IThemeService)), ( __param(1, IStorageService)), ( __param(2, IAgentWorkbenchLayoutService)), ( __param(3, IContextKeyService)), ( __param(4, IInstantiationService)), ( __param(5, ISessionsChatBackgroundService)), ( __param(6, IAccessibilityService)), ( __param(7, ITelemetryService))], SessionsPart));
335
434
 
336
435
  export { SessionsPart };
@@ -4,8 +4,9 @@ import { SessionView } from "./sessionView.js";
4
4
  import { IActiveSession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement";
5
5
  import { IProgressIndicator } from "@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress";
6
6
  import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
7
- import { IToggleMaximizeSessionEvent } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService";
7
+ import { ISessionGridSlot, IToggleMaximizeSessionEvent, SessionGridRequest } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService";
8
8
  import { ISessionsPartService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService.service";
9
+ import { Direction } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid";
9
10
  /**
10
11
  * Owns the lifecycle of the {@link SessionsPart}. Selects the mobile vs. desktop
11
12
  * variant based on viewport width at construction time. Registered as an eager
@@ -21,9 +22,17 @@ export declare class SessionsParts extends Disposable implements ISessionsPartSe
21
22
  private readonly _mainPart;
22
23
  private readonly _onDidToggleMaximizeSession;
23
24
  readonly onDidToggleMaximizeSession: Event<IToggleMaximizeSessionEvent>;
24
- get onDidFocusSession(): Event<string>;
25
+ get onDidFocusSession(): Event<string | undefined>;
25
26
  constructor(instantiationService: IInstantiationService);
26
- updateVisibleSessions(visible: readonly (IActiveSession | undefined)[], active: IActiveSession | undefined): void;
27
+ updateVisibleSessions(visible: readonly (IActiveSession | undefined)[], active: IActiveSession | undefined, slots?: readonly ISessionGridSlot[], request?: SessionGridRequest): void;
28
+ getGridLayout(): import("@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid").ISerializedGrid | undefined;
29
+ getNeighborSession(sessionId: string | undefined, direction: Direction): IActiveSession | null | undefined;
30
+ getSessionPlacement(sessionId: string): {
31
+ sessionId: string | undefined;
32
+ direction: Direction;
33
+ } | undefined;
34
+ resizeSession(sessionId: string | undefined, direction: Direction, amount: number): void;
35
+ get onDidInteractWithGrid(): Event<void>;
27
36
  setContentVisible(visible: boolean): void;
28
37
  toggleMaximizeSession(session: IActiveSession | undefined): void;
29
38
  focusSession(session: IActiveSession | undefined): void;
@@ -25,8 +25,23 @@ let SessionsParts = class SessionsParts extends Disposable {
25
25
  instantiationService.createInstance(isPhoneLayout ? MobileSessionsPart : SessionsPart)
26
26
  );
27
27
  }
28
- updateVisibleSessions(visible, active) {
29
- this._mainPart.updateVisibleSessions(visible, active);
28
+ updateVisibleSessions(visible, active, slots, request) {
29
+ this._mainPart.updateVisibleSessions(visible, active, slots, request);
30
+ }
31
+ getGridLayout() {
32
+ return this._mainPart.getGridLayout();
33
+ }
34
+ getNeighborSession(sessionId, direction) {
35
+ return this._mainPart.getNeighborSession(sessionId, direction);
36
+ }
37
+ getSessionPlacement(sessionId) {
38
+ return this._mainPart.getSessionPlacement(sessionId);
39
+ }
40
+ resizeSession(sessionId, direction, amount) {
41
+ this._mainPart.resizeSession(sessionId, direction, amount);
42
+ }
43
+ get onDidInteractWithGrid() {
44
+ return this._mainPart.onDidInteractWithGrid;
30
45
  }
31
46
  setContentVisible(visible) {
32
47
  this._mainPart.setContentVisible(visible);
@@ -1,6 +1,6 @@
1
1
  import { IReader } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
2
2
  import { ThemeIcon } from "@codingame/monaco-vscode-api/vscode/vs/base/common/themables";
3
- import { ISession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
3
+ import { IActiveSession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement";
4
4
  export interface ISessionWorkspaceDisplayInfo {
5
5
  readonly label: string;
6
6
  readonly icon: ThemeIcon;
@@ -8,5 +8,8 @@ export interface ISessionWorkspaceDisplayInfo {
8
8
  readonly branch: string | undefined;
9
9
  readonly worktreePending: boolean;
10
10
  }
11
- /** Returns the workspace presentation shared by the command center and Files pill. */
12
- export declare function getSessionWorkspaceDisplayInfo(session: ISession | undefined, reader: IReader): ISessionWorkspaceDisplayInfo | undefined;
11
+ /**
12
+ * Returns the workspace presentation shared by the command center and Files
13
+ * pill, for the active chat's workspace, which may differ from the session's.
14
+ */
15
+ export declare function getSessionWorkspaceDisplayInfo(session: IActiveSession | undefined, reader: IReader): ISessionWorkspaceDisplayInfo | undefined;
@@ -3,7 +3,7 @@ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codi
3
3
  import { getSessionWorkspaceKind, SessionWorkspaceKind } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
4
4
 
5
5
  function getSessionWorkspaceDisplayInfo(session, reader) {
6
- const workspace = session?.workspace.read(reader);
6
+ const workspace = session?.activeChat.read(reader).workspace.read(reader);
7
7
  if (!workspace?.label) {
8
8
  return undefined;
9
9
  }
@@ -11,7 +11,7 @@ function getSessionWorkspaceDisplayInfo(session, reader) {
11
11
  const kind = getSessionWorkspaceKind(workspace, worktreePending);
12
12
  const icon = workspace.typeIcon ?? (kind === SessionWorkspaceKind.Virtual ? Codicon.cloudCompact : kind === SessionWorkspaceKind.Folder ? Codicon.folderCompact : Codicon.worktreeCompact);
13
13
  const folder = workspace.folders[0];
14
- const branch = worktreePending ? undefined : folder?.gitRepository?.branchName?.trim() || undefined;
14
+ const branch = kind === SessionWorkspaceKind.Worktree && !worktreePending ? folder?.gitRepository?.branchName?.trim() || undefined : undefined;
15
15
  const workingDirectoryPath = worktreePending ? undefined : folder?.workingDirectory.fsPath;
16
16
  return { label: workspace.label, icon, workingDirectoryPath, branch, worktreePending };
17
17
  }