@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
@@ -4,6 +4,7 @@ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
4
  import { IUriIdentityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service";
5
5
  import { IActiveSession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement";
6
6
  import { IChat, ISession, SessionStatus } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
7
+ import { ISessionGridSlot } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService";
7
8
  /**
8
9
  * Wraps an {@link ISession} with an active chat observable to form an
9
10
  * {@link IActiveSession}. Delegates all {@link ISession} property accesses
@@ -62,6 +63,9 @@ export declare class VisibleSession extends Disposable implements IActiveSession
62
63
  get resource(): URI;
63
64
  get providerId(): string;
64
65
  get sessionType(): string;
66
+ get harness(): string;
67
+ get environment(): string;
68
+ get application(): IObservable<import("@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session").ISessionApplication>;
65
69
  get icon(): import("@codingame/monaco-vscode-api/vscode/vs/base/common/themables").ThemeIcon;
66
70
  get createdAt(): Date;
67
71
  get workspace(): IObservable<import("@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session").ISessionWorkspace | undefined>;
@@ -77,16 +81,17 @@ export declare class VisibleSession extends Disposable implements IActiveSession
77
81
  get status(): IObservable<SessionStatus>;
78
82
  get completedStateIcon(): IObservable<import("@codingame/monaco-vscode-api/vscode/vs/base/common/themables").ThemeIcon | undefined> | undefined;
79
83
  get changesSummary(): IObservable<import("@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session").ISessionChangesSummary | undefined> | undefined;
80
- get changesets(): IObservable<readonly import("@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session").ISessionChangeset[] | undefined>;
81
- get changes(): IObservable<readonly import("@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session").ISessionFileChange[]>;
82
84
  get artifacts(): IObservable<readonly import("@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session").ISessionArtifact[]> | undefined;
83
85
  get modelId(): IObservable<string | undefined>;
84
86
  get mode(): IObservable<{
85
87
  readonly id: string;
86
88
  readonly kind: string;
87
89
  } | undefined>;
90
+ get permissionLevel(): IObservable<string> | undefined;
91
+ get branch(): IObservable<string | undefined> | undefined;
88
92
  get loading(): IObservable<boolean>;
89
93
  get isNewSessionRequestInProgress(): IObservable<boolean> | undefined;
94
+ get preparationProgress(): IObservable<import("@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session").ISessionPreparationProgress | undefined> | undefined;
90
95
  get isArchived(): IObservable<boolean>;
91
96
  get isRead(): IObservable<boolean>;
92
97
  get description(): IObservable<import("@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent").IMarkdownString | undefined>;
@@ -120,6 +125,9 @@ export declare class VisibleSessions extends Disposable {
120
125
  private readonly _resolveInitialShownRelatedChats;
121
126
  private readonly _onSlotReplaced;
122
127
  private readonly _uriIdentityService;
128
+ private readonly _gridSlots;
129
+ getGridSlots(): readonly ISessionGridSlot[];
130
+ private transferGridSlot;
123
131
  private readonly _activeSession;
124
132
  readonly activeSession: IObservable<IActiveSession | undefined>;
125
133
  /**
@@ -200,7 +208,7 @@ export declare class VisibleSessions extends Disposable {
200
208
  * `targetSessionId` may be `undefined` to position relative to the empty
201
209
  * (new-session) slot. No-op if the target slot is not currently visible.
202
210
  */
203
- insertAt(session: ISession | undefined, targetSessionId: string | undefined, side: "left" | "right", activate?: boolean): void;
211
+ insertAt(session: ISession | undefined, targetSessionId: string | undefined, side: "left" | "right" | "up" | "down", activate?: boolean): void;
204
212
  /**
205
213
  * Atomically (re)build the entire grid from a persisted snapshot.
206
214
  *
@@ -219,6 +227,7 @@ export declare class VisibleSessions extends Disposable {
219
227
  restoreGrid(slots: ReadonlyArray<{
220
228
  readonly session: ISession | undefined;
221
229
  readonly sticky: boolean;
230
+ readonly gridId?: string;
222
231
  }>, activeIndex: number): void;
223
232
  /**
224
233
  * The grid slot state of a currently visible session (or of the empty slot
@@ -285,7 +294,7 @@ export declare class VisibleSessions extends Disposable {
285
294
  * for the old session is disposed; a fresh wrapper is created for the
286
295
  * updated session. No-op if `session` is not currently in the grid.
287
296
  */
288
- updateSession(session: ISession, updatedSession: ISession): void;
297
+ updateSession(session: ISession, updatedSession: ISession, preserveFocus?: boolean): void;
289
298
  /**
290
299
  * Create a transient {@link ISession} that mirrors the given session but
291
300
  * exposes a different {@link ISession.resource}. The visibility model's
@@ -4,6 +4,8 @@ import { Disposable, DisposableMap } from '@codingame/monaco-vscode-api/vscode/v
4
4
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
5
5
  import { IUriIdentityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service';
6
6
  import { ChatOriginKind, SessionStatus, ChatInteractivity } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
7
+ import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
8
+ import { Direction } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid';
7
9
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
8
10
  import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
9
11
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
@@ -150,6 +152,15 @@ class VisibleSession extends Disposable {
150
152
  get sessionType() {
151
153
  return this._session.sessionType;
152
154
  }
155
+ get harness() {
156
+ return this._session.harness;
157
+ }
158
+ get environment() {
159
+ return this._session.environment;
160
+ }
161
+ get application() {
162
+ return this._session.application;
163
+ }
153
164
  get icon() {
154
165
  return this._session.icon;
155
166
  }
@@ -195,12 +206,6 @@ class VisibleSession extends Disposable {
195
206
  get changesSummary() {
196
207
  return this._session.changesSummary;
197
208
  }
198
- get changesets() {
199
- return this._session.changesets;
200
- }
201
- get changes() {
202
- return this._session.changes;
203
- }
204
209
  get artifacts() {
205
210
  return this._session.artifacts;
206
211
  }
@@ -210,12 +215,21 @@ class VisibleSession extends Disposable {
210
215
  get mode() {
211
216
  return this._activeChatMode;
212
217
  }
218
+ get permissionLevel() {
219
+ return this._session.permissionLevel;
220
+ }
221
+ get branch() {
222
+ return this._session.branch;
223
+ }
213
224
  get loading() {
214
225
  return this._session.loading;
215
226
  }
216
227
  get isNewSessionRequestInProgress() {
217
228
  return this._session.isNewSessionRequestInProgress;
218
229
  }
230
+ get preparationProgress() {
231
+ return this._session.preparationProgress;
232
+ }
219
233
  get isArchived() {
220
234
  return this._session.isArchived;
221
235
  }
@@ -255,6 +269,15 @@ class ResourceOverrideSession {
255
269
  get sessionType() {
256
270
  return this._session.sessionType;
257
271
  }
272
+ get harness() {
273
+ return this._session.harness;
274
+ }
275
+ get environment() {
276
+ return this._session.environment;
277
+ }
278
+ get application() {
279
+ return this._session.application;
280
+ }
258
281
  get icon() {
259
282
  return this._session.icon;
260
283
  }
@@ -300,12 +323,6 @@ class ResourceOverrideSession {
300
323
  get changesSummary() {
301
324
  return this._session.changesSummary;
302
325
  }
303
- get changes() {
304
- return this._session.changes;
305
- }
306
- get changesets() {
307
- return this._session.changesets;
308
- }
309
326
  get artifacts() {
310
327
  return this._session.artifacts;
311
328
  }
@@ -315,12 +332,21 @@ class ResourceOverrideSession {
315
332
  get mode() {
316
333
  return this._session.mode;
317
334
  }
335
+ get permissionLevel() {
336
+ return this._session.permissionLevel;
337
+ }
338
+ get branch() {
339
+ return this._session.branch;
340
+ }
318
341
  get loading() {
319
342
  return this._session.loading;
320
343
  }
321
344
  get isNewSessionRequestInProgress() {
322
345
  return this._session.isNewSessionRequestInProgress;
323
346
  }
347
+ get preparationProgress() {
348
+ return this._session.preparationProgress;
349
+ }
324
350
  get isArchived() {
325
351
  return this._session.isArchived;
326
352
  }
@@ -345,6 +371,25 @@ class ResourceOverrideSession {
345
371
  }
346
372
  const NO_RECENT = Symbol("no-recent");
347
373
  let VisibleSessions = class VisibleSessions extends Disposable {
374
+ getGridSlots() {
375
+ return (this._visibleList.length ? this._visibleList : [undefined]).map(id => {
376
+ let slot = this._gridSlots.get(id);
377
+ if (!slot) {
378
+ slot = {
379
+ id: generateUuid()
380
+ };
381
+ this._gridSlots.set(id, slot);
382
+ }
383
+ return slot;
384
+ });
385
+ }
386
+ transferGridSlot(from, to) {
387
+ const slot = this._gridSlots.get(from);
388
+ this._gridSlots.delete(from);
389
+ if (slot) {
390
+ this._gridSlots.set(to, slot);
391
+ }
392
+ }
348
393
  constructor(
349
394
  _resolveInitialChat,
350
395
  _resolveInitialClosedChats,
@@ -358,6 +403,9 @@ let VisibleSessions = class VisibleSessions extends Disposable {
358
403
  this._resolveInitialShownRelatedChats = _resolveInitialShownRelatedChats;
359
404
  this._onSlotReplaced = _onSlotReplaced;
360
405
  this._uriIdentityService = _uriIdentityService;
406
+ this._gridSlots = ( new Map([[undefined, {
407
+ id: "initial"
408
+ }]]));
361
409
  this._activeSession = observableValue(this, undefined);
362
410
  this.activeSession = this._activeSession;
363
411
  this._activePreserveFocus = observableValue(this, false);
@@ -388,6 +436,7 @@ let VisibleSessions = class VisibleSessions extends Disposable {
388
436
  replaceSlot = this._findLastNonSticky();
389
437
  }
390
438
  if (replaceSlot !== NO_RECENT) {
439
+ this.transferGridSlot(replaceSlot, targetId);
391
440
  const idx = this._visibleList.indexOf(replaceSlot);
392
441
  this._visibleList.splice(idx, 1, targetId);
393
442
  if (replaceSlot !== undefined) {
@@ -399,6 +448,9 @@ let VisibleSessions = class VisibleSessions extends Disposable {
399
448
  }
400
449
  }
401
450
  } else {
451
+ if (!this._visibleList.length) {
452
+ this.transferGridSlot(undefined, targetId);
453
+ }
402
454
  this._visibleList.push(targetId);
403
455
  }
404
456
  this._mostRecentNonStickySlot = targetId;
@@ -413,12 +465,27 @@ let VisibleSessions = class VisibleSessions extends Disposable {
413
465
  return visibleSession;
414
466
  }
415
467
  insertAt(session, targetSessionId, side, activate = true) {
468
+ if (!this._visibleList.length && targetSessionId === undefined) {
469
+ this._visibleList.push(undefined);
470
+ }
416
471
  const id = session?.sessionId;
417
472
  const targetIdx = this._visibleList.indexOf(targetSessionId);
418
473
  if (targetIdx < 0) {
419
474
  return;
420
475
  }
421
- let destIdx = side === "left" ? targetIdx : targetIdx + 1;
476
+ if (id === targetSessionId) {
477
+ return;
478
+ }
479
+ const reference = this.getGridSlots()[targetIdx].id;
480
+ const previous = this._gridSlots.get(id);
481
+ this._gridSlots.set(id, {
482
+ id: previous?.id ?? generateUuid(),
483
+ placement: {
484
+ reference,
485
+ direction: side === "left" ? Direction.Left : side === "right" ? Direction.Right : side === "up" ? Direction.Up : Direction.Down
486
+ }
487
+ });
488
+ let destIdx = side === "left" || side === "up" ? targetIdx : targetIdx + 1;
422
489
  const currentIdx = this._visibleList.indexOf(id);
423
490
  if (currentIdx >= 0) {
424
491
  if (currentIdx !== destIdx && currentIdx + 1 !== destIdx) {
@@ -457,6 +524,14 @@ let VisibleSessions = class VisibleSessions extends Disposable {
457
524
  sticky
458
525
  } = slots[i];
459
526
  const id = session?.sessionId;
527
+ if (this._visibleList.includes(id)) {
528
+ continue;
529
+ }
530
+ if (slots[i].gridId) {
531
+ this._gridSlots.set(id, {
532
+ id: slots[i].gridId
533
+ });
534
+ }
460
535
  this._visibleList.push(id);
461
536
  if (session) {
462
537
  const wrapper = this._getOrCreateVisibleSession(session);
@@ -484,6 +559,12 @@ let VisibleSessions = class VisibleSessions extends Disposable {
484
559
  });
485
560
  }
486
561
  getSlot(sessionId) {
562
+ if (!this._visibleList.length && sessionId === undefined) {
563
+ return {
564
+ index: 0,
565
+ sticky: false
566
+ };
567
+ }
487
568
  const index = this._visibleList.indexOf(sessionId);
488
569
  return index < 0 ? undefined : {
489
570
  index,
@@ -521,6 +602,7 @@ let VisibleSessions = class VisibleSessions extends Disposable {
521
602
  return undefined;
522
603
  }
523
604
  this._visibleList.splice(idx, 1, id);
605
+ this.transferGridSlot(slotId, id);
524
606
  if (slotId !== undefined) {
525
607
  this._stickyIds.delete(slotId);
526
608
  this._wrappers.deleteAndDispose(slotId);
@@ -596,7 +678,7 @@ let VisibleSessions = class VisibleSessions extends Disposable {
596
678
  openChat(session, chat) {
597
679
  this._wrappers.get(session.sessionId)?.openChat(chat);
598
680
  }
599
- updateSession(session, updatedSession) {
681
+ updateSession(session, updatedSession, preserveFocus = false) {
600
682
  const fromId = session.sessionId;
601
683
  if (!this._visibleList.includes(fromId)) {
602
684
  return;
@@ -609,7 +691,7 @@ let VisibleSessions = class VisibleSessions extends Disposable {
609
691
  transaction(tsx => {
610
692
  const visibleSession = this._getOrCreateVisibleSession(updatedSession);
611
693
  if (wasActive) {
612
- this._setActiveSession(visibleSession, false, tsx);
694
+ this._setActiveSession(visibleSession, preserveFocus, tsx);
613
695
  }
614
696
  this._refresh(tsx);
615
697
  });
@@ -625,6 +707,7 @@ let VisibleSessions = class VisibleSessions extends Disposable {
625
707
  }
626
708
  const idx = this._visibleList.indexOf(fromId);
627
709
  if (idx >= 0) {
710
+ this.transferGridSlot(fromId, toId);
628
711
  this._visibleList.splice(idx, 1, toId);
629
712
  }
630
713
  if (this._stickyIds.delete(fromId)) {
@@ -680,6 +763,13 @@ let VisibleSessions = class VisibleSessions extends Disposable {
680
763
  return changed;
681
764
  }
682
765
  _refresh(tsx) {
766
+ const ids = this._visibleList.length ? this._visibleList : [undefined];
767
+ for (const id of ( this._gridSlots.keys())) {
768
+ if (!ids.includes(id)) {
769
+ this._gridSlots.delete(id);
770
+ }
771
+ }
772
+ this.getGridSlots();
683
773
  const wrappers = [];
684
774
  for (const id of this._visibleList) {
685
775
  if (id === undefined) {
@@ -1,8 +1,8 @@
1
1
 
2
2
  import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
3
- import { SessionHasSideChatsContext, SessionActiveChatIsDeletableContext, SessionActiveChatIsClosableContext, SessionHasMultipleOpenChatsContext, SessionShouldShowChatTabsContext, SessionHasMultipleCommittedChatsContext, SessionIsStickyContext, SessionIsCreatedContext, IsQuickChatSessionContext, SessionHasWorkspaceContext, SessionHasIssuesContext, SessionHasPullRequestContext, SessionHasCachedChangesContext, SessionHasChangesContext, SessionHasGitRepositoryContext, SessionWorkspaceIsVirtualContext, SessionSupportsDeleteContext, SessionSupportsRenameContext, SessionSupportsSideChatContext, SessionSupportsForkContext, SessionSupportsMultipleChatsContext, SessionIsReadContext, SessionIsActiveContext, SessionIsArchivedContext, SessionTypeContext, SessionProviderIdContext, SessionIdContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
4
- import { isActiveSessionStatus, SessionStatus, ChatOriginKind, getChatCapabilities } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
5
- import { readSessionChangesStats } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionChangesStatsCache';
3
+ import { SessionActiveChatHasSideChatsContext, SessionActiveChatResourceContext, SessionActiveChatIsUntitledContext, SessionActiveChatIsDeletableContext, SessionActiveChatCanArchiveContext, SessionActiveChatIsClosableContext, SessionHasMultipleOpenChatsContext, SessionShouldShowChatTabsContext, SessionHasMultipleCommittedChatsContext, SessionIsStickyContext, SessionIsCreatedContext, IsQuickChatSessionContext, SessionHasWorkspaceContext, SessionHasIssuesContext, SessionHasPullRequestContext, SessionHasCachedChangesContext, SessionHasChangesContext, SessionHasGitRepositoryContext, SessionWorkspaceIsVirtualContext, SessionSupportsDeleteContext, SessionSupportsRenameContext, SessionSupportsSideChatContext, SessionSupportsForkContext, SessionSupportsMultipleChatsContext, SessionIsReadContext, SessionIsActiveContext, SessionIsArchivedContext, SessionTypeContext, SessionProviderIdContext, SessionIdContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
4
+ import { isActiveSessionStatus, SessionStatus, ChatOriginKind, getChatCapabilities, isSideChatOf } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
5
+ import { readSessionChangesStats, readChatChangesStats } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionChangesStatsCache';
6
6
 
7
7
  const boundKeysByService = ( new WeakMap());
8
8
  function getBoundKeys(contextKeyService) {
@@ -34,21 +34,24 @@ function getBoundKeys(contextKeyService) {
34
34
  shouldShowChatTabs: SessionShouldShowChatTabsContext.bindTo(contextKeyService),
35
35
  hasMultipleOpenChats: SessionHasMultipleOpenChatsContext.bindTo(contextKeyService),
36
36
  activeChatIsClosable: SessionActiveChatIsClosableContext.bindTo(contextKeyService),
37
+ activeChatCanArchive: SessionActiveChatCanArchiveContext.bindTo(contextKeyService),
37
38
  activeChatIsDeletable: SessionActiveChatIsDeletableContext.bindTo(contextKeyService),
38
- hasSideChats: SessionHasSideChatsContext.bindTo(contextKeyService)
39
+ activeChatIsUntitled: SessionActiveChatIsUntitledContext.bindTo(contextKeyService),
40
+ activeChatResource: SessionActiveChatResourceContext.bindTo(contextKeyService),
41
+ activeChatHasSideChats: SessionActiveChatHasSideChatsContext.bindTo(contextKeyService)
39
42
  };
40
43
  boundKeysByService.set(contextKeyService, keys);
41
44
  }
42
45
  return keys;
43
46
  }
44
- function setSessionContextKeys(session, contextKeyService, reader, changesStatsCache) {
47
+ function setSessionContextKeysUnbuffered(session, contextKeyService, reader, changesStatsCache) {
45
48
  const keys = getBoundKeys(contextKeyService);
46
49
  keys.sessionId.set(session?.sessionId ?? "");
47
50
  keys.providerId.set(session?.providerId ?? "");
48
51
  keys.type.set(session?.sessionType ?? "");
49
52
  keys.isArchived.set(session?.isArchived.read(reader) ?? false);
50
53
  keys.isActive.set(session ? isActiveSessionStatus(session.status.read(reader)) : false);
51
- keys.isRead.set(session?.isRead.read(reader) ?? true);
54
+ keys.isRead.set(session?.mainChat.read(reader).isRead.read(reader) ?? true);
52
55
  const capabilities = session?.capabilities.read(reader);
53
56
  keys.supportsMultipleChats.set(capabilities?.supportsMultipleChats ?? false);
54
57
  keys.supportsFork.set(capabilities?.supportsFork ?? false);
@@ -61,15 +64,11 @@ function setSessionContextKeys(session, contextKeyService, reader, changesStatsC
61
64
  session?.hasGitRepository?.read(reader) ?? workspace?.folders.some(folder => folder.gitRepository !== undefined) ?? false
62
65
  );
63
66
  const worktreePending = session?.worktreePending?.read(reader) ?? false;
64
- const defaultChangeset = session?.changesets.read(reader)?.find(c => c.isDefault.read(reader));
65
- let insertions = 0;
66
- let deletions = 0;
67
- for (const change of defaultChangeset?.changes.read(reader) ?? session?.changes.read(reader) ?? []) {
68
- insertions += change.insertions;
69
- deletions += change.deletions;
70
- }
71
- keys.hasChanges.set(!worktreePending && (insertions > 0 || deletions > 0));
72
- const changesReported = session ? readSessionChangesStats(session, reader) !== undefined : true;
67
+ const changesStats = session ? readSessionChangesStats(session, reader) : undefined;
68
+ keys.hasChanges.set(
69
+ !worktreePending && !!changesStats && (changesStats.insertions > 0 || changesStats.deletions > 0)
70
+ );
71
+ const changesReported = changesStats !== undefined;
73
72
  const cachedFiles = !changesReported && session ? changesStatsCache?.get(session.sessionId, reader)?.files ?? 0 : 0;
74
73
  keys.hasCachedChanges.set(!worktreePending && cachedFiles > 0);
75
74
  const pullRequest = session?.workspace.read(reader)?.folders[0]?.gitRepository?.gitHubInfo.read(reader)?.pullRequest;
@@ -80,24 +79,44 @@ function setSessionContextKeys(session, contextKeyService, reader, changesStatsC
80
79
  keys.isQuickChat.set(!!session && (session.isQuickChat?.read(reader) ?? false));
81
80
  }
82
81
  function setActiveSessionContextKeys(session, contextKeyService, reader, changesStatsCache) {
83
- setSessionContextKeys(session, contextKeyService, reader, changesStatsCache);
84
- const keys = getBoundKeys(contextKeyService);
85
- keys.isCreated.set(session?.isCreated.read(reader) ?? false);
86
- keys.sticky.set(session?.sticky.read(reader) ?? false);
87
- const committedChatCount = session?.chats.read(reader).reduce(
88
- (count, chat) => chat.status.read(reader) === SessionStatus.Untitled || chat.origin?.kind === ChatOriginKind.Tool ? count : count + 1,
89
- 0
90
- ) ?? 0;
91
- keys.hasMultipleCommittedChats.set(committedChatCount > 1);
92
- keys.shouldShowChatTabs.set(session?.shouldShowChatTabs.read(reader) ?? false);
93
- keys.hasMultipleOpenChats.set((session?.visibleChatTabs.read(reader).length ?? 0) > 1);
94
- const activeChat = session?.activeChat.read(reader);
95
- const mainResource = session?.mainChat.read(reader).resource;
96
- const isNonMainChat = !!activeChat && !!mainResource && !isEqual(activeChat.resource, mainResource);
97
- keys.activeChatIsClosable.set(isNonMainChat);
98
- keys.activeChatIsDeletable.set(!!activeChat && getChatCapabilities(activeChat, session, reader).canDelete);
99
- const allChats = session?.chats.read(reader) ?? [];
100
- keys.hasSideChats.set(( allChats.some(chat => chat.origin?.kind === ChatOriginKind.SideChat)));
82
+ contextKeyService.bufferChangeEvents(() => {
83
+ setSessionContextKeysUnbuffered(session, contextKeyService, reader, changesStatsCache);
84
+ const keys = getBoundKeys(contextKeyService);
85
+ keys.isCreated.set(session?.isCreated.read(reader) ?? false);
86
+ keys.sticky.set(session?.sticky.read(reader) ?? false);
87
+ const focusedChat = session?.activeChat.read(reader);
88
+ const activeChatStats = focusedChat ? readChatChangesStats(focusedChat, reader) : undefined;
89
+ const worktreePending = session?.worktreePending?.read(reader) ?? false;
90
+ keys.hasChanges.set(
91
+ !worktreePending && !!activeChatStats && (activeChatStats.insertions > 0 || activeChatStats.deletions > 0)
92
+ );
93
+ const mainChat = session?.mainChat?.read(reader);
94
+ const isMainChat = mainChat && focusedChat && isEqual(mainChat.resource, focusedChat.resource);
95
+ const cachedFiles = activeChatStats === undefined && isMainChat && session ? changesStatsCache?.get(session.sessionId, reader)?.files ?? 0 : 0;
96
+ keys.hasCachedChanges.set(!worktreePending && cachedFiles > 0);
97
+ const committedChatCount = session?.chats.read(reader).reduce(
98
+ (count, chat) => chat.status.read(reader) === SessionStatus.Untitled || chat.origin?.kind === ChatOriginKind.Tool ? count : count + 1,
99
+ 0
100
+ ) ?? 0;
101
+ keys.hasMultipleCommittedChats.set(committedChatCount > 1);
102
+ keys.shouldShowChatTabs.set(session?.shouldShowChatTabs.read(reader) ?? false);
103
+ keys.hasMultipleOpenChats.set((session?.visibleChatTabs.read(reader).length ?? 0) > 1);
104
+ const activeChat = session?.activeChat.read(reader);
105
+ const mainResource = session?.mainChat.read(reader).resource;
106
+ keys.activeChatResource.set(activeChat?.resource.toString() ?? "");
107
+ const isNonMainChat = !!activeChat && !!mainResource && !isEqual(mainResource, activeChat.resource);
108
+ keys.activeChatIsClosable.set(isNonMainChat);
109
+ keys.activeChatCanArchive.set(
110
+ !!activeChat && !(activeChat.isArchived?.read(reader) ?? false) && getChatCapabilities(activeChat, session, reader).canArchive
111
+ );
112
+ keys.activeChatIsDeletable.set(!!activeChat && getChatCapabilities(activeChat, session, reader).canDelete);
113
+ keys.activeChatIsUntitled.set(activeChat?.status.read(reader) === SessionStatus.Untitled);
114
+ const workspace = activeChat?.workspace.read(reader);
115
+ keys.workspaceIsVirtual.set(workspace?.isVirtualWorkspace ?? true);
116
+ keys.hasWorkspace.set(!!workspace?.label);
117
+ const allChats = session?.chats.read(reader) ?? [];
118
+ keys.activeChatHasSideChats.set(!!activeChat && ( allChats.some(chat => isSideChatOf(chat, activeChat.resource))));
119
+ });
101
120
  }
102
121
 
103
- export { setActiveSessionContextKeys, setSessionContextKeys };
122
+ export { setActiveSessionContextKeys };
@@ -20,7 +20,7 @@ let SessionsWorkspaceFolderLabelService = class SessionsWorkspaceFolderLabelServ
20
20
  this.labelService = labelService;
21
21
  }
22
22
  getWorkspaceFolderLabel(workspaceFolder, verbose) {
23
- const workspace = this.sessionsService.activeSession.get()?.workspace.get();
23
+ const workspace = this.sessionsService.activeSession.get()?.activeChat.get().workspace.get();
24
24
  const folder = workspace?.folders.find(folder => this.isWorkspaceFolder(folder, workspaceFolder)) ?? this.sessionsManagementService.getSessions().flatMap(session => session.workspace.get()?.folders ?? []).find(folder => this.isWorkspaceFolder(folder, workspaceFolder));
25
25
  if (folder) {
26
26
  const repositoryName = folder.name;
@@ -3,15 +3,13 @@ import { Direction, IViewSize } from "@codingame/monaco-vscode-api/vscode/vs/bas
3
3
  import { CodeWindow } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/window";
4
4
  import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
5
5
  import { Disposable, DisposableMap, DisposableStore, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
6
- import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
7
- import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
8
- import { StorageScope, StorageTarget } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage";
9
- import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
10
- import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
11
- import { IPartVisibilityChangeEvent, MULTI_WINDOW_PARTS, PanelAlignment, Parts, Position, SINGLE_WINDOW_PARTS } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService";
12
- import { AbstractLayout } from "@codingame/monaco-vscode-api/vscode/vs/workbench/browser/abstractlayout";
6
+ import { IUntypedEditorInput } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor";
7
+ import { Position, Parts, PanelAlignment, MULTI_WINDOW_PARTS, SINGLE_WINDOW_PARTS, IPartVisibilityChangeEvent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService";
8
+ import { IWorkbenchLayoutService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service";
9
+ import { ServicesAccessor, IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
10
+ import { IPath } from "@codingame/monaco-vscode-api/vscode/vs/platform/window/common/window";
11
+ import { EditorGroupLayout } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService";
13
12
  import { Part } from "@codingame/monaco-vscode-api/vscode/vs/workbench/browser/part";
14
- export * from "@codingame/monaco-vscode-api/vscode/vs/workbench/browser/abstractlayout";
15
13
  export interface ILayoutRuntimeState {
16
14
  activeContainerId: number;
17
15
  mainWindowFullscreen: boolean;
@@ -25,9 +23,40 @@ export interface ILayoutRuntimeState {
25
23
  readonly transitionDisposables: DisposableMap<string, IDisposable>;
26
24
  };
27
25
  }
26
+ export interface IEditorToOpen {
27
+ readonly editor: IUntypedEditorInput;
28
+ readonly viewColumn?: number;
29
+ }
30
+ export interface ILayoutInitializationState {
31
+ readonly views: {
32
+ readonly defaults: string[] | undefined;
33
+ readonly containerToRestore: {
34
+ sideBar?: string;
35
+ panel?: string;
36
+ auxiliaryBar?: string;
37
+ };
38
+ };
39
+ readonly editor: {
40
+ readonly restoreEditors: boolean;
41
+ readonly editorsToOpen: Promise<IEditorToOpen[]>;
42
+ };
43
+ readonly layout?: {
44
+ readonly editors?: EditorGroupLayout;
45
+ };
46
+ }
47
+ export interface IPathToOpen extends IPath {
48
+ readonly viewColumn?: number;
49
+ }
50
+ export interface IInitialEditorsState {
51
+ readonly filesToOpenOrCreate?: IPathToOpen[];
52
+ readonly filesToDiff?: IPathToOpen[];
53
+ readonly filesToMerge?: IPathToOpen[];
54
+ readonly layout?: EditorGroupLayout;
55
+ }
28
56
  export declare const TITLE_BAR_SETTINGS: string[];
29
- export declare abstract class Layout extends AbstractLayout {
57
+ export declare abstract class Layout extends Disposable implements IWorkbenchLayoutService {
30
58
  protected readonly parent: HTMLElement;
59
+ private readonly layoutOptions?;
31
60
  readonly _serviceBrand: undefined;
32
61
  private readonly _onDidChangeZenMode;
33
62
  readonly onDidChangeZenMode: Event<boolean>;
@@ -118,7 +147,7 @@ export declare abstract class Layout extends AbstractLayout {
118
147
  constructor(parent: HTMLElement, layoutOptions?: {
119
148
  resetLayout?: boolean;
120
149
  customEditorRestore?: (accessor: ServicesAccessor, defaultLayout: boolean) => Promise<void>;
121
- });
150
+ } | undefined);
122
151
  protected initLayout(accessor: ServicesAccessor): void;
123
152
  private registerLayoutListeners;
124
153
  private onMenubarToggled;
@@ -136,14 +165,20 @@ export declare abstract class Layout extends AbstractLayout {
136
165
  private setSideBarPosition;
137
166
  private updateWindowBorder;
138
167
  private initLayoutState;
168
+ private getDefaultLayoutViews;
169
+ private shouldRestoreEditors;
139
170
  protected willRestoreEditors(): boolean;
171
+ private resolveEditorsToOpen;
172
+ private _openedDefaultEditors;
173
+ get openedDefaultEditors(): boolean;
174
+ private getInitialEditorsState;
140
175
  private readonly whenReadyPromise;
141
176
  protected readonly whenReady: Promise<void>;
142
177
  private readonly whenRestoredPromise;
143
178
  readonly whenRestored: Promise<void>;
144
179
  private restored;
145
180
  isRestored(): boolean;
146
- protected restoreParts(accessor: ServicesAccessor): void;
181
+ protected restoreParts(instantiationService: IInstantiationService): void;
147
182
  private openViewContainer;
148
183
  registerPart(part: Part): IDisposable;
149
184
  protected getPart(key: Parts): Part;
@@ -213,62 +248,3 @@ export declare abstract class Layout extends AbstractLayout {
213
248
  private createGridDescriptor;
214
249
  dispose(): void;
215
250
  }
216
- interface IWorkbenchLayoutStateKey {
217
- readonly name: string;
218
- readonly runtime: boolean;
219
- readonly defaultValue: unknown;
220
- readonly scope: StorageScope;
221
- readonly target: StorageTarget;
222
- readonly zenModeIgnore?: boolean;
223
- }
224
- type StorageKeyType = string | boolean | number | object;
225
- declare abstract class WorkbenchLayoutStateKey<T extends StorageKeyType> implements IWorkbenchLayoutStateKey {
226
- readonly name: string;
227
- readonly scope: StorageScope;
228
- readonly target: StorageTarget;
229
- defaultValue: T;
230
- abstract readonly runtime: boolean;
231
- constructor(name: string, scope: StorageScope, target: StorageTarget, defaultValue: T);
232
- }
233
- declare class RuntimeStateKey<T extends StorageKeyType> extends WorkbenchLayoutStateKey<T> {
234
- readonly zenModeIgnore?: boolean | undefined;
235
- readonly runtime = true;
236
- constructor(name: string, scope: StorageScope, target: StorageTarget, defaultValue: T, zenModeIgnore?: boolean | undefined);
237
- }
238
- declare class InitializationStateKey<T extends StorageKeyType> extends WorkbenchLayoutStateKey<T> {
239
- readonly runtime = false;
240
- }
241
- interface ILayoutStateChangeEvent<T extends StorageKeyType> {
242
- readonly key: RuntimeStateKey<T>;
243
- readonly value: T;
244
- }
245
- interface ILayoutStateLoadConfiguration {
246
- readonly mainContainerDimension: IDimension;
247
- readonly resetLayout: boolean;
248
- }
249
- export declare class LayoutStateModel extends Disposable {
250
- private readonly storageService;
251
- private readonly configurationService;
252
- private readonly contextService;
253
- static readonly STORAGE_PREFIX = "workbench.";
254
- private readonly _onDidChangeState;
255
- readonly onDidChangeState: Event<ILayoutStateChangeEvent<StorageKeyType>>;
256
- private readonly stateCache;
257
- private readonly isNew;
258
- constructor(storageService: IStorageService, configurationService: IConfigurationService, contextService: IWorkspaceContextService);
259
- private updateStateFromLegacySettings;
260
- private updateLegacySettingsFromState;
261
- load(configuration: ILayoutStateLoadConfiguration): void;
262
- private applyOverrides;
263
- private applyAuxiliaryBarMaximizedOverride;
264
- private applyAuxiliaryBarHiddenOverride;
265
- save(workspace: boolean, global: boolean): void;
266
- getInitializationValue<T extends StorageKeyType>(key: InitializationStateKey<T>): T;
267
- setInitializationValue<T extends StorageKeyType>(key: InitializationStateKey<T>, value: T): void;
268
- getRuntimeValue<T extends StorageKeyType>(key: RuntimeStateKey<T>, fallbackToSetting?: boolean): T;
269
- setRuntimeValue<T extends StorageKeyType>(key: RuntimeStateKey<T>, value: T): void;
270
- private isActivityBarHidden;
271
- private setRuntimeValueAndFire;
272
- private saveKeyToStorage;
273
- private loadKeyFromStorage;
274
- }