@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
@@ -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;
@@ -1841,7 +1841,7 @@ class Layout extends Disposable {
1841
1841
  toggleSecondarySideBar() {
1842
1842
  const visible = !this.isSecondarySideBarVisible();
1843
1843
  this.setPartHidden(!visible, Parts.AUXILIARYBAR_PART);
1844
- alert(visible ? ( localize(5595, "Secondary Side Bar shown")) : ( localize(5596, "Secondary Side Bar hidden")));
1844
+ alert(visible ? ( localize(6955, "Secondary Side Bar shown")) : ( localize(6956, "Secondary Side Bar hidden")));
1845
1845
  }
1846
1846
  isSecondarySideBarVisible() {
1847
1847
  return this.isVisible(Parts.AUXILIARYBAR_PART);
@@ -30,8 +30,6 @@ export declare class Workbench extends Layout {
30
30
  readonly onDidShutdown: Event<void>;
31
31
  constructor(parent: HTMLElement, options: IWorkbenchOptions | undefined, serviceCollection: ServiceCollection, logService: ILogService);
32
32
  protected registerErrorHandler(logService: ILogService): void;
33
- private previousUnexpectedError;
34
- protected handleUnexpectedError(error: unknown, logService: ILogService): void;
35
33
  startup(): IInstantiationService;
36
34
  protected initServices(serviceCollection: ServiceCollection): IInstantiationService;
37
35
  protected registerListeners(lifecycleService: ILifecycleService, storageService: IStorageService, configurationService: IConfigurationService, hostService: IHostService, dialogService: IDialogService): void;
@@ -6,7 +6,10 @@ import { timeout, RunOnceScheduler } from '@codingame/monaco-vscode-api/vscode/v
6
6
  import { isFirefox, isChrome, isSafari } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/browser';
7
7
  import { mark } from '@codingame/monaco-vscode-api/vscode/vs/base/common/performance';
8
8
  import { onUnexpectedError, setUnexpectedErrorHandler } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
9
+ import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
9
10
  import { isNative, isMacintosh, isWindows, isLinux, isWeb } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
11
+ import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
12
+ import { EditorExtensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
10
13
  import { getSingletonServiceDescriptors } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
11
14
  import { Parts, Position, positionToString } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService';
12
15
  import { IWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service';
@@ -24,7 +27,8 @@ import { NotificationsToasts } from '@codingame/monaco-vscode-api/vscode/vs/work
24
27
  import { setARIAContainer } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
25
28
  import { FontMeasurements } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/config/fontMeasurements';
26
29
  import { createBareFontInfoFromRawSettings } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/config/fontInfoFromSettings';
27
- import { toErrorMessage } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errorMessage';
30
+ import { createUnexpectedErrorHandler } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log';
31
+ import { WorkbenchContextKeysHandler } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/contextkeys';
28
32
  import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
29
33
  import { InstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiationService';
30
34
  import { Layout } from './layout.js';
@@ -32,6 +36,10 @@ import { IHostService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/s
32
36
  import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
33
37
  import { mainWindow } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/window';
34
38
  import { PixelRatio } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/pixelRatio';
39
+ import { WorkbenchHoverDelegate } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover';
40
+ import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
41
+ import { setHoverDelegateFactory } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
42
+ import { setBaseLayerHoverDelegate } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverDelegate2';
35
43
  import { AccessibilityProgressSignalScheduler } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/progressAccessibilitySignalScheduler';
36
44
  import { setProgressAccessibilitySignalScheduler } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/progressbar/progressAccessibilitySignal';
37
45
  import { AccessibleViewRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/browser/accessibleViewRegistry';
@@ -51,10 +59,6 @@ class Workbench extends Layout {
51
59
  this.onWillShutdown = this._onWillShutdown.event;
52
60
  this._onDidShutdown = this._register(( new Emitter()));
53
61
  this.onDidShutdown = this._onDidShutdown.event;
54
- this.previousUnexpectedError = {
55
- message: undefined,
56
- time: 0
57
- };
58
62
  mark("code/willStartWorkbench");
59
63
  this.registerErrorHandler(logService);
60
64
  this.parent.appendChild(this.mainContainer);
@@ -67,20 +71,7 @@ class Workbench extends Layout {
67
71
  onUnexpectedError(event.reason);
68
72
  event.preventDefault();
69
73
  });
70
- setUnexpectedErrorHandler(error => this.handleUnexpectedError(error, logService));
71
- }
72
- handleUnexpectedError(error, logService) {
73
- const message = toErrorMessage(error, true);
74
- if (!message) {
75
- return;
76
- }
77
- const now = Date.now();
78
- if (message === this.previousUnexpectedError.message && now - this.previousUnexpectedError.time <= 1000) {
79
- return;
80
- }
81
- this.previousUnexpectedError.time = now;
82
- this.previousUnexpectedError.message = message;
83
- logService.error(message);
74
+ setUnexpectedErrorHandler(createUnexpectedErrorHandler(logService));
84
75
  }
85
76
  startup() {
86
77
  try {
@@ -91,11 +82,21 @@ class Workbench extends Layout {
91
82
  const storageService = accessor.get(IStorageService);
92
83
  const configurationService = accessor.get(IConfigurationService);
93
84
  const hostService = accessor.get(IHostService);
85
+ const hoverService = accessor.get(IHoverService);
94
86
  const dialogService = accessor.get(IDialogService);
95
87
  const notificationService = accessor.get(INotificationService);
96
88
  const markdownRendererService = accessor.get(IMarkdownRendererService);
97
89
  markdownRendererService.setDefaultCodeBlockRenderer(instantiationService.createInstance(EditorMarkdownCodeBlockRenderer));
90
+ setHoverDelegateFactory(
91
+ (placement, enableInstantHover) => instantiationService.createInstance(WorkbenchHoverDelegate, placement, {
92
+ instantHover: enableInstantHover
93
+ }, {})
94
+ );
95
+ setBaseLayerHoverDelegate(hoverService);
98
96
  this.initLayout(accessor);
97
+ ( Registry.as(Extensions.Workbench)).start(accessor);
98
+ ( Registry.as(EditorExtensions.EditorFactory)).start(accessor);
99
+ this._register(instantiationService.createInstance(WorkbenchContextKeysHandler));
99
100
  this.registerListeners(
100
101
  lifecycleService,
101
102
  storageService,
@@ -324,7 +325,9 @@ class Workbench extends Layout {
324
325
  this._register(notificationsToasts.onDidChangeVisibility(() => {
325
326
  notificationsStatus.update(notificationsCenter.isVisible, notificationsToasts.isVisible);
326
327
  }));
327
- registerNotificationCommands(notificationsCenter, notificationsToasts, notificationService.model);
328
+ this._register(
329
+ registerNotificationCommands(notificationsCenter, notificationsToasts, notificationService.model)
330
+ );
328
331
  AccessibleViewRegistry.register(( new NotificationAccessibleView()));
329
332
  this.registerNotifications({
330
333
  onDidChangeNotificationsVisibility: Event.map(Event.any(
@@ -0,0 +1,6 @@
1
+ import { IAutomationSchedule } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automation";
2
+ /** Projects a fixed UTC schedule into local wall-clock fields using a Date.getTimezoneOffset() value. */
3
+ export declare function automationScheduleToLocal(schedule: IAutomationSchedule, timezoneOffset?: number): IAutomationSchedule;
4
+ /** Converts local wall-clock fields to fixed UTC, using the same offset as the editing session. */
5
+ export declare function automationScheduleToUTC(schedule: IAutomationSchedule, timezoneOffset?: number): IAutomationSchedule;
6
+ export declare const DAYS_OF_WEEK: readonly string[];
@@ -0,0 +1,41 @@
1
+
2
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
3
+
4
+ function automationScheduleToLocal(
5
+ schedule,
6
+ timezoneOffset = ( new Date()).getTimezoneOffset()
7
+ ) {
8
+ if (schedule.timeZone !== "UTC") {
9
+ return schedule;
10
+ }
11
+ const {
12
+ timeZone: _timeZone,
13
+ ...local
14
+ } = shiftSchedule(schedule, -timezoneOffset);
15
+ return local;
16
+ }
17
+ function automationScheduleToUTC(
18
+ schedule,
19
+ timezoneOffset = ( new Date()).getTimezoneOffset()
20
+ ) {
21
+ return schedule.timeZone === "UTC" ? schedule : {
22
+ ...shiftSchedule(schedule, timezoneOffset),
23
+ timeZone: "UTC"
24
+ };
25
+ }
26
+ function shiftSchedule(schedule, minutes) {
27
+ if (schedule.interval !== "daily" && schedule.interval !== "weekly") {
28
+ return schedule;
29
+ }
30
+ const shifted = schedule.scheduleHour * 60 + schedule.scheduleMinute + minutes;
31
+ const minuteOfDay = ((shifted % 1440) + 1440) % 1440;
32
+ return {
33
+ ...schedule,
34
+ scheduleHour: Math.floor(minuteOfDay / 60),
35
+ scheduleMinute: minuteOfDay % 60,
36
+ scheduleDay: schedule.interval === "weekly" ? ((schedule.scheduleDay + Math.floor(shifted / 1440)) % 7 + 7) % 7 : schedule.scheduleDay
37
+ };
38
+ }
39
+ const DAYS_OF_WEEK = [( localize(14828, "Sunday")), ( localize(14829, "Monday")), ( localize(14830, "Tuesday")), ( localize(14831, "Wednesday")), ( localize(14832, "Thursday")), ( localize(14833, "Friday")), ( localize(14834, "Saturday"))];
40
+
41
+ export { DAYS_OF_WEEK, automationScheduleToLocal, automationScheduleToUTC };