@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
@@ -14,7 +14,7 @@
14
14
 
15
15
  /* Shared inset for the header content, transcript, and composer. */
16
16
  .session-view {
17
- --session-view-content-horizontal-padding: var(--vscode-spacing-size320);
17
+ --session-view-content-horizontal-padding: var(--vscode-spacing-size240);
18
18
  }
19
19
 
20
20
  .session-view .session-view-centered-content {
@@ -23,85 +23,82 @@
23
23
  box-sizing: border-box;
24
24
  }
25
25
 
26
- /* Transitions apply to both active and inactive states so controls fade
27
- * smoothly in either direction. Only declared when the user has not requested
28
- * reduced motion so we never need to unset them. */
29
26
  @media (prefers-reduced-motion: no-preference) {
30
- .session-view .chat-composite-bar.session-header-bar,
31
- .session-view .interactive-session .interactive-list,
32
- .session-view .interactive-session .interactive-list .chat-tool-invocation-part,
33
- .session-view .interactive-session .interactive-list .chat-thinking-box,
34
- .session-view .interactive-session .interactive-list .chat-footer-toolbar,
35
- .session-view .interactive-session .chat-input-toolbars > .chat-input-toolbar,
36
- .session-view .interactive-session .chat-secondary-toolbar,
37
- .session-view .interactive-session .chat-attachments-container,
38
- .session-view .interactive-session .interactive-input-followups {
27
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view .chat-composite-bar.session-header-bar,
28
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view .interactive-session .interactive-list,
29
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view .interactive-session .interactive-list .chat-tool-invocation-part,
30
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view .interactive-session .interactive-list .chat-thinking-box,
31
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view .interactive-session .interactive-list .chat-footer-toolbar,
32
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view .interactive-session .chat-input-toolbars > .chat-input-toolbar,
33
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view .interactive-session .chat-secondary-toolbar,
34
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view .interactive-session .chat-attachments-container,
35
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view .interactive-session .interactive-input-followups {
39
36
  transition: opacity 0.15s ease;
40
37
  }
41
38
 
42
- .session-view .interactive-session .chat-input-toolbars > .chat-execute-toolbar {
39
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view .interactive-session .chat-input-toolbars > .chat-execute-toolbar {
43
40
  transition: filter 0.15s ease, opacity 0.15s ease;
44
41
  }
45
42
  }
46
43
 
47
- /* Strongly recede the whole header (title, meta, toolbar) for inactive sessions
48
- * so the active session's header stands out, while keeping it legible. */
49
- .session-view:not(.is-active) .chat-composite-bar.session-header-bar {
44
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .chat-composite-bar.session-header-bar {
50
45
  opacity: 0.6;
51
46
  }
52
47
 
53
- /* Recede the chat transcript for inactive sessions so it reads as quiet but
54
- * stays legible at a glance. The list as a whole is only lightly dimmed so the
55
- * agent's text responses remain readable; non-text content (tool calls) is
56
- * dimmed further below to keep the visual hierarchy. */
57
- .session-view:not(.is-active) .interactive-session .interactive-list {
48
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .interactive-session .interactive-list {
58
49
  opacity: 0.9;
59
50
  }
60
51
 
61
- /* Push tool calls / invocations, thinking sections, and the per-response footer
62
- * toolbar further back than plain text responses in inactive sessions. Opacity
63
- * nests multiplicatively, so this stacks on top of the list's 0.9 for an
64
- * effective ~0.54 while the plain text stays at 0.9. */
65
- .session-view:not(.is-active) .interactive-session .interactive-list .chat-tool-invocation-part,
66
- .session-view:not(.is-active) .interactive-session .interactive-list .chat-thinking-box,
67
- .session-view:not(.is-active) .interactive-session .interactive-list .chat-footer-toolbar {
52
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .interactive-session .interactive-list .chat-tool-invocation-part,
53
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .interactive-session .interactive-list .chat-thinking-box,
54
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .interactive-session .interactive-list .chat-footer-toolbar {
68
55
  opacity: 0.6;
69
56
  }
70
57
 
71
- /* Fully fade out the in-input controls (attach, mode/model/harness pickers,
72
- * etc.) for inactive sessions so only the send button remains as a quiet
73
- * affordance. */
74
- .session-view:not(.is-active) .interactive-session .chat-input-toolbars > .chat-input-toolbar {
58
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .interactive-session .chat-input-toolbars > .chat-input-toolbar {
75
59
  opacity: 0;
76
60
  visibility: hidden;
77
61
  pointer-events: none;
78
62
  }
79
63
 
80
- /* Fade out the controls that sit below the input box (secondary toolbar,
81
- * attachments row and followups) so the inactive input reads as quiet. */
82
- .session-view:not(.is-active) .interactive-session .chat-secondary-toolbar,
83
- .session-view:not(.is-active) .interactive-session .chat-attachments-container,
84
- .session-view:not(.is-active) .interactive-session .interactive-input-followups {
64
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .interactive-session .chat-secondary-toolbar,
65
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .interactive-session .chat-attachments-container,
66
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .interactive-session .interactive-input-followups {
85
67
  opacity: 0;
86
68
  pointer-events: none;
87
69
  }
88
70
 
89
- /* Fade the chat input editor (including placeholder/draft text) for inactive sessions. */
90
- .session-view:not(.is-active) .interactive-session .chat-editor-container {
71
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .interactive-session .chat-editor-container {
91
72
  opacity: 0.6;
92
73
  }
93
74
 
94
- /* Fully desaturate the in-flight chat-input border beam in inactive sessions so
95
- * it matches the muted treatment of the rest of the inactive input controls.
96
- * Relative color syntax zeroes the saturation channel while preserving hue and
97
- * lightness — unlike mixing toward a fixed gray, this keeps the accent's
98
- * lightness intact so high-contrast themes (white/black accents) still read. */
99
- .session-view:not(.is-active) .interactive-session .chat-input-container.working {
75
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .interactive-session .chat-input-container.working {
100
76
  --chat-input-working-border-color1: hsl(from var(--vscode-chat-inputWorkingBorderColor1) h 0% l);
101
77
  }
102
78
 
103
- /* Desaturate the send button so it reads as muted while still discoverable. */
104
- .session-view:not(.is-active) .interactive-session .chat-input-toolbars > .chat-execute-toolbar {
79
+ .monaco-workbench:not(.session-comparison-grid-active) .session-view:not(.is-active) .interactive-session .chat-input-toolbars > .chat-execute-toolbar {
105
80
  filter: grayscale(1);
106
81
  opacity: 0.6;
107
82
  }
83
+
84
+ .monaco-workbench.session-comparison-grid-active .part.sessionspart.multiple-sessions-visible .session-view.is-active::after {
85
+ content: '';
86
+ position: absolute;
87
+ inset: 0;
88
+ box-sizing: border-box;
89
+ border: var(--vscode-strokeThickness) solid var(--vscode-focusBorder);
90
+ pointer-events: none;
91
+ /* Sticky transcript rows and their hover controls paint as high as 100. */
92
+ z-index: 101;
93
+ }
94
+
95
+ :is(.hc-black, .hc-light).monaco-workbench.session-comparison-grid-active .part.sessionspart.multiple-sessions-visible .session-view.is-active::after {
96
+ border-color: var(--vscode-contrastActiveBorder);
97
+ }
98
+
99
+ .monaco-workbench.session-comparison-hide-inactive-inputs
100
+ .part.sessionspart.multiple-sessions-visible
101
+ .session-view:not(.is-active)
102
+ .interactive-session > .interactive-input-part {
103
+ display: none;
104
+ }
@@ -13,6 +13,21 @@
13
13
  isolation: isolate;
14
14
  }
15
15
 
16
+ .session-grid,
17
+ .session-grid-leaf {
18
+ width: 100%;
19
+ height: 100%;
20
+ }
21
+
22
+ .session-grid-leaf {
23
+ box-sizing: border-box;
24
+ }
25
+
26
+ .session-grid.session-grid-has-gaps .session-grid-leaf {
27
+ border-color: var(--vscode-agents-background);
28
+ border-style: solid;
29
+ }
30
+
16
31
  .monaco-workbench .part.sessionspart > .title,
17
32
  .monaco-workbench .part.sessionspart > .content {
18
33
  position: relative;
@@ -9,7 +9,7 @@ MenuRegistry.appendMenuItem(MenuId.MenubarMainMenu, {
9
9
  title: {
10
10
  value: "File",
11
11
  original: "File",
12
- mnemonicTitle: ( localize(2982, "&&File"))
12
+ mnemonicTitle: ( localize(3383, "&&File"))
13
13
  },
14
14
  order: 1
15
15
  });
@@ -18,7 +18,7 @@ MenuRegistry.appendMenuItem(MenuId.MenubarMainMenu, {
18
18
  title: {
19
19
  value: "Edit",
20
20
  original: "Edit",
21
- mnemonicTitle: ( localize(2983, "&&Edit"))
21
+ mnemonicTitle: ( localize(3384, "&&Edit"))
22
22
  },
23
23
  order: 2
24
24
  });
@@ -27,7 +27,7 @@ MenuRegistry.appendMenuItem(MenuId.MenubarMainMenu, {
27
27
  title: {
28
28
  value: "Selection",
29
29
  original: "Selection",
30
- mnemonicTitle: ( localize(2984, "&&Selection"))
30
+ mnemonicTitle: ( localize(3385, "&&Selection"))
31
31
  },
32
32
  order: 3
33
33
  });
@@ -36,7 +36,7 @@ MenuRegistry.appendMenuItem(MenuId.MenubarMainMenu, {
36
36
  title: {
37
37
  value: "View",
38
38
  original: "View",
39
- mnemonicTitle: ( localize(2985, "&&View"))
39
+ mnemonicTitle: ( localize(3386, "&&View"))
40
40
  },
41
41
  order: 4
42
42
  });
@@ -45,7 +45,7 @@ MenuRegistry.appendMenuItem(MenuId.MenubarMainMenu, {
45
45
  title: {
46
46
  value: "Go",
47
47
  original: "Go",
48
- mnemonicTitle: ( localize(2986, "&&Go"))
48
+ mnemonicTitle: ( localize(3387, "&&Go"))
49
49
  },
50
50
  order: 5
51
51
  });
@@ -54,7 +54,7 @@ MenuRegistry.appendMenuItem(MenuId.MenubarMainMenu, {
54
54
  title: {
55
55
  value: "Terminal",
56
56
  original: "Terminal",
57
- mnemonicTitle: ( localize(2987, "&&Terminal"))
57
+ mnemonicTitle: ( localize(3388, "&&Terminal"))
58
58
  },
59
59
  order: 7
60
60
  });
@@ -63,7 +63,7 @@ MenuRegistry.appendMenuItem(MenuId.MenubarMainMenu, {
63
63
  title: {
64
64
  value: "Help",
65
65
  original: "Help",
66
- mnemonicTitle: ( localize(2988, "&&Help"))
66
+ mnemonicTitle: ( localize(3389, "&&Help"))
67
67
  },
68
68
  order: 8
69
69
  });
@@ -72,7 +72,7 @@ MenuRegistry.appendMenuItem(MenuId.MenubarMainMenu, {
72
72
  title: {
73
73
  value: "Preferences",
74
74
  original: "Preferences",
75
- mnemonicTitle: ( localize(2989, "&&Preferences"))
75
+ mnemonicTitle: ( localize(3390, "&&Preferences"))
76
76
  },
77
77
  when: IsMacNativeContext,
78
78
  order: 9
@@ -26,7 +26,7 @@ class MobileSessionsPart extends SessionsPart {
26
26
  }
27
27
  this._lastLayout = { width, height, top, left };
28
28
  const { contentSize } = this.layoutContents(width, height);
29
- this._gridWidget?.layout(contentSize.width, contentSize.height, top, left);
29
+ this._gridWidget?.layout(contentSize.width, contentSize.height, top, left, true);
30
30
  Part.prototype.layout.call(this, width, height, top, left);
31
31
  }
32
32
  }
@@ -1,9 +1,14 @@
1
1
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
2
3
  export interface IRemoteHostUnavailableEmptyStateContent {
3
4
  readonly title: string;
4
5
  /** Omitted when the title already says everything, leaving the title and action to speak. */
5
6
  readonly description?: string;
6
7
  readonly progress?: string;
8
+ readonly detail?: {
9
+ readonly label: string;
10
+ readonly run: () => void;
11
+ };
7
12
  readonly action?: {
8
13
  readonly label: string;
9
14
  readonly run: () => void;
@@ -23,6 +28,9 @@ export declare class RemoteHostUnavailableEmptyState extends Disposable {
23
28
  private readonly _title;
24
29
  private readonly _description;
25
30
  private readonly _progress;
31
+ private readonly _detailContainer;
32
+ private readonly _detailLink;
33
+ private _detail;
26
34
  private readonly _actionContainer;
27
35
  private readonly _action;
28
36
  private readonly _actionListener;
@@ -31,7 +39,7 @@ export declare class RemoteHostUnavailableEmptyState extends Disposable {
31
39
  private readonly _autoConnect;
32
40
  private readonly _autoConnectLabel;
33
41
  private readonly _autoConnectListener;
34
- constructor();
42
+ constructor(instantiationService: IInstantiationService);
35
43
  get visible(): boolean;
36
44
  setContent(content: IRemoteHostUnavailableEmptyStateContent | undefined): void;
37
45
  focus(): void;
@@ -1,5 +1,6 @@
1
1
 
2
2
  import { registerCss } from '@codingame/monaco-vscode-api/css';
3
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
4
  import * as remoteHostUnavailableEmptyState from './media/remoteHostUnavailableEmptyState.css';
4
5
  import { $, append, addDisposableListener, EventType, EventHelper } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
5
6
  import { renderIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabels';
@@ -9,10 +10,12 @@ import { Gesture, EventType as EventType$1 } from '@codingame/monaco-vscode-api/
9
10
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
10
11
  import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
11
12
  import { defaultButtonStyles, defaultCheckboxStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
13
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
14
+ import { Link } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/browser/link';
12
15
 
13
16
  registerCss(remoteHostUnavailableEmptyState, 0);
14
- class RemoteHostUnavailableEmptyState extends Disposable {
15
- constructor() {
17
+ let RemoteHostUnavailableEmptyState = class RemoteHostUnavailableEmptyState extends Disposable {
18
+ constructor(instantiationService) {
16
19
  super();
17
20
  this._actionListener = this._register(( new MutableDisposable()));
18
21
  this._autoConnectListener = this._register(( new MutableDisposable()));
@@ -32,6 +35,14 @@ class RemoteHostUnavailableEmptyState extends Disposable {
32
35
  $("p.remote-host-unavailable-empty-state-progress.hidden")
33
36
  );
34
37
  this._progress.setAttribute("role", "status");
38
+ this._detailContainer = append(this.domNode, $(".remote-host-unavailable-empty-state-detail"));
39
+ this._detailContainer.hidden = true;
40
+ this._detailLink = this._register(instantiationService.createInstance(Link, this._detailContainer, {
41
+ label: "",
42
+ href: ""
43
+ }, {
44
+ opener: () => this._detail?.run()
45
+ }));
35
46
  this._actionContainer = append(this.domNode, $(".remote-host-unavailable-empty-state-action.hidden"));
36
47
  this._action = this._register(( new Button(this._actionContainer, {
37
48
  ...defaultButtonStyles,
@@ -63,6 +74,12 @@ class RemoteHostUnavailableEmptyState extends Disposable {
63
74
  setContent(content) {
64
75
  this._actionListener.clear();
65
76
  this._autoConnectListener.clear();
77
+ this._detail = content?.detail;
78
+ this._detailContainer.hidden = !this._detail;
79
+ this._detailLink.link = {
80
+ label: this._detail?.label ?? "",
81
+ href: ""
82
+ };
66
83
  this.domNode.classList.toggle("hidden", !content);
67
84
  if (!content) {
68
85
  this._description.textContent = "";
@@ -131,6 +148,7 @@ class RemoteHostUnavailableEmptyState extends Disposable {
131
148
  this.domNode.remove();
132
149
  super.dispose();
133
150
  }
134
- }
151
+ };
152
+ RemoteHostUnavailableEmptyState = ( __decorate([( __param(0, IInstantiationService))], RemoteHostUnavailableEmptyState));
135
153
 
136
154
  export { RemoteHostUnavailableEmptyState };
@@ -1,7 +1,7 @@
1
1
 
2
2
  import { PANEL_ACTIVE_TITLE_FOREGROUND, PANEL_INACTIVE_TITLE_FOREGROUND, PANEL_ACTIVE_TITLE_BORDER, MODERN_EDITOR_TAB_ACTIVE_BACKGROUND, MODERN_EDITOR_TAB_HOVER_BACKGROUND, MODERN_EDITOR_TAB_ACTIVE_HOVER_BACKGROUND, TAB_UNFOCUSED_ACTIVE_BACKGROUND, TAB_ACTIVE_BACKGROUND, TAB_UNFOCUSED_HOVER_BACKGROUND, TAB_HOVER_BACKGROUND } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/theme';
3
3
  import { ColorThemeData } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/themes/common/colorThemeData';
4
- import { agentsPanelBackground, activeSessionViewBackground, inactiveSessionViewBackground, activeSessionViewForeground, inactiveSessionViewForeground } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/theme';
4
+ import { agentsPanelBackground, activeSessionViewBackground, inactiveSessionViewBackground, activeSessionViewForeground, inactiveSessionViewForeground } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/agentsColors';
5
5
 
6
6
  function applySessionBarThemeColors(container, theme) {
7
7
  const bg = theme.getColor(agentsPanelBackground);
@@ -1,6 +1,8 @@
1
1
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
2
2
  import { Themable } from "@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService";
3
3
  import { IThemeService } from "@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service";
4
+ import { SessionGridDirection } from "../../services/sessions/browser/sessionsService.js";
5
+ export declare function getSessionDropDirection(x: number, y: number, width: number, height: number): SessionGridDirection;
4
6
  /**
5
7
  * Resolves an HTML element under the part's content area to the session view
6
8
  * it belongs to (if any). Returns the session id and the view's root element.
@@ -14,11 +16,10 @@ export interface ISessionDropTargetDelegate {
14
16
  /**
15
17
  * Drop target for the sessions grid. Listens for drag events over the part's
16
18
  * content area, displays a half-pane overlay on whichever session view is
17
- * being hovered, and calls into {@link ISessionsManagementService} to insert
19
+ * being hovered, and calls into {@link ISessionsService} to insert
18
20
  * or move the dragged session next to the target.
19
21
  *
20
- * Currently supports only left/right insertion; up/down and "into" drops are
21
- * not supported.
22
+ * The nearest normalized edge selects a split; the center never merges sessions.
22
23
  */
23
24
  export declare class SessionDropTarget extends Themable {
24
25
  private readonly _container;
@@ -25,9 +25,16 @@ import { EDITOR_DRAG_AND_DROP_BACKGROUND } from '@codingame/monaco-vscode-api/vs
25
25
  import { DraggedSessionIdentifier } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/dnd';
26
26
  import { ISessionsManagementService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service';
27
27
  import { ISessionsService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service';
28
+ import { onUnexpectedError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
28
29
 
29
30
  var SessionDropOverlay_1;
30
31
  registerCss(sessionDropTarget, 0);
32
+ function getSessionDropDirection(x, y, width, height) {
33
+ const horizontal = x / Math.max(1, width);
34
+ const vertical = y / Math.max(1, height);
35
+ const edge = Math.min(horizontal, 1 - horizontal, vertical, 1 - vertical);
36
+ return edge === horizontal ? "left" : edge === 1 - horizontal ? "right" : edge === vertical ? "up" : "down";
37
+ }
31
38
  let SessionDropOverlay = class SessionDropOverlay extends Themable {
32
39
  static {
33
40
  SessionDropOverlay_1 = this;
@@ -86,7 +93,7 @@ let SessionDropOverlay = class SessionDropOverlay extends Themable {
86
93
  this._hideOverlay();
87
94
  return;
88
95
  }
89
- this._positionOverlay(e.offsetX);
96
+ this._positionOverlay(e.clientX, e.clientY);
90
97
  if (this._cleanupOverlayScheduler.isScheduled()) {
91
98
  this._cleanupOverlayScheduler.cancel();
92
99
  }
@@ -95,6 +102,7 @@ let SessionDropOverlay = class SessionDropOverlay extends Themable {
95
102
  onDragEnd: () => this.dispose(),
96
103
  onDrop: e => {
97
104
  EventHelper.stop(e, true);
105
+ this._positionOverlay(e.clientX, e.clientY);
98
106
  const side = this._currentSide;
99
107
  this.dispose();
100
108
  if (side) {
@@ -127,25 +135,28 @@ let SessionDropOverlay = class SessionDropOverlay extends Themable {
127
135
  if (sessions.length === 0) {
128
136
  return;
129
137
  }
130
- const primary = sessions[0];
131
- const ordered = side === "right" ? [...sessions].reverse() : sessions;
132
- for (const session of ordered) {
133
- this._sessionsService.insertAt(session, this.targetSessionId, side, session === primary);
134
- }
138
+ void this._sessionsService.openSessionsAt(sessions, this.targetSessionId, side).catch(onUnexpectedError);
135
139
  }
136
- _positionOverlay(mousePosX) {
137
- const width = this._targetElement.clientWidth;
138
- const side = mousePosX < width / 2 ? "left" : "right";
140
+ _positionOverlay(clientX, clientY) {
141
+ const rect = this._targetElement.getBoundingClientRect();
142
+ const side = getSessionDropDirection(clientX - rect.left, clientY - rect.top, rect.width, rect.height);
139
143
  if (side === "left") {
140
144
  this._doPositionOverlay({
141
145
  left: "0",
142
146
  width: "50%"
143
147
  });
144
- } else {
148
+ } else if (side === "right") {
145
149
  this._doPositionOverlay({
146
150
  left: "50%",
147
151
  width: "50%"
148
152
  });
153
+ } else {
154
+ this._doPositionOverlay({
155
+ left: "0",
156
+ width: "100%",
157
+ top: side === "up" ? "0" : "50%",
158
+ height: "50%"
159
+ });
149
160
  }
150
161
  const overlay = assertReturnsDefined(this._overlay);
151
162
  overlay.style.opacity = "1";
@@ -155,8 +166,8 @@ let SessionDropOverlay = class SessionDropOverlay extends Themable {
155
166
  _doPositionOverlay(options) {
156
167
  const [container, overlay] = assertReturnsAllDefined(this._container, this._overlay);
157
168
  container.style.height = "100%";
158
- overlay.style.top = "0";
159
- overlay.style.height = "100%";
169
+ overlay.style.top = options.top ?? "0";
170
+ overlay.style.height = options.height ?? "100%";
160
171
  overlay.style.left = options.left;
161
172
  overlay.style.width = options.width;
162
173
  }
@@ -214,18 +225,21 @@ let SessionDropTarget = class SessionDropTarget extends Themable {
214
225
  }
215
226
  return;
216
227
  }
217
- this._updateContainer(true);
218
228
  const target = event.target;
219
229
  if (!target) {
220
230
  return;
221
231
  }
232
+ const targetView = this._delegate.findTargetView(target);
233
+ if (targetView && this._sessionTransfer.getData(DraggedSessionIdentifier.prototype)?.every(dragged => dragged.sessionId === targetView.sessionId)) {
234
+ return;
235
+ }
236
+ this._updateContainer(true);
222
237
  if (this.overlay && !this.overlay.contains(target)) {
223
238
  this._disposeOverlay();
224
239
  }
225
240
  if (this.overlay) {
226
241
  return;
227
242
  }
228
- const targetView = this._delegate.findTargetView(target);
229
243
  if (!targetView) {
230
244
  return;
231
245
  }
@@ -258,4 +272,4 @@ let SessionDropTarget = class SessionDropTarget extends Themable {
258
272
  };
259
273
  SessionDropTarget = ( __decorate([( __param(2, IThemeService)), ( __param(3, IInstantiationService))], SessionDropTarget));
260
274
 
261
- export { SessionDropTarget };
275
+ export { SessionDropTarget, getSessionDropDirection };
@@ -0,0 +1,67 @@
1
+ import { Direction, IGridStyles, ISerializedGrid, IView } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid";
2
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
3
+ import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
4
+ import { ISessionGridPlacement } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService";
5
+ export interface ISessionGridView extends IView {
6
+ /** Applies the allocated geometry without laying out descendants. */
7
+ layoutContainer(width: number, height: number, top: number, left: number): void;
8
+ /** Lays out descendants using the most recently applied geometry. */
9
+ layoutContents(gap?: number): void;
10
+ }
11
+ export interface ISessionGridEntry {
12
+ readonly id: string;
13
+ readonly view: ISessionGridView;
14
+ readonly placement?: ISessionGridPlacement;
15
+ }
16
+ /** Sessions geometry only; the caller owns membership, bindings, and view lifetime. */
17
+ export declare class SessionGridLayout extends Disposable {
18
+ private readonly scheduleLayout;
19
+ readonly element: HTMLElement;
20
+ private readonly projectionHost;
21
+ private readonly grid;
22
+ private gridLaidOut;
23
+ private readonly leaves;
24
+ private readonly placements;
25
+ private readonly _onDidChangeMaximized;
26
+ readonly onDidChangeMaximized: Event<void>;
27
+ private dimensions;
28
+ private phoneDimensions;
29
+ private phone;
30
+ private active;
31
+ private styles;
32
+ private gap;
33
+ private maximizedId;
34
+ private updatingLayout;
35
+ private flushingLayout;
36
+ private readonly pendingLayouts;
37
+ private readonly layoutFrame;
38
+ constructor(scheduleLayout?: (callback: () => void) => IDisposable);
39
+ reconcile(entries: readonly ISessionGridEntry[], active: string): void;
40
+ private orderedLeaves;
41
+ get order(): readonly string[];
42
+ get maximized(): string | undefined;
43
+ toggleMaximized(id: string): boolean | undefined;
44
+ private setMaximized;
45
+ neighbor(id: string, direction: Direction): string | undefined;
46
+ placement(id: string): ISessionGridPlacement | undefined;
47
+ resize(id: string, width: number, height: number): void;
48
+ getSize(id: string): {
49
+ width: number;
50
+ height: number;
51
+ } | undefined;
52
+ expand(id: string): void;
53
+ arrange(): void;
54
+ serialize(): ISerializedGrid | undefined;
55
+ restore(state: ISerializedGrid): void;
56
+ private setGrid;
57
+ layout(width: number, height: number, top: number, left: number, phone: boolean, gap?: number): void;
58
+ private get projectedId();
59
+ private layoutViews;
60
+ private getInsets;
61
+ private requestLayout;
62
+ private flushLayouts;
63
+ style(styles: IGridStyles): void;
64
+ private applyStyles;
65
+ private preserveFocus;
66
+ dispose(): void;
67
+ }