@codingame/monaco-vscode-workbench-service-override 37.6.1 → 38.0.1

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
@@ -11,6 +11,7 @@ import { IUriIdentityService } from '@codingame/monaco-vscode-api/vscode/vs/plat
11
11
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
12
12
  import { Queue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
13
13
  import { IWorkspaceFolderLabelService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/workspaces/common/workspaceFolderLabelService.service';
14
+ import { IHistoryService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/history/common/history.service';
14
15
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
15
16
 
16
17
  let WorkspaceFolderManagementContribution = class WorkspaceFolderManagementContribution extends Disposable {
@@ -23,7 +24,8 @@ let WorkspaceFolderManagementContribution = class WorkspaceFolderManagementContr
23
24
  workspaceContextService,
24
25
  workspaceEditingService,
25
26
  workspaceTrustManagementService,
26
- workspaceFolderLabelService
27
+ workspaceFolderLabelService,
28
+ historyService
27
29
  ) {
28
30
  super();
29
31
  this.sessionsService = sessionsService;
@@ -32,64 +34,74 @@ let WorkspaceFolderManagementContribution = class WorkspaceFolderManagementContr
32
34
  this.workspaceEditingService = workspaceEditingService;
33
35
  this.workspaceTrustManagementService = workspaceTrustManagementService;
34
36
  this.workspaceFolderLabelService = workspaceFolderLabelService;
37
+ this.historyService = historyService;
35
38
  this.queue = this._register(( new Queue()));
39
+ this._register(this.workspaceContextService.onDidChangeWorkspaceFolders(event => {
40
+ if (event.removed.length > 0) {
41
+ this.historyService.clearRecentlyOpened();
42
+ }
43
+ }));
36
44
  this._register(autorun(reader => {
37
45
  const activeSession = this.sessionsService.activeSession.read(reader);
38
- activeSession?.workspace.read(reader);
39
- this.queue.queue(() => this.updateWorkspaceFoldersForSession(activeSession));
46
+ const activeChat = activeSession?.activeChat.read(reader);
47
+ const workspace = activeChat?.workspace.read(reader);
48
+ this.queue.queue(() => this.updateWorkspaceFolders(workspace));
40
49
  }));
41
50
  }
42
- async updateWorkspaceFoldersForSession(session) {
43
- await ensureSessionWorktreesTrusted(session?.workspace.get(), this.workspaceTrustManagementService);
44
- const activeSessionFolderData = this.getActiveSessionFolderData(session);
45
- const currentRepo = this.workspaceContextService.getWorkspace().folders[0]?.uri;
46
- if (activeSessionFolderData && !(await this.isFolderMountable(session, activeSessionFolderData.uri))) {
47
- if (currentRepo) {
48
- await this.workspaceEditingService.removeFolders([currentRepo], true);
51
+ async updateWorkspaceFolders(workspace) {
52
+ await ensureSessionWorktreesTrusted(workspace, this.workspaceTrustManagementService);
53
+ const activeSessionFolders = this.getWorkspaceFolderData(workspace);
54
+ const currentFolders = this.workspaceContextService.getWorkspace().folders;
55
+ const mountable = await Promise.all(
56
+ activeSessionFolders.map(folder => this.isFolderMountable(workspace, folder.uri))
57
+ );
58
+ if (( mountable.some(isMountable => !isMountable))) {
59
+ if (currentFolders.length > 0) {
60
+ await this.workspaceEditingService.removeFolders(currentFolders.map(folder => folder.uri), true);
49
61
  }
50
62
  return;
51
63
  }
52
- if (!activeSessionFolderData) {
53
- if (currentRepo) {
54
- await this.workspaceEditingService.removeFolders([currentRepo], true);
64
+ if (activeSessionFolders.length === 0) {
65
+ if (currentFolders.length > 0) {
66
+ await this.workspaceEditingService.removeFolders(currentFolders.map(folder => folder.uri), true);
55
67
  }
56
68
  return;
57
69
  }
58
- if (!currentRepo) {
59
- await this.workspaceEditingService.addFolders([activeSessionFolderData], true);
70
+ if (currentFolders.length === 0) {
71
+ await this.workspaceEditingService.addFolders(activeSessionFolders, true);
60
72
  return;
61
73
  }
62
- if (this.uriIdentityService.extUri.isEqual(currentRepo, activeSessionFolderData.uri)) {
74
+ const foldersMatch = currentFolders.length === activeSessionFolders.length && currentFolders.every(
75
+ (folder, index) => this.uriIdentityService.extUri.isEqual(folder.uri, activeSessionFolders[index].uri) && folder.name === activeSessionFolders[index].name
76
+ );
77
+ if (foldersMatch) {
63
78
  return;
64
79
  }
65
- await this.workspaceEditingService.updateFolders(0, 1, [activeSessionFolderData], true);
80
+ await this.workspaceEditingService.updateFolders(0, currentFolders.length, activeSessionFolders, true);
66
81
  }
67
- getActiveSessionFolderData(session) {
68
- if (!session) {
69
- return undefined;
70
- }
71
- const workspace = session.workspace.get();
72
- const folder = workspace?.folders[0];
73
- if (!folder) {
74
- return undefined;
82
+ getWorkspaceFolderData(workspace) {
83
+ if (!workspace) {
84
+ return [];
75
85
  }
76
- return {
77
- uri: folder.workingDirectory,
78
- name: this.workspaceFolderLabelService.getWorkspaceFolderLabel(( new WorkspaceFolder({
86
+ return workspace.folders.map((folder, index) => {
87
+ const name = index === 0 ? workspace.label : folder.name;
88
+ return {
79
89
  uri: folder.workingDirectory,
80
- name: workspace.label,
81
- index: 0
82
- })), true) ?? workspace.label
83
- };
90
+ name: this.workspaceFolderLabelService.getWorkspaceFolderLabel(( new WorkspaceFolder({
91
+ uri: folder.workingDirectory,
92
+ name,
93
+ index
94
+ })), true) ?? name
95
+ };
96
+ });
84
97
  }
85
- async isFolderMountable(session, uri) {
86
- const workspace = session?.workspace.get();
98
+ async isFolderMountable(workspace, uri) {
87
99
  if (!workspace?.requiresWorkspaceTrust) {
88
100
  return true;
89
101
  }
90
102
  return (await this.workspaceTrustManagementService.getUriTrustInfo(uri)).trusted;
91
103
  }
92
104
  };
93
- WorkspaceFolderManagementContribution = ( __decorate([( __param(0, ISessionsService)), ( __param(1, IUriIdentityService)), ( __param(2, IWorkspaceContextService)), ( __param(3, IWorkspaceEditingService)), ( __param(4, IWorkspaceTrustManagementService)), ( __param(5, IWorkspaceFolderLabelService))], WorkspaceFolderManagementContribution));
105
+ WorkspaceFolderManagementContribution = ( __decorate([( __param(0, ISessionsService)), ( __param(1, IUriIdentityService)), ( __param(2, IWorkspaceContextService)), ( __param(3, IWorkspaceEditingService)), ( __param(4, IWorkspaceTrustManagementService)), ( __param(5, IWorkspaceFolderLabelService)), ( __param(6, IHistoryService))], WorkspaceFolderManagementContribution));
94
106
 
95
107
  export { WorkspaceFolderManagementContribution };
@@ -1,6 +1,7 @@
1
1
  import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
2
2
  import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
3
  import { IRemoteAgentHostService } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService.service";
4
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
4
5
  import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
5
6
  import { IAgentHostGroup } from "@codingame/monaco-vscode-api/vscode/vs/sessions/common/agentHostSessionsProvider";
6
7
  import { ISessionsProvidersService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service";
@@ -10,18 +11,22 @@ export declare class AgentHostFilterService extends Disposable implements IAgent
10
11
  private readonly _sessionsProvidersService;
11
12
  private readonly _remoteAgentHostService;
12
13
  private readonly _storageService;
14
+ private readonly _configurationService;
13
15
  readonly _serviceBrand: undefined;
14
16
  private readonly _onDidChange;
15
17
  readonly onDidChange: Event<void>;
16
18
  private readonly _onDidChangeDiscovering;
17
19
  readonly onDidChangeDiscovering: Event<void>;
18
20
  private _selectedHostId;
21
+ /** Last explicit choice, retained while its host has not been discovered yet. */
22
+ private _preferredHostId;
19
23
  /**
20
24
  * `true` while {@link _selectedHostId} comes from the fallback rather than
21
25
  * from the user. An automatic choice is provisional and can be replaced.
22
26
  */
23
27
  private _selectionIsAutomatic;
24
28
  private _hosts;
29
+ private _pickerHosts;
25
30
  /**
26
31
  * Discovery handlers contributed by host providers (e.g. dev tunnels).
27
32
  * {@link rediscover} fans out to every handler and waits for them to
@@ -45,17 +50,17 @@ export declare class AgentHostFilterService extends Disposable implements IAgent
45
50
  * changes so we always observe the live set.
46
51
  */
47
52
  private readonly _providerWatchers;
48
- constructor(_sessionsProvidersService: ISessionsProvidersService, _remoteAgentHostService: IRemoteAgentHostService, _storageService: IStorageService);
53
+ constructor(_sessionsProvidersService: ISessionsProvidersService, _remoteAgentHostService: IRemoteAgentHostService, _storageService: IStorageService, _configurationService: IConfigurationService);
49
54
  get selectedHostId(): string | undefined;
50
55
  get selectedHost(): IAgentHostFilterEntry | undefined;
51
56
  get hosts(): readonly IAgentHostFilterEntry[];
52
57
  get isDiscovering(): boolean;
53
- rediscover(): Promise<void>;
58
+ rediscover(): Promise<boolean>;
54
59
  registerDiscoveryHandler(handler: () => Promise<void>): IDisposable;
55
60
  registerHostGroup(group: IAgentHostGroup): IDisposable;
56
61
  setSelectedHostId(hostId: string): void;
57
- reconnect(hostId: string): void;
58
- disconnect(hostId: string): void;
62
+ reconnect(hostId: string): Promise<void>;
63
+ disconnect(hostId: string): Promise<void>;
59
64
  /**
60
65
  * Resolve a selection against the live entry list. A selection made by the
61
66
  * fallback is provisional and is replaced once a connectable entry shows
@@ -1,11 +1,13 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
- import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
3
+ import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
4
4
  import { Disposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
5
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
6
6
  import { isWeb } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
7
7
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
8
+ import { RemoteAgentHostsEnabledSettingId, getEntryAddress } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService';
8
9
  import { IRemoteAgentHostService } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService.service';
10
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
9
11
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
10
12
  import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
11
13
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
@@ -13,6 +15,7 @@ import { isAgentHostProvider } from '@codingame/monaco-vscode-api/vscode/vs/sess
13
15
  import { ISessionsProvidersService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service';
14
16
  import { AgentHostFilterConnectionStatus } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/agentHostFilter/common/agentHostFilter';
15
17
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
18
+ import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
16
19
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
17
20
 
18
21
  const STORAGE_KEY = "sessions.agentHostFilter.selectedProviderId";
@@ -47,26 +50,42 @@ function isRemoteAgentHostProvider(provider) {
47
50
  return isAgentHostProvider(p) && p.connectionStatus !== undefined && typeof p.remoteAddress === "string";
48
51
  }
49
52
  let AgentHostFilterService = class AgentHostFilterService extends Disposable {
50
- constructor(_sessionsProvidersService, _remoteAgentHostService, _storageService) {
53
+ constructor(
54
+ _sessionsProvidersService,
55
+ _remoteAgentHostService,
56
+ _storageService,
57
+ _configurationService
58
+ ) {
51
59
  super();
52
60
  this._sessionsProvidersService = _sessionsProvidersService;
53
61
  this._remoteAgentHostService = _remoteAgentHostService;
54
62
  this._storageService = _storageService;
63
+ this._configurationService = _configurationService;
55
64
  this._onDidChange = this._register(( new Emitter()));
56
65
  this.onDidChange = this._onDidChange.event;
57
66
  this._onDidChangeDiscovering = this._register(( new Emitter()));
58
67
  this.onDidChangeDiscovering = this._onDidChangeDiscovering.event;
59
68
  this._selectionIsAutomatic = false;
60
69
  this._hosts = [];
70
+ this._pickerHosts = [];
61
71
  this._discoveryHandlers = ( new Set());
62
72
  this._discoveringCount = 0;
63
73
  this._declaredGroups = ( new Map());
64
74
  this._providerWatchers = this._register(( new DisposableStore()));
65
- this._selectedHostId = this._storageService.get(STORAGE_KEY, StorageScope.PROFILE, undefined);
75
+ this._preferredHostId = this._storageService.get(STORAGE_KEY, StorageScope.PROFILE, undefined);
76
+ this._selectedHostId = this._preferredHostId;
66
77
  this._rewatchProviders();
67
78
  this._register(
68
79
  this._sessionsProvidersService.onDidChangeProviders(() => this._rewatchProviders())
69
80
  );
81
+ this._register(
82
+ this._remoteAgentHostService.onDidChangeConfiguredEntries(() => this._rewatchProviders())
83
+ );
84
+ this._register(this._configurationService.onDidChangeConfiguration(e => {
85
+ if (e.affectsConfiguration(RemoteAgentHostsEnabledSettingId)) {
86
+ this._rewatchProviders();
87
+ }
88
+ }));
70
89
  }
71
90
  get selectedHostId() {
72
91
  return this._selectedHostId;
@@ -78,21 +97,22 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
78
97
  return this._hosts.find(h => h.id === this._selectedHostId);
79
98
  }
80
99
  get hosts() {
81
- return this._hosts;
100
+ return this._pickerHosts;
82
101
  }
83
102
  get isDiscovering() {
84
103
  return this._discoveringCount > 0;
85
104
  }
86
105
  async rediscover() {
87
106
  if (this._discoveryHandlers.size === 0) {
88
- return;
107
+ return true;
89
108
  }
90
109
  this._discoveringCount++;
91
110
  if (this._discoveringCount === 1) {
92
111
  this._onDidChangeDiscovering.fire();
93
112
  }
94
113
  try {
95
- await Promise.allSettled([...this._discoveryHandlers].map(h => h().catch(() => {})));
114
+ const results = await Promise.allSettled([...this._discoveryHandlers].map(handler => handler()));
115
+ return results.every(result => result.status === "fulfilled");
96
116
  } finally {
97
117
  this._discoveringCount--;
98
118
  if (this._discoveringCount === 0) {
@@ -114,47 +134,55 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
114
134
  });
115
135
  }
116
136
  setSelectedHostId(hostId) {
117
- if (!( this._hosts.some(h => h.id === hostId))) {
137
+ if (!( this._pickerHosts.some(h => h.id === hostId))) {
118
138
  return;
119
139
  }
120
140
  const changed = hostId !== this._selectedHostId;
121
141
  this._selectedHostId = hostId;
142
+ this._preferredHostId = hostId;
122
143
  this._selectionIsAutomatic = false;
123
144
  this._persist(hostId);
124
145
  if (changed) {
125
146
  this._onDidChange.fire();
126
147
  }
127
148
  }
128
- reconnect(hostId) {
149
+ async reconnect(hostId) {
129
150
  const host = this._hosts.find(h => h.id === hostId);
130
151
  if (!host) {
131
152
  return;
132
153
  }
133
- for (const providerId of host.providerIds) {
154
+ await Promise.all(host.providerIds.map(async providerId => {
134
155
  const provider = this._sessionsProvidersService.getProvider(providerId);
135
156
  if (provider && isAgentHostProvider(provider) && provider.connect) {
136
- provider.connect().catch(() => {});
137
- continue;
157
+ await provider.connect();
158
+ return;
138
159
  }
139
160
  const address = provider && isAgentHostProvider(provider) ? provider.remoteAddress : host.address;
140
161
  if (address) {
141
162
  this._remoteAgentHostService.reconnect(address);
142
163
  }
143
- }
164
+ }));
144
165
  }
145
- disconnect(hostId) {
166
+ async disconnect(hostId) {
146
167
  const host = this._hosts.find(h => h.id === hostId);
147
168
  if (!host) {
148
169
  return;
149
170
  }
150
- for (const providerId of host.providerIds) {
171
+ await Promise.all(host.providerIds.map(async providerId => {
151
172
  const provider = this._sessionsProvidersService.getProvider(providerId);
152
173
  if (provider && isAgentHostProvider(provider) && provider.disconnect) {
153
- provider.disconnect().catch(() => {});
174
+ await provider.disconnect();
154
175
  }
155
- }
176
+ }));
156
177
  }
157
178
  _validate(hostId) {
179
+ const preferred = this._hosts.find(h => h.id === this._preferredHostId);
180
+ if (preferred) {
181
+ return {
182
+ id: preferred.id,
183
+ automatic: false
184
+ };
185
+ }
158
186
  if (this._hosts.length === 0) {
159
187
  return {
160
188
  id: undefined,
@@ -168,16 +196,21 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
168
196
  automatic: this._selectionIsAutomatic
169
197
  };
170
198
  }
171
- const connectable = this._hosts.find(h => h.connectable);
199
+ const connectable = this._pickerHosts.find(h => h.connectable);
200
+ const fallback = connectable ?? current ?? this._pickerHosts[0];
172
201
  return {
173
- id: (connectable ?? current ?? this._hosts[0]).id,
174
- automatic: true
202
+ id: fallback?.id,
203
+ automatic: fallback !== undefined
175
204
  };
176
205
  }
177
206
  _rewatchProviders() {
178
207
  this._providerWatchers.clear();
179
208
  const providers = this._sessionsProvidersService.getProviders().filter(isRemoteAgentHostProvider);
209
+ const providerLabelsChanged = observableSignalFromEvent(this, Event.any(
210
+ ...providers.map(provider => provider.onDidChangeSessionTypes ?? Event.None)
211
+ ));
180
212
  this._providerWatchers.add(autorun(reader => {
213
+ providerLabelsChanged.read(reader);
181
214
  const grouped = ( new Map());
182
215
  const entries = [];
183
216
  const groupEntry = group => {
@@ -185,13 +218,14 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
185
218
  if (!entry) {
186
219
  entry = {
187
220
  id: group.id,
188
- providerIds: [],
221
+ providerIds: group.sessionCreationProviderId && this._sessionsProvidersService.getProvider(group.sessionCreationProviderId) ? [group.sessionCreationProviderId] : [],
189
222
  label: group.label,
190
223
  grouped: true,
191
224
  address: undefined,
192
225
  icon: group.icon ?? Codicon.remote,
193
226
  status: AgentHostFilterConnectionStatus.Disconnected,
194
227
  connectable: group.connectable !== false,
228
+ sessionCreationProviderId: group.sessionCreationProviderId,
195
229
  order: group.order ?? 0
196
230
  };
197
231
  grouped.set(group.id, entry);
@@ -202,7 +236,11 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
202
236
  for (const group of ( this._declaredGroups.values())) {
203
237
  groupEntry(group);
204
238
  }
239
+ const hiddenProviderIds = ( new Set());
205
240
  for (const provider of providers) {
241
+ if (provider.isVisibleInEnvironmentPicker?.read(reader) === false) {
242
+ hiddenProviderIds.add(provider.id);
243
+ }
206
244
  const status = mapStatus(provider.connectionStatus.read(reader));
207
245
  const group = provider.hostGroup;
208
246
  if (!group) {
@@ -210,6 +248,7 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
210
248
  id: provider.id,
211
249
  providerIds: [provider.id],
212
250
  label: provider.label,
251
+ description: provider.hostDescription?.read(reader),
213
252
  grouped: false,
214
253
  address: provider.remoteAddress,
215
254
  icon: provider.icon,
@@ -223,20 +262,31 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
223
262
  entry.providerIds.push(provider.id);
224
263
  entry.status = rollupStatus([entry.status, status]);
225
264
  }
265
+ const selectedHost = this.selectedHost;
266
+ if (isWeb && selectedHost?.address && this._configurationService.getValue(RemoteAgentHostsEnabledSettingId) && selectedHost.id === this._preferredHostId && !( entries.some(entry => entry.id === selectedHost.id)) && ( this._remoteAgentHostService.configuredEntries.some(entry => getEntryAddress(entry) === selectedHost.address))) {
267
+ entries.push({
268
+ ...selectedHost,
269
+ providerIds: [...selectedHost.providerIds],
270
+ status: AgentHostFilterConnectionStatus.Disconnected,
271
+ order: 0
272
+ });
273
+ }
226
274
  entries.sort((a, b) => a.order - b.order || a.label.localeCompare(b.label));
227
275
  this._applyHosts(entries.map((
228
276
  {
229
277
  order,
230
278
  ...entry
231
279
  }
232
- ) => entry));
280
+ ) => entry), hiddenProviderIds);
233
281
  }));
234
282
  }
235
- _applyHosts(hosts) {
236
- const changed = hosts.length !== this._hosts.length || ( hosts.some(
237
- (h, i) => h.id !== this._hosts[i].id || h.label !== this._hosts[i].label || h.address !== this._hosts[i].address || h.status !== this._hosts[i].status || h.providerIds.length !== this._hosts[i].providerIds.length || ( h.providerIds.some((p, j) => p !== this._hosts[i].providerIds[j]))
283
+ _applyHosts(hosts, hiddenProviderIds) {
284
+ const pickerHosts = hosts.filter(host => !( hiddenProviderIds.has(host.id)));
285
+ const changed = pickerHosts.length !== this._pickerHosts.length || ( pickerHosts.some((host, i) => host.id !== this._pickerHosts[i].id)) || hosts.length !== this._hosts.length || ( hosts.some(
286
+ (h, i) => h.id !== this._hosts[i].id || h.label !== this._hosts[i].label || h.description !== this._hosts[i].description || h.address !== this._hosts[i].address || h.status !== this._hosts[i].status || h.sessionCreationProviderId !== this._hosts[i].sessionCreationProviderId || h.providerIds.length !== this._hosts[i].providerIds.length || ( h.providerIds.some((p, j) => p !== this._hosts[i].providerIds[j]))
238
287
  ));
239
288
  this._hosts = hosts;
289
+ this._pickerHosts = pickerHosts;
240
290
  const validated = isWeb ? this._validate(this._selectedHostId) : {
241
291
  id: undefined,
242
292
  automatic: false
@@ -254,6 +304,6 @@ let AgentHostFilterService = class AgentHostFilterService extends Disposable {
254
304
  this._storageService.store(STORAGE_KEY, hostId, StorageScope.PROFILE, StorageTarget.USER);
255
305
  }
256
306
  };
257
- AgentHostFilterService = ( __decorate([( __param(0, ISessionsProvidersService)), ( __param(1, IRemoteAgentHostService)), ( __param(2, IStorageService))], AgentHostFilterService));
307
+ AgentHostFilterService = ( __decorate([( __param(0, ISessionsProvidersService)), ( __param(1, IRemoteAgentHostService)), ( __param(2, IStorageService)), ( __param(3, IConfigurationService))], AgentHostFilterService));
258
308
 
259
309
  export { AgentHostFilterService };
@@ -1,21 +1,28 @@
1
1
  import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
- import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
2
+ import { IObservable, ITransaction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
3
  import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
4
4
  import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
5
5
  import { ICustomViewDescriptor } from "./customView.js";
6
6
  import { ICustomViewService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/customView/browser/customViewService.service";
7
+ export interface ICustomViewOpenRequest {
8
+ readonly descriptor: ICustomViewDescriptor;
9
+ readonly source: "explicit" | "history" | "restore";
10
+ }
7
11
  export declare class CustomViewService extends Disposable implements ICustomViewService {
8
12
  private readonly _logService;
9
13
  private readonly _storageService;
10
14
  readonly _serviceBrand: undefined;
11
15
  private readonly _descriptors;
12
16
  private _desiredCustomViewId;
13
- private readonly _activeCustomView;
17
+ private readonly _activeCustomViewOpen;
18
+ readonly activeCustomViewOpen: IObservable<ICustomViewOpenRequest | undefined>;
14
19
  readonly activeCustomView: IObservable<ICustomViewDescriptor | undefined>;
15
20
  constructor(_logService: ILogService, _storageService: IStorageService);
16
21
  registerCustomView(descriptor: ICustomViewDescriptor, options?: {
17
22
  readonly restore?: boolean;
18
23
  }): IDisposable;
19
- showCustomView(id: string): void;
20
- hideCustomView(): void;
24
+ showCustomView(id: string, options?: {
25
+ readonly source: "history";
26
+ }): void;
27
+ hideCustomView(tx?: ITransaction): void;
21
28
  }
@@ -8,6 +8,7 @@ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode
8
8
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
9
9
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
10
10
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
11
+ import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
11
12
 
12
13
  const ACTIVE_CUSTOM_VIEW_STORAGE_KEY = "sessions.activeCustomView";
13
14
  let CustomViewService = class CustomViewService extends Disposable {
@@ -16,8 +17,9 @@ let CustomViewService = class CustomViewService extends Disposable {
16
17
  this._logService = _logService;
17
18
  this._storageService = _storageService;
18
19
  this._descriptors = ( new Map());
19
- this._activeCustomView = observableValue(this, undefined);
20
- this.activeCustomView = this._activeCustomView;
20
+ this._activeCustomViewOpen = observableValue(this, undefined);
21
+ this.activeCustomViewOpen = this._activeCustomViewOpen;
22
+ this.activeCustomView = derived(this, reader => this._activeCustomViewOpen.read(reader)?.descriptor);
21
23
  this._desiredCustomViewId = this._storageService.get(ACTIVE_CUSTOM_VIEW_STORAGE_KEY, StorageScope.WORKSPACE);
22
24
  }
23
25
  registerCustomView(descriptor, options) {
@@ -30,17 +32,20 @@ let CustomViewService = class CustomViewService extends Disposable {
30
32
  this._desiredCustomViewId = undefined;
31
33
  this._storageService.remove(ACTIVE_CUSTOM_VIEW_STORAGE_KEY, StorageScope.WORKSPACE);
32
34
  } else {
33
- this._activeCustomView.set(descriptor, undefined);
35
+ this._activeCustomViewOpen.set({
36
+ descriptor,
37
+ source: "restore"
38
+ }, undefined);
34
39
  }
35
40
  }
36
41
  return toDisposable(() => {
37
42
  this._descriptors.delete(descriptor.id);
38
- if (this._activeCustomView.get() === descriptor) {
39
- this._activeCustomView.set(undefined, undefined);
43
+ if (this.activeCustomView.get() === descriptor) {
44
+ this._activeCustomViewOpen.set(undefined, undefined);
40
45
  }
41
46
  });
42
47
  }
43
- showCustomView(id) {
48
+ showCustomView(id, options) {
44
49
  const descriptor = this._descriptors.get(id);
45
50
  if (!descriptor) {
46
51
  this._logService.warn(
@@ -55,12 +60,15 @@ let CustomViewService = class CustomViewService extends Disposable {
55
60
  StorageScope.WORKSPACE,
56
61
  StorageTarget.MACHINE
57
62
  );
58
- this._activeCustomView.set(descriptor, undefined);
63
+ this._activeCustomViewOpen.set({
64
+ descriptor,
65
+ source: options?.source ?? "explicit"
66
+ }, undefined);
59
67
  }
60
- hideCustomView() {
68
+ hideCustomView(tx) {
61
69
  this._desiredCustomViewId = undefined;
62
70
  this._storageService.remove(ACTIVE_CUSTOM_VIEW_STORAGE_KEY, StorageScope.WORKSPACE);
63
- this._activeCustomView.set(undefined, undefined);
71
+ this._activeCustomViewOpen.set(undefined, tx);
64
72
  }
65
73
  };
66
74
  CustomViewService = ( __decorate([( __param(0, ILogService)), ( __param(1, IStorageService))], CustomViewService));
@@ -5,6 +5,7 @@ import { ISession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/servic
5
5
  import { ISessionsManagementService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service";
6
6
  import { ISessionsPartService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService.service";
7
7
  import { VisibleSessions } from "./visibleSessions.js";
8
+ import { Direction } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid";
8
9
  export declare enum ClosedItemKind {
9
10
  Chat = "chat",
10
11
  Session = "session"
@@ -22,6 +23,10 @@ export interface IClosedSessionItem {
22
23
  /** Grid index the slot occupied when the session left the grid. */
23
24
  readonly index: number;
24
25
  readonly sticky: boolean;
26
+ readonly placement?: {
27
+ readonly sessionId: string | undefined;
28
+ readonly direction: Direction;
29
+ };
25
30
  /**
26
31
  * Set when the session left the grid because a newly opened slot took its
27
32
  * place, holding the id of that slot (`undefined` for the empty
@@ -7,8 +7,10 @@ import { SessionsHasClosedItemContext } from '@codingame/monaco-vscode-api/vscod
7
7
  import { SessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
8
8
  import { ISessionsManagementService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service';
9
9
  import { ISessionsPartService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService.service';
10
+ import { Direction } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/grid/grid';
10
11
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
11
12
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
13
+ import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
12
14
 
13
15
  var ClosedItemKind;
14
16
  (function(ClosedItemKind) {
@@ -73,7 +75,7 @@ let ClosedItemHistory = class ClosedItemHistory extends Disposable {
73
75
  if (item.kind === ClosedItemKind.Chat) {
74
76
  await this._openChat(session, item.chatResource);
75
77
  } else {
76
- this._reopenSession(item, session);
78
+ transaction(() => this._reopenSession(item, session));
77
79
  }
78
80
  } finally {
79
81
  suspension.dispose();
@@ -87,7 +89,22 @@ let ClosedItemHistory = class ClosedItemHistory extends Disposable {
87
89
  return;
88
90
  }
89
91
  }
92
+ if (!item.replacedBy && (!item.placement || !this._visibility.getSlot(item.placement.sessionId))) {
93
+ const active = this._visibility.setActive(session);
94
+ if (item.sticky && !active?.sticky.get()) {
95
+ this._visibility.toggleStickiness(session);
96
+ }
97
+ return;
98
+ }
90
99
  this._visibility.insertAtIndex(session, item.index, item.sticky);
100
+ if (item.placement && this._visibility.getSlot(item.placement.sessionId)) {
101
+ const direction = item.placement.direction;
102
+ this._visibility.insertAt(
103
+ session,
104
+ item.placement.sessionId,
105
+ direction === Direction.Left ? "left" : direction === Direction.Right ? "right" : direction === Direction.Up ? "up" : "down"
106
+ );
107
+ }
91
108
  }
92
109
  _recordSession(session, index, sticky, replacedBy) {
93
110
  if (session.status.get() !== SessionStatus.Untitled) {
@@ -96,7 +113,8 @@ let ClosedItemHistory = class ClosedItemHistory extends Disposable {
96
113
  session,
97
114
  index,
98
115
  sticky,
99
- replacedBy
116
+ replacedBy,
117
+ placement: this._sessionsPartService.getSessionPlacement(session.sessionId)
100
118
  });
101
119
  }
102
120
  }