@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
@@ -2,8 +2,10 @@
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { $, trackFocus, size } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
4
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
5
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
5
6
  import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
7
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
8
+ import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
7
9
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
8
10
  import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
9
11
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
@@ -11,14 +13,15 @@ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/pl
11
13
  import { ServiceCollection } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/serviceCollection';
12
14
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
13
15
  import { getChatSessionArchiveActionWording, getChatSessionArchiveActionPresentation } from '@codingame/monaco-vscode-api/vscode/vs/platform/chat/common/sessionArchiveActions';
14
- import { ChatInteractivity, SessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
16
+ import { getChatCapabilities, SessionStatus, isSideChatOf, ChatInteractivity } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
15
17
  import { UNARCHIVE_SESSION_COMMAND_ID } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/sessionCommands';
16
- import { SessionFocusedChatIsRenameTargetContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
18
+ import { SessionActiveChatIsClosableContext, SessionActiveChatCanArchiveContext, SessionActiveChatIsDeletableContext, SessionActiveChatIsUntitledContext, SessionHeaderActiveChatIsPinnedContext, SessionActiveChatResourceContext, SessionActiveChatHasSideChatsContext, SessionHeaderShowsChatContext, SessionHeaderTargetsChatContext, SessionToolbarShowsSessionContext, SessionFocusedChatIsRenameTargetContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
17
19
  import { IChatViewFactory } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/chatView/browser/chatViewFactory.service';
18
20
  import { ChatCompositeBar } from './chatCompositeBar.js';
19
21
  import { RemoteHostUnavailableEmptyState } from './remoteHostUnavailableEmptyState.js';
20
22
  import { SessionRemoteConnection } from './sessionRemoteConnection.js';
21
23
  import { SessionReadOnlyBanner } from './sessionReadOnlyBanner.js';
24
+ import { ChatHeader } from './chatHeader.js';
22
25
  import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
23
26
  import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
24
27
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
@@ -58,9 +61,20 @@ let ChatGroupView = class ChatGroupView extends Disposable {
58
61
  this._sessionActive = true;
59
62
  this._sessionVisible = true;
60
63
  this._primary = false;
64
+ this._split = false;
61
65
  this._serializationIndex = 0;
62
66
  const scopedContextKeyService = this._register(contextKeyService.createScoped(this.element));
63
67
  this._scopedInstantiationService = this._register(this._instantiationService.createChild(( new ServiceCollection([IContextKeyService, scopedContextKeyService]))));
68
+ this._activeChatIsClosableKey = SessionActiveChatIsClosableContext.bindTo(scopedContextKeyService);
69
+ this._activeChatCanArchiveKey = SessionActiveChatCanArchiveContext.bindTo(scopedContextKeyService);
70
+ this._activeChatIsDeletableKey = SessionActiveChatIsDeletableContext.bindTo(scopedContextKeyService);
71
+ this._activeChatIsUntitledKey = SessionActiveChatIsUntitledContext.bindTo(scopedContextKeyService);
72
+ this._activeChatIsPinnedKey = SessionHeaderActiveChatIsPinnedContext.bindTo(scopedContextKeyService);
73
+ this._activeChatResourceKey = SessionActiveChatResourceContext.bindTo(scopedContextKeyService);
74
+ this._activeChatHasSideChatsKey = SessionActiveChatHasSideChatsContext.bindTo(scopedContextKeyService);
75
+ this._headerShowsChatKey = SessionHeaderShowsChatContext.bindTo(scopedContextKeyService);
76
+ this._headerTargetsChatKey = SessionHeaderTargetsChatContext.bindTo(scopedContextKeyService);
77
+ this._toolbarShowsSessionKey = SessionToolbarShowsSessionContext.bindTo(scopedContextKeyService);
64
78
  this._focusedChatIsRenameTargetKey = SessionFocusedChatIsRenameTargetContext.bindTo(scopedContextKeyService);
65
79
  this._connection = this._register(this._instantiationService.createInstance(SessionRemoteConnection));
66
80
  this._archiveActionWording = observableFromEvent(
@@ -70,45 +84,88 @@ let ChatGroupView = class ChatGroupView extends Disposable {
70
84
  );
71
85
  this._barContainer = $(".chat-group-view-bar");
72
86
  this.element.appendChild(this._barContainer);
87
+ this._chatHeader = this._register(this._scopedInstantiationService.createInstance(ChatHeader));
88
+ this._barContainer.appendChild(this._chatHeader.element);
73
89
  this._compositeBar = this._register(
74
90
  this._scopedInstantiationService.createInstance(ChatCompositeBar, undefined)
75
91
  );
76
92
  this._barContainer.appendChild(this._compositeBar.element);
77
- this._readOnlyBanner = this._register(( new SessionReadOnlyBanner()));
93
+ this._readOnlyBanner = this._register(this._instantiationService.createInstance(SessionReadOnlyBanner));
78
94
  this._barContainer.appendChild(this._readOnlyBanner.domNode);
79
95
  this._contentContainer = $(".chat-group-view-content");
80
96
  this.element.appendChild(this._contentContainer);
81
- this._remoteHostUnavailableEmptyState = this._register(( new RemoteHostUnavailableEmptyState()));
97
+ this._remoteHostUnavailableEmptyState = this._register(this._instantiationService.createInstance(RemoteHostUnavailableEmptyState));
82
98
  this._contentContainer.appendChild(this._remoteHostUnavailableEmptyState.domNode);
83
- this._register(this._compositeBar.onDidChangeVisibility(() => this._layoutChildren()));
99
+ this._register(this._chatHeader.onDidChangeVisibility(() => this._layoutChildren()));
100
+ this._register(this._chatHeader.onDidChangeHeight(() => this._layoutChildren()));
101
+ this._register(this._compositeBar.onDidChangeVisibility(() => {
102
+ this._contentContainer.classList.toggle("modern-ui-editor-tab-content", this._compositeBar.visible);
103
+ this._layoutChildren();
104
+ }));
84
105
  this._register(this._compositeBar.onDidChangeHeight(() => this._layoutChildren()));
85
106
  const focusTracker = this._register(trackFocus(this.element));
86
107
  this._register(focusTracker.onDidFocus(() => this._onDidFocus.fire()));
87
108
  }
88
109
  setGroupPosition(index, count) {
89
110
  this._primary = index === 0;
90
- this._currentView.value?.setPrimary(this._primary);
111
+ this._split = count > 1;
112
+ this._currentView.value?.setPrimary(this._primary, this._split);
91
113
  if (count <= 1) {
92
114
  this.element.removeAttribute("role");
93
115
  this.element.removeAttribute("aria-label");
94
- this._compositeBar.setAriaLabel(( localize(2974, "Chats")));
116
+ this._compositeBar.setAriaLabel(( localize(3373, "Chats")));
95
117
  return;
96
118
  }
97
119
  this.element.setAttribute("role", "region");
98
- this.element.setAttribute("aria-label", ( localize(2975, "Chat Group {0} of {1}", index + 1, count)));
99
- this._compositeBar.setAriaLabel(( localize(2976, "Chats, Group {0} of {1}", index + 1, count)));
120
+ this.element.setAttribute("aria-label", ( localize(3374, "Chat Group {0} of {1}", index + 1, count)));
121
+ this._compositeBar.setAriaLabel(( localize(3375, "Chats, Group {0} of {1}", index + 1, count)));
122
+ }
123
+ startFocusedChatTitleEditing() {
124
+ return this._compositeBar.startFocusedTabEditing();
125
+ }
126
+ startChatTitleEditing(chatResource) {
127
+ return this._compositeBar.startTabEditing(chatResource);
100
128
  }
101
129
  setContext(context) {
102
130
  this._contextDisposables.clear();
103
131
  this._connection.setSession(context?.session);
104
132
  if (!context) {
133
+ this._draftChatResource = undefined;
134
+ this._activeChatIsClosableKey.reset();
135
+ this._activeChatCanArchiveKey.reset();
136
+ this._activeChatIsDeletableKey.reset();
137
+ this._activeChatIsUntitledKey.reset();
138
+ this._activeChatIsPinnedKey.reset();
139
+ this._activeChatResourceKey.reset();
140
+ this._activeChatHasSideChatsKey.reset();
141
+ this._headerShowsChatKey.reset();
142
+ this._headerTargetsChatKey.reset();
143
+ this._toolbarShowsSessionKey.reset();
105
144
  this._focusedChatIsRenameTargetKey.reset();
145
+ this._chatHeader.setChat(undefined);
106
146
  this._compositeBar.setGroup(undefined);
107
147
  this._currentView.clear();
108
148
  this._setRemoteHostUnavailableEmptyState(undefined);
109
149
  this._contentContainer.replaceChildren(this._remoteHostUnavailableEmptyState.domNode);
110
150
  return;
111
151
  }
152
+ const activeChat = derived(reader => {
153
+ const activeResource = context.activeChatResource.read(reader);
154
+ return context.chats.read(reader).find(c => ( c.resource.toString()) === activeResource);
155
+ });
156
+ this._chatHeader.setChat({
157
+ session: context.session,
158
+ chat: activeChat,
159
+ activate: () => context.activate()
160
+ });
161
+ this._contextDisposables.add(autorun(reader => {
162
+ const visible = context.chatHeaderVisible.read(reader);
163
+ this._chatHeader.setVisible(visible);
164
+ this._headerShowsChatKey.set(visible);
165
+ }));
166
+ this._contextDisposables.add(autorun(reader => {
167
+ this._toolbarShowsSessionKey.set(context.showSessionActions.read(reader));
168
+ }));
112
169
  const delegate = {
113
170
  session: context.session,
114
171
  chats: context.chats,
@@ -121,19 +178,26 @@ let ChatGroupView = class ChatGroupView extends Disposable {
121
178
  onTabDragEnd: () => context.onTabDragEnd()
122
179
  };
123
180
  this._compositeBar.setGroup(delegate);
124
- const activeChat = derived(reader => {
125
- const activeResource = context.activeChatResource.read(reader);
126
- return context.chats.read(reader).find(c => ( c.resource.toString()) === activeResource);
127
- });
128
181
  this._contextDisposables.add(autorun(reader => {
129
182
  const activeResource = context.activeChatResource.read(reader);
130
183
  const mainResource = context.mainChatResource.read(reader);
131
- this._focusedChatIsRenameTargetKey.set(activeResource !== mainResource);
184
+ const chat = activeChat.read(reader);
185
+ const isNonMainChat = activeResource !== mainResource;
186
+ this._activeChatIsClosableKey.set(isNonMainChat || context.chatHeaderVisible.read(reader));
187
+ const capabilities = chat && getChatCapabilities(chat, context.session, reader);
188
+ this._activeChatCanArchiveKey.set(!!capabilities?.canArchive && !(chat?.isArchived?.read(reader) ?? false));
189
+ this._activeChatIsDeletableKey.set(capabilities?.canDelete ?? false);
190
+ this._activeChatIsUntitledKey.set(chat?.status.read(reader) === SessionStatus.Untitled);
191
+ this._activeChatIsPinnedKey.set(context.activeChatIsPinned.read(reader));
192
+ this._activeChatResourceKey.set(chat?.resource.toString() ?? "");
193
+ this._activeChatHasSideChatsKey.set(!!chat && ( context.session.chats.read(reader).some(candidate => isSideChatOf(candidate, chat.resource))));
194
+ this._headerTargetsChatKey.set(context.chatHeaderVisible.read(reader) && isNonMainChat);
195
+ this._focusedChatIsRenameTargetKey.set(isNonMainChat);
132
196
  }));
133
197
  const currentView = observableValue(this._contextDisposables, this._currentView.value);
134
198
  const readOnlyContent = derived(reader => {
135
199
  const chat = activeChat.read(reader);
136
- if (!chat || chat.interactivity.read(reader) === ChatInteractivity.Full) {
200
+ if (!chat || chat.interactivity.read(reader) === ChatInteractivity.Full || chat.interactivity.read(reader) === ChatInteractivity.DraftOnly) {
137
201
  return undefined;
138
202
  }
139
203
  const archived = context.session.isArchived.read(reader);
@@ -142,7 +206,7 @@ let ChatGroupView = class ChatGroupView extends Disposable {
142
206
  return {
143
207
  archived: true,
144
208
  content: {
145
- message: ( localize(2977, "Archived sessions are read-only.")),
209
+ message: ( localize(3376, "Archived sessions are read-only.")),
146
210
  action: {
147
211
  label: action.title.value,
148
212
  run: () => this._commandService.executeCommand(UNARCHIVE_SESSION_COMMAND_ID, context.session)
@@ -153,21 +217,26 @@ let ChatGroupView = class ChatGroupView extends Disposable {
153
217
  return {
154
218
  archived: false,
155
219
  content: {
156
- message: ( localize(2978, "This chat is read-only"))
220
+ message: ( localize(3377, "This chat is read-only"))
157
221
  }
158
222
  };
159
223
  });
160
224
  const surface = derived(reader => {
225
+ const view = currentView.read(reader);
226
+ const historyStatus = view?.historyStatus.read(reader);
161
227
  const readOnly = readOnlyContent.read(reader);
162
228
  if (readOnly?.archived) {
163
229
  return {
164
- banner: readOnly.content,
230
+ banner: historyStatus?.kind === "history" ? {
231
+ message: ( localize(3378, "{0} {1}", historyStatus.message, readOnly.content.message)),
232
+ action: historyStatus.action,
233
+ secondaryAction: readOnly.content.action
234
+ } : readOnly.content,
165
235
  recovery: undefined
166
236
  };
167
237
  }
168
- const view = currentView.read(reader);
169
238
  const transcriptSettled = view === undefined || !view.isLoadingTranscript.read(reader);
170
- const recovery = !transcriptSettled || view?.hasVisibleTranscriptContent.read(reader) ? undefined : this._connection.recoveryContent.read(reader);
239
+ const recovery = !transcriptSettled || view?.hasVisibleTranscriptContent.read(reader) || activeChat.read(reader)?.interactivity.read(reader) === ChatInteractivity.DraftOnly ? undefined : this._connection.recoveryContent.read(reader);
171
240
  if (recovery) {
172
241
  return {
173
242
  banner: undefined,
@@ -175,24 +244,50 @@ let ChatGroupView = class ChatGroupView extends Disposable {
175
244
  };
176
245
  }
177
246
  const connectionBanner = this._connection.bannerContent.read(reader);
178
- if (connectionBanner) {
247
+ const quietDraft = activeChat.read(reader)?.interactivity.read(reader) === ChatInteractivity.DraftOnly && this._connection.isQuiet.read(reader);
248
+ if (connectionBanner && !quietDraft) {
179
249
  return {
180
250
  banner: connectionBanner,
181
251
  recovery: undefined
182
252
  };
183
253
  }
254
+ if (historyStatus && (historyStatus.kind === "history" || !this._connection.isQuiet.read(reader))) {
255
+ return {
256
+ banner: {
257
+ icon: Codicon.warning,
258
+ message: historyStatus.message,
259
+ action: historyStatus.action
260
+ },
261
+ recovery: undefined
262
+ };
263
+ }
264
+ if (!quietDraft && activeChat.read(reader)?.interactivity.read(reader) === ChatInteractivity.DraftOnly && context.session.remoteConnectionStatus?.read(reader)?.kind === "connected") {
265
+ return {
266
+ banner: {
267
+ icon: Codicon.sync,
268
+ message: ( localize(3379, "Preparing the session..."))
269
+ },
270
+ recovery: undefined
271
+ };
272
+ }
184
273
  return {
185
- banner: readOnly?.content,
274
+ banner: !transcriptSettled || view?.isInputBlocked.read(reader) ? undefined : readOnly?.content,
186
275
  recovery: undefined
187
276
  };
188
277
  });
189
278
  this._contextDisposables.add(autorun(reader => {
190
279
  const session = context.session;
191
280
  const chat = activeChat.read(reader);
281
+ if (!isEqual(this._draftChatResource, chat?.resource)) {
282
+ this._draftChatResource = undefined;
283
+ }
284
+ if (chat?.interactivity.read(reader) === ChatInteractivity.DraftOnly) {
285
+ this._draftChatResource = chat.resource;
286
+ }
192
287
  let desiredKind;
193
288
  if (session.isCreated.read(reader) === false) {
194
289
  desiredKind = session.isNewSessionRequestInProgress?.read(reader) === true ? "chat" : "newSession";
195
- } else if (!chat || (chat.status.read(reader) === SessionStatus.Untitled && chat.interactivity.read(reader) === ChatInteractivity.Full)) {
290
+ } else if (!chat || (chat.status.read(reader) === SessionStatus.Untitled && chat.interactivity.read(reader) === ChatInteractivity.Full && !isEqual(this._draftChatResource, chat.resource))) {
196
291
  desiredKind = "newChatInSession";
197
292
  } else {
198
293
  desiredKind = "chat";
@@ -207,13 +302,18 @@ let ChatGroupView = class ChatGroupView extends Disposable {
207
302
  this._contentContainer.replaceChildren(view.element, this._remoteHostUnavailableEmptyState.domNode);
208
303
  this._currentView.value = view;
209
304
  currentView.set(view, undefined);
210
- view.setPrimary(this._primary);
305
+ view.setPrimary(this._primary, this._split);
211
306
  view.setActive(this._sessionActive);
212
307
  view.setVisible(this._sessionVisible);
213
308
  this._layoutChildren();
214
309
  }
215
310
  if (chat) {
216
- view.setChat(chat, session.sessionId, session);
311
+ view.setChat(
312
+ chat,
313
+ session.sessionId,
314
+ session,
315
+ chat.interactivity.read(reader) === ChatInteractivity.DraftOnly ? () => this._connection.connectOnInput() : undefined
316
+ );
217
317
  }
218
318
  const surfaceContent = surface.read(reader);
219
319
  this._setRemoteHostUnavailableEmptyState(surfaceContent.recovery);
@@ -263,8 +363,8 @@ let ChatGroupView = class ChatGroupView extends Disposable {
263
363
  selectWorkspace(folderUri, options) {
264
364
  return this._currentView.value?.selectWorkspace(folderUri, options) ?? "notReady";
265
365
  }
266
- selectNoWorkspace() {
267
- this._currentView.value?.selectNoWorkspace();
366
+ selectNoWorkspace(options) {
367
+ this._currentView.value?.selectNoWorkspace(options);
268
368
  }
269
369
  prefillInput(text) {
270
370
  this._currentView.value?.prefillInput(text);
@@ -295,9 +395,10 @@ let ChatGroupView = class ChatGroupView extends Disposable {
295
395
  top,
296
396
  left
297
397
  } = this._lastLayout;
398
+ const headerHeight = this._chatHeader.visible ? this._chatHeader.height : 0;
298
399
  const tabsHeight = this._compositeBar.visible ? this._compositeBar.height : 0;
299
400
  const bannerHeight = this._readOnlyBanner.visible ? this._readOnlyBanner.domNode.offsetHeight : 0;
300
- const barHeight = tabsHeight + bannerHeight;
401
+ const barHeight = headerHeight + tabsHeight + bannerHeight;
301
402
  size(this._barContainer, width, barHeight);
302
403
  size(this._contentContainer, width, height - barHeight);
303
404
  this._currentView.value?.layout(width, height - barHeight, top + barHeight, left);
@@ -1,13 +1,14 @@
1
1
  import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
2
2
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
3
3
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
4
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
4
5
  import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
5
6
  import { Themable } from "@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService";
6
7
  import { IThemeService } from "@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service";
7
8
  import { IChat } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
8
9
  import { IActiveSession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement";
9
10
  import { ISessionsService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service";
10
- import { IChatViewOptions, ISelectWorkspaceOptions, WorkspaceSelectionResult } from "@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/chatView";
11
+ import { IChatViewOptions, ISelectNoWorkspaceOptions, ISelectWorkspaceOptions, WorkspaceSelectionResult } from "@codingame/monaco-vscode-api/vscode/vs/sessions/browser/parts/chatView";
11
12
  /**
12
13
  * Hosts the grid of chat groups within a single {@link IActiveSession}. Chats
13
14
  * default to a single group (tab strip). Dragging a chat tab to a group's edge
@@ -41,16 +42,22 @@ export declare class ChatGroupsView extends Themable {
41
42
  private _sessionActive;
42
43
  private _sessionVisible;
43
44
  private readonly _singleGroupTabsReplaceHeader;
45
+ readonly showChatAsSessionView: IObservable<boolean>;
46
+ private readonly _showGroupChatHeaders;
44
47
  /** While restoring a persisted layout: routes (late-loading) chats back to their saved groups. */
45
48
  private _restoreAssignment;
46
49
  /** Saved tab order (resource string -> ordinal) used to restore tab order across groups. */
47
50
  private _restoreOrder;
51
+ /** Retains chat metadata long enough to reconcile a chat removed from the session catalog. */
52
+ private readonly _knownChatsByResource;
53
+ /** Chats being opened into a new group must remain unassigned until that group exists. */
54
+ private readonly _pendingNewGroupResourceIds;
48
55
  /** Whether a persisted layout is still being restored (saved chats may not have loaded yet). */
49
56
  private _restorePending;
50
57
  private _lastSessionActiveChatId;
51
58
  private _lastLayout;
52
59
  private _gridDidLayout;
53
- constructor(themeService: IThemeService, _instantiationService: IInstantiationService, _sessionsService: ISessionsService, _storageService: IStorageService);
60
+ constructor(themeService: IThemeService, _instantiationService: IInstantiationService, _sessionsService: ISessionsService, _storageService: IStorageService, configurationService: IConfigurationService);
54
61
  setSingleGroupTabsReplaceHeader(enabled: boolean): void;
55
62
  /** Sets (or clears) the session whose chats this view partitions into groups. */
56
63
  setSession(session: IActiveSession | undefined, options: IChatViewOptions): void;
@@ -73,12 +80,14 @@ export declare class ChatGroupsView extends Themable {
73
80
  * remaining one so the source group keeps showing a chat it still owns.
74
81
  */
75
82
  private _detachChatFromGroup;
83
+ private _getOrCreateUnpinnedGroup;
84
+ private _toggleActiveChatPin;
76
85
  /**
77
- * Opens a chat in a group beside its current group ("open to the side"). A
78
- * chat already sharing a group is moved into a new group to its right. A chat
79
- * already alone in its own group is focused without creating a duplicate.
86
+ * Opens a chat beside a visible reference chat, or its current group.
87
+ * A chat already alone in its own group is focused without creating a duplicate.
80
88
  */
81
- openChatInNewGroup(resource: URI): Promise<void>;
89
+ openChatInNewGroup(resource: URI, referenceChatResource?: URI): Promise<void>;
90
+ private _openChatInNewGroup;
82
91
  private _findAdjacentGroup;
83
92
  private _insertGroup;
84
93
  /**
@@ -95,6 +104,12 @@ export declare class ChatGroupsView extends Themable {
95
104
  private _removeGroups;
96
105
  private _setActiveGroup;
97
106
  getFocusedChat(): IChat | undefined;
107
+ getActiveChat(): IChat | undefined;
108
+ toggleActiveChatPin(): void;
109
+ closeChatGroup(chatResource: URI): Promise<boolean>;
110
+ private _getOwningChatToRestoreOnClose;
111
+ startFocusedChatTitleEditing(): boolean;
112
+ startChatTitleEditing(chatResource: URI): boolean;
98
113
  private _getFocusedGroup;
99
114
  /**
100
115
  * Handles focus entering a group: promotes it to the active group and, when
@@ -118,7 +133,7 @@ export declare class ChatGroupsView extends Themable {
118
133
  setSessionVisible(visible: boolean): void;
119
134
  submitInput(): Promise<boolean>;
120
135
  selectWorkspace(folderUri: URI, options?: ISelectWorkspaceOptions): WorkspaceSelectionResult;
121
- selectNoWorkspace(): void;
136
+ selectNoWorkspace(options?: ISelectNoWorkspaceOptions): void;
122
137
  prefillInput(text: string): void;
123
138
  sendQuery(text: string): void;
124
139
  attach(uris: URI[]): void;