@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
@@ -68,15 +68,31 @@
68
68
  .command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-center {
69
69
  display: flex;
70
70
  align-items: center;
71
- gap: 0;
71
+ gap: var(--vscode-spacing-size60);
72
72
  height: 100%;
73
73
  min-width: 0;
74
74
  justify-content: flex-start;
75
75
  cursor: pointer;
76
76
  overflow: hidden;
77
77
  }
78
- /* Workspace name shown beside its icon. */
79
- .command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-workspace {
78
+
79
+ .command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-separator {
80
+ flex-shrink: 0;
81
+ }
82
+
83
+ .command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-workspace-group,
84
+ .command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-branch-group {
85
+ display: flex;
86
+ align-items: center;
87
+ flex: 0 1 auto;
88
+ min-width: 0;
89
+ height: 100%;
90
+ overflow: hidden;
91
+ }
92
+
93
+ /* Workspace and branch names shown beside their icons. */
94
+ .command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-workspace,
95
+ .command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-branch {
80
96
  display: flex;
81
97
  align-items: center;
82
98
  flex: 0 1 auto;
@@ -87,7 +103,8 @@
87
103
  white-space: nowrap;
88
104
  }
89
105
 
90
- .command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-workspace-icon {
106
+ .command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-workspace-icon,
107
+ .command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-branch-icon {
91
108
  display: flex;
92
109
  align-items: center;
93
110
  flex-shrink: 0;
@@ -1,2 +1,3 @@
1
+ import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service";
1
2
  import { ISession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
2
- export declare function formatSessionDetails(allSessions: readonly ISession[]): string;
3
+ export declare function formatSessionDetails(allSessions: readonly ISession[], labelService: ILabelService): string;
@@ -6,6 +6,7 @@ import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls'
6
6
  import { Categories } from '@codingame/monaco-vscode-api/vscode/vs/platform/action/common/actionCommonCategories';
7
7
  import { Action2, registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
8
8
  import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
9
+ import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
9
10
  import { IsSessionsWindowContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
10
11
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
11
12
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
@@ -19,17 +20,20 @@ class ShowSessionDetailsAction extends Action2 {
19
20
  constructor() {
20
21
  super({
21
22
  id: ShowSessionDetailsAction.ID,
22
- title: ( localize2(4643, "Show Session Details")),
23
+ title: ( localize2(5775, "Show Session Details")),
23
24
  category: Categories.Developer,
24
25
  f1: true,
25
26
  precondition: ( ContextKeyExpr.and(IsSessionsWindowContext, ChatContextKeys.enabled))
26
27
  });
27
28
  }
28
29
  async run(accessor) {
29
- const contents = formatSessionDetails(accessor.get(ISessionsManagementService).getSessions());
30
+ const contents = formatSessionDetails(
31
+ accessor.get(ISessionsManagementService).getSessions(),
32
+ accessor.get(ILabelService)
33
+ );
30
34
  const resource = ( URI.from({
31
35
  scheme: Schemas.untitled,
32
- path: ( localize(4644, "Session Details")),
36
+ path: ( localize(5776, "Session Details")),
33
37
  query: generateUuid()
34
38
  }));
35
39
  await accessor.get(IEditorService).openEditor({
@@ -43,7 +47,7 @@ class ShowSessionDetailsAction extends Action2 {
43
47
  }
44
48
  }
45
49
  registerAction2(ShowSessionDetailsAction);
46
- function formatSessionDetails(allSessions) {
50
+ function formatSessionDetails(allSessions, labelService) {
47
51
  const sessions = allSessions.filter(
48
52
  session => !session.isArchived.get() && !(session.isAutomation?.get() ?? false)
49
53
  );
@@ -54,7 +58,7 @@ function formatSessionDetails(allSessions) {
54
58
  }
55
59
  for (const [index, session] of sessions.entries()) {
56
60
  const title = session.title.get() || getUntitledSessionTitle(session.isQuickChat?.get() ?? false);
57
- const workingDirectories = session.workspace.get()?.folders.map(folder => formatWorkingDirectory(folder.workingDirectory)) ?? [];
61
+ const workingDirectories = session.workspace.get()?.folders.map(folder => formatWorkingDirectory(folder.workingDirectory, labelService)) ?? [];
58
62
  lines.push(`Session: ${title.replace(/\r\n?|\n/g, " ")}`);
59
63
  if (workingDirectories.length === 0) {
60
64
  lines.push("Working directory: (none)");
@@ -70,8 +74,8 @@ function formatSessionDetails(allSessions) {
70
74
  }
71
75
  return `${lines.join("\n")}\n`;
72
76
  }
73
- function formatWorkingDirectory(resource) {
74
- return resource.scheme === Schemas.file ? resource.fsPath : ( resource.toString(true));
77
+ function formatWorkingDirectory(resource, labelService) {
78
+ return resource.scheme === Schemas.file ? resource.fsPath : labelService.getUriLabel(resource);
75
79
  }
76
80
 
77
81
  export { formatSessionDetails };
@@ -1 +1,116 @@
1
-
1
+ import { ConfigurationScope } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry";
2
+ import { ExternalSessionApplicationBadgeMode, SessionsChatTabsMode } from "@codingame/monaco-vscode-api/vscode/vs/sessions/common/sessionConfig";
3
+ export declare const sessionsConfiguration: {
4
+ id: string;
5
+ properties: {
6
+ "sessions.sidebar.separateNavigation": {
7
+ type: "boolean";
8
+ tags: string[];
9
+ description: string;
10
+ default: boolean;
11
+ experiment: {
12
+ mode: "auto";
13
+ name: string;
14
+ };
15
+ };
16
+ "sessions.list.groupExternalSessions": {
17
+ type: "boolean";
18
+ tags: string[];
19
+ description: string;
20
+ default: boolean;
21
+ experiment: {
22
+ mode: "auto";
23
+ };
24
+ };
25
+ "sessions.list.externalApplicationBadge": {
26
+ type: "string";
27
+ tags: string[];
28
+ enum: ExternalSessionApplicationBadgeMode[];
29
+ enumDescriptions: string[];
30
+ description: string;
31
+ default: ExternalSessionApplicationBadgeMode;
32
+ experiment: {
33
+ mode: "auto";
34
+ };
35
+ };
36
+ "sessions.list.externalApplicationBadge.showFrom": {
37
+ type: "boolean";
38
+ tags: string[];
39
+ description: string;
40
+ default: boolean;
41
+ experiment: {
42
+ mode: "auto";
43
+ };
44
+ };
45
+ "sessions.list.showEmptyDefaultGroups": {
46
+ type: "boolean";
47
+ tags: string[];
48
+ description: string;
49
+ default: boolean;
50
+ experiment: {
51
+ mode: "auto";
52
+ };
53
+ };
54
+ "sessions.list.showUnreadInCollapsedSections": {
55
+ type: "boolean";
56
+ tags: string[];
57
+ description: string;
58
+ default: boolean;
59
+ experiment: {
60
+ mode: "auto";
61
+ };
62
+ };
63
+ "sessions.list.showArchivedByDefault": {
64
+ type: "boolean";
65
+ tags: string[];
66
+ description: string;
67
+ default: boolean;
68
+ scope: ConfigurationScope.APPLICATION;
69
+ experiment: {
70
+ mode: "auto";
71
+ };
72
+ };
73
+ "sessions.showChatTabs": {
74
+ type: "string";
75
+ tags: string[];
76
+ enum: SessionsChatTabsMode[];
77
+ enumDescriptions: string[];
78
+ description: string;
79
+ default: SessionsChatTabsMode;
80
+ experiment: {
81
+ mode: "auto";
82
+ };
83
+ };
84
+ "sessions.markAsDoneConfetti": {
85
+ type: "boolean";
86
+ description: string;
87
+ default: boolean;
88
+ experiment: {
89
+ mode: "auto";
90
+ };
91
+ };
92
+ "sessions.newSessionButton.style": {
93
+ type: "string";
94
+ enum: string[];
95
+ default: string;
96
+ scope: ConfigurationScope.APPLICATION;
97
+ included: false;
98
+ tags: string[];
99
+ experiment: {
100
+ mode: "auto";
101
+ name: string;
102
+ };
103
+ description: string;
104
+ };
105
+ "sessions.useWorktree": {
106
+ type: "boolean";
107
+ default: boolean;
108
+ scope: ConfigurationScope.APPLICATION;
109
+ description: string;
110
+ experiment: {
111
+ mode: "auto";
112
+ name: string;
113
+ };
114
+ };
115
+ };
116
+ };
@@ -9,22 +9,22 @@ import { ViewPaneContainer } from '@codingame/monaco-vscode-api/vscode/vs/workbe
9
9
  import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
10
10
  import { SessionsTitleBarContribution } from './sessionsTitleBarWidget.js';
11
11
  import { SessionsTelemetryContribution } from './sessionsTelemetry.contribution.js';
12
- import { NEW_SESSION_BUTTON_STYLE_SETTING, NEW_SESSION_BUTTON_STYLE_TREATMENT, NewSessionActionViewItemContribution, SessionConversationActionsContribution } from './sessionsActions.js';
12
+ import { SessionsAccountTelemetryContribution } from './sessionsAccountTelemetry.js';
13
+ import { NEW_SESSION_BUTTON_STYLE_SETTING, NEW_SESSION_BUTTON_STYLE_TREATMENT, NewSessionActionViewItemContribution, SessionListActionsExperimentContribution, SessionConversationActionsContribution } from './sessionsActions.js';
13
14
  import { SessionsView, SessionsViewId } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/views/sessionsView';
14
15
  import { AutomationsCustomViewContribution } from './views/automationsView.js';
15
16
  import './views/sessionsViewActions.js';
16
17
  import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
17
- import { Extensions as Extensions$1, ConfigurationScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
18
- import { SESSIONS_LIST_SHOW_EMPTY_DEFAULT_GROUPS_SETTING } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/views/sessionsList';
19
- import { AUTOMATIONS_NEW_BADGE_STYLE_SETTING, AUTOMATIONS_NEW_BADGE_STYLE_TREATMENT } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/automationsNewBadge';
18
+ import { ConfigurationScope, Extensions as Extensions$1 } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
19
+ import { SESSIONS_LIST_SHOW_ARCHIVED_BY_DEFAULT_SETTING, SESSIONS_LIST_SHOW_UNREAD_IN_COLLAPSED_SECTIONS_SETTING, SESSIONS_LIST_SHOW_EMPTY_DEFAULT_GROUPS_SETTING } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/views/sessionsList';
20
20
  import { SessionsMouseNavigationContribution } from './sessionsMouseNavigation.js';
21
21
  import './sessionDetailsAction.js';
22
- import { SESSIONS_ARCHIVE_SESSION_CONFETTI_SETTING } from '@codingame/monaco-vscode-api/vscode/vs/platform/chat/common/sessionArchiveActions';
22
+ import { SESSIONS_MARK_AS_DONE_CONFETTI_SETTING } from '@codingame/monaco-vscode-api/vscode/vs/platform/chat/common/sessionArchiveActions';
23
23
  import { SessionsWindowNotifier } from './sessionsWindowNotifier.js';
24
- import { USE_WORKTREE_SETTING, USE_WORKTREE_SETTING_TREATMENT } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/sessionConfig';
24
+ import { USE_WORKTREE_SETTING, USE_WORKTREE_SETTING_TREATMENT, SESSIONS_CHAT_TABS_SETTING, SESSIONS_CHAT_TABS_DEFAULT, SessionsChatTabsMode, SESSIONS_LIST_EXTERNAL_APPLICATION_BADGE_SHOW_FROM_SETTING, SESSIONS_LIST_EXTERNAL_APPLICATION_BADGE_SETTING, ExternalSessionApplicationBadgeMode, SESSIONS_LIST_GROUP_EXTERNAL_SESSIONS_SETTING, SESSIONS_SIDEBAR_SEPARATE_NAVIGATION_SETTING, SESSIONS_LIST_REARRANGE_TREATMENT } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/sessionConfig';
25
25
 
26
- const agentSessionsViewIcon = registerIcon("chat-sessions-icon", Codicon.commentDiscussionSparkle, ( localize(4645, "Icon for Agent Sessions View")));
27
- const AGENT_SESSIONS_VIEW_TITLE = ( localize2(4646, "Sessions"));
26
+ const agentSessionsViewIcon = registerIcon("chat-sessions-icon", Codicon.commentDiscussionSparkle, ( localize(5778, "Icon for Agent Sessions View")));
27
+ const AGENT_SESSIONS_VIEW_TITLE = ( localize2(5779, "Sessions"));
28
28
  const SessionsContainerId = "agentic.workbench.view.sessionsContainer";
29
29
  const agentSessionsViewContainer = ( Registry.as(Extensions.ViewContainersRegistry)).registerViewContainer({
30
30
  id: SessionsContainerId,
@@ -38,7 +38,7 @@ const agentSessionsViewContainer = ( Registry.as(Extensions.ViewContainersRegist
38
38
  order: 6,
39
39
  openCommandActionDescriptor: {
40
40
  id: SessionsContainerId,
41
- mnemonicTitle: ( localize(4647, "&&Sessions")),
41
+ mnemonicTitle: ( localize(5780, "&&Sessions")),
42
42
  keybindings: {
43
43
  primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KeyX
44
44
  },
@@ -60,14 +60,69 @@ const sessionsViewPaneDescriptor = {
60
60
  windowEnablement: WindowEnablement.Sessions
61
61
  };
62
62
  ( Registry.as(Extensions.ViewsRegistry)).registerViews([sessionsViewPaneDescriptor], agentSessionsViewContainer);
63
- ( Registry.as(Extensions$1.Configuration)).registerConfiguration({
63
+ const sessionsConfiguration = {
64
64
  id: "sessions",
65
65
  properties: {
66
+ [SESSIONS_SIDEBAR_SEPARATE_NAVIGATION_SETTING]: {
67
+ type: "boolean",
68
+ tags: ["experimental"],
69
+ description: ( localize(
70
+ 5781,
71
+ "Controls whether New Session, Automations, and Customizations are shown in a separate navigation list above the Sessions header. When disabled, Automations is shown inside the sessions tree, New Session remains a toolbar button, and Customizations remains a separate section."
72
+ )),
73
+ default: false,
74
+ experiment: {
75
+ mode: "auto",
76
+ name: SESSIONS_LIST_REARRANGE_TREATMENT
77
+ }
78
+ },
79
+ [SESSIONS_LIST_GROUP_EXTERNAL_SESSIONS_SETTING]: {
80
+ type: "boolean",
81
+ tags: ["preview"],
82
+ description: ( localize(
83
+ 5782,
84
+ "Controls whether external sessions are shown in a separate External section instead of workspace or time groups. Pinned sessions and custom groups keep their placement."
85
+ )),
86
+ default: false,
87
+ experiment: {
88
+ mode: "auto"
89
+ }
90
+ },
91
+ [SESSIONS_LIST_EXTERNAL_APPLICATION_BADGE_SETTING]: {
92
+ type: "string",
93
+ tags: ["experimental"],
94
+ enum: [
95
+ ExternalSessionApplicationBadgeMode.Off,
96
+ ExternalSessionApplicationBadgeMode.Title,
97
+ ExternalSessionApplicationBadgeMode.Details
98
+ ],
99
+ enumDescriptions: [( localize(5783, "Do not show the creating application.")), ( localize(5784, "Show the creating application next to the session title.")), ( localize(5785, "Show the creating application first in the session details."))],
100
+ description: ( localize(
101
+ 5786,
102
+ "Controls where external sessions created in another application show the creating application."
103
+ )),
104
+ default: ExternalSessionApplicationBadgeMode.Off,
105
+ experiment: {
106
+ mode: "auto"
107
+ }
108
+ },
109
+ [SESSIONS_LIST_EXTERNAL_APPLICATION_BADGE_SHOW_FROM_SETTING]: {
110
+ type: "boolean",
111
+ tags: ["experimental", "advanced"],
112
+ description: ( localize(
113
+ 5787,
114
+ "Controls whether external session application badges include the word 'From'."
115
+ )),
116
+ default: true,
117
+ experiment: {
118
+ mode: "auto"
119
+ }
120
+ },
66
121
  [SESSIONS_LIST_SHOW_EMPTY_DEFAULT_GROUPS_SETTING]: {
67
122
  type: "boolean",
68
123
  tags: ["preview"],
69
124
  description: ( localize(
70
- 4648,
125
+ 5788,
71
126
  "Controls whether the Chats group is shown in the sessions list even when it is empty."
72
127
  )),
73
128
  default: true,
@@ -75,27 +130,55 @@ const sessionsViewPaneDescriptor = {
75
130
  mode: "auto"
76
131
  }
77
132
  },
78
- [SESSIONS_ARCHIVE_SESSION_CONFETTI_SETTING]: {
133
+ [SESSIONS_LIST_SHOW_UNREAD_IN_COLLAPSED_SECTIONS_SETTING]: {
79
134
  type: "boolean",
80
135
  tags: ["preview"],
81
136
  description: ( localize(
82
- 4649,
83
- "Controls whether a confetti animation is shown when archiving a session."
137
+ 5789,
138
+ "Controls whether collapsed sections in the sessions list show needs-attention, CI-failure, or unread indicators for the unarchived sessions they contain."
84
139
  )),
85
- default: false
140
+ default: false,
141
+ experiment: {
142
+ mode: "auto"
143
+ }
86
144
  },
87
- [AUTOMATIONS_NEW_BADGE_STYLE_SETTING]: {
88
- type: "string",
89
- enum: ["accent", "soft", "outline", "unread"],
90
- default: "outline",
145
+ [SESSIONS_LIST_SHOW_ARCHIVED_BY_DEFAULT_SETTING]: {
146
+ type: "boolean",
147
+ tags: ["experimental", "advanced"],
148
+ description: ( localize(
149
+ 5790,
150
+ "Controls whether the Done or Archived section is shown by default in the sessions list. This default is ignored after the corresponding filter is changed."
151
+ )),
152
+ default: false,
91
153
  scope: ConfigurationScope.APPLICATION,
92
- included: false,
93
- tags: ["experimental"],
94
154
  experiment: {
95
- mode: "auto",
96
- name: AUTOMATIONS_NEW_BADGE_STYLE_TREATMENT
97
- },
98
- description: ( localize(4650, "Controls the visual style of the Automations first-use badge."))
155
+ mode: "auto"
156
+ }
157
+ },
158
+ [SESSIONS_CHAT_TABS_SETTING]: {
159
+ type: "string",
160
+ tags: ["preview"],
161
+ enum: [SessionsChatTabsMode.Multiple, SessionsChatTabsMode.Single],
162
+ enumDescriptions: [( localize(5791, "Each chat is displayed as a tab in the session view.")), ( localize(5792, "The active chat is displayed as the session view."))],
163
+ description: ( localize(
164
+ 5793,
165
+ "Controls whether chats in a session are shown as individual tabs or whether the active chat is shown as the session view."
166
+ )),
167
+ default: SESSIONS_CHAT_TABS_DEFAULT,
168
+ experiment: {
169
+ mode: "auto"
170
+ }
171
+ },
172
+ [SESSIONS_MARK_AS_DONE_CONFETTI_SETTING]: {
173
+ type: "boolean",
174
+ description: ( localize(
175
+ 5794,
176
+ "Controls whether a confetti animation is shown when marking a session as done."
177
+ )),
178
+ default: true,
179
+ experiment: {
180
+ mode: "auto"
181
+ }
99
182
  },
100
183
  [NEW_SESSION_BUTTON_STYLE_SETTING]: {
101
184
  type: "string",
@@ -108,15 +191,15 @@ const sessionsViewPaneDescriptor = {
108
191
  mode: "auto",
109
192
  name: NEW_SESSION_BUTTON_STYLE_TREATMENT
110
193
  },
111
- description: ( localize(4651, "Controls the visual style of the New Session button."))
194
+ description: ( localize(5795, "Controls the visual style of the New Session button."))
112
195
  },
113
196
  [USE_WORKTREE_SETTING]: {
114
197
  type: "boolean",
115
- default: true,
198
+ default: false,
116
199
  scope: ConfigurationScope.APPLICATION,
117
200
  description: ( localize(
118
- 4652,
119
- "Controls whether New Worktree is checked when no previous isolation choice has been saved. Once a choice is saved, it is used across workspaces instead of this setting."
201
+ 5796,
202
+ "Controls whether New Worktree is checked for a workspace that has not started a session before. Each workspace otherwise uses the choice from its last started session."
120
203
  )),
121
204
  experiment: {
122
205
  mode: "auto",
@@ -124,7 +207,8 @@ const sessionsViewPaneDescriptor = {
124
207
  }
125
208
  }
126
209
  }
127
- });
210
+ };
211
+ ( Registry.as(Extensions$1.Configuration)).registerConfiguration(sessionsConfiguration);
128
212
  registerWorkbenchContribution2(
129
213
  AutomationsCustomViewContribution.ID,
130
214
  AutomationsCustomViewContribution,
@@ -140,6 +224,11 @@ registerWorkbenchContribution2(
140
224
  NewSessionActionViewItemContribution,
141
225
  WorkbenchPhase.BlockRestore
142
226
  );
227
+ registerWorkbenchContribution2(
228
+ SessionListActionsExperimentContribution.ID,
229
+ SessionListActionsExperimentContribution,
230
+ WorkbenchPhase.BlockRestore
231
+ );
143
232
  registerWorkbenchContribution2(
144
233
  SessionsMouseNavigationContribution.ID,
145
234
  SessionsMouseNavigationContribution,
@@ -150,6 +239,11 @@ registerWorkbenchContribution2(
150
239
  SessionsTelemetryContribution,
151
240
  WorkbenchPhase.AfterRestored
152
241
  );
242
+ registerWorkbenchContribution2(
243
+ SessionsAccountTelemetryContribution.ID,
244
+ SessionsAccountTelemetryContribution,
245
+ WorkbenchPhase.AfterRestored
246
+ );
153
247
  registerWorkbenchContribution2(
154
248
  SessionsWindowNotifier.ID,
155
249
  SessionsWindowNotifier,
@@ -160,3 +254,5 @@ registerWorkbenchContribution2(
160
254
  SessionConversationActionsContribution,
161
255
  WorkbenchPhase.AfterRestored
162
256
  );
257
+
258
+ export { sessionsConfiguration };
@@ -0,0 +1,26 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IDefaultAccountService } from "@codingame/monaco-vscode-api/vscode/vs/platform/defaultAccount/common/defaultAccount.service";
3
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
4
+ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
5
+ import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
6
+ import { ICodexAccountService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/agentHost/browser/codexAccountService.service";
7
+ import { IChatEntitlementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service";
8
+ /** Reports startup account context and later changes without fetching account or quota data. */
9
+ export declare class SessionsAccountTelemetryContribution extends Disposable implements IWorkbenchContribution {
10
+ private readonly telemetryService;
11
+ private readonly chatEntitlementService;
12
+ private readonly codexAccountService;
13
+ private readonly logService;
14
+ private readonly defaultAccountService;
15
+ static readonly ID = "workbench.contrib.sessionsAccountTelemetry";
16
+ private lastSnapshot;
17
+ private initialDefaultAccountResolved;
18
+ private readonly startupDeadline;
19
+ constructor(telemetryService: ITelemetryService, chatEntitlementService: IChatEntitlementService, codexAccountService: ICodexAccountService, logService: ILogService, defaultAccountService: IDefaultAccountService);
20
+ private waitForInitialAccount;
21
+ private get copilotEntitlement();
22
+ private hasStartupData;
23
+ private get snapshot();
24
+ private onAccountChanged;
25
+ }
26
+ export declare function getSessionsTelemetryCopilotSku(chatEntitlementService: IChatEntitlementService): string;
@@ -0,0 +1,160 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { RunOnceScheduler } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
4
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { IDefaultAccountService } from '@codingame/monaco-vscode-api/vscode/vs/platform/defaultAccount/common/defaultAccount.service';
6
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
7
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
8
+ import { ICodexAccountService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/agentHost/browser/codexAccountService.service';
9
+ import { ChatEntitlement, getQuotaUsage, QuotaUsageKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService';
10
+ import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
11
+
12
+ const STARTUP_ACCOUNT_TIMEOUT_MS = 30_000;
13
+ let SessionsAccountTelemetryContribution = class SessionsAccountTelemetryContribution extends Disposable {
14
+ static {
15
+ this.ID = "workbench.contrib.sessionsAccountTelemetry";
16
+ }
17
+ constructor(
18
+ telemetryService,
19
+ chatEntitlementService,
20
+ codexAccountService,
21
+ logService,
22
+ defaultAccountService
23
+ ) {
24
+ super();
25
+ this.telemetryService = telemetryService;
26
+ this.chatEntitlementService = chatEntitlementService;
27
+ this.codexAccountService = codexAccountService;
28
+ this.logService = logService;
29
+ this.defaultAccountService = defaultAccountService;
30
+ this.initialDefaultAccountResolved = false;
31
+ this.startupDeadline = this._register(( new RunOnceScheduler(() => this.onAccountChanged(true), STARTUP_ACCOUNT_TIMEOUT_MS)));
32
+ const update = this._register(( new RunOnceScheduler(() => this.onAccountChanged(), 0)));
33
+ this._register(chatEntitlementService.onDidChangeEntitlement(() => update.schedule()));
34
+ this._register(chatEntitlementService.onDidChangeAnonymous(() => update.schedule()));
35
+ this._register(chatEntitlementService.onDidChangeQuotaRemaining(() => update.schedule()));
36
+ this._register(codexAccountService.onDidChangeAccount(() => update.schedule()));
37
+ this._register(defaultAccountService.onDidChangeDefaultAccount(() => update.schedule()));
38
+ this.startupDeadline.schedule();
39
+ void this.waitForInitialAccount(update).catch(
40
+ error => this.logService.error("[SessionsAccountTelemetry] Failed to resolve the initial account.", error)
41
+ );
42
+ }
43
+ async waitForInitialAccount(update) {
44
+ await this.defaultAccountService.getDefaultAccount();
45
+ if (!this._store.isDisposed) {
46
+ this.initialDefaultAccountResolved = true;
47
+ update.schedule();
48
+ }
49
+ }
50
+ get copilotEntitlement() {
51
+ const entitlement = this.chatEntitlementService.entitlement;
52
+ if (!this.initialDefaultAccountResolved || (entitlement === ChatEntitlement.Unknown && this.defaultAccountService.currentDefaultAccount !== null)) {
53
+ return ChatEntitlement.Unresolved;
54
+ }
55
+ return entitlement;
56
+ }
57
+ hasStartupData() {
58
+ const entitlement = this.copilotEntitlement;
59
+ if (entitlement === ChatEntitlement.Unresolved) {
60
+ return false;
61
+ }
62
+ const {
63
+ sku,
64
+ quotas
65
+ } = this.chatEntitlementService;
66
+ if (entitlement !== ChatEntitlement.Unknown && entitlement !== ChatEntitlement.Available && entitlement !== ChatEntitlement.Unavailable && (sku === undefined || (quotas.premiumChat === undefined && quotas.chat === undefined))) {
67
+ return false;
68
+ }
69
+ const account = this.codexAccountService.account;
70
+ return account.status !== "unknown" && account.status !== "downloading" && (account.status !== "signedIn" || account.rateLimits !== undefined || account.rateLimit !== undefined);
71
+ }
72
+ get snapshot() {
73
+ const entitlement = this.copilotEntitlement;
74
+ const copilotAccountState = entitlement === ChatEntitlement.Unknown ? "signedOut" : entitlement === ChatEntitlement.Unresolved ? "unknown" : "signedIn";
75
+ const now = Date.now();
76
+ return {
77
+ copilotSku: entitlement === ChatEntitlement.Unresolved ? "unknown" : getSessionsTelemetryCopilotSku(this.chatEntitlementService),
78
+ copilotAccountState,
79
+ copilotQuotaPercentRemaining: copilotAccountState === "signedIn" ? getCopilotQuotaPercentRemaining(
80
+ this.chatEntitlementService.quotas.premiumChat ?? this.chatEntitlementService.quotas.chat,
81
+ now,
82
+ this.logService
83
+ ) : undefined,
84
+ chatgptAccountState: this.codexAccountService.account.status,
85
+ chatgptQuotaPercentRemaining: getChatGPTQuotaPercentRemaining(this.codexAccountService.account, now, this.logService)
86
+ };
87
+ }
88
+ onAccountChanged(startupTimedOut = false) {
89
+ const previous = this.lastSnapshot;
90
+ if (!previous && !startupTimedOut && !this.hasStartupData()) {
91
+ return;
92
+ }
93
+ const current = this.snapshot;
94
+ this.lastSnapshot = current;
95
+ if (!previous) {
96
+ this.startupDeadline.cancel();
97
+ this.telemetryService.publicLog2("agents/accountState", current);
98
+ return;
99
+ }
100
+ const accountChanged = previous.copilotSku !== current.copilotSku || previous.copilotAccountState !== current.copilotAccountState || previous.chatgptAccountState !== current.chatgptAccountState;
101
+ const quotaResolved = (previous.copilotQuotaPercentRemaining === undefined && current.copilotQuotaPercentRemaining !== undefined) || (previous.chatgptQuotaPercentRemaining === undefined && current.chatgptQuotaPercentRemaining !== undefined);
102
+ if (!accountChanged && !quotaResolved) {
103
+ return;
104
+ }
105
+ this.telemetryService.publicLog2("agents/accountStateChanged", {
106
+ ...current,
107
+ changeReason: accountChanged ? "accountChanged" : "quotaResolved",
108
+ previousCopilotSku: previous.copilotSku,
109
+ previousCopilotAccountState: previous.copilotAccountState,
110
+ previousChatgptAccountState: previous.chatgptAccountState
111
+ });
112
+ }
113
+ };
114
+ SessionsAccountTelemetryContribution = ( __decorate([( __param(0, ITelemetryService)), ( __param(1, IChatEntitlementService)), ( __param(2, ICodexAccountService)), ( __param(3, ILogService)), ( __param(4, IDefaultAccountService))], SessionsAccountTelemetryContribution));
115
+ function getSessionsTelemetryCopilotSku(chatEntitlementService) {
116
+ if (chatEntitlementService.entitlement === ChatEntitlement.Unknown && !chatEntitlementService.anonymous) {
117
+ return "signedOut";
118
+ }
119
+ if (chatEntitlementService.entitlement === ChatEntitlement.Unresolved) {
120
+ return "unknown";
121
+ }
122
+ return chatEntitlementService.sku ?? "unknown";
123
+ }
124
+ function getCopilotQuotaPercentRemaining(quota, now, logService) {
125
+ if (!quota || getQuotaUsage(quota)?.kind !== QuotaUsageKind.Percentage || !hasNotReset(quota.resetAt, now, logService)) {
126
+ return undefined;
127
+ }
128
+ return validPercentage(quota.percentRemaining, logService);
129
+ }
130
+ function getChatGPTQuotaPercentRemaining(account, now, logService) {
131
+ if (account.status !== "signedIn") {
132
+ return undefined;
133
+ }
134
+ const weeklyWindowMins = 7 * 24 * 60;
135
+ const weeklyLimit = account.rateLimits?.find(limit => limit.windowDurationMins === weeklyWindowMins) ?? (account.rateLimit?.windowDurationMins === weeklyWindowMins ? account.rateLimit : undefined);
136
+ if (!weeklyLimit || !hasNotReset(weeklyLimit.resetsAt, now, logService)) {
137
+ return undefined;
138
+ }
139
+ const usedPercent = validPercentage(weeklyLimit.usedPercent, logService);
140
+ return usedPercent !== undefined ? 100 - usedPercent : undefined;
141
+ }
142
+ function validPercentage(value, logService) {
143
+ if (!Number.isFinite(value) || value < 0 || value > 100) {
144
+ logService.warn("[SessionsAccountTelemetry] Ignoring an invalid quota percentage.");
145
+ return undefined;
146
+ }
147
+ return value;
148
+ }
149
+ function hasNotReset(resetsAt, now, logService) {
150
+ if (resetsAt === undefined) {
151
+ return true;
152
+ }
153
+ if (!Number.isFinite(resetsAt) || resetsAt <= 0) {
154
+ logService.warn("[SessionsAccountTelemetry] Ignoring a quota with an invalid reset time.");
155
+ return false;
156
+ }
157
+ return resetsAt * 1000 > now;
158
+ }
159
+
160
+ export { SessionsAccountTelemetryContribution, getSessionsTelemetryCopilotSku };