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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) 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 +15 -13
  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 -96
  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.d.ts +46 -70
  281. package/vscode/src/vs/workbench/browser/layout.js +243 -44
  282. package/vscode/src/vs/workbench/browser/workbench.d.ts +1 -3
  283. package/vscode/src/vs/workbench/browser/workbench.js +26 -24
  284. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +6 -0
  285. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +41 -0
  286. package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.d.ts +15 -0
  287. package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.js +56 -0
  288. package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +0 -18
  289. package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.js +0 -27
  290. package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.js +0 -36
  291. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.d.ts +0 -37
  292. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.js +0 -126
  293. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.d.ts +0 -59
  294. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +0 -232
  295. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.d.ts +0 -13
  296. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.js +0 -22
  297. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +0 -45
  298. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +0 -110
  299. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.d.ts +0 -112
  300. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.js +0 -444
  301. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.js +0 -43
  302. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.d.ts +0 -55
  303. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.js +0 -91
  304. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.d.ts +0 -26
  305. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +0 -98
  306. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +0 -33
  307. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +0 -98
  308. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +0 -2
  309. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +0 -13
  310. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +0 -122
  311. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +0 -464
  312. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +0 -35
  313. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +0 -90
  314. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +0 -84
  315. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +0 -328
  316. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +0 -174
  317. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +0 -1390
  318. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +0 -44
  319. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +0 -30
  320. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +0 -78
  321. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +0 -11
  322. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +0 -26
  323. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.d.ts +0 -27
  324. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.js +0 -26
@@ -34,6 +34,8 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
34
34
  this._logService = _logService;
35
35
  this._session = observableValue(this, undefined);
36
36
  this._attempt = observableValue(this, undefined);
37
+ this._connectionAttemptObserved = observableValue(this, false);
38
+ this._inputReceived = observableValue(this, false);
37
39
  this._progressListener = this._register(( new MutableDisposable()));
38
40
  this._deadlineSignal = observableSignal(this);
39
41
  this._reconnectCountdownSignal = observableSignal(this);
@@ -92,14 +94,30 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
92
94
  });
93
95
  this.bannerContent = derived(this, reader => this._getRemoteConnectionBannerContent(reader));
94
96
  this.recoveryContent = derived(this, reader => this._getRemoteHostUnavailableContent(reader));
97
+ this.isQuiet = derived(this, reader => {
98
+ if (!this._inputReceived.read(reader)) {
99
+ return true;
100
+ }
101
+ return this._getEffectiveStatus(reader)?.kind === "disconnected" && this._attempt.read(reader) === undefined && !this._connectionAttemptObserved.read(reader) && !this._autoConnectPending.read(reader);
102
+ });
95
103
  this._register(autorun(reader => {
96
- if (this._getEffectiveStatus(reader)?.kind === "connected" && this._autoConnected.read(reader) !== undefined) {
97
- this._autoConnected.set(undefined, undefined);
104
+ const session = this._session.read(reader);
105
+ const status = session?.remoteConnectionStatus?.read(reader);
106
+ if (status?.kind === "connecting" || status?.kind === "reconnecting") {
107
+ this._connectionAttemptObserved.set(true, undefined);
108
+ }
109
+ if (status?.kind === "connected") {
110
+ transaction(tx => {
111
+ this._autoConnected.set(undefined, tx);
112
+ this._connectionAttemptObserved.set(false, tx);
113
+ if (this._attempt.read(reader)?.kind === "failed") {
114
+ this._attempt.set(undefined, tx);
115
+ }
116
+ });
98
117
  }
99
118
  if (!this._autoConnectPending.read(reader)) {
100
119
  return;
101
120
  }
102
- const session = this._session.read(reader);
103
121
  this._logService.info(
104
122
  `[SessionRemoteConnection] auto-connect triggered for ${session?.providerId}`
105
123
  );
@@ -112,6 +130,8 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
112
130
  transaction(tx => {
113
131
  this._session.set(session, tx);
114
132
  this._attempt.set(undefined, tx);
133
+ this._connectionAttemptObserved.set(false, tx);
134
+ this._inputReceived.set(false, tx);
115
135
  this._autoConnected.set(undefined, tx);
116
136
  this._connectAttempted.set(undefined, tx);
117
137
  });
@@ -167,6 +187,24 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
167
187
  }
168
188
  void this._runConnect(session, statusBefore, () => provider.connect());
169
189
  }
190
+ connectOnInput() {
191
+ const session = this._session.get();
192
+ if (!session || session.isArchived.get()) {
193
+ return;
194
+ }
195
+ const connectionAttemptObserved = this._connectionAttemptObserved.get();
196
+ transaction(tx => {
197
+ this._inputReceived.set(true, tx);
198
+ if (connectionAttemptObserved) {
199
+ this._connectAttempted.set(session, tx);
200
+ }
201
+ });
202
+ if (connectionAttemptObserved || session.remoteConnectionStatus?.get().kind !== "disconnected" || this._autoConnected.get() === session || this._attempt.get() !== undefined) {
203
+ return;
204
+ }
205
+ this._autoConnected.set(session, undefined);
206
+ this.connect();
207
+ }
170
208
  async _runConnect(session, statusBefore, connect) {
171
209
  try {
172
210
  await connect();
@@ -210,19 +248,19 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
210
248
  if (provider && isAgentHostProvider(provider) && provider.connectionLabels) {
211
249
  return provider.connectionLabels;
212
250
  }
213
- const hostLabel = provider?.label ?? ( localize(3037, "The remote host"));
251
+ const hostLabel = provider?.label ?? ( localize(3438, "The remote host"));
214
252
  return {
215
- unavailableTitle: ( localize(3038, "Cannot Connect to {0}", hostLabel)),
216
- unavailableDescription: ( localize(3039, "Cannot reach {0}.", hostLabel)),
217
- unavailable: ( localize(3039, "Cannot reach {0}.", hostLabel)),
218
- connectingTitle: ( localize(3040, "Connecting to {0}", hostLabel)),
219
- connectingDescription: ( localize(3041, "Starting {0}.", hostLabel)),
220
- connecting: ( localize(3042, "Waiting for agent host connection...")),
221
- reconnecting: ( localize(3043, "Reconnecting to {0}...", hostLabel)),
222
- reconnectingIn: seconds => ( localize(3044, "Reconnecting to {0} in {1}s", hostLabel, seconds)),
223
- incompatibleTitle: ( localize(3045, "Cannot Connect to {0}", hostLabel)),
253
+ unavailableTitle: ( localize(3439, "Cannot Connect to {0}", hostLabel)),
254
+ unavailableDescription: ( localize(3440, "Cannot reach {0}.", hostLabel)),
255
+ unavailable: ( localize(3440, "Cannot reach {0}.", hostLabel)),
256
+ connectingTitle: ( localize(3441, "Connecting to {0}", hostLabel)),
257
+ connectingDescription: ( localize(3442, "Starting {0}.", hostLabel)),
258
+ connecting: ( localize(3443, "Waiting for agent host connection...")),
259
+ reconnecting: ( localize(3444, "Reconnecting to {0}...", hostLabel)),
260
+ reconnectingIn: seconds => ( localize(3445, "Reconnecting to {0} in {1}s", hostLabel, seconds)),
261
+ incompatibleTitle: ( localize(3446, "Cannot Connect to {0}", hostLabel)),
224
262
  incompatible: ( localize(
225
- 3046,
263
+ 3447,
226
264
  "{0} is incompatible with this version of Visual Studio Code.",
227
265
  hostLabel
228
266
  ))
@@ -246,7 +284,7 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
246
284
  }
247
285
  const status = this._getEffectiveStatus(reader);
248
286
  const provider = this._sessionsProvidersService.getProvider(session.providerId);
249
- const hostLabel = provider?.label ?? ( localize(3037, "The remote host"));
287
+ const hostLabel = provider?.label ?? ( localize(3438, "The remote host"));
250
288
  const labels = this._getConnectionLabels(provider);
251
289
  if (status?.kind === "connected") {
252
290
  return undefined;
@@ -268,10 +306,15 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
268
306
  const attempt = this._attempt.read(reader);
269
307
  const startedFromStoppedHost = autoConnectPending || (attempt?.kind === "active" && attempt.session === session && attempt.statusBefore?.kind === "disconnected" && attempt.statusBefore.reason === SessionRemoteConnectionFailureReason.HostNotRunning);
270
308
  if (progressMessage || autoConnectPending || status?.kind === "connecting") {
309
+ const showConnectionLog = provider && isAgentHostProvider(provider) ? provider.showConnectionLog : undefined;
271
310
  return {
272
311
  title: labels.connectingTitle,
273
312
  description: labels.connectingDescription,
274
313
  progress: progressMessage ?? labels.connecting,
314
+ detail: showConnectionLog ? {
315
+ label: ( localize(3448, "Show Log")),
316
+ run: () => showConnectionLog().catch(onUnexpectedError)
317
+ } : undefined,
275
318
  autoConnect: startedFromStoppedHost ? autoConnect : undefined
276
319
  };
277
320
  }
@@ -280,10 +323,10 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
280
323
  }
281
324
  if (status.reason === SessionRemoteConnectionFailureReason.HostNotRunning) {
282
325
  return {
283
- title: ( localize(3047, "Unable to Connect to {0}", hostLabel)),
284
- description: ( localize(3048, "{0} is not running.", hostLabel)),
326
+ title: ( localize(3449, "Unable to Connect to {0}", hostLabel)),
327
+ description: ( localize(3450, "{0} is not running.", hostLabel)),
285
328
  action: provider && isAgentHostProvider(provider) && provider.connect ? {
286
- label: ( localize(3049, "Start {0}", hostLabel)),
329
+ label: ( localize(3451, "Start {0}", hostLabel)),
287
330
  run: () => this.connect()
288
331
  } : undefined,
289
332
  autoConnect
@@ -305,7 +348,7 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
305
348
  }
306
349
  const status = this._getEffectiveStatus(reader);
307
350
  const provider = this._sessionsProvidersService.getProvider(session.providerId);
308
- const hostLabel = provider?.label ?? ( localize(3037, "The remote host"));
351
+ const hostLabel = provider?.label ?? ( localize(3438, "The remote host"));
309
352
  const labels = this._getConnectionLabels(provider);
310
353
  const progressMessage = this._getRemoteHostConnectProgress(session, status, labels, reader);
311
354
  if (progressMessage || this._autoConnectPending.read(reader) || status?.kind === "connecting") {
@@ -330,7 +373,7 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
330
373
  message: seconds === undefined ? labels.reconnecting : labels.reconnectingIn(seconds),
331
374
  ariaLabel: labels.reconnecting,
332
375
  action: seconds !== undefined && provider && isAgentHostProvider(provider) && provider.reconnectNow ? {
333
- label: ( localize(3050, "Try Now")),
376
+ label: ( localize(3452, "Try Now")),
334
377
  run: () => provider.reconnectNow?.()
335
378
  } : undefined
336
379
  } : undefined;
@@ -338,9 +381,9 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
338
381
  if (status.reason === SessionRemoteConnectionFailureReason.HostNotRunning) {
339
382
  return {
340
383
  icon: Codicon.debugDisconnect,
341
- message: ( localize(3048, "{0} is not running.", hostLabel)),
384
+ message: ( localize(3450, "{0} is not running.", hostLabel)),
342
385
  action: provider && isAgentHostProvider(provider) && provider.connect ? {
343
- label: ( localize(3049, "Start {0}", hostLabel)),
386
+ label: ( localize(3451, "Start {0}", hostLabel)),
344
387
  run: () => this.connect()
345
388
  } : undefined
346
389
  };
@@ -355,7 +398,7 @@ let SessionRemoteConnection = class SessionRemoteConnection extends Disposable {
355
398
  };
356
399
  }
357
400
  _connectActionLabel(session, reader) {
358
- return this._connectAttempted.read(reader) === session ? ( localize(3051, "Retry")) : ( localize(3052, "Connect"));
401
+ return this._connectAttempted.read(reader) === session ? ( localize(3453, "Retry")) : ( localize(3454, "Connect"));
359
402
  }
360
403
  };
361
404
  SessionRemoteConnection = ( __decorate([( __param(0, ISessionsProvidersService)), ( __param(1, ILogService))], SessionRemoteConnection));
@@ -2,14 +2,17 @@ import { ISerializableView, IViewSize } from "@codingame/monaco-vscode-api/vscod
2
2
  import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
3
3
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
4
4
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
5
+ import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
6
+ import { IAgentsWindowDraft } from "@codingame/monaco-vscode-api/vscode/vs/platform/window/common/window";
5
7
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
6
8
  import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
7
9
  import { IThemeService } from "@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service";
8
10
  import { IActiveSession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement";
9
11
  import { IChat } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
10
- import { IChatViewOptions, ISelectWorkspaceOptions, WorkspaceSelectionResult } from "@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/chatView";
12
+ import { IChatViewOptions, ISelectNoWorkspaceOptions, ISelectWorkspaceOptions, WorkspaceSelectionResult } from "@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/chatView";
11
13
  import { ISessionChangesStatsCache } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionChangesStatsCache.service";
12
14
  import { IChatViewFactory } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/chatView/browser/chatViewFactory.service";
15
+ import { ISessionGridView } from "./sessionGridLayout.js";
13
16
  /**
14
17
  * Options passed to {@link SessionView.openSession}. Extends the chat view
15
18
  * options so they can be forwarded to the new-chat views the host creates.
@@ -25,7 +28,7 @@ export interface ISessionViewOptions extends IChatViewOptions {
25
28
  * renders the session's chats as a grid of groups. The header content shares the
26
29
  * chat's centered, width-capped content band.
27
30
  */
28
- export declare class SessionView extends Disposable implements ISerializableView {
31
+ export declare class SessionView extends Disposable implements ISerializableView, ISessionGridView {
29
32
  private readonly _chatViewFactory;
30
33
  private readonly themeService;
31
34
  private readonly _changesStatsCache;
@@ -41,10 +44,12 @@ export declare class SessionView extends Disposable implements ISerializableView
41
44
  private readonly _header;
42
45
  private readonly _groupsView;
43
46
  private readonly _standaloneView;
47
+ private _preparationView;
44
48
  private readonly _floatingToolbar;
45
49
  private readonly _centeredContentContainer;
46
50
  private readonly _contentContainer;
47
51
  private _lastLayout;
52
+ private _lastContentLayout;
48
53
  private _openSessionDisposables;
49
54
  private _currentSession;
50
55
  private _hasOpenedSession;
@@ -60,14 +65,21 @@ export declare class SessionView extends Disposable implements ISerializableView
60
65
  /** Whether this leaf is visible within the part's internal grid. */
61
66
  private _isLeafVisible;
62
67
  private readonly _sessionObs;
68
+ private readonly _isVisibleObs;
69
+ readonly pickerVisibility: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").IObservableWithChange<import("@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionPickerVisibility").ISessionPickerVisibility, void>;
63
70
  constructor(_chatViewFactory: IChatViewFactory, instantiationService: IInstantiationService, contextKeyService: IContextKeyService, themeService: IThemeService, _changesStatsCache: ISessionChangesStatsCache);
64
71
  openSession(session: IActiveSession | undefined, options: ISessionViewOptions): void;
65
72
  private _showSessionGroups;
73
+ private get _visibleStandaloneView();
66
74
  private _handleContextKeys;
67
75
  layout(width: number, height: number, top: number, left: number): void;
76
+ layoutContainer(width: number, height: number, top: number, left: number): void;
77
+ layoutContents(): void;
68
78
  private _layoutChildren;
69
79
  toJSON(): object;
70
80
  focus(): void;
81
+ focusWorkspacePicker(): void;
82
+ focusHarnessPicker(): void;
71
83
  /**
72
84
  * Starts an inline rename of the session title in the header. Returns
73
85
  * `false` when the header cannot host it (e.g. this view is hidden or the
@@ -75,12 +87,18 @@ export declare class SessionView extends Disposable implements ISerializableView
75
87
  * rename affordance.
76
88
  */
77
89
  startTitleEditing(): boolean;
90
+ startFocusedChatTitleEditing(): boolean;
91
+ startChatTitleEditing(chatResource: URI): boolean;
78
92
  getFocusedChat(): IChat | undefined;
93
+ getActiveChat(): IChat | undefined;
94
+ toggleActiveChatPin(): void;
95
+ closeChatGroup(chatResource: URI): Promise<boolean>;
79
96
  getSession(): IActiveSession | undefined;
80
97
  selectWorkspace(folderUri: URI, options?: ISelectWorkspaceOptions): WorkspaceSelectionResult;
81
- selectNoWorkspace(): void;
82
- /** Opens the given chat in a group beside the active one ("open to the side"). */
83
- openChatToSide(resource: URI): Promise<void>;
98
+ applyDraft(draft: IAgentsWindowDraft, folderUri: URI | undefined, options: ISelectWorkspaceOptions, token: CancellationToken): Promise<WorkspaceSelectionResult>;
99
+ selectNoWorkspace(options?: ISelectNoWorkspaceOptions): void;
100
+ /** Opens the given chat beside a reference chat, or the active group ("open to the side"). */
101
+ openChatToSide(resource: URI, referenceChatResource?: URI): Promise<void>;
84
102
  /** Places a freshly created chat (e.g. a side chat) into its own group beside the current one. */
85
103
  splitChatToSide(resource: URI): void;
86
104
  focusAdjacentChatGroup(direction: "previous" | "next"): void;
@@ -122,4 +140,5 @@ export declare class SessionView extends Disposable implements ISerializableView
122
140
  private get _isVisible();
123
141
  private _updateVisibility;
124
142
  private _applyActiveSessionStyles;
143
+ dispose(): void;
125
144
  }
@@ -1,16 +1,17 @@
1
1
 
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
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
4
5
  import * as sessionView from './media/sessionView.css';
5
- import { $, size } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
+ import { $, isAncestorOfActiveElement, size } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
7
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
7
- import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
+ import { Disposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
9
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
9
10
  import { ServiceCollection } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/serviceCollection';
10
11
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
11
12
  import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
12
13
  import { ChatGroupsView } from './chatGroupsView.js';
13
- import { SessionHeader, SessionViewFloatingToolbar } from './sessionHeader.js';
14
+ import { SessionHeader } from './sessionHeader.js';
14
15
  import { SessionContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionContext';
15
16
  import { ISessionContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionContext.service';
16
17
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
@@ -20,8 +21,11 @@ import { setActiveSessionContextKeys } from '../../services/sessions/common/sess
20
21
  import { ISessionChangesStatsCache } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionChangesStatsCache.service';
21
22
  import { applySessionViewThemeColors } from './sessionBarStyles.js';
22
23
  import { IChatViewFactory } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/chatView/browser/chatViewFactory.service';
23
- import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
24
+ import { noSessionPickerVisibility, SessionPickerVisibilityContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionPickerVisibility';
25
+ import { disposableObservableValue, observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
26
+ import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
24
27
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
28
+ import { SessionViewFloatingToolbar } from './sessionHeaderBar.js';
25
29
 
26
30
  var SessionView_1;
27
31
  registerCss(sessionView, 0);
@@ -53,7 +57,7 @@ let SessionView = class SessionView extends Disposable {
53
57
  this.maximumHeight = Number.POSITIVE_INFINITY;
54
58
  this._onDidChange = this._register(( new Emitter()));
55
59
  this.onDidChange = this._onDidChange.event;
56
- this._standaloneView = this._register(( new MutableDisposable()));
60
+ this._standaloneView = this._register(disposableObservableValue(this, undefined));
57
61
  this._openSessionDisposables = this._register(( new DisposableStore()));
58
62
  this._hasOpenedSession = false;
59
63
  this._isGridLayout = false;
@@ -61,8 +65,22 @@ let SessionView = class SessionView extends Disposable {
61
65
  this._isPartVisible = true;
62
66
  this._isLeafVisible = true;
63
67
  this._sessionObs = observableValue(this, undefined);
68
+ this._isVisibleObs = observableValue(this, true);
69
+ this.pickerVisibility = derived(
70
+ this,
71
+ reader => this._isVisibleObs.read(reader) && !this._sessionObs.read(reader)?.preparationProgress?.read(reader) ? this._standaloneView.read(reader)?.pickerVisibility.read(reader) ?? noSessionPickerVisibility : noSessionPickerVisibility
72
+ );
73
+ this.element.setAttribute("role", "region");
74
+ this._register(autorun(reader => {
75
+ const session = this._sessionObs.read(reader);
76
+ this.element.setAttribute("aria-label", session ? ( localize(3455, "Session: {0}", session.title.read(reader))) : ( localize(3456, "New Session")));
77
+ }));
64
78
  const scopedContextKeyService = this._scopedContextKeyService = this._register(contextKeyService.createScoped(this.element));
65
79
  this._sessionIsMaximizedKey = SessionIsMaximizedContext.bindTo(scopedContextKeyService);
80
+ const pickerVisibilityContextKeys = this._register(( new SessionPickerVisibilityContextKeys(scopedContextKeyService)));
81
+ this._register(autorun(
82
+ reader => pickerVisibilityContextKeys.set(this.pickerVisibility.read(reader))
83
+ ));
66
84
  this._scopedInstantiationService = this._register(instantiationService.createChild(( new ServiceCollection(
67
85
  [IContextKeyService, scopedContextKeyService],
68
86
  [ISessionContext, ( new SessionContext(this._sessionObs))]
@@ -100,8 +118,10 @@ let SessionView = class SessionView extends Disposable {
100
118
  }));
101
119
  this._register(autorun(reader => {
102
120
  const session = this._sessionObs.read(reader);
103
- const tabsReplaceHeader = this._groupsView.groupCount.read(reader) === 1 && (session?.isCreated.read(reader) ?? false) && (session?.shouldShowChatTabs.read(reader) ?? false);
104
- this._header.setVisible(!tabsReplaceHeader);
121
+ const groupCount = this._groupsView.groupCount.read(reader);
122
+ const showChatAsSessionView = this._groupsView.showChatAsSessionView.read(reader);
123
+ const tabsReplaceHeader = groupCount === 1 && (session?.isCreated.read(reader) ?? false) && !showChatAsSessionView && (session?.shouldShowChatTabs.read(reader) ?? false);
124
+ this._header.setVisible(!tabsReplaceHeader && !(showChatAsSessionView && groupCount > 1));
105
125
  this._groupsView.setSingleGroupTabsReplaceHeader(tabsReplaceHeader);
106
126
  this.element.classList.toggle("tabs-replace-header", tabsReplaceHeader);
107
127
  }));
@@ -110,6 +130,10 @@ let SessionView = class SessionView extends Disposable {
110
130
  if (this._hasOpenedSession && this._currentSession === session) {
111
131
  return;
112
132
  }
133
+ options = {
134
+ ...options,
135
+ hostVisible: this._isVisibleObs
136
+ };
113
137
  this._hasOpenedSession = true;
114
138
  this._currentSession = session;
115
139
  this._sessionObs.set(session, undefined);
@@ -118,19 +142,56 @@ let SessionView = class SessionView extends Disposable {
118
142
  this._header.setSession(session);
119
143
  if (session && !session.isCreated.get()) {
120
144
  this._groupsView.setSession(undefined, options);
121
- let view = this._standaloneView.value;
145
+ let view = this._standaloneView.get();
122
146
  if (!view || view.kind !== "newSession") {
123
147
  view = this._chatViewFactory.createNewChatView(false, options, this._scopedInstantiationService);
124
- this._standaloneView.value = view;
148
+ this._standaloneView.set(view, undefined);
125
149
  }
126
150
  if (view.element.parentElement !== this._contentContainer) {
127
151
  this._contentContainer.replaceChildren(view.element);
128
152
  }
129
153
  view.setActive(this._isActive);
130
154
  view.setVisible(this._isVisible);
155
+ let restoreComposerFocus = false;
156
+ const hasPreparationProgress = derived(reader => !!session.preparationProgress?.read(reader));
131
157
  this._openSessionDisposables.add(autorun(reader => {
132
- if (session.isCreated.read(reader) && this._currentSession === session) {
158
+ if (this._currentSession !== session) {
159
+ return;
160
+ }
161
+ if (session.isCreated.read(reader)) {
162
+ const moveFocus = restoreComposerFocus || isAncestorOfActiveElement(view.element);
133
163
  this._showSessionGroups(session, options);
164
+ if (moveFocus) {
165
+ this._groupsView.focus();
166
+ }
167
+ } else if (session.isNewSessionRequestInProgress?.read(reader) && hasPreparationProgress.read(reader)) {
168
+ const moveFocus = isAncestorOfActiveElement(view.element);
169
+ view.setVisible(false);
170
+ reader.store.add(toDisposable(() => {
171
+ restoreComposerFocus = !!this._preparationView && isAncestorOfActiveElement(this._preparationView.element);
172
+ this._preparationView = undefined;
173
+ }));
174
+ const preparationView = reader.store.add(this._chatViewFactory.createChatView(this._scopedInstantiationService));
175
+ this._preparationView = preparationView;
176
+ preparationView.setChat(session.mainChat.read(reader), session.sessionId, session);
177
+ preparationView.setActive(this._isActive);
178
+ preparationView.setVisible(this._isVisible);
179
+ this._contentContainer.replaceChildren(preparationView.element);
180
+ this._layoutChildren();
181
+ if (moveFocus) {
182
+ preparationView.focus();
183
+ }
184
+ } else {
185
+ if (view.element.parentElement !== this._contentContainer) {
186
+ this._contentContainer.replaceChildren(view.element);
187
+ }
188
+ view.setActive(this._isActive);
189
+ view.setVisible(this._isVisible);
190
+ this._layoutChildren();
191
+ if (restoreComposerFocus) {
192
+ view.focus();
193
+ restoreComposerFocus = false;
194
+ }
134
195
  }
135
196
  }));
136
197
  } else if (session) {
@@ -138,7 +199,7 @@ let SessionView = class SessionView extends Disposable {
138
199
  } else {
139
200
  this._groupsView.setSession(undefined, options);
140
201
  const view = this._chatViewFactory.createNewChatView(false, options, this._scopedInstantiationService);
141
- this._standaloneView.value = view;
202
+ this._standaloneView.set(view, undefined);
142
203
  this._contentContainer.replaceChildren(view.element);
143
204
  view.setActive(this._isActive);
144
205
  view.setVisible(this._isVisible);
@@ -147,24 +208,34 @@ let SessionView = class SessionView extends Disposable {
147
208
  this._layoutChildren();
148
209
  }
149
210
  _showSessionGroups(session, options) {
150
- this._standaloneView.clear();
211
+ this._standaloneView.set(undefined, undefined);
151
212
  this._contentContainer.replaceChildren(this._groupsView.element);
152
213
  this._groupsView.setSession(session, options);
153
214
  this._layoutChildren();
154
215
  }
216
+ get _visibleStandaloneView() {
217
+ return this._preparationView ?? this._standaloneView.get();
218
+ }
155
219
  _handleContextKeys(session) {
156
220
  return autorun(reader => {
157
221
  setActiveSessionContextKeys(session, this._scopedContextKeyService, reader, this._changesStatsCache);
158
222
  });
159
223
  }
160
224
  layout(width, height, top, left) {
225
+ this.layoutContainer(width, height, top, left);
226
+ this.layoutContents();
227
+ }
228
+ layoutContainer(width, height, top, left) {
161
229
  size(this.element, width, height);
230
+ this._centeredContentContainer.style.width = `${width}px`;
162
231
  this._lastLayout = {
163
232
  width,
164
233
  height,
165
234
  top,
166
235
  left
167
236
  };
237
+ }
238
+ layoutContents() {
168
239
  this._layoutChildren();
169
240
  }
170
241
  _layoutChildren() {
@@ -178,19 +249,26 @@ let SessionView = class SessionView extends Disposable {
178
249
  left
179
250
  } = this._lastLayout;
180
251
  if (!this._isVisible || width === 0 || height === 0) {
252
+ this._lastContentLayout = undefined;
181
253
  return;
182
254
  }
183
- this._centeredContentContainer.style.width = `${width}px`;
184
255
  const barHeight = this._header.visible ? this._header.height : 0;
185
- size(this._centeredContentContainer, width, barHeight);
186
- const contentHeight = height - barHeight;
256
+ const contentHeight = Math.max(0, height - barHeight);
187
257
  const contentTop = top + barHeight;
188
- const standaloneView = this._standaloneView.value;
189
- if (standaloneView) {
190
- standaloneView.layout(width, contentHeight, contentTop, left);
191
- } else {
192
- this._groupsView.layout(width, contentHeight, contentTop, left);
258
+ const view = this._visibleStandaloneView ?? this._groupsView;
259
+ const previous = this._lastContentLayout;
260
+ if (previous?.view === view && previous.width === width && previous.height === contentHeight && previous.top === contentTop && previous.left === left) {
261
+ return;
193
262
  }
263
+ this._lastContentLayout = {
264
+ view,
265
+ width,
266
+ height: contentHeight,
267
+ top: contentTop,
268
+ left
269
+ };
270
+ size(this._centeredContentContainer, width, barHeight);
271
+ view.layout(width, contentHeight, contentTop, left);
194
272
  }
195
273
  toJSON() {
196
274
  return {
@@ -198,28 +276,52 @@ let SessionView = class SessionView extends Disposable {
198
276
  };
199
277
  }
200
278
  focus() {
201
- const standaloneView = this._standaloneView.value;
279
+ const standaloneView = this._visibleStandaloneView;
202
280
  standaloneView ? standaloneView.focus() : this._groupsView.focus();
203
281
  }
282
+ focusWorkspacePicker() {
283
+ this._visibleStandaloneView?.focusWorkspacePicker();
284
+ }
285
+ focusHarnessPicker() {
286
+ this._visibleStandaloneView?.focusHarnessPicker();
287
+ }
204
288
  startTitleEditing() {
205
289
  return this._isVisible && this._header.startTitleEditing();
206
290
  }
291
+ startFocusedChatTitleEditing() {
292
+ return this._isVisible && this._groupsView.startFocusedChatTitleEditing();
293
+ }
294
+ startChatTitleEditing(chatResource) {
295
+ return this._isVisible && this._groupsView.startChatTitleEditing(chatResource);
296
+ }
207
297
  getFocusedChat() {
208
298
  return this._groupsView.getFocusedChat();
209
299
  }
300
+ getActiveChat() {
301
+ return this._groupsView.getActiveChat();
302
+ }
303
+ toggleActiveChatPin() {
304
+ this._groupsView.toggleActiveChatPin();
305
+ }
306
+ closeChatGroup(chatResource) {
307
+ return this._groupsView.closeChatGroup(chatResource);
308
+ }
210
309
  getSession() {
211
310
  return this._currentSession;
212
311
  }
213
312
  selectWorkspace(folderUri, options) {
214
- const standaloneView = this._standaloneView.value;
313
+ const standaloneView = this._visibleStandaloneView;
215
314
  return standaloneView ? standaloneView.selectWorkspace(folderUri, options) : this._groupsView.selectWorkspace(folderUri, options);
216
315
  }
217
- selectNoWorkspace() {
218
- const standaloneView = this._standaloneView.value;
219
- standaloneView ? standaloneView.selectNoWorkspace() : this._groupsView.selectNoWorkspace();
316
+ applyDraft(draft, folderUri, options, token) {
317
+ return this._standaloneView.get()?.applyDraft(draft, folderUri, options, token) ?? Promise.resolve("notReady");
318
+ }
319
+ selectNoWorkspace(options) {
320
+ const standaloneView = this._visibleStandaloneView;
321
+ standaloneView ? standaloneView.selectNoWorkspace(options) : this._groupsView.selectNoWorkspace(options);
220
322
  }
221
- openChatToSide(resource) {
222
- return this._groupsView.openChatInNewGroup(resource);
323
+ openChatToSide(resource, referenceChatResource) {
324
+ return this._groupsView.openChatInNewGroup(resource, referenceChatResource);
223
325
  }
224
326
  splitChatToSide(resource) {
225
327
  this._groupsView.splitChatToSide(resource);
@@ -234,18 +336,18 @@ let SessionView = class SessionView extends Disposable {
234
336
  this._groupsView.moveActiveChatToAdjacentGroup(direction);
235
337
  }
236
338
  prefillInput(text) {
237
- const standaloneView = this._standaloneView.value;
339
+ const standaloneView = this._visibleStandaloneView;
238
340
  standaloneView ? standaloneView.prefillInput(text) : this._groupsView.prefillInput(text);
239
341
  }
240
342
  sendQuery(text) {
241
- const standaloneView = this._standaloneView.value;
343
+ const standaloneView = this._visibleStandaloneView;
242
344
  standaloneView ? standaloneView.sendQuery(text) : this._groupsView.sendQuery(text);
243
345
  }
244
346
  submitInput() {
245
- return this._standaloneView.value?.submitInput() ?? this._groupsView.submitInput();
347
+ return this._visibleStandaloneView?.submitInput() ?? this._groupsView.submitInput();
246
348
  }
247
349
  attach(uris) {
248
- const standaloneView = this._standaloneView.value;
350
+ const standaloneView = this._visibleStandaloneView;
249
351
  standaloneView ? standaloneView.attach(uris) : this._groupsView.attach(uris);
250
352
  }
251
353
  setMaximized(maximized) {
@@ -258,7 +360,7 @@ let SessionView = class SessionView extends Disposable {
258
360
  this._isActive = active;
259
361
  this._applyActiveSessionStyles();
260
362
  this._groupsView.setSessionActive(active);
261
- this._standaloneView.value?.setActive(active);
363
+ this._visibleStandaloneView?.setActive(active);
262
364
  }
263
365
  setVisible(visible) {
264
366
  if (this._isLeafVisible === visible) {
@@ -284,8 +386,10 @@ let SessionView = class SessionView extends Disposable {
284
386
  if (visible === wasVisible) {
285
387
  return;
286
388
  }
389
+ this._lastContentLayout = undefined;
390
+ this._isVisibleObs.set(visible, undefined);
287
391
  this._groupsView.setSessionVisible(visible);
288
- this._standaloneView.value?.setVisible(visible);
392
+ this._visibleStandaloneView?.setVisible(visible);
289
393
  if (visible) {
290
394
  this._layoutChildren();
291
395
  }
@@ -294,6 +398,12 @@ let SessionView = class SessionView extends Disposable {
294
398
  this.element.classList.toggle("modern-ui-editor-tab-group-active", this._isActive);
295
399
  applySessionViewThemeColors(this.element, this.themeService.getColorTheme(), this._isActive);
296
400
  }
401
+ dispose() {
402
+ this._lastLayout = undefined;
403
+ this._lastContentLayout = undefined;
404
+ this._isVisibleObs.set(false, undefined);
405
+ super.dispose();
406
+ }
297
407
  };
298
408
  SessionView = SessionView_1 = ( __decorate([( __param(0, IChatViewFactory)), ( __param(1, IInstantiationService)), ( __param(2, IContextKeyService)), ( __param(3, IThemeService)), ( __param(4, ISessionChangesStatsCache))], SessionView));
299
409