@codingame/monaco-vscode-workbench-service-override 37.1.0 → 37.3.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 (325) hide show
  1. package/common.d.ts +3 -0
  2. package/common.js +29 -0
  3. package/index.d.ts +1 -1
  4. package/index.js +25 -32
  5. package/package.json +18 -8
  6. package/session.d.ts +4 -0
  7. package/session.js +260 -0
  8. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostLocationPreferenceService.d.ts +24 -0
  9. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostLocationPreferenceService.js +71 -0
  10. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostLocationPreference.d.ts +7 -0
  11. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostLocationPreference.js +7 -0
  12. package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.d.ts +50 -0
  13. package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.js +120 -0
  14. package/vscode/src/vs/sessions/browser/media/sessions-logo-dark.svg +6 -0
  15. package/vscode/src/vs/sessions/browser/media/sessions-logo-light.svg +6 -0
  16. package/vscode/src/vs/sessions/browser/media/sessionsSetUp.css +72 -0
  17. package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.d.ts +116 -0
  18. package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +566 -0
  19. package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.d.ts +43 -0
  20. package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.js +308 -0
  21. package/vscode/src/vs/sessions/browser/parts/chatGroupView.d.ts +108 -0
  22. package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +324 -0
  23. package/vscode/src/vs/sessions/browser/parts/chatGroupsView.d.ts +136 -0
  24. package/vscode/src/vs/sessions/browser/parts/chatGroupsView.js +771 -0
  25. package/vscode/src/vs/sessions/browser/parts/customViewGridPart.d.ts +43 -0
  26. package/vscode/src/vs/sessions/browser/parts/customViewGridPart.js +113 -0
  27. package/vscode/src/vs/sessions/browser/parts/customViewGridParts.d.ts +17 -0
  28. package/vscode/src/vs/sessions/browser/parts/customViewGridParts.js +31 -0
  29. package/vscode/src/vs/sessions/browser/parts/customViewNode.d.ts +24 -0
  30. package/vscode/src/vs/sessions/browser/parts/customViewNode.js +131 -0
  31. package/vscode/src/vs/sessions/browser/parts/editorPart.d.ts +11 -0
  32. package/vscode/src/vs/sessions/browser/parts/editorPart.js +36 -0
  33. package/vscode/src/vs/sessions/browser/parts/editorParts.d.ts +12 -0
  34. package/vscode/src/vs/sessions/browser/parts/editorParts.js +45 -0
  35. package/vscode/src/vs/sessions/browser/parts/media/chatCompositeBar.css +559 -0
  36. package/vscode/src/vs/sessions/browser/parts/media/chatGroupDropTarget.css +27 -0
  37. package/vscode/src/vs/sessions/browser/parts/media/chatGroupsView.css +60 -0
  38. package/vscode/src/vs/sessions/browser/parts/media/customViewGridPart.css +108 -0
  39. package/vscode/src/vs/sessions/browser/parts/media/editorPart.css +210 -0
  40. package/vscode/src/vs/sessions/browser/parts/media/remoteHostUnavailableEmptyState.css +81 -0
  41. package/vscode/src/vs/sessions/browser/parts/media/sessionDropTarget.css +31 -0
  42. package/vscode/src/vs/sessions/browser/parts/media/sessionReadOnlyBanner.css +87 -0
  43. package/vscode/src/vs/sessions/browser/parts/media/sessionView.css +107 -0
  44. package/vscode/src/vs/sessions/browser/parts/media/sessionsPart.css +134 -0
  45. package/vscode/src/vs/sessions/browser/parts/menubar.contribution.d.ts +1 -0
  46. package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +79 -0
  47. package/vscode/src/vs/sessions/browser/parts/mobile/mobileCustomViewGridPart.d.ts +13 -0
  48. package/vscode/src/vs/sessions/browser/parts/mobile/mobileCustomViewGridPart.js +33 -0
  49. package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.d.ts +14 -0
  50. package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.js +34 -0
  51. package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.d.ts +39 -0
  52. package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.js +136 -0
  53. package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.d.ts +9 -0
  54. package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.js +62 -0
  55. package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.d.ts +39 -0
  56. package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.js +261 -0
  57. package/vscode/src/vs/sessions/browser/parts/sessionHeader.d.ts +97 -0
  58. package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +345 -0
  59. package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.d.ts +43 -0
  60. package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +69 -0
  61. package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.d.ts +79 -0
  62. package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +363 -0
  63. package/vscode/src/vs/sessions/browser/parts/sessionView.d.ts +125 -0
  64. package/vscode/src/vs/sessions/browser/parts/sessionView.js +300 -0
  65. package/vscode/src/vs/sessions/browser/parts/sessionsPart.d.ts +124 -0
  66. package/vscode/src/vs/sessions/browser/parts/sessionsPart.js +336 -0
  67. package/vscode/src/vs/sessions/browser/parts/sessionsParts.d.ts +33 -0
  68. package/vscode/src/vs/sessions/browser/parts/sessionsParts.js +62 -0
  69. package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.d.ts +13 -0
  70. package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.js +36 -0
  71. package/vscode/src/vs/sessions/browser/parts/singlePaneEditorPart.d.ts +65 -0
  72. package/vscode/src/vs/sessions/browser/parts/singlePaneEditorPart.js +178 -0
  73. package/vscode/src/vs/sessions/browser/sessionWorkspace.d.ts +12 -0
  74. package/vscode/src/vs/sessions/browser/sessionWorkspace.js +19 -0
  75. package/vscode/src/vs/sessions/browser/sessionsSetUpService.d.ts +24 -0
  76. package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +598 -0
  77. package/vscode/src/vs/sessions/browser/sessionsSignInDialog.d.ts +25 -0
  78. package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +91 -0
  79. package/vscode/src/vs/sessions/common/welcome.d.ts +1 -0
  80. package/vscode/src/vs/sessions/common/welcome.js +5 -0
  81. package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.d.ts +11 -0
  82. package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +1052 -0
  83. package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.d.ts +23 -0
  84. package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +168 -0
  85. package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountTitleBarWidget.css +646 -0
  86. package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountWidget.css +231 -0
  87. package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/chatPetAchievementBadges.css +120 -0
  88. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.d.ts +53 -0
  89. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.js +99 -0
  90. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.d.ts +1 -0
  91. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.js +270 -0
  92. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.d.ts +62 -0
  93. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.js +606 -0
  94. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/media/aiCustomizationTreeView.css +116 -0
  95. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.d.ts +1 -0
  96. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.js +97 -0
  97. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.d.ts +72 -0
  98. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.js +776 -0
  99. package/vscode/src/vs/sessions/contrib/aquarium/browser/fish.d.ts +68 -0
  100. package/vscode/src/vs/sessions/contrib/aquarium/browser/fish.js +153 -0
  101. package/vscode/src/vs/sessions/contrib/aquarium/browser/fishFeedingStreak.d.ts +58 -0
  102. package/vscode/src/vs/sessions/contrib/aquarium/browser/fishFeedingStreak.js +172 -0
  103. package/vscode/src/vs/sessions/contrib/aquarium/browser/media/aquarium.css +316 -0
  104. package/vscode/src/vs/sessions/contrib/aquarium/browser/vscodeLogoPath.d.ts +1 -0
  105. package/vscode/src/vs/sessions/contrib/aquarium/browser/vscodeLogoPath.js +5 -0
  106. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.d.ts +173 -0
  107. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.js +1589 -0
  108. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.d.ts +32 -0
  109. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +396 -0
  110. package/vscode/src/vs/sessions/contrib/automations/browser/automationInputCompletions.d.ts +33 -0
  111. package/vscode/src/vs/sessions/contrib/automations/browser/automationInputCompletions.js +216 -0
  112. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.d.ts +37 -0
  113. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.js +126 -0
  114. package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.d.ts +21 -0
  115. package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +294 -0
  116. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.d.ts +59 -0
  117. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +232 -0
  118. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.d.ts +13 -0
  119. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.js +22 -0
  120. package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.d.ts +60 -0
  121. package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +1256 -0
  122. package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.d.ts +1 -0
  123. package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +88 -0
  124. package/vscode/src/vs/sessions/contrib/automations/browser/media/automationDialog.css +746 -0
  125. package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.d.ts +62 -0
  126. package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +493 -0
  127. package/vscode/src/vs/sessions/contrib/automations/common/isolationGroupModel.d.ts +38 -0
  128. package/vscode/src/vs/sessions/contrib/automations/common/isolationGroupModel.js +123 -0
  129. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +45 -0
  130. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +110 -0
  131. package/vscode/src/vs/sessions/contrib/browserView/browser/sessionBrowserView.contribution.d.ts +1 -0
  132. package/vscode/src/vs/sessions/contrib/browserView/browser/sessionBrowserView.contribution.js +5 -0
  133. package/vscode/src/vs/sessions/contrib/browserView/browser/sessionBrowserView.d.ts +31 -0
  134. package/vscode/src/vs/sessions/contrib/browserView/browser/sessionBrowserView.js +137 -0
  135. package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.d.ts +1 -0
  136. package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +130 -0
  137. package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.d.ts +8 -0
  138. package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +385 -0
  139. package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.d.ts +28 -0
  140. package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.js +76 -0
  141. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.d.ts +1 -0
  142. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +509 -0
  143. package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.d.ts +6 -0
  144. package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +58 -0
  145. package/vscode/src/vs/sessions/contrib/changes/browser/media/changesActions.css +11 -0
  146. package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.d.ts +24 -0
  147. package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +188 -0
  148. package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.d.ts +15 -0
  149. package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +100 -0
  150. package/vscode/src/vs/sessions/contrib/chat/browser/chatViewStateService.d.ts +9 -0
  151. package/vscode/src/vs/sessions/contrib/chat/browser/chatViewStateService.js +18 -0
  152. package/vscode/src/vs/sessions/contrib/chat/browser/media/sessionChatInputToolbarDebug.css +59 -0
  153. package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.d.ts +47 -0
  154. package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +306 -0
  155. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.d.ts +41 -0
  156. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.js +31 -0
  157. package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.d.ts +1 -0
  158. package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +84 -0
  159. package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.d.ts +1 -0
  160. package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +111 -0
  161. package/vscode/src/vs/sessions/contrib/customViewTest/browser/media/customViewTest.css +9 -0
  162. package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.d.ts +21 -0
  163. package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +170 -0
  164. package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.d.ts +14 -0
  165. package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +425 -0
  166. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.d.ts +1 -0
  167. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +35 -0
  168. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.d.ts +18 -0
  169. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.js +85 -0
  170. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.d.ts +31 -0
  171. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.js +125 -0
  172. package/vscode/src/vs/sessions/contrib/editor/browser/media/editorBreadcrumbs.css +66 -0
  173. package/vscode/src/vs/sessions/contrib/editor/browser/media/editorHeader.css +113 -0
  174. package/vscode/src/vs/sessions/contrib/editor/browser/media/emptyFileEditor.css +30 -0
  175. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/fileTreeView.contribution.d.ts +1 -0
  176. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/fileTreeView.contribution.js +25 -0
  177. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +66 -0
  178. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +274 -0
  179. package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.d.ts +6 -0
  180. package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.js +100 -0
  181. package/vscode/src/vs/sessions/contrib/files/browser/filesView.d.ts +21 -0
  182. package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +76 -0
  183. package/vscode/src/vs/sessions/contrib/files/browser/media/filesView.css +29 -0
  184. package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.d.ts +211 -0
  185. package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +587 -0
  186. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.d.ts +112 -0
  187. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.js +444 -0
  188. package/vscode/src/vs/sessions/contrib/layout/browser/mobileSessionLayoutController.d.ts +13 -0
  189. package/vscode/src/vs/sessions/contrib/layout/browser/mobileSessionLayoutController.js +8 -0
  190. package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.d.ts +1 -0
  191. package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +68 -0
  192. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDetailPanelCoordinator.d.ts +32 -0
  193. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDetailPanelCoordinator.js +81 -0
  194. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDockedTabsCoordinator.d.ts +111 -0
  195. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDockedTabsCoordinator.js +513 -0
  196. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDraftSessionStrategy.d.ts +44 -0
  197. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDraftSessionStrategy.js +423 -0
  198. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneExistingSessionStrategy.d.ts +62 -0
  199. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneExistingSessionStrategy.js +435 -0
  200. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneLayoutStrategy.d.ts +46 -0
  201. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneLayoutStrategy.js +11 -0
  202. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.d.ts +11 -0
  203. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.js +43 -0
  204. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneVisibilityProfileStore.d.ts +21 -0
  205. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneVisibilityProfileStore.js +77 -0
  206. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.d.ts +55 -0
  207. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.js +91 -0
  208. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/agentHostReadinessContext.d.ts +11 -0
  209. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/agentHostReadinessContext.js +39 -0
  210. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.d.ts +1 -0
  211. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.js +109 -0
  212. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.d.ts +1 -0
  213. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.js +123 -0
  214. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.d.ts +24 -0
  215. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.js +67 -0
  216. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.d.ts +1 -0
  217. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.js +47 -0
  218. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.d.ts +79 -0
  219. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +1277 -0
  220. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3TourContribution.d.ts +1 -0
  221. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3TourContribution.js +75 -0
  222. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.d.ts +34 -0
  223. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +53 -0
  224. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.d.ts +40 -0
  225. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +69 -0
  226. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.d.ts +4 -0
  227. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +38 -0
  228. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.d.ts +6 -0
  229. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +63 -0
  230. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.d.ts +15 -0
  231. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.js +49 -0
  232. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/media/sessionsPolicyBlocked.css +125 -0
  233. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.d.ts +20 -0
  234. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.js +98 -0
  235. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.d.ts +39 -0
  236. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +218 -0
  237. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.d.ts +53 -0
  238. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +496 -0
  239. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.d.ts +27 -0
  240. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.js +26 -0
  241. package/vscode/src/vs/sessions/contrib/search/browser/media/searchEditorEmptyState.css +15 -0
  242. package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.d.ts +1 -0
  243. package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +79 -0
  244. package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.d.ts +7 -0
  245. package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +57 -0
  246. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsCIFixModel.d.ts +39 -0
  247. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsCIFixModel.js +155 -0
  248. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.d.ts +117 -0
  249. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +320 -0
  250. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.d.ts +65 -0
  251. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +129 -0
  252. package/vscode/src/vs/sessions/contrib/sessions/browser/media/automationsCards.css +624 -0
  253. package/vscode/src/vs/sessions/contrib/sessions/browser/media/blockedSessionsList.css +111 -0
  254. package/vscode/src/vs/sessions/contrib/sessions/browser/media/newSessionActionViewItem.css +112 -0
  255. package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css +159 -0
  256. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionActionFeedback.d.ts +26 -0
  257. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionActionFeedback.js +26 -0
  258. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.d.ts +2 -0
  259. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +77 -0
  260. package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.d.ts +1 -0
  261. package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +162 -0
  262. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.d.ts +111 -0
  263. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +1550 -0
  264. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsMouseNavigation.d.ts +13 -0
  265. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsMouseNavigation.js +69 -0
  266. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsPicker.d.ts +10 -0
  267. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsPicker.js +33 -0
  268. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.d.ts +126 -0
  269. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.js +724 -0
  270. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.d.ts +150 -0
  271. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +526 -0
  272. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTypedCharactersTracker.d.ts +64 -0
  273. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTypedCharactersTracker.js +99 -0
  274. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.d.ts +37 -0
  275. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +160 -0
  276. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.d.ts +19 -0
  277. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +74 -0
  278. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.d.ts +4 -0
  279. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +228 -0
  280. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.d.ts +53 -0
  281. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +2143 -0
  282. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.d.ts +12 -0
  283. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +1270 -0
  284. package/vscode/src/vs/sessions/contrib/workspace/browser/workspace.contribution.d.ts +1 -0
  285. package/vscode/src/vs/sessions/contrib/workspace/browser/workspace.contribution.js +5 -0
  286. package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.d.ts +28 -0
  287. package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.js +95 -0
  288. package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.d.ts +79 -0
  289. package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.js +259 -0
  290. package/vscode/src/vs/sessions/services/customView/browser/customView.d.ts +42 -0
  291. package/vscode/src/vs/sessions/services/customView/browser/customView.js +15 -0
  292. package/vscode/src/vs/sessions/services/customView/browser/customViewService.d.ts +21 -0
  293. package/vscode/src/vs/sessions/services/customView/browser/customViewService.js +68 -0
  294. package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.d.ts +72 -0
  295. package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.js +115 -0
  296. package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.d.ts +77 -0
  297. package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.js +330 -0
  298. package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.d.ts +67 -0
  299. package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.js +157 -0
  300. package/vscode/src/vs/sessions/services/sessions/browser/sessionOpenTelemetryService.d.ts +32 -0
  301. package/vscode/src/vs/sessions/services/sessions/browser/sessionOpenTelemetryService.js +162 -0
  302. package/vscode/src/vs/sessions/services/sessions/browser/sessionSectionOrderService.d.ts +40 -0
  303. package/vscode/src/vs/sessions/services/sessions/browser/sessionSectionOrderService.js +170 -0
  304. package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.d.ts +63 -0
  305. package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.js +419 -0
  306. package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.d.ts +229 -0
  307. package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +1212 -0
  308. package/vscode/src/vs/sessions/services/sessions/browser/sessionsProvidersService.d.ts +22 -0
  309. package/vscode/src/vs/sessions/services/sessions/browser/sessionsProvidersService.js +42 -0
  310. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.d.ts +43 -0
  311. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.js +103 -0
  312. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.d.ts +243 -0
  313. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +1121 -0
  314. package/vscode/src/vs/sessions/services/sessions/browser/sessionsWindowUsageService.d.ts +8 -0
  315. package/vscode/src/vs/sessions/services/sessions/browser/sessionsWindowUsageService.js +24 -0
  316. package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.d.ts +321 -0
  317. package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.js +729 -0
  318. package/vscode/src/vs/sessions/services/sessions/browser/worktreeTrust.d.ts +23 -0
  319. package/vscode/src/vs/sessions/services/sessions/browser/worktreeTrust.js +23 -0
  320. package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.d.ts +32 -0
  321. package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.js +103 -0
  322. package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.d.ts +16 -0
  323. package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.js +41 -0
  324. package/vscode/src/vs/workbench/browser/layout.js +7 -7
  325. package/vscode/src/vs/workbench/browser/workbench.js +3 -3
@@ -0,0 +1,72 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
3
+ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
4
+ import { ISession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
5
+ import { ISessionsManagementService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service";
6
+ import { ISessionsPartService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService.service";
7
+ import { VisibleSessions } from "./visibleSessions.js";
8
+ export declare enum ClosedItemKind {
9
+ Chat = "chat",
10
+ Session = "session"
11
+ }
12
+ /** A chat tab that was closed (hidden) within a session. */
13
+ export interface IClosedChatItem {
14
+ readonly kind: ClosedItemKind.Chat;
15
+ readonly session: ISession;
16
+ readonly chatResource: URI;
17
+ }
18
+ /** A session slot that left the sessions grid. */
19
+ export interface IClosedSessionItem {
20
+ readonly kind: ClosedItemKind.Session;
21
+ readonly session: ISession;
22
+ /** Grid index the slot occupied when the session left the grid. */
23
+ readonly index: number;
24
+ readonly sticky: boolean;
25
+ /**
26
+ * Set when the session left the grid because a newly opened slot took its
27
+ * place, holding the id of that slot (`undefined` for the empty
28
+ * new-session slot). Absent when the user closed the slot explicitly.
29
+ */
30
+ readonly replacedBy?: {
31
+ readonly sessionId: string | undefined;
32
+ };
33
+ }
34
+ export type ClosedItem = IClosedChatItem | IClosedSessionItem;
35
+ /**
36
+ * Remembers the single most recently closed chat or session and reopens it
37
+ * (`Ctrl/Cmd+Shift+T`). Deliberately holds one entry only: reopening consumes
38
+ * it, so pressing the chord repeatedly cannot walk further back through
39
+ * history. In-memory only — a window reload starts empty.
40
+ */
41
+ export declare class ClosedItemHistory extends Disposable {
42
+ private readonly _visibility;
43
+ private readonly _openChat;
44
+ private readonly _sessionsManagementService;
45
+ private readonly _sessionsPartService;
46
+ private readonly _item;
47
+ private _suspendDepth;
48
+ constructor(_visibility: VisibleSessions, _openChat: (session: ISession, chatResource: URI) => Promise<void>, _sessionsManagementService: ISessionsManagementService, _sessionsPartService: ISessionsPartService, contextKeyService: IContextKeyService);
49
+ /** Remember a chat that was hidden from its session's tab strip. */
50
+ recordClosedChat(session: ISession, chatResource: URI): void;
51
+ /**
52
+ * Remember a session the user closed, together with the grid slot it holds
53
+ * right now, so it can return to exactly that position. Must be called
54
+ * before the session leaves the grid; a session that is not visible is
55
+ * ignored.
56
+ */
57
+ recordClosedSession(session: ISession): void;
58
+ /**
59
+ * Remember a session that lost its grid slot to a newly opened one, so it
60
+ * can take that slot back.
61
+ */
62
+ recordReplacedSlot(replaced: ISession, index: number, sticky: boolean, replacedBySessionId: string | undefined): void;
63
+ /**
64
+ * Reopen the remembered chat or session and focus it, consuming the entry.
65
+ * No-op when nothing is remembered or the session is gone.
66
+ */
67
+ reopenLast(): Promise<void>;
68
+ private _reopenSession;
69
+ private _recordSession;
70
+ private _record;
71
+ private _suspend;
72
+ }
@@ -0,0 +1,115 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Disposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
5
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
6
+ import { SessionsHasClosedItemContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
7
+ import { SessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
8
+ import { ISessionsManagementService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service';
9
+ import { ISessionsPartService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService.service';
10
+ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
11
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
12
+
13
+ var ClosedItemKind;
14
+ (function(ClosedItemKind) {
15
+ ClosedItemKind["Chat"] = "chat";
16
+ ClosedItemKind["Session"] = "session";
17
+ })(ClosedItemKind || (ClosedItemKind = {}));
18
+ let ClosedItemHistory = class ClosedItemHistory extends Disposable {
19
+ constructor(
20
+ _visibility,
21
+ _openChat,
22
+ _sessionsManagementService,
23
+ _sessionsPartService,
24
+ contextKeyService
25
+ ) {
26
+ super();
27
+ this._visibility = _visibility;
28
+ this._openChat = _openChat;
29
+ this._sessionsManagementService = _sessionsManagementService;
30
+ this._sessionsPartService = _sessionsPartService;
31
+ this._item = observableValue(this, undefined);
32
+ this._suspendDepth = 0;
33
+ const hasClosedItem = SessionsHasClosedItemContext.bindTo(contextKeyService);
34
+ this._register(
35
+ autorun(reader => hasClosedItem.set(this._item.read(reader) !== undefined))
36
+ );
37
+ this._register(this._sessionsManagementService.onDidDeleteSession(session => {
38
+ if (this._item.get()?.session.sessionId === session.sessionId) {
39
+ this._item.set(undefined, undefined);
40
+ }
41
+ }));
42
+ }
43
+ recordClosedChat(session, chatResource) {
44
+ this._record({
45
+ kind: ClosedItemKind.Chat,
46
+ session,
47
+ chatResource
48
+ });
49
+ }
50
+ recordClosedSession(session) {
51
+ const slot = this._visibility.getSlot(session.sessionId);
52
+ if (slot) {
53
+ this._recordSession(session, slot.index, slot.sticky);
54
+ }
55
+ }
56
+ recordReplacedSlot(replaced, index, sticky, replacedBySessionId) {
57
+ this._recordSession(replaced, index, sticky, {
58
+ sessionId: replacedBySessionId
59
+ });
60
+ }
61
+ async reopenLast() {
62
+ const item = this._item.get();
63
+ if (!item) {
64
+ return;
65
+ }
66
+ this._item.set(undefined, undefined);
67
+ const session = this._sessionsManagementService.getSessions().find(s => s.sessionId === item.session.sessionId);
68
+ if (!session) {
69
+ return;
70
+ }
71
+ const suspension = this._suspend();
72
+ try {
73
+ if (item.kind === ClosedItemKind.Chat) {
74
+ await this._openChat(session, item.chatResource);
75
+ } else {
76
+ this._reopenSession(item, session);
77
+ }
78
+ } finally {
79
+ suspension.dispose();
80
+ }
81
+ this._sessionsPartService.focusSession(this._visibility.activeSession.get());
82
+ }
83
+ _reopenSession(item, session) {
84
+ if (item.replacedBy && this._visibility.getSlot(item.replacedBy.sessionId)) {
85
+ this._sessionsManagementService.discardNewSession(this._visibility.getSession(item.replacedBy.sessionId));
86
+ if (this._visibility.replaceSlot(item.replacedBy.sessionId, session, item.sticky)) {
87
+ return;
88
+ }
89
+ }
90
+ this._visibility.insertAtIndex(session, item.index, item.sticky);
91
+ }
92
+ _recordSession(session, index, sticky, replacedBy) {
93
+ if (session.status.get() !== SessionStatus.Untitled) {
94
+ this._record({
95
+ kind: ClosedItemKind.Session,
96
+ session,
97
+ index,
98
+ sticky,
99
+ replacedBy
100
+ });
101
+ }
102
+ }
103
+ _record(item) {
104
+ if (this._suspendDepth === 0) {
105
+ this._item.set(item, undefined);
106
+ }
107
+ }
108
+ _suspend() {
109
+ this._suspendDepth++;
110
+ return toDisposable(() => this._suspendDepth--);
111
+ }
112
+ };
113
+ ClosedItemHistory = ( __decorate([( __param(2, ISessionsManagementService)), ( __param(3, ISessionsPartService)), ( __param(4, IContextKeyService))], ClosedItemHistory));
114
+
115
+ export { ClosedItemHistory, ClosedItemKind };
@@ -0,0 +1,77 @@
1
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
2
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
4
+ import { ISessionsManagementService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service";
5
+ import { ISessionGroupsService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionGroupsService.service";
6
+ /**
7
+ * A user-created group of sessions in the sessions list. Groups render like
8
+ * section headers and can be reordered, renamed and deleted. Their order is
9
+ * owned by the section-order service and is fully user-managed; this type only
10
+ * carries identity, name and creation time. Membership of a session in a group
11
+ * is tracked separately (see {@link ISessionGroupsService}).
12
+ */
13
+ export interface ISessionGroup {
14
+ /** Stable identifier (uuid). */
15
+ readonly id: string;
16
+ /** User-provided display name. */
17
+ readonly name: string;
18
+ /** Creation timestamp (ms). Used as the default order (newest first). */
19
+ readonly createdAt: number;
20
+ }
21
+ export interface ISessionGroupsChangeEvent {
22
+ /** Groups added, removed, renamed or reordered. */
23
+ readonly groupsChanged: boolean;
24
+ /** Session ids whose group membership changed. */
25
+ readonly membershipChanged: ReadonlySet<string>;
26
+ }
27
+ export declare class SessionGroupsService extends Disposable implements ISessionGroupsService {
28
+ private readonly storageService;
29
+ private readonly sessionsManagementService;
30
+ readonly _serviceBrand: undefined;
31
+ private static readonly STORAGE_KEY;
32
+ private readonly _onDidChange;
33
+ readonly onDidChange: Event<ISessionGroupsChangeEvent>;
34
+ private readonly _groups;
35
+ /** sessionId -> groupId */
36
+ private readonly _membership;
37
+ private readonly _explicitlyUngroupedSessionIds;
38
+ /**
39
+ * Group that the composer's in-progress new session should join once sent,
40
+ * or `undefined` when there is no pending intent. Set via
41
+ * {@link setPendingNewSessionGroup} when the user picks "New Session" on a
42
+ * group header, locked onto a specific draft when that draft is sent, and
43
+ * cleared if the new session is abandoned.
44
+ */
45
+ private _pendingNewSessionGroupId;
46
+ /**
47
+ * Sends in flight: draft (or, after graduation, committed) sessionId ->
48
+ * groupId. A grouped send is locked here the moment it is dispatched, so a
49
+ * later intent or a failed/concurrent send can never rebind it. Consumed
50
+ * when the session is started.
51
+ */
52
+ private readonly _inFlightSessionGroups;
53
+ constructor(storageService: IStorageService, sessionsManagementService: ISessionsManagementService);
54
+ /** Fills missing custom-group membership from creation provenance; explicit membership or ungrouping remains authoritative. */
55
+ private updateDefaultPlacement;
56
+ getGroups(): ISessionGroup[];
57
+ getGroup(groupId: string): ISessionGroup | undefined;
58
+ createGroup(name: string, memberSessionIds?: Iterable<string>): ISessionGroup;
59
+ renameGroup(groupId: string, name: string): void;
60
+ deleteGroup(groupId: string): void;
61
+ addToGroup(sessionIdOrIds: string | Iterable<string>, groupId: string): void;
62
+ removeFromGroup(sessionId: string): void;
63
+ getGroupOfSession(sessionId: string): string | undefined;
64
+ getSessionIdsInGroup(groupId: string): string[];
65
+ setPendingNewSessionGroup(groupId: string): void;
66
+ private setMembership;
67
+ private markExplicitlyUngrouped;
68
+ private removeArchivedMembership;
69
+ /**
70
+ * Sort groups for display as a stable baseline: newest first (by creation
71
+ * time). The final user-managed order is applied by the section-order
72
+ * service; this baseline is used where that order is not available.
73
+ */
74
+ private sortGroups;
75
+ private load;
76
+ private save;
77
+ }
@@ -0,0 +1,330 @@
1
+
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';
4
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
6
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
7
+ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
8
+ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
9
+ import { ISessionsManagementService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service';
10
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
11
+
12
+ var SessionGroupsService_1;
13
+ const EXPLICITLY_UNGROUPED_FIELD = "explicitlyUngroupedSessionIds";
14
+ let SessionGroupsService = class SessionGroupsService extends Disposable {
15
+ static {
16
+ SessionGroupsService_1 = this;
17
+ }
18
+ static {
19
+ this.STORAGE_KEY = "sessionsListControl.groups";
20
+ }
21
+ constructor(storageService, sessionsManagementService) {
22
+ super();
23
+ this.storageService = storageService;
24
+ this.sessionsManagementService = sessionsManagementService;
25
+ this._onDidChange = this._register(( new Emitter()));
26
+ this.onDidChange = this._onDidChange.event;
27
+ this._groups = ( new Map());
28
+ this._membership = ( new Map());
29
+ this._explicitlyUngroupedSessionIds = ( new Set());
30
+ this._inFlightSessionGroups = ( new Map());
31
+ this.load();
32
+ const archivedMembershipChanged = ( new Set());
33
+ const archivedStateChanged = this.removeArchivedMembership(this.sessionsManagementService.getSessions(), archivedMembershipChanged);
34
+ this.updateDefaultPlacement(this.sessionsManagementService.getSessions(), archivedMembershipChanged);
35
+ if (archivedStateChanged || archivedMembershipChanged.size > 0) {
36
+ this.save();
37
+ }
38
+ this._register(this.sessionsManagementService.onDidChangeSessions(e => {
39
+ for (const session of e.removed) {
40
+ this._inFlightSessionGroups.delete(session.sessionId);
41
+ }
42
+ const changed = ( new Set());
43
+ const archivedStateChanged = this.removeArchivedMembership([...e.added, ...e.changed], changed);
44
+ this.updateDefaultPlacement(this.sessionsManagementService.getSessions(), changed);
45
+ if (archivedStateChanged || changed.size > 0) {
46
+ this.save();
47
+ }
48
+ if (changed.size > 0) {
49
+ this._onDidChange.fire({
50
+ groupsChanged: false,
51
+ membershipChanged: changed
52
+ });
53
+ }
54
+ }));
55
+ this._register(this.sessionsManagementService.onDidDeleteSession(session => {
56
+ const membershipDeleted = this._membership.delete(session.sessionId);
57
+ const ungroupedDeleted = this._explicitlyUngroupedSessionIds.delete(session.sessionId);
58
+ if (membershipDeleted || ungroupedDeleted) {
59
+ this.save();
60
+ }
61
+ if (membershipDeleted) {
62
+ this._onDidChange.fire({
63
+ groupsChanged: false,
64
+ membershipChanged: ( new Set([session.sessionId]))
65
+ });
66
+ }
67
+ }));
68
+ this._register(this.sessionsManagementService.onDidArchiveSession(session => {
69
+ const membershipDeleted = this._membership.delete(session.sessionId);
70
+ const ungroupedAdded = this.markExplicitlyUngrouped(session.sessionId);
71
+ if (membershipDeleted || ungroupedAdded) {
72
+ this.save();
73
+ }
74
+ if (membershipDeleted) {
75
+ this._onDidChange.fire({
76
+ groupsChanged: false,
77
+ membershipChanged: ( new Set([session.sessionId]))
78
+ });
79
+ }
80
+ }));
81
+ this._register(this.sessionsManagementService.onWillSendRequest(session => {
82
+ if (this._pendingNewSessionGroupId === undefined) {
83
+ return;
84
+ }
85
+ this._inFlightSessionGroups.set(session.sessionId, this._pendingNewSessionGroupId);
86
+ this._pendingNewSessionGroupId = undefined;
87
+ }));
88
+ this._register(this.sessionsManagementService.onDidReplaceSession((
89
+ {
90
+ from,
91
+ to
92
+ }
93
+ ) => {
94
+ if (from.sessionId === to.sessionId) {
95
+ return;
96
+ }
97
+ const groupId = this._inFlightSessionGroups.get(from.sessionId);
98
+ if (groupId !== undefined) {
99
+ this._inFlightSessionGroups.delete(from.sessionId);
100
+ this._inFlightSessionGroups.set(to.sessionId, groupId);
101
+ }
102
+ }));
103
+ this._register(this.sessionsManagementService.onDidStartSession(session => {
104
+ const groupId = this._inFlightSessionGroups.get(session.sessionId);
105
+ if (groupId === undefined) {
106
+ return;
107
+ }
108
+ this._inFlightSessionGroups.delete(session.sessionId);
109
+ if (( this._groups.has(groupId))) {
110
+ this.addToGroup(session.sessionId, groupId);
111
+ }
112
+ }));
113
+ this._register(this.sessionsManagementService.onDidDiscardNewSession(() => {
114
+ this._pendingNewSessionGroupId = undefined;
115
+ }));
116
+ }
117
+ updateDefaultPlacement(sessions, changed) {
118
+ let placed;
119
+ do {
120
+ placed = false;
121
+ for (const session of sessions) {
122
+ if (session.isArchived.get() || ( this._membership.has(session.sessionId)) || ( this._explicitlyUngroupedSessionIds.has(session.sessionId))) {
123
+ continue;
124
+ }
125
+ const creatorResource = session.createdBySession?.get()?.session;
126
+ const creator = creatorResource ? this.sessionsManagementService.getSession(creatorResource) : undefined;
127
+ const creatorGroupId = creator ? this._membership.get(creator.sessionId) : undefined;
128
+ if (creatorGroupId) {
129
+ this.setMembership(session.sessionId, creatorGroupId, changed);
130
+ placed = true;
131
+ }
132
+ }
133
+ } while (placed);
134
+ }
135
+ getGroups() {
136
+ return this.sortGroups([...( this._groups.values())]);
137
+ }
138
+ getGroup(groupId) {
139
+ return this._groups.get(groupId);
140
+ }
141
+ createGroup(name, memberSessionIds) {
142
+ const group = {
143
+ id: generateUuid(),
144
+ name,
145
+ createdAt: Date.now()
146
+ };
147
+ this._groups.set(group.id, group);
148
+ const membershipChanged = ( new Set());
149
+ if (memberSessionIds) {
150
+ for (const sessionId of memberSessionIds) {
151
+ this.setMembership(sessionId, group.id, membershipChanged);
152
+ }
153
+ }
154
+ this.updateDefaultPlacement(this.sessionsManagementService.getSessions(), membershipChanged);
155
+ this.save();
156
+ this._onDidChange.fire({
157
+ groupsChanged: true,
158
+ membershipChanged
159
+ });
160
+ return group;
161
+ }
162
+ renameGroup(groupId, name) {
163
+ const group = this._groups.get(groupId);
164
+ if (!group || group.name === name) {
165
+ return;
166
+ }
167
+ this._groups.set(groupId, {
168
+ ...group,
169
+ name
170
+ });
171
+ this.save();
172
+ this._onDidChange.fire({
173
+ groupsChanged: true,
174
+ membershipChanged: ( new Set())
175
+ });
176
+ }
177
+ deleteGroup(groupId) {
178
+ if (!this._groups.delete(groupId)) {
179
+ return;
180
+ }
181
+ if (this._pendingNewSessionGroupId === groupId) {
182
+ this._pendingNewSessionGroupId = undefined;
183
+ }
184
+ for (const [sessionId, gid] of this._inFlightSessionGroups) {
185
+ if (gid === groupId) {
186
+ this._inFlightSessionGroups.delete(sessionId);
187
+ }
188
+ }
189
+ const membershipChanged = ( new Set());
190
+ for (const [sessionId, gid] of this._membership) {
191
+ if (gid === groupId) {
192
+ this._membership.delete(sessionId);
193
+ this.markExplicitlyUngrouped(sessionId);
194
+ membershipChanged.add(sessionId);
195
+ }
196
+ }
197
+ this.save();
198
+ this._onDidChange.fire({
199
+ groupsChanged: true,
200
+ membershipChanged
201
+ });
202
+ }
203
+ addToGroup(sessionIdOrIds, groupId) {
204
+ if (!( this._groups.has(groupId))) {
205
+ return;
206
+ }
207
+ const sessionIds = typeof sessionIdOrIds === "string" ? [sessionIdOrIds] : sessionIdOrIds;
208
+ const membershipChanged = ( new Set());
209
+ for (const sessionId of sessionIds) {
210
+ this.setMembership(sessionId, groupId, membershipChanged);
211
+ }
212
+ this.updateDefaultPlacement(this.sessionsManagementService.getSessions(), membershipChanged);
213
+ if (membershipChanged.size === 0) {
214
+ return;
215
+ }
216
+ this.save();
217
+ this._onDidChange.fire({
218
+ groupsChanged: false,
219
+ membershipChanged
220
+ });
221
+ }
222
+ removeFromGroup(sessionId) {
223
+ if (!this._membership.delete(sessionId)) {
224
+ return;
225
+ }
226
+ this.markExplicitlyUngrouped(sessionId);
227
+ this.save();
228
+ this._onDidChange.fire({
229
+ groupsChanged: false,
230
+ membershipChanged: ( new Set([sessionId]))
231
+ });
232
+ }
233
+ getGroupOfSession(sessionId) {
234
+ return this._membership.get(sessionId);
235
+ }
236
+ getSessionIdsInGroup(groupId) {
237
+ const result = [];
238
+ for (const [sessionId, gid] of this._membership) {
239
+ if (gid === groupId) {
240
+ result.push(sessionId);
241
+ }
242
+ }
243
+ return result;
244
+ }
245
+ setPendingNewSessionGroup(groupId) {
246
+ this._pendingNewSessionGroupId = ( this._groups.has(groupId)) ? groupId : undefined;
247
+ }
248
+ setMembership(sessionId, groupId, changed) {
249
+ if (this._explicitlyUngroupedSessionIds.delete(sessionId) || this._membership.get(sessionId) !== groupId) {
250
+ this._membership.set(sessionId, groupId);
251
+ changed.add(sessionId);
252
+ }
253
+ }
254
+ markExplicitlyUngrouped(sessionId) {
255
+ const size = this._explicitlyUngroupedSessionIds.size;
256
+ this._explicitlyUngroupedSessionIds.add(sessionId);
257
+ return this._explicitlyUngroupedSessionIds.size !== size;
258
+ }
259
+ removeArchivedMembership(sessions, changed) {
260
+ let stateChanged = false;
261
+ for (const session of sessions) {
262
+ if (session.isArchived.get()) {
263
+ if (this._membership.delete(session.sessionId)) {
264
+ changed.add(session.sessionId);
265
+ stateChanged = true;
266
+ }
267
+ stateChanged = this.markExplicitlyUngrouped(session.sessionId) || stateChanged;
268
+ }
269
+ }
270
+ return stateChanged;
271
+ }
272
+ sortGroups(groups) {
273
+ return groups.sort((a, b) => b.createdAt - a.createdAt);
274
+ }
275
+ load() {
276
+ const raw = this.storageService.get(SessionGroupsService_1.STORAGE_KEY, StorageScope.PROFILE);
277
+ if (!raw) {
278
+ return;
279
+ }
280
+ try {
281
+ const parsed = JSON.parse(raw);
282
+ if (Array.isArray(parsed.groups)) {
283
+ for (const group of parsed.groups) {
284
+ if (group && typeof group.id === "string" && typeof group.name === "string") {
285
+ this._groups.set(group.id, {
286
+ id: group.id,
287
+ name: group.name,
288
+ createdAt: typeof group.createdAt === "number" ? group.createdAt : Date.now()
289
+ });
290
+ }
291
+ }
292
+ }
293
+ if (parsed.membership && typeof parsed.membership === "object") {
294
+ for (const [sessionId, groupId] of Object.entries(parsed.membership)) {
295
+ if (typeof groupId === "string" && ( this._groups.has(groupId))) {
296
+ this._membership.set(sessionId, groupId);
297
+ }
298
+ }
299
+ }
300
+ const explicitlyUngroupedSessionIds = parsed[EXPLICITLY_UNGROUPED_FIELD];
301
+ if (Array.isArray(explicitlyUngroupedSessionIds)) {
302
+ for (const sessionId of explicitlyUngroupedSessionIds) {
303
+ if (typeof sessionId === "string") {
304
+ this._explicitlyUngroupedSessionIds.add(sessionId);
305
+ }
306
+ }
307
+ }
308
+ } catch {}
309
+ }
310
+ save() {
311
+ if (this._groups.size === 0 && this._explicitlyUngroupedSessionIds.size === 0) {
312
+ this.storageService.remove(SessionGroupsService_1.STORAGE_KEY, StorageScope.PROFILE);
313
+ return;
314
+ }
315
+ const state = {
316
+ groups: [...( this._groups.values())],
317
+ membership: Object.fromEntries(this._membership),
318
+ [EXPLICITLY_UNGROUPED_FIELD]: [...this._explicitlyUngroupedSessionIds]
319
+ };
320
+ this.storageService.store(
321
+ SessionGroupsService_1.STORAGE_KEY,
322
+ JSON.stringify(state),
323
+ StorageScope.PROFILE,
324
+ StorageTarget.USER
325
+ );
326
+ }
327
+ };
328
+ SessionGroupsService = SessionGroupsService_1 = ( __decorate([( __param(0, IStorageService)), ( __param(1, ISessionsManagementService))], SessionGroupsService));
329
+
330
+ export { SessionGroupsService };
@@ -0,0 +1,67 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
+ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
5
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
6
+ import { ISession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
7
+ import { ISessionsChangeEvent, IActiveSession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement";
8
+ import { ISessionsManagementService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service";
9
+ import { SessionsRecencyHistory } from "./sessionsRecencyHistory.js";
10
+ /**
11
+ * The subset of opening behaviour {@link SessionsNavigation} drives. Implemented
12
+ * by the view service, passed in to avoid the navigation (a `services` module)
13
+ * depending on the core view service.
14
+ */
15
+ export interface ISessionOpener {
16
+ openSession(sessionResource: URI, options?: {
17
+ preserveFocus?: boolean;
18
+ source?: "navigation";
19
+ }): Promise<void>;
20
+ openChat(session: ISession, chatResource: URI): Promise<void>;
21
+ }
22
+ /**
23
+ * Provides Back/Forward navigation over the shared session recency history
24
+ * ({@link SessionsRecencyHistory}). Created and owned by
25
+ * the `SessionsService` (view).
26
+ *
27
+ * The recency history is the single source of truth for ordering. Navigation
28
+ * keeps only a cursor (the currently-navigated entry) and walks the history:
29
+ * - Going Back/Forward moves the cursor over the existing order; it never
30
+ * re-promotes entries (that would break Forward).
31
+ * - Only explicit opens (recorded by the feeder autorun via
32
+ * {@link SessionsRecencyHistory.markOpened}) re-promote an entry to the front
33
+ * and reset the cursor to it.
34
+ *
35
+ * Because the history is MRU-ordered and not truncated, going somewhere new
36
+ * after a Back does not discard the previously-newer entries; they remain
37
+ * reachable as older entries (Alt+Tab-style rather than browser-style).
38
+ */
39
+ export declare class SessionsNavigation extends Disposable {
40
+ private readonly _opener;
41
+ private readonly _activeSession;
42
+ private readonly _sessionsManagementService;
43
+ private readonly _recency;
44
+ private readonly _logService;
45
+ /** Identity of the entry the cursor currently points at. */
46
+ private readonly _currentKey;
47
+ /** Guard: true while we are performing a back/forward navigation. */
48
+ private _navigating;
49
+ /**
50
+ * True when the user has explicitly navigated to the new-session view after
51
+ * having been on a real session. Enables going back to the last real session
52
+ * without storing a new-session view entry in the history.
53
+ */
54
+ private readonly _beyondHistory;
55
+ private readonly _canGoBackCtx;
56
+ private readonly _canGoForwardCtx;
57
+ private readonly _canGoBack;
58
+ private readonly _canGoForward;
59
+ constructor(_opener: ISessionOpener, _activeSession: IObservable<IActiveSession | undefined>, _sessionsManagementService: ISessionsManagementService, _recency: SessionsRecencyHistory, contextKeyService: IContextKeyService, _logService: ILogService);
60
+ onDidRemoveSessions(e: ISessionsChangeEvent): void;
61
+ goBack(): Promise<void>;
62
+ goForward(): Promise<void>;
63
+ /** Index of the current cursor entry in the recency history, or -1. */
64
+ private _indexOfCurrent;
65
+ private _indexOf;
66
+ private _navigateTo;
67
+ }