@codingame/monaco-vscode-workbench-service-override 37.6.0 → 38.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/common.js +2 -0
  2. package/index.js +9 -10
  3. package/package.json +10 -10
  4. package/session.js +45 -42
  5. package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.d.ts +1 -0
  6. package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.js +12 -0
  7. package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.d.ts → desktopWorkbench.d.ts} +6 -5
  8. package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.js → desktopWorkbench.js} +23 -25
  9. package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.d.ts +5 -2
  10. package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.js +41 -3
  11. package/vscode/src/vs/sessions/browser/layoutActions.js +25 -41
  12. package/vscode/src/vs/sessions/browser/mobileWorkbench.d.ts +4 -0
  13. package/vscode/src/vs/sessions/browser/mobileWorkbench.js +10 -0
  14. package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.d.ts +10 -5
  15. package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +138 -34
  16. package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.d.ts +2 -0
  17. package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.js +13 -5
  18. package/vscode/src/vs/sessions/browser/parts/chatGroupView.d.ts +27 -5
  19. package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +129 -28
  20. package/vscode/src/vs/sessions/browser/parts/chatGroupsView.d.ts +22 -7
  21. package/vscode/src/vs/sessions/browser/parts/chatGroupsView.js +260 -21
  22. package/vscode/src/vs/sessions/browser/parts/chatHeader.d.ts +25 -0
  23. package/vscode/src/vs/sessions/browser/parts/chatHeader.js +42 -0
  24. package/vscode/src/vs/sessions/browser/parts/customViewGridPart.js +9 -1
  25. package/vscode/src/vs/sessions/browser/parts/customViewNode.js +1 -1
  26. package/vscode/src/vs/sessions/browser/parts/{singlePaneAuxiliaryBarPart.d.ts → desktopAuxiliaryBarPart.d.ts} +4 -4
  27. package/vscode/src/vs/sessions/browser/parts/desktopAuxiliaryBarPart.js +26 -0
  28. package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.d.ts → desktopEditorPart.d.ts} +8 -6
  29. package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.js → desktopEditorPart.js} +25 -5
  30. package/vscode/src/vs/sessions/browser/parts/editorPart.js +16 -4
  31. package/vscode/src/vs/sessions/browser/parts/editorParts.d.ts +1 -1
  32. package/vscode/src/vs/sessions/browser/parts/editorParts.js +7 -6
  33. package/vscode/src/vs/sessions/browser/parts/gridGap.d.ts +14 -0
  34. package/vscode/src/vs/sessions/browser/parts/gridGap.js +69 -0
  35. package/vscode/src/vs/sessions/browser/parts/media/chatCompositeBar.css +132 -4
  36. package/vscode/src/vs/sessions/browser/parts/media/chatGroupsView.css +10 -0
  37. package/vscode/src/vs/sessions/browser/parts/media/editorPart.css +46 -2
  38. package/vscode/src/vs/sessions/browser/parts/media/sessionReadOnlyBanner.css +3 -3
  39. package/vscode/src/vs/sessions/browser/parts/media/sessionView.css +45 -48
  40. package/vscode/src/vs/sessions/browser/parts/media/sessionsPart.css +15 -0
  41. package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +8 -8
  42. package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.js +1 -1
  43. package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.d.ts +9 -1
  44. package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.js +21 -3
  45. package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.js +1 -1
  46. package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.d.ts +4 -3
  47. package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.js +29 -15
  48. package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.d.ts +67 -0
  49. package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.js +598 -0
  50. package/vscode/src/vs/sessions/browser/parts/sessionHeader.d.ts +11 -84
  51. package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +37 -317
  52. package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.d.ts +103 -0
  53. package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.js +391 -0
  54. package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.d.ts +6 -4
  55. package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +58 -28
  56. package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.d.ts +4 -0
  57. package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +66 -23
  58. package/vscode/src/vs/sessions/browser/parts/sessionView.d.ts +24 -5
  59. package/vscode/src/vs/sessions/browser/parts/sessionView.js +143 -33
  60. package/vscode/src/vs/sessions/browser/parts/sessionsPart.d.ts +25 -19
  61. package/vscode/src/vs/sessions/browser/parts/sessionsPart.js +157 -58
  62. package/vscode/src/vs/sessions/browser/parts/sessionsParts.d.ts +12 -3
  63. package/vscode/src/vs/sessions/browser/parts/sessionsParts.js +17 -2
  64. package/vscode/src/vs/sessions/browser/sessionWorkspace.d.ts +6 -3
  65. package/vscode/src/vs/sessions/browser/sessionWorkspace.js +2 -2
  66. package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +66 -20
  67. package/vscode/src/vs/sessions/browser/sessionsSignInDialog.d.ts +1 -0
  68. package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +5 -4
  69. package/vscode/src/vs/sessions/browser/workbenchFactory.d.ts +12 -0
  70. package/vscode/src/vs/sessions/browser/workbenchFactory.js +17 -0
  71. package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.d.ts +85 -1
  72. package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +118 -100
  73. package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.d.ts +3 -2
  74. package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +39 -34
  75. package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountTitleBarWidget.css +6 -0
  76. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.d.ts +3 -0
  77. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.js +6 -0
  78. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.js +18 -18
  79. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.js +12 -12
  80. package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.js +7 -7
  81. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.js +12 -12
  82. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.js +10 -10
  83. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.d.ts +78 -8
  84. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.js +1166 -202
  85. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.d.ts +11 -1
  86. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +190 -69
  87. package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.d.ts +11 -9
  88. package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +122 -233
  89. package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.d.ts +22 -0
  90. package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.js +62 -0
  91. package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.d.ts +7 -2
  92. package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +172 -84
  93. package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +17 -7
  94. package/vscode/src/vs/sessions/contrib/automations/browser/media/automationDialog.css +242 -60
  95. package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.d.ts +24 -36
  96. package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +104 -420
  97. package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +15 -14
  98. package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.d.ts +13 -3
  99. package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +66 -43
  100. package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.js +2 -7
  101. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +54 -59
  102. package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +7 -7
  103. package/vscode/src/vs/sessions/contrib/changes/browser/media/changesActions.css +6 -0
  104. package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +25 -21
  105. package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +21 -27
  106. package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +17 -17
  107. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.d.ts +5 -5
  108. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.js +2 -2
  109. package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +2 -2
  110. package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.js +9 -16
  111. package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +7 -7
  112. package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +15 -13
  113. package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.d.ts +13 -1
  114. package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +104 -117
  115. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +8 -7
  116. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.js +5 -5
  117. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.js +1 -1
  118. package/vscode/src/vs/sessions/contrib/editor/browser/media/editorBreadcrumbs.css +0 -1
  119. package/vscode/src/vs/sessions/contrib/editor/browser/media/editorHeader.css +1 -1
  120. package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.d.ts +7 -0
  121. package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.js +77 -13
  122. package/vscode/src/vs/sessions/contrib/files/browser/filesView.d.ts +2 -1
  123. package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +14 -4
  124. package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.d.ts +45 -10
  125. package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +527 -96
  126. package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.d.ts +18 -0
  127. package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.js +95 -0
  128. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.d.ts → desktop/desktopDetailPanelCoordinator.d.ts} +5 -4
  129. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.js → desktop/desktopDetailPanelCoordinator.js} +10 -7
  130. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.d.ts → desktop/desktopDockedTabsCoordinator.d.ts} +15 -12
  131. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.js → desktop/desktopDockedTabsCoordinator.js} +91 -44
  132. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.d.ts → desktop/desktopDraftSessionStrategy.d.ts} +10 -5
  133. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.js → desktop/desktopDraftSessionStrategy.js} +95 -22
  134. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.d.ts → desktop/desktopExistingSessionStrategy.d.ts} +13 -11
  135. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.js → desktop/desktopExistingSessionStrategy.js} +137 -57
  136. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.d.ts → desktop/desktopLayoutStrategy.d.ts} +22 -13
  137. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.js → desktop/desktopLayoutStrategy.js} +2 -2
  138. package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.d.ts +22 -0
  139. package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.js +136 -0
  140. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneSharedHelpers.d.ts → desktop/desktopSharedHelpers.d.ts} +9 -2
  141. package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopSharedHelpers.js +56 -0
  142. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.d.ts → desktop/desktopVisibilityProfileStore.d.ts} +3 -2
  143. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.js → desktop/desktopVisibilityProfileStore.js} +10 -9
  144. package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.d.ts +71 -0
  145. package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.js +201 -0
  146. package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.d.ts +8 -1
  147. package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +35 -35
  148. package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.d.ts +39 -0
  149. package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.js +73 -0
  150. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.d.ts +42 -1
  151. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.js +14 -10
  152. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.js +3 -4
  153. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.d.ts +2 -2
  154. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.js +13 -9
  155. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.js +20 -5
  156. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.d.ts +8 -0
  157. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.js +19 -0
  158. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +21 -20
  159. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +10 -5
  160. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +12 -8
  161. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.d.ts +3 -1
  162. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +12 -7
  163. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.d.ts +9 -1
  164. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +46 -19
  165. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.js +2 -0
  166. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/media/sessionsPolicyBlocked.css +33 -0
  167. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.d.ts +4 -2
  168. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.js +29 -8
  169. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.d.ts +15 -2
  170. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +169 -32
  171. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.js +30 -8
  172. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js +8 -34
  173. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.js +63 -49
  174. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.js +1 -1
  175. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.js +31 -17
  176. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.d.ts +32 -0
  177. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.js +250 -0
  178. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.d.ts +6 -0
  179. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.js +52 -0
  180. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.d.ts +51 -0
  181. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.js +439 -0
  182. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.d.ts +45 -0
  183. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.js +595 -0
  184. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.d.ts +20 -3
  185. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +360 -46
  186. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.d.ts +9 -0
  187. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.js +59 -0
  188. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/media/connectionDiagnostics.css +201 -0
  189. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.d.ts +10 -0
  190. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.js +70 -0
  191. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.d.ts +20 -0
  192. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.js +104 -0
  193. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.d.ts +15 -0
  194. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.js +152 -0
  195. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.d.ts +49 -0
  196. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.js +340 -0
  197. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.d.ts +41 -0
  198. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.js +400 -0
  199. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.d.ts +28 -0
  200. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.js +178 -0
  201. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.d.ts +17 -0
  202. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.js +206 -0
  203. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.d.ts +1 -0
  204. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.js +58 -0
  205. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.d.ts +10 -0
  206. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.js +90 -0
  207. package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.d.ts +38 -0
  208. package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.js +58 -0
  209. package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +4 -5
  210. package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +1 -1
  211. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.d.ts +1 -0
  212. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.js +33 -0
  213. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.d.ts +30 -0
  214. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.js +190 -0
  215. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.d.ts +31 -0
  216. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.js +559 -0
  217. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.d.ts +12 -0
  218. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.js +38 -0
  219. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.d.ts +13 -4
  220. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +155 -22
  221. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +9 -5
  222. package/vscode/src/vs/sessions/contrib/sessions/browser/media/automationsCards.css +90 -25
  223. package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css +21 -4
  224. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.d.ts +2 -1
  225. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +11 -7
  226. package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.d.ts +116 -1
  227. package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +126 -30
  228. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.d.ts +26 -0
  229. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.js +160 -0
  230. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.d.ts +14 -6
  231. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +555 -151
  232. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.d.ts +192 -0
  233. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.js +510 -0
  234. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.d.ts +6 -7
  235. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.js +64 -57
  236. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.d.ts +5 -3
  237. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +83 -51
  238. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.d.ts +5 -1
  239. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +33 -12
  240. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.d.ts +3 -0
  241. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.js +53 -0
  242. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +10 -10
  243. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.d.ts +2 -2
  244. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +103 -55
  245. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.d.ts +7 -1
  246. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +679 -325
  247. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.d.ts +27 -1
  248. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +508 -163
  249. package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.d.ts +20 -2
  250. package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.js +100 -17
  251. package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.d.ts +5 -1
  252. package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.js +108 -30
  253. package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.d.ts +5 -3
  254. package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.js +47 -35
  255. package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.d.ts +9 -4
  256. package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.js +75 -25
  257. package/vscode/src/vs/sessions/services/customView/browser/customViewService.d.ts +11 -4
  258. package/vscode/src/vs/sessions/services/customView/browser/customViewService.js +17 -9
  259. package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.d.ts +5 -0
  260. package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.js +20 -2
  261. package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.d.ts +75 -0
  262. package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.js +1135 -0
  263. package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.d.ts +17 -0
  264. package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.js +99 -0
  265. package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.d.ts +4 -0
  266. package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.js +88 -23
  267. package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.d.ts +19 -26
  268. package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.js +115 -74
  269. package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.js +1 -1
  270. package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.d.ts +22 -7
  271. package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +278 -60
  272. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.d.ts +17 -20
  273. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.js +33 -22
  274. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.d.ts +28 -8
  275. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +673 -160
  276. package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.d.ts +13 -4
  277. package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.js +105 -15
  278. package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.js +53 -34
  279. package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.js +1 -1
  280. package/vscode/src/vs/workbench/browser/layout.d.ts +46 -70
  281. package/vscode/src/vs/workbench/browser/layout.js +243 -44
  282. package/vscode/src/vs/workbench/browser/workbench.d.ts +1 -3
  283. package/vscode/src/vs/workbench/browser/workbench.js +26 -24
  284. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +6 -0
  285. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +41 -0
  286. package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.d.ts +15 -0
  287. package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.js +56 -0
  288. package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +0 -18
  289. package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.js +0 -27
  290. package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.js +0 -36
  291. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.d.ts +0 -37
  292. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.js +0 -126
  293. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.d.ts +0 -59
  294. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +0 -232
  295. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.d.ts +0 -13
  296. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.js +0 -22
  297. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +0 -45
  298. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +0 -110
  299. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.d.ts +0 -112
  300. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.js +0 -444
  301. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.js +0 -43
  302. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.d.ts +0 -55
  303. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.js +0 -91
  304. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.d.ts +0 -26
  305. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +0 -98
  306. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +0 -33
  307. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +0 -98
  308. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +0 -2
  309. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +0 -13
  310. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +0 -122
  311. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +0 -464
  312. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +0 -35
  313. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +0 -90
  314. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +0 -84
  315. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +0 -328
  316. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +0 -174
  317. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +0 -1390
  318. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +0 -44
  319. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +0 -30
  320. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +0 -78
  321. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +0 -11
  322. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +0 -26
  323. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.d.ts +0 -27
  324. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.js +0 -26
@@ -4,7 +4,7 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
4
4
  import * as chatCompositeBar from './media/chatCompositeBar.css';
5
5
  import { Disposable, DisposableStore, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
6
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
7
- import { $, addDisposableGenericMouseDownListener, addDisposableGenericMouseUpListener, addDisposableListener, EventType, DisposableResizeObserver, getWindow, reset, EventHelper, isHTMLElement, addStandardDisposableListener } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
7
+ import { $, addDisposableGenericMouseDownListener, addDisposableGenericMouseUpListener, addDisposableListener, EventType, DisposableResizeObserver, getWindow, reset, EventHelper, isHTMLElement, isActiveElement, addStandardDisposableListener } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
8
8
  import { applyDragImage } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/dnd/dnd';
9
9
  import { ScrollableElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
10
10
  import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
@@ -34,9 +34,14 @@ import { applySessionBarThemeColors } from './sessionBarStyles.js';
34
34
  import { ISessionsProvidersService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service';
35
35
  import { isAgentHostProvider } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/agentHostSessionsProvider';
36
36
  import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
37
- import { CLOSE_CHAT_COMMAND_ID, COPY_AGENT_HOST_CHAT_LINK_COMMAND_ID } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/sessionCommands';
37
+ import { CLOSE_CHAT_COMMAND_ID, RENAME_CHAT_COMMAND_ID, COPY_AGENT_HOST_CHAT_LINK_COMMAND_ID, ARCHIVE_CHAT_COMMAND_ID, UNARCHIVE_CHAT_COMMAND_ID } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/sessionCommands';
38
38
  import { getSessionConversationStatusAriaLabel } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/sessionConversationGroups';
39
39
  import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
40
+ import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
41
+ import { clearConnectedTabClipping, updateConnectedTabClipping } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/editor/connectedTabClipping';
42
+ import { CONNECTED_EDITOR_TABS_SELECTOR } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/editor/editor';
43
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
44
+ import { getChatSessionArchiveActionPresentation, getChatSessionArchiveActionWording } from '@codingame/monaco-vscode-api/vscode/vs/platform/chat/common/sessionArchiveActions';
40
45
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
41
46
 
42
47
  registerCss(chatCompositeBar, 0);
@@ -60,7 +65,9 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
60
65
  _instantiationService,
61
66
  _sessionsProvidersService,
62
67
  _commandService,
63
- _editorGroupsService
68
+ _editorGroupsService,
69
+ _keybindingService,
70
+ _configurationService
64
71
  ) {
65
72
  super();
66
73
  this._themeService = _themeService;
@@ -72,6 +79,8 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
72
79
  this._sessionsProvidersService = _sessionsProvidersService;
73
80
  this._commandService = _commandService;
74
81
  this._editorGroupsService = _editorGroupsService;
82
+ this._keybindingService = _keybindingService;
83
+ this._configurationService = _configurationService;
75
84
  this._tabs = [];
76
85
  this._tabDisposables = this._register(( new DisposableStore()));
77
86
  this._groupDisposables = this._register(( new MutableDisposable()));
@@ -92,18 +101,26 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
92
101
  this._register(
93
102
  this._editorGroupsService.onDidChangeEditorPartOptions(updateCompactHeight)
94
103
  );
95
- this._tabsRow = $(".chat-composite-bar-tabs-row");
104
+ this._tabsRow = $(".chat-composite-bar-tabs-row.modern-ui-editor-tab-strip");
96
105
  this._container.appendChild(this._tabsRow);
97
- this._tabsContainer = $(".chat-composite-bar-tabs");
106
+ this._tabsContainer = $(".chat-composite-bar-tabs.modern-ui-editor-tab-list");
98
107
  this._tabsContainer.setAttribute("role", "tablist");
99
- this._tabsContainer.setAttribute("aria-label", ( localize(2968, "Chats")));
108
+ this._tabsContainer.setAttribute("aria-label", ( localize(3366, "Chats")));
100
109
  this._tabsScrollbar = this._register(( new ScrollableElement(this._tabsContainer, {
101
- horizontal: ScrollbarVisibility.Hidden,
110
+ horizontal: ScrollbarVisibility.Auto,
111
+ horizontalScrollbarSize: 3,
102
112
  vertical: ScrollbarVisibility.Hidden,
103
113
  scrollYToX: true,
104
114
  useShadows: false
105
115
  })));
106
116
  this._tabsRow.appendChild(this._tabsScrollbar.getDomNode());
117
+ this._connectedTabOverflowEdge = $(".tab-connected-overflow-edge", {
118
+ "aria-hidden": true
119
+ });
120
+ const connectedTabOverflowRight = $(".tab-connected-overflow-right");
121
+ connectedTabOverflowRight.appendChild($(".tab-connected-overflow-right-edge"));
122
+ this._connectedTabOverflowEdge.appendChild(connectedTabOverflowRight);
123
+ this._tabsScrollbar.getDomNode().appendChild(this._connectedTabOverflowEdge);
107
124
  this._sessionActionsContainer = $(".session-chat-tabs-actions");
108
125
  this._tabsRow.appendChild(this._sessionActionsContainer);
109
126
  const sessionToolbarContainer = $(".chat-composite-bar-toolbar");
@@ -134,10 +151,12 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
134
151
  this._tabsScrollbar.setScrollPosition({
135
152
  scrollLeft: this._tabsContainer.scrollLeft
136
153
  });
154
+ this._updateConnectedTabClipping();
137
155
  }));
138
156
  this._register(this._tabsScrollbar.onScroll(e => {
139
157
  if (e.scrollLeftChanged) {
140
158
  this._tabsContainer.scrollLeft = e.scrollLeft;
159
+ this._updateConnectedTabClipping();
141
160
  }
142
161
  }));
143
162
  const resizeObserver = this._register(( new DisposableResizeObserver("ChatCompositeBar.activeTabReveal", () => {
@@ -207,7 +226,6 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
207
226
  this._createTab(chat, ( chat.resource.toString()) === mainChatId);
208
227
  }
209
228
  this._updateActiveTab(this._delegate?.activeChatResource.get() ?? "");
210
- this._updateScrollDimensions();
211
229
  }
212
230
  _updateScrollDimensions() {
213
231
  this._tabsScrollbar.setScrollDimensions({
@@ -215,6 +233,37 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
215
233
  scrollWidth: this._tabsContainer.scrollWidth
216
234
  });
217
235
  }
236
+ _updateConnectedTabClipping() {
237
+ clearConnectedTabClipping(this._connectedTab?.element, this._connectedTabOverflowEdge);
238
+ this._connectedTab = undefined;
239
+ if (!this._container.closest(CONNECTED_EDITOR_TABS_SELECTOR)) {
240
+ return;
241
+ }
242
+ const activeTab = this._tabs.find(tab => tab.element.classList.contains("active"));
243
+ if (!activeTab) {
244
+ return;
245
+ }
246
+ this._connectedTab = activeTab;
247
+ const tabsBounds = this._tabsContainer.getBoundingClientRect();
248
+ const fillBounds = activeTab.fill.getBoundingClientRect();
249
+ const scrollableBounds = this._tabsScrollbar.getDomNode().getBoundingClientRect();
250
+ const scrollLeft = this._tabsContainer.scrollLeft;
251
+ const targetWindow = getWindow(activeTab.fill);
252
+ this._connectedTabOverflowEdge.style.top = `${fillBounds.top - scrollableBounds.top}px`;
253
+ this._connectedTabOverflowEdge.style.bottom = `${scrollableBounds.bottom - fillBounds.bottom}px`;
254
+ this._connectedTabOverflowEdge.style.left = "0";
255
+ this._connectedTabOverflowEdge.style.right = "0";
256
+ updateConnectedTabClipping({
257
+ tab: activeTab.element,
258
+ overflowEdge: this._connectedTabOverflowEdge,
259
+ fillLeft: fillBounds.left - tabsBounds.left + scrollLeft,
260
+ fillRight: fillBounds.right - tabsBounds.left + scrollLeft,
261
+ viewportLeft: 0,
262
+ viewportRight: this._tabsContainer.clientWidth,
263
+ shoulderExtent: parseFloat(targetWindow.getComputedStyle(activeTab.fill, "::after").width)
264
+ }, scrollLeft);
265
+ this._connectedTabOverflowEdge.classList.toggle("connected-tab-hovered", activeTab.element.matches(":hover"));
266
+ }
218
267
  _createTab(chat, isMainChat) {
219
268
  const delegate = this._delegate;
220
269
  const session = delegate?.session;
@@ -228,12 +277,17 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
228
277
  "aria-hidden": true
229
278
  });
230
279
  tab.appendChild(tabFill);
280
+ tab.appendChild($(".tab-connected-edge", {
281
+ "aria-hidden": true
282
+ }));
231
283
  const labelEl = $(".chat-composite-bar-tab-label.modern-ui-editor-tab-label");
232
284
  this._tabDisposables.add(autorun(reader => {
233
285
  const title = chat.title.read(reader);
234
286
  const status = chat.status.read(reader);
287
+ const isRead = chat.isRead.read(reader);
235
288
  labelEl.textContent = title;
236
- tab.setAttribute("aria-label", ( localize(2969, "{0}, {1}", title, getSessionConversationStatusAriaLabel(status))));
289
+ const label = ( localize(3367, "{0}, {1}", title, getSessionConversationStatusAriaLabel(status)));
290
+ tab.setAttribute("aria-label", isRead ? label : ( localize(3368, "{0}, unread", label)));
237
291
  }));
238
292
  const lockIcon = $(".chat-composite-bar-tab-lock");
239
293
  lockIcon.classList.add(...ThemeIcon.asClassNameArray(Codicon.lock));
@@ -249,6 +303,12 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
249
303
  this._tabDisposables.add(
250
304
  this._hoverService.setupManagedHover(getDefaultHoverDelegate("element"), tab, () => chat.title.get())
251
305
  );
306
+ this._tabDisposables.add(addDisposableListener(tab, EventType.MOUSE_ENTER, () => {
307
+ this._connectedTabOverflowEdge.classList.toggle("connected-tab-hovered", tab.classList.contains("active"));
308
+ }));
309
+ this._tabDisposables.add(addDisposableListener(tab, EventType.MOUSE_LEAVE, () => {
310
+ this._connectedTabOverflowEdge.classList.remove("connected-tab-hovered");
311
+ }));
252
312
  this._tabDisposables.add(autorun(reader => {
253
313
  const status = chat.status.read(reader);
254
314
  tab.classList.toggle("untitled", status === SessionStatus.Untitled);
@@ -285,22 +345,20 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
285
345
  this._instantiationService.createInstance(MenuWorkbenchToolBar, actionsContainer, Menus.SessionChatTab, {
286
346
  hiddenItemStrategy: HiddenItemStrategy.Ignore,
287
347
  menuOptions: {
288
- shouldForwardArgs: true
348
+ args: [session, chat]
289
349
  },
290
350
  toolbarOptions: {
291
351
  primaryGroup: () => true
292
352
  }
293
353
  })
294
354
  );
295
- tabToolbar.context = {
296
- session,
297
- chat
298
- };
355
+ tabToolbar.context = session;
299
356
  }
300
357
  this._tabsContainer.appendChild(tab);
301
358
  const chatTab = {
302
359
  chat,
303
360
  element: tab,
361
+ fill: tabFill,
304
362
  inputContainer,
305
363
  toolbar: tabToolbar
306
364
  };
@@ -360,10 +418,7 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
360
418
  return;
361
419
  }
362
420
  this._cancelTabEditing();
363
- void this._commandService.executeCommand(CLOSE_CHAT_COMMAND_ID, {
364
- session,
365
- chat
366
- }).catch(onUnexpectedError);
421
+ void this._commandService.executeCommand(CLOSE_CHAT_COMMAND_ID, session, chat).catch(onUnexpectedError);
367
422
  }));
368
423
  this._tabDisposables.add(addDisposableListener(tab, EventType.DRAG_START, e => {
369
424
  if (!delegate || !e.dataTransfer) {
@@ -393,10 +448,16 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
393
448
  clearChatReferenceDragData();
394
449
  this._delegate?.onTabDragEnd?.();
395
450
  }));
396
- const renameAction = this._tabDisposables.add(( new Action("sessionCompositeBar.renameChat", ( localize(2970, "Rename")), undefined, true, async () => {
397
- this._startTabEditing(chatTab);
451
+ const renameAction = this._tabDisposables.add(( new Action(RENAME_CHAT_COMMAND_ID, ( localize(3369, "Rename...")), undefined, true, async () => {
452
+ if (session) {
453
+ await this._commandService.executeCommand(RENAME_CHAT_COMMAND_ID, {
454
+ session,
455
+ chat,
456
+ inline: true
457
+ });
458
+ }
398
459
  })));
399
- const copyLinkAction = this._tabDisposables.add(( new Action(COPY_AGENT_HOST_CHAT_LINK_COMMAND_ID, ( localize(2971, "Copy Link")), undefined, true, async () => {
460
+ const copyLinkAction = this._tabDisposables.add(( new Action(COPY_AGENT_HOST_CHAT_LINK_COMMAND_ID, ( localize(3370, "Copy Link")), undefined, true, async () => {
400
461
  if (session) {
401
462
  await this._commandService.executeCommand(COPY_AGENT_HOST_CHAT_LINK_COMMAND_ID, {
402
463
  session,
@@ -404,11 +465,40 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
404
465
  });
405
466
  }
406
467
  })));
407
- const deleteAction = this._tabDisposables.add(( new Action("sessionCompositeBar.deleteChat", ( localize(2972, "Delete Chat")), undefined, true, async () => {
468
+ const deleteAction = this._tabDisposables.add(( new Action("sessionCompositeBar.deleteChat", ( localize(3371, "Delete Chat")), undefined, true, async () => {
408
469
  if (delegate) {
409
470
  await this._sessionsManagementService.deleteChat(delegate.session, chat.resource);
410
471
  }
411
472
  })));
473
+ const archivePresentation = getChatSessionArchiveActionPresentation(getChatSessionArchiveActionWording(this._configurationService));
474
+ const archiveAction = this._tabDisposables.add(( new Action(
475
+ ARCHIVE_CHAT_COMMAND_ID,
476
+ archivePresentation.archive.title.value,
477
+ undefined,
478
+ true,
479
+ async () => {
480
+ if (delegate) {
481
+ await this._commandService.executeCommand(ARCHIVE_CHAT_COMMAND_ID, {
482
+ session: delegate.session,
483
+ chat
484
+ });
485
+ }
486
+ }
487
+ )));
488
+ const unarchiveAction = this._tabDisposables.add(( new Action(
489
+ UNARCHIVE_CHAT_COMMAND_ID,
490
+ archivePresentation.unarchive.title.value,
491
+ undefined,
492
+ true,
493
+ async () => {
494
+ if (delegate) {
495
+ await this._commandService.executeCommand(UNARCHIVE_CHAT_COMMAND_ID, {
496
+ session: delegate.session,
497
+ chat
498
+ });
499
+ }
500
+ }
501
+ )));
412
502
  this._tabDisposables.add(addDisposableListener(tab, EventType.DBLCLICK, e => {
413
503
  if (chat.status.get() === SessionStatus.Untitled || !getChatCapabilities(chat, session, undefined).canRename) {
414
504
  return;
@@ -432,10 +522,12 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
432
522
  const provider = session && this._sessionsProvidersService.getProvider(session.providerId);
433
523
  return Separator.join(
434
524
  capabilities.canRename ? [renameAction] : [],
435
- provider && isAgentHostProvider(provider) ? [copyLinkAction] : [],
436
- capabilities.canDelete ? [deleteAction] : []
525
+ capabilities.canArchive ? [chat.isArchived.get() ? unarchiveAction : archiveAction] : [],
526
+ capabilities.canDelete ? [deleteAction] : [],
527
+ provider && isAgentHostProvider(provider) ? [copyLinkAction] : []
437
528
  );
438
- }
529
+ },
530
+ getKeyBinding: action => this._keybindingService.lookupKeybinding(action.id) ?? undefined
439
531
  });
440
532
  }));
441
533
  this._tabs.push(chatTab);
@@ -451,23 +543,37 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
451
543
  const provider = this._sessionsProvidersService.getProvider(providerId);
452
544
  return provider && isAgentHostProvider(provider) ? provider.getBackendChatResource(chat.resource) : undefined;
453
545
  }
546
+ startFocusedTabEditing() {
547
+ const chatTab = this._tabs.find(tab => isActiveElement(tab.element));
548
+ if (!chatTab) {
549
+ return false;
550
+ }
551
+ return this._startTabEditing(chatTab);
552
+ }
553
+ startTabEditing(chatResource) {
554
+ const chatTab = this._tabs.find(tab => ( tab.chat.resource.toString()) === ( chatResource.toString()));
555
+ return chatTab ? this._startTabEditing(chatTab) : false;
556
+ }
454
557
  _startTabEditing(chatTab) {
455
558
  const delegate = this._delegate;
456
559
  if (!delegate || this._editingTab) {
457
- return;
560
+ return false;
458
561
  }
459
562
  const {
460
563
  chat,
461
564
  element: tab,
462
565
  inputContainer
463
566
  } = chatTab;
567
+ if (( chat.resource.toString()) === delegate.mainChatResource.get() || chat.status.get() === SessionStatus.Untitled || !getChatCapabilities(chat, delegate.session, undefined).canRename) {
568
+ return false;
569
+ }
464
570
  const initialTitle = chat.title.get();
465
571
  this._editingTab = chatTab;
466
572
  tab.classList.add("editing");
467
573
  const store = ( new DisposableStore());
468
574
  this._editingDisposables.value = store;
469
575
  const inputBox = store.add(( new InputBox(inputContainer, this._contextViewService, {
470
- ariaLabel: ( localize(2973, "Rename chat")),
576
+ ariaLabel: ( localize(3372, "Rename chat")),
471
577
  inputBoxStyles: defaultInputBoxStyles
472
578
  })));
473
579
  inputBox.element.classList.add("chat-composite-bar-tab-input");
@@ -510,6 +616,7 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
510
616
  store.add(
511
617
  addDisposableListener(inputBox.element, EventType.DBLCLICK, e => e.stopPropagation())
512
618
  );
619
+ return true;
513
620
  }
514
621
  _cancelTabEditing() {
515
622
  if (!this._editingTab) {
@@ -533,13 +640,9 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
533
640
  tab.element.setAttribute("aria-selected", String(isActive));
534
641
  tab.element.tabIndex = isActive ? 0 : -1;
535
642
  tab.toolbar?.setFocusable(isActive);
536
- if (isActive) {
537
- tab.element.scrollIntoView({
538
- block: "nearest",
539
- inline: "nearest"
540
- });
541
- }
542
643
  }
644
+ this._updateScrollDimensions();
645
+ this._revealActiveTab();
543
646
  }
544
647
  _revealActiveTab() {
545
648
  const activeTab = this._tabs.find(t => t.element.classList.contains("active"));
@@ -547,6 +650,7 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
547
650
  block: "nearest",
548
651
  inline: "nearest"
549
652
  });
653
+ this._updateConnectedTabClipping();
550
654
  }
551
655
  _setVisible(visible) {
552
656
  const wasVisible = this._visible;
@@ -561,6 +665,6 @@ let ChatCompositeBar = class ChatCompositeBar extends Disposable {
561
665
  applySessionBarThemeColors(this._container, this._themeService.getColorTheme());
562
666
  }
563
667
  };
564
- ChatCompositeBar = ( __decorate([( __param(1, IThemeService)), ( __param(2, ISessionsManagementService)), ( __param(3, IContextMenuService)), ( __param(4, IContextViewService)), ( __param(5, IHoverService)), ( __param(6, IInstantiationService)), ( __param(7, ISessionsProvidersService)), ( __param(8, ICommandService)), ( __param(9, IEditorGroupsService))], ChatCompositeBar));
668
+ ChatCompositeBar = ( __decorate([( __param(1, IThemeService)), ( __param(2, ISessionsManagementService)), ( __param(3, IContextMenuService)), ( __param(4, IContextViewService)), ( __param(5, IHoverService)), ( __param(6, IInstantiationService)), ( __param(7, ISessionsProvidersService)), ( __param(8, ICommandService)), ( __param(9, IEditorGroupsService)), ( __param(10, IKeybindingService)), ( __param(11, IConfigurationService))], ChatCompositeBar));
565
669
 
566
670
  export { ChatCompositeBar };
@@ -11,6 +11,8 @@ export type ChatDropZone = "left" | "right" | "top" | "bottom" | "center";
11
11
  export interface IChatGroupDropTargetDelegate {
12
12
  /** Whether the drag can be accepted by this session's grid. */
13
13
  isChatDrag(event: DragEvent): boolean;
14
+ /** Resolve a chat drag or a drag of this session's main chat. */
15
+ getChatDragData(event: DragEvent): IDraggedSessionChat | undefined;
14
16
  /** Resolve a child element to its owning chat group id + root element. */
15
17
  findTargetGroup(child: HTMLElement): {
16
18
  readonly id: number;
@@ -21,7 +21,6 @@ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/sear
21
21
  import { Themable } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService';
22
22
  import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
23
23
  import { EDITOR_DRAG_AND_DROP_BACKGROUND } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/theme';
24
- import { getSessionChatDragData } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/dnd';
25
24
 
26
25
  var ChatGroupDropOverlay_1;
27
26
  registerCss(chatGroupDropTarget, 0);
@@ -36,12 +35,20 @@ let ChatGroupDropOverlay = class ChatGroupDropOverlay extends Themable {
36
35
  get disposed() {
37
36
  return this._disposed;
38
37
  }
39
- constructor(targetGroupId, _targetElement, _onDrop, _isChatDrag, themeService) {
38
+ constructor(
39
+ targetGroupId,
40
+ _targetElement,
41
+ _onDrop,
42
+ _isChatDrag,
43
+ _getChatDragData,
44
+ themeService
45
+ ) {
40
46
  super(themeService);
41
47
  this.targetGroupId = targetGroupId;
42
48
  this._targetElement = _targetElement;
43
49
  this._onDrop = _onDrop;
44
50
  this._isChatDrag = _isChatDrag;
51
+ this._getChatDragData = _getChatDragData;
45
52
  this._disposed = false;
46
53
  this._cleanupOverlayScheduler = this._register(( new RunOnceScheduler(() => this.dispose(), 300)));
47
54
  this._create();
@@ -87,7 +94,7 @@ let ChatGroupDropOverlay = class ChatGroupDropOverlay extends Themable {
87
94
  onDrop: e => {
88
95
  EventHelper.stop(e, true);
89
96
  const zone = this._currentZone;
90
- const data = getSessionChatDragData(e);
97
+ const data = this._getChatDragData(e);
91
98
  this.dispose();
92
99
  if (zone) {
93
100
  this._onDrop(this.targetGroupId, zone, data);
@@ -220,7 +227,7 @@ let ChatGroupDropOverlay = class ChatGroupDropOverlay extends Themable {
220
227
  this._disposed = true;
221
228
  }
222
229
  };
223
- ChatGroupDropOverlay = ChatGroupDropOverlay_1 = ( __decorate([( __param(4, IThemeService))], ChatGroupDropOverlay));
230
+ ChatGroupDropOverlay = ChatGroupDropOverlay_1 = ( __decorate([( __param(5, IThemeService))], ChatGroupDropOverlay));
224
231
  let ChatGroupDropTarget = class ChatGroupDropTarget extends Themable {
225
232
  constructor(_container, _delegate, themeService, _instantiationService) {
226
233
  super(themeService);
@@ -275,7 +282,8 @@ let ChatGroupDropTarget = class ChatGroupDropTarget extends Themable {
275
282
  targetGroup.id,
276
283
  targetGroup.element,
277
284
  (groupId, zone, data) => this._delegate.onChatDrop(groupId, zone, data),
278
- event => this._delegate.isChatDrag(event)
285
+ event => this._delegate.isChatDrag(event),
286
+ event => this._delegate.getChatDragData(event)
279
287
  );
280
288
  }
281
289
  _onDragLeave() {
@@ -10,7 +10,7 @@ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platf
10
10
  import { IChat } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
11
11
  import { IActiveSession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement";
12
12
  import { IChatViewFactory } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/chatView/browser/chatViewFactory.service";
13
- import { IChatViewOptions, ISelectWorkspaceOptions, WorkspaceSelectionResult } from "@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/chatView";
13
+ import { IChatViewOptions, ISelectNoWorkspaceOptions, ISelectWorkspaceOptions, WorkspaceSelectionResult } from "@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/chatView";
14
14
  /**
15
15
  * The data + callbacks a {@link ChatGroupView} needs from its owning
16
16
  * {@link ChatGroupsView}. Each group renders a subset of the session's chats.
@@ -28,8 +28,14 @@ export interface IChatGroupContext {
28
28
  readonly mainChatResource: IObservable<string>;
29
29
  /** Whether the group's tab strip should be shown. */
30
30
  readonly tabsVisible: IObservable<boolean>;
31
+ /** Whether this group should show its chat header instead of tabs. */
32
+ readonly chatHeaderVisible: IObservable<boolean>;
33
+ /** Whether this group's active chat is pinned against automatic replacement. */
34
+ readonly activeChatIsPinned: IObservable<boolean>;
31
35
  /** Whether this group's tab row replaces the session header and shows its actions. */
32
36
  readonly showSessionActions: IObservable<boolean>;
37
+ /** Make this the active chat group for group-scoped header actions. */
38
+ activate(): void;
33
39
  /** Activate (show + focus) the given chat within this group. */
34
40
  openChat(resource: URI): void;
35
41
  /** A chat tab drag has started for the given chat. */
@@ -38,9 +44,9 @@ export interface IChatGroupContext {
38
44
  onTabDragEnd(): void;
39
45
  }
40
46
  /**
41
- * A single leaf in the {@link ChatGroupsView} grid. Hosts a
42
- * {@link ChatCompositeBar} (this group's chats) on top of a kind-switched
43
- * {@link AbstractChatView} that renders the group's active chat.
47
+ * A single leaf in the {@link ChatGroupsView} grid. Hosts session or chat-tab
48
+ * presentation on top of a kind-switched {@link AbstractChatView} that renders
49
+ * the group's active chat.
44
50
  */
45
51
  export declare class ChatGroupView extends Disposable implements ISerializableView {
46
52
  private readonly _chatViewFactory;
@@ -58,13 +64,25 @@ export declare class ChatGroupView extends Disposable implements ISerializableVi
58
64
  private readonly _onDidFocus;
59
65
  readonly onDidFocus: Event<void>;
60
66
  private readonly _compositeBar;
67
+ private readonly _chatHeader;
61
68
  private readonly _barContainer;
62
69
  private readonly _readOnlyBanner;
63
70
  private readonly _contentContainer;
64
71
  private readonly _remoteHostUnavailableEmptyState;
65
72
  private readonly _currentView;
73
+ private _draftChatResource;
66
74
  private readonly _contextDisposables;
67
75
  private readonly _scopedInstantiationService;
76
+ private readonly _activeChatIsClosableKey;
77
+ private readonly _activeChatCanArchiveKey;
78
+ private readonly _activeChatIsDeletableKey;
79
+ private readonly _activeChatIsUntitledKey;
80
+ private readonly _activeChatIsPinnedKey;
81
+ private readonly _activeChatResourceKey;
82
+ private readonly _activeChatHasSideChatsKey;
83
+ private readonly _headerShowsChatKey;
84
+ private readonly _headerTargetsChatKey;
85
+ private readonly _toolbarShowsSessionKey;
68
86
  private readonly _focusedChatIsRenameTargetKey;
69
87
  private readonly _connection;
70
88
  /** The configured wording for the archive/unarchive action (Archive vs Delete). */
@@ -78,10 +96,14 @@ export declare class ChatGroupView extends Disposable implements ISerializableVi
78
96
  private _sessionVisible;
79
97
  /** Whether this is the first group in the chat grid's logical order. */
80
98
  private _primary;
99
+ /** Whether the chat grid has more than one group. */
100
+ private _split;
81
101
  /** Index of this group within the persisted layout, written into {@link toJSON}. */
82
102
  private _serializationIndex;
83
103
  constructor(_chatViewFactory: IChatViewFactory, _instantiationService: IInstantiationService, _commandService: ICommandService, configurationService: IConfigurationService, contextKeyService: IContextKeyService);
84
104
  setGroupPosition(index: number, count: number): void;
105
+ startFocusedChatTitleEditing(): boolean;
106
+ startChatTitleEditing(chatResource: URI): boolean;
85
107
  /** Sets (or clears) the group this view renders. */
86
108
  setContext(context: IChatGroupContext | undefined): void;
87
109
  private _setReadOnlyBanner;
@@ -95,7 +117,7 @@ export declare class ChatGroupView extends Disposable implements ISerializableVi
95
117
  setSessionVisible(visible: boolean): void;
96
118
  submitInput(): Promise<boolean>;
97
119
  selectWorkspace(folderUri: URI, options?: ISelectWorkspaceOptions): WorkspaceSelectionResult;
98
- selectNoWorkspace(): void;
120
+ selectNoWorkspace(options?: ISelectNoWorkspaceOptions): void;
99
121
  prefillInput(text: string): void;
100
122
  sendQuery(text: string): void;
101
123
  attach(uris: URI[]): void;