@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,11 +2,16 @@ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/pl
2
2
  import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
3
3
  import { IContextViewService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service";
4
4
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
5
+ import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
5
6
  import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
6
7
  import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
8
+ import { INotificationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service";
9
+ import { IQuickInputService } from "@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service";
10
+ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
7
11
  import { IWorkspaceTrustRequestService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service";
8
12
  import { IAutomationDialogResult, IShowAutomationDialogOptions } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationDialogService";
9
13
  import { IAutomationDialogService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationDialogService.service";
14
+ import { IAutomationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService.service";
10
15
  import { IHostService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service";
11
16
  import { IWorkbenchLayoutService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service";
12
17
  import { ISessionsManagementService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service";
@@ -26,7 +31,12 @@ export declare class AutomationDialogService implements IAutomationDialogService
26
31
  private readonly hostService;
27
32
  private readonly sessionsManagementService;
28
33
  private readonly workspaceTrustRequestService;
34
+ private readonly automationService;
35
+ private readonly telemetryService;
36
+ private readonly notificationService;
37
+ private readonly hoverService;
38
+ private readonly quickInputService;
29
39
  readonly _serviceBrand: undefined;
30
- constructor(instantiationService: IInstantiationService, contextKeyService: IContextKeyService, contextViewService: IContextViewService, configurationService: IConfigurationService, keybindingService: IKeybindingService, layoutService: IWorkbenchLayoutService, logService: ILogService, hostService: IHostService, sessionsManagementService: ISessionsManagementService, workspaceTrustRequestService: IWorkspaceTrustRequestService);
40
+ constructor(instantiationService: IInstantiationService, contextKeyService: IContextKeyService, contextViewService: IContextViewService, configurationService: IConfigurationService, keybindingService: IKeybindingService, layoutService: IWorkbenchLayoutService, logService: ILogService, hostService: IHostService, sessionsManagementService: ISessionsManagementService, workspaceTrustRequestService: IWorkspaceTrustRequestService, automationService: IAutomationService, telemetryService: ITelemetryService, notificationService: INotificationService, hoverService: IHoverService, quickInputService: IQuickInputService);
31
41
  showAutomationDialog(options: IShowAutomationDialogOptions): Promise<IAutomationDialogResult | undefined>;
32
42
  }
@@ -2,28 +2,38 @@
2
2
  import { registerCss } from '@codingame/monaco-vscode-api/css';
3
3
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
4
  import * as automationDialog from './media/automationDialog.css';
5
- import { $ as $$1, append, getWindow } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
5
+ import { $ as $$1, append, getWindow, EventType, addDisposableListener, EventHelper, isHTMLElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
6
  import { ButtonBar } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
7
7
  import { Dialog } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/dialog/dialog';
8
+ import { ProgressBar } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/progressbar/progressbar';
8
9
  import { DeferredPromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
9
10
  import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
10
- import { isCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
11
+ import { isCancellationError, getErrorMessage } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
11
12
  import { DisposableStore, MutableDisposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
13
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
12
14
  import { isWindows } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
13
15
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
14
16
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
15
17
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
16
18
  import { IContextViewService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service';
17
19
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
20
+ import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
18
21
  import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
19
22
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
23
+ import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
24
+ import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
25
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
20
26
  import { IWorkspaceTrustRequestService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service';
21
- import { defaultButtonStyles, defaultDialogStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
27
+ import { defaultProgressBarStyles, defaultButtonStyles, defaultDialogStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
22
28
  import { createWorkbenchDialogOptions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/parts/dialogs/dialog';
29
+ import { automationScheduleToLocal, automationScheduleToUTC } from '../../../../workbench/contrib/chat/common/automations/schedule.js';
30
+ import { IAutomationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService.service';
23
31
  import { IHostService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service';
24
32
  import { IWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service';
25
33
  import { ISessionsManagementService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service';
26
- import { renderForm, registerAutomationDialogKeyboardNavigation, isAutomationDialogPopupTarget, updateSaveButtonState, shouldPassThroughAutomationDialogCommand } from './automationDialog.js';
34
+ import { getAutomationDialogProviders, createAutomationTarget, renderForm, registerAutomationDialogKeyboardNavigation, isAutomationDialogPopupTarget, updateSaveButtonState, shouldPassThroughAutomationDialogCommand } from './automationDialog.js';
35
+ import { AutomationDialogTelemetry } from './automationTelemetry.js';
36
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
27
37
 
28
38
  registerCss(automationDialog, 1);
29
39
  const $ = $$1;
@@ -49,7 +59,8 @@ const automationDialogAllowableCommands = ( new Set([
49
59
  "quickInput.next",
50
60
  "quickInput.previous",
51
61
  "quickInput.accept",
52
- "quickInput.hide"
62
+ "quickInput.hide",
63
+ "workbench.action.closeQuickOpen"
53
64
  ]));
54
65
  let AutomationDialogService = class AutomationDialogService {
55
66
  constructor(
@@ -62,7 +73,12 @@ let AutomationDialogService = class AutomationDialogService {
62
73
  logService,
63
74
  hostService,
64
75
  sessionsManagementService,
65
- workspaceTrustRequestService
76
+ workspaceTrustRequestService,
77
+ automationService,
78
+ telemetryService,
79
+ notificationService,
80
+ hoverService,
81
+ quickInputService
66
82
  ) {
67
83
  this.instantiationService = instantiationService;
68
84
  this.contextKeyService = contextKeyService;
@@ -74,12 +90,21 @@ let AutomationDialogService = class AutomationDialogService {
74
90
  this.hostService = hostService;
75
91
  this.sessionsManagementService = sessionsManagementService;
76
92
  this.workspaceTrustRequestService = workspaceTrustRequestService;
93
+ this.automationService = automationService;
94
+ this.telemetryService = telemetryService;
95
+ this.notificationService = notificationService;
96
+ this.hoverService = hoverService;
97
+ this.quickInputService = quickInputService;
77
98
  }
78
99
  async showAutomationDialog(options) {
79
100
  const disposables = ( new DisposableStore());
80
101
  const existing = options.existing;
102
+ const allowedProviders = getAutomationDialogProviders(this.automationService, existing);
81
103
  const initial = existing ?? options.initialValues;
104
+ const timezoneOffset = ( new Date()).getTimezoneOffset();
105
+ const initialSchedule = initial && automationScheduleToLocal(initial.schedule, timezoneOffset);
82
106
  const isEdit = !!existing;
107
+ const dialogTelemetry = ( new AutomationDialogTelemetry(this.telemetryService, isEdit ? "update" : "create"));
83
108
  const initialTarget = initial?.target;
84
109
  const initialWorkspaceTarget = initialTarget?.kind === "workspace" ? initialTarget : undefined;
85
110
  const initialSessionConfiguration = initial ? {
@@ -90,17 +115,19 @@ let AutomationDialogService = class AutomationDialogService {
90
115
  } : undefined;
91
116
  const state = {
92
117
  name: initial?.name ?? "",
93
- interval: initial?.schedule.interval ?? "daily",
94
- hour: initial?.schedule.scheduleHour ?? 9,
95
- minute: initial?.schedule.scheduleMinute ?? 0,
96
- day: initial?.schedule.scheduleDay ?? 1,
97
- isQuickChat: initialTarget?.kind === "quickChat",
118
+ interval: initialSchedule?.interval ?? "daily",
119
+ hour: initialSchedule?.scheduleHour ?? 9,
120
+ minute: initialSchedule?.scheduleMinute ?? 0,
121
+ day: initialSchedule?.scheduleDay ?? 1,
122
+ isQuickChat: initialTarget === undefined || initialTarget.kind === "quickChat",
98
123
  folderUri: initialWorkspaceTarget?.folderUri,
99
124
  providerId: initialTarget?.providerId,
100
125
  sessionTypeId: initialTarget?.sessionTypeId,
101
126
  isolationMode: initialWorkspaceTarget?.isolation.kind === "default" ? undefined : initialWorkspaceTarget?.isolation.kind === "worktree" ? "worktree" : "workspace",
102
127
  branch: initialWorkspaceTarget?.isolation.kind === "worktree" ? initialWorkspaceTarget.isolation.branch : undefined,
103
- enabled: initial?.enabled ?? true
128
+ enabled: initial?.enabled ?? true,
129
+ timeZone: initial?.schedule.timeZone,
130
+ timezoneOffset
104
131
  };
105
132
  const validation = {
106
133
  nameError: undefined,
@@ -120,32 +147,41 @@ let AutomationDialogService = class AutomationDialogService {
120
147
  let getBranch = () => initialWorkspaceTarget?.isolation.kind === "worktree" ? initialWorkspaceTarget.isolation.branch : undefined;
121
148
  let waitForAutomationSessionSync = async () => {};
122
149
  let setSaving = () => {};
123
- let showSessionConfigurationError = () => {};
124
- let focusSessionConfigurationError = () => {};
150
+ let getCustomizationIds = () => undefined;
151
+ let waitForCustomizationChoices = async () => {};
152
+ let progressBar;
153
+ let dialogElement;
154
+ let footerNote;
155
+ let closeToolbar;
156
+ let commitInProgress = false;
157
+ let showSaveError = () => {};
158
+ let focusSaveError = () => {};
125
159
  let getFocusableElements = () => [];
126
160
  let focusFirst = () => {};
127
161
  let saveInProgress = false;
128
162
  const saveCancellation = disposables.add(( new MutableDisposable()));
129
163
  const completion = ( new DeferredPromise());
130
- const title = isEdit ? ( localize(3351, "Edit automation")) : ( localize(3352, "New automation"));
131
- const saveButtonLabel = isEdit ? ( localize(3353, "Save")) : ( localize(3354, "Create"));
132
- const cancelButtonLabel = ( localize(3355, "Cancel"));
133
- const savingButtonLabel = ( localize(3356, "Saving…"));
164
+ const title = isEdit ? ( localize(3756, "Edit automation")) : ( localize(3757, "New automation"));
165
+ const saveButtonLabel = isEdit ? ( localize(3758, "Save")) : ( localize(3759, "Create"));
166
+ const cancelButtonLabel = ( localize(3760, "Cancel"));
167
+ const savingButtonLabel = ( localize(3761, "Saving…"));
134
168
  const captureErrorMessage = ( localize(
135
- 3357,
169
+ 3762,
136
170
  "The automation wasn't saved because its session configuration couldn't be captured. Check the provider connection and try again."
137
171
  ));
138
172
  const buildResult = sessionConfigurationCapture => {
139
- const schedule = {
173
+ const localSchedule = {
140
174
  interval: state.interval,
141
175
  scheduleHour: state.hour,
142
176
  scheduleMinute: state.minute,
143
177
  scheduleDay: state.day
144
178
  };
179
+ const schedule = state.timeZone === "UTC" ? automationScheduleToUTC(localSchedule, timezoneOffset) : localSchedule;
145
180
  const prompt = getPrompt();
146
181
  const sessionConfiguration = sessionConfigurationCapture.configuration;
147
182
  const sessionTemplate = sessionConfiguration?.sessionTemplate;
148
183
  const target = createAutomationTarget(state, getBranch());
184
+ const customizationIds = getCustomizationIds();
149
185
  if (!target) {
150
186
  return undefined;
151
187
  }
@@ -158,7 +194,10 @@ let AutomationDialogService = class AutomationDialogService {
158
194
  ...(sessionConfigurationCapture.kind === "captured" ? {
159
195
  sessionTemplate: sessionTemplate ?? null
160
196
  } : {}),
161
- enabled: state.enabled
197
+ enabled: state.enabled,
198
+ ...(customizationIds !== undefined ? {
199
+ customizationIds
200
+ } : {})
162
201
  };
163
202
  return {
164
203
  kind: "update",
@@ -167,7 +206,7 @@ let AutomationDialogService = class AutomationDialogService {
167
206
  };
168
207
  }
169
208
  const create = {
170
- name: state.name,
209
+ name: state.name.trim() ? state.name : deriveAutomationName(prompt),
171
210
  prompt,
172
211
  schedule,
173
212
  target,
@@ -184,7 +223,10 @@ let AutomationDialogService = class AutomationDialogService {
184
223
  permissionLevel: sessionConfiguration.permissionLevel
185
224
  } : {})
186
225
  } : {}),
187
- enabled: state.enabled
226
+ enabled: state.enabled,
227
+ ...(customizationIds !== undefined ? {
228
+ customizationIds
229
+ } : {})
188
230
  };
189
231
  return {
190
232
  kind: "create",
@@ -192,9 +234,10 @@ let AutomationDialogService = class AutomationDialogService {
192
234
  };
193
235
  };
194
236
  const closeDialog = result => {
195
- if (completion.isSettled) {
237
+ if (completion.isSettled || (commitInProgress && result === undefined)) {
196
238
  return;
197
239
  }
240
+ dialogTelemetry.complete(result !== undefined);
198
241
  saveCancellation.value?.cancel();
199
242
  void completion.complete(result);
200
243
  dialog.dispose();
@@ -204,15 +247,21 @@ let AutomationDialogService = class AutomationDialogService {
204
247
  return;
205
248
  }
206
249
  revalidate();
207
- if (validation.nameError || validation.promptError || validation.folderError || validation.sessionTypeError || validation.branchError) {
250
+ if (state.targetPending) {
251
+ return;
252
+ }
253
+ if (validation.nameError || validation.promptError || validation.folderError || validation.sessionTypeError || validation.branchError || validation.scheduleError) {
254
+ dialogTelemetry.validationFailed();
208
255
  return;
209
256
  }
210
257
  if ((!state.isQuickChat && !state.folderUri) || !state.sessionTypeId || (state.isQuickChat && !state.providerId)) {
258
+ dialogTelemetry.validationFailed();
211
259
  return;
212
260
  }
213
261
  saveInProgress = true;
214
- showSessionConfigurationError(undefined);
262
+ showSaveError(undefined);
215
263
  setSaving(true);
264
+ progressBar?.infinite().show();
216
265
  if (saveButton) {
217
266
  saveButton.enabled = false;
218
267
  saveButton.label = savingButtonLabel;
@@ -224,24 +273,42 @@ let AutomationDialogService = class AutomationDialogService {
224
273
  let shouldFocusError = false;
225
274
  try {
226
275
  await waitForAutomationSessionSync(cancellation.token);
276
+ await waitForCustomizationChoices(cancellation.token);
227
277
  const sessionConfigurationCapture = await getSessionConfiguration(cancellation.token);
228
278
  if (sessionConfigurationCapture.kind === "failed") {
229
- showSessionConfigurationError(captureErrorMessage);
279
+ dialogTelemetry.captureFailed();
280
+ showSaveError(captureErrorMessage);
230
281
  shouldFocusError = true;
231
282
  return;
232
283
  }
284
+ revalidate();
285
+ if (state.targetPending || validation.sessionTypeError || validation.scheduleError) {
286
+ return;
287
+ }
233
288
  const result = buildResult(sessionConfigurationCapture);
234
289
  if (result) {
290
+ if (options.commit) {
291
+ commitInProgress = true;
292
+ setSaving(true, true);
293
+ if (cancelButton) {
294
+ cancelButton.enabled = false;
295
+ }
296
+ dialogElement?.classList.add("committing");
297
+ closeToolbar?.setAttribute("inert", "");
298
+ dialogElement?.focus();
299
+ await options.commit(result);
300
+ commitInProgress = false;
301
+ }
235
302
  shouldClose = true;
236
303
  closeDialog(result);
237
304
  }
238
305
  } catch (error) {
239
- if (!isCancellationError(error) && !cancellation.token.isCancellationRequested) {
240
- this.logService.error(
241
- "[AutomationDialog] Failed to save the automation session configuration.",
242
- error
243
- );
244
- showSessionConfigurationError(captureErrorMessage);
306
+ if (commitInProgress || (!isCancellationError(error) && !cancellation.token.isCancellationRequested)) {
307
+ this.logService.error("[AutomationDialog] Failed to save automation.", error);
308
+ if (!commitInProgress) {
309
+ dialogTelemetry.captureFailed();
310
+ }
311
+ showSaveError(commitInProgress ? getErrorMessage(error) : captureErrorMessage);
245
312
  shouldFocusError = true;
246
313
  }
247
314
  } finally {
@@ -249,14 +316,21 @@ let AutomationDialogService = class AutomationDialogService {
249
316
  saveCancellation.clear();
250
317
  }
251
318
  saveInProgress = false;
319
+ commitInProgress = false;
252
320
  if (!shouldClose && !completion.isSettled) {
321
+ dialogElement?.classList.remove("committing");
322
+ closeToolbar?.removeAttribute("inert");
323
+ if (cancelButton) {
324
+ cancelButton.enabled = true;
325
+ }
326
+ progressBar?.stop().hide();
253
327
  setSaving(false);
254
328
  if (saveButton) {
255
329
  saveButton.label = saveButtonLabel;
256
330
  }
257
331
  revalidate();
258
332
  if (shouldFocusError) {
259
- focusSessionConfigurationError();
333
+ focusSaveError();
260
334
  }
261
335
  }
262
336
  }
@@ -274,6 +348,10 @@ let AutomationDialogService = class AutomationDialogService {
274
348
  renderFooter: container => {
275
349
  container.classList.add("dialog-buttons", "automation-dialog-footer-actions");
276
350
  container.parentElement?.classList.add("dialog-buttons-row", "automation-dialog-footer-row");
351
+ footerNote = $("p.automation-dialog-footer-note", {
352
+ id: "automation-dialog-footer-note"
353
+ });
354
+ container.before(footerNote);
277
355
  const buttonBar = disposables.add(( new ButtonBar(container)));
278
356
  const createSaveButton = () => {
279
357
  saveButton = buttonBar.addButton(defaultButtonStyles);
@@ -298,15 +376,20 @@ let AutomationDialogService = class AutomationDialogService {
298
376
  },
299
377
  renderBody: container => {
300
378
  container.classList.add("automation-dialog-body");
379
+ dialogElement = container.closest(".monaco-dialog-box") ?? undefined;
380
+ const progressHost = append(container, $(".automation-dialog-progress"));
381
+ progressBar = disposables.add(( new ProgressBar(progressHost, defaultProgressBarStyles)));
382
+ progressBar.hide();
301
383
  const titlebar = append(container, $(".automation-titlebar"));
302
384
  titlebar.setAttribute("aria-hidden", "true");
303
385
  titlebar.textContent = title;
304
- const description = append(container, $(".automation-description"));
305
- description.textContent = isEdit ? ( localize(3358, "Update the schedule, prompt, or run target for this automation.")) : ( localize(
306
- 3359,
386
+ const scrollable = append(container, $(".automation-dialog-scrollable"));
387
+ const description = append(scrollable, $(".automation-description"));
388
+ description.textContent = isEdit ? ( localize(3763, "Update the schedule, prompt, or run target for this automation.")) : ( localize(
389
+ 3764,
307
390
  "Define a prompt that will run on a schedule against the selected target."
308
391
  ));
309
- const formPane = append(container, $(".automation-form-pane"));
392
+ const formPane = append(scrollable, $(".automation-form-pane"));
310
393
  const form = append(formPane, $(".automation-form"));
311
394
  const handle = renderForm(
312
395
  form,
@@ -324,26 +407,79 @@ let AutomationDialogService = class AutomationDialogService {
324
407
  this.workspaceTrustRequestService,
325
408
  initial?.prompt ?? "",
326
409
  initialTarget,
327
- initialSessionConfiguration
410
+ initialSessionConfiguration,
411
+ allowedProviders,
412
+ providerId => this.automationService.getProviderConfiguration?.(providerId),
413
+ isEdit,
414
+ {
415
+ service: this.automationService,
416
+ hoverService: this.hoverService,
417
+ existingId: existing?.id
418
+ },
419
+ error => this.notificationService.error(error),
420
+ this.quickInputService
328
421
  );
422
+ disposables.add(autorun(reader => {
423
+ const description = handle.providerDescription.read(reader);
424
+ if (!footerNote) {
425
+ return;
426
+ }
427
+ footerNote.textContent = description ?? "";
428
+ footerNote.style.display = description ? "" : "none";
429
+ if (description) {
430
+ saveButton?.element.setAttribute("aria-describedby", footerNote.id);
431
+ } else {
432
+ saveButton?.element.removeAttribute("aria-describedby");
433
+ }
434
+ }));
329
435
  getPrompt = handle.getPrompt;
330
436
  getSessionConfiguration = handle.getSessionConfiguration;
331
437
  getBranch = handle.getBranch;
332
438
  waitForAutomationSessionSync = handle.waitForAutomationSessionSync;
333
439
  setSaving = handle.setSaving;
334
- showSessionConfigurationError = handle.showSessionConfigurationError;
335
- focusSessionConfigurationError = handle.focusSessionConfigurationError;
440
+ getCustomizationIds = handle.getCustomizationIds;
441
+ waitForCustomizationChoices = handle.waitForCustomizationChoices;
442
+ showSaveError = handle.showSaveError;
443
+ focusSaveError = handle.focusSaveError;
336
444
  getFocusableElements = handle.getFocusableElements;
337
445
  const keyboardNavigation = disposables.add(
338
446
  registerAutomationDialogKeyboardNavigation(getWindow(container), () => [
339
447
  ...getFocusableElements(),
340
448
  ...(saveButton ? [saveButton.element] : []),
341
449
  ...(cancelButton ? [cancelButton.element] : [])
342
- ], isAutomationDialogPopupTarget, handle.acceptPromptSuggestion, handle.cancelPromptSuggestion)
450
+ ], isAutomationDialogPopupTarget, () => !saveInProgress && handle.acceptPromptSuggestion(), () => !saveInProgress && handle.cancelPromptSuggestion())
343
451
  );
344
452
  focusFirst = keyboardNavigation.focusFirst;
453
+ for (const type of [EventType.KEY_DOWN, EventType.KEY_UP]) {
454
+ disposables.add(addDisposableListener(getWindow(container), type, event => {
455
+ if (commitInProgress && event.key === "Escape") {
456
+ EventHelper.stop(event, true);
457
+ event.stopImmediatePropagation();
458
+ }
459
+ }, true));
460
+ }
461
+ disposables.add(addDisposableListener(activeContainer, EventType.CLICK, event => {
462
+ if (commitInProgress && isHTMLElement(event.target) && closeToolbar?.contains(event.target)) {
463
+ EventHelper.stop(event, true);
464
+ event.stopImmediatePropagation();
465
+ }
466
+ }, true));
345
467
  revalidate = () => {
346
- updateSaveButtonState(saveButton, state, validation, form, getPrompt, getBranch);
468
+ const providerAvailable = state.providerId !== undefined && allowedProviders.get().includes(state.providerId);
469
+ updateSaveButtonState(
470
+ saveButton,
471
+ state,
472
+ validation,
473
+ form,
474
+ getPrompt,
475
+ getBranch,
476
+ this.sessionsManagementService,
477
+ providerAvailable,
478
+ existing?.target.providerId,
479
+ isEdit
480
+ );
481
+ handle.showTargetValidationError(validation.sessionTypeError);
482
+ handle.showScheduleValidationError(validation.scheduleError);
347
483
  if (saveInProgress && saveButton) {
348
484
  saveButton.enabled = false;
349
485
  }
@@ -357,6 +493,7 @@ let AutomationDialogService = class AutomationDialogService {
357
493
  );
358
494
  try {
359
495
  void dialog.show().then(() => closeDialog(undefined));
496
+ closeToolbar = dialogElement?.querySelector(".dialog-toolbar") ?? undefined;
360
497
  focusFirst();
361
498
  return await completion.p;
362
499
  } finally {
@@ -364,33 +501,17 @@ let AutomationDialogService = class AutomationDialogService {
364
501
  }
365
502
  }
366
503
  };
367
- AutomationDialogService = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IContextKeyService)), ( __param(2, IContextViewService)), ( __param(3, IConfigurationService)), ( __param(4, IKeybindingService)), ( __param(5, IWorkbenchLayoutService)), ( __param(6, ILogService)), ( __param(7, IHostService)), ( __param(8, ISessionsManagementService)), ( __param(9, IWorkspaceTrustRequestService))], AutomationDialogService));
368
- function createAutomationTarget(state, branch) {
369
- if (state.isQuickChat) {
370
- return state.providerId && state.sessionTypeId ? {
371
- kind: "quickChat",
372
- providerId: state.providerId,
373
- sessionTypeId: state.sessionTypeId
374
- } : undefined;
375
- }
376
- if (!state.folderUri) {
377
- return undefined;
504
+ AutomationDialogService = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IContextKeyService)), ( __param(2, IContextViewService)), ( __param(3, IConfigurationService)), ( __param(4, IKeybindingService)), ( __param(5, IWorkbenchLayoutService)), ( __param(6, ILogService)), ( __param(7, IHostService)), ( __param(8, ISessionsManagementService)), ( __param(9, IWorkspaceTrustRequestService)), ( __param(10, IAutomationService)), ( __param(11, ITelemetryService)), ( __param(12, INotificationService)), ( __param(13, IHoverService)), ( __param(14, IQuickInputService))], AutomationDialogService));
505
+ function deriveAutomationName(prompt) {
506
+ const text = prompt.trim().replace(/\s+/g, " ");
507
+ const maxLength = 50;
508
+ const characters = Array.from(text);
509
+ if (characters.length <= maxLength) {
510
+ return text;
378
511
  }
379
- const isolation = state.isolationMode === "worktree" ? (branch ? {
380
- kind: "worktree",
381
- branch
382
- } : undefined) : state.isolationMode === "workspace" ? {
383
- kind: "folder"
384
- } : {
385
- kind: "default"
386
- };
387
- return isolation ? {
388
- kind: "workspace",
389
- folderUri: state.folderUri,
390
- providerId: state.providerId,
391
- sessionTypeId: state.sessionTypeId,
392
- isolation
393
- } : undefined;
512
+ const prefix = characters.slice(0, maxLength).join("");
513
+ const wordBoundary = text.lastIndexOf(" ", prefix.length);
514
+ return wordBoundary > 0 ? text.slice(0, wordBoundary) : prefix;
394
515
  }
395
516
 
396
517
  export { AutomationDialogService };
@@ -1,21 +1,23 @@
1
1
  import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
2
  import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
3
3
  import { INotificationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service";
4
- import { AutomationRunTrigger, IAutomationDescriptor } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automation";
4
+ import { IAutomationDescriptor } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automation";
5
5
  import { IAutomationRunOperation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationRunner";
6
6
  import { IAutomationRunner } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationRunner.service";
7
7
  import { IAutomationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService.service";
8
- import { ISessionsManagementService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service";
9
- /** Sessions-layer runner. Never throws; failures are recorded on the run row. */
8
+ import { ISessionsProvidersService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service";
9
+ /**
10
+ * Client-side Run Now coordinator that requests execution through IAutomationService and observes the host result.
11
+ * Reports dispatch failures and forwards supported cancellation without creating run sessions.
12
+ */
10
13
  export declare class AutomationRunner implements IAutomationRunner {
11
14
  private readonly automationService;
12
- private readonly sessionsManagementService;
15
+ private readonly sessionsProvidersService;
13
16
  private readonly logService;
14
17
  private readonly notificationService;
15
18
  readonly _serviceBrand: undefined;
16
- constructor(automationService: IAutomationService, sessionsManagementService: ISessionsManagementService, logService: ILogService, notificationService: INotificationService);
17
- runOnce(automation: IAutomationDescriptor, trigger: AutomationRunTrigger, leaderWindowId: number, token?: CancellationToken): IAutomationRunOperation;
18
- private _runOnce;
19
- private _runOnceInner;
20
- private _markCancelled;
19
+ constructor(automationService: IAutomationService, sessionsProvidersService: ISessionsProvidersService, logService: ILogService, notificationService: INotificationService);
20
+ runOnce(automation: IAutomationDescriptor, token?: CancellationToken): IAutomationRunOperation;
21
+ private run;
22
+ private assertProviderAvailable;
21
23
  }