@codingame/monaco-vscode-workbench-service-override 37.1.0 → 37.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/common.d.ts +3 -0
  2. package/common.js +29 -0
  3. package/index.d.ts +1 -1
  4. package/index.js +25 -32
  5. package/package.json +18 -8
  6. package/session.d.ts +4 -0
  7. package/session.js +260 -0
  8. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostLocationPreferenceService.d.ts +24 -0
  9. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostLocationPreferenceService.js +71 -0
  10. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostLocationPreference.d.ts +7 -0
  11. package/vscode/src/vs/platform/agentHost/common/remoteAgentHostLocationPreference.js +7 -0
  12. package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.d.ts +50 -0
  13. package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.js +120 -0
  14. package/vscode/src/vs/sessions/browser/media/sessions-logo-dark.svg +6 -0
  15. package/vscode/src/vs/sessions/browser/media/sessions-logo-light.svg +6 -0
  16. package/vscode/src/vs/sessions/browser/media/sessionsSetUp.css +72 -0
  17. package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.d.ts +116 -0
  18. package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +566 -0
  19. package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.d.ts +43 -0
  20. package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.js +308 -0
  21. package/vscode/src/vs/sessions/browser/parts/chatGroupView.d.ts +108 -0
  22. package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +324 -0
  23. package/vscode/src/vs/sessions/browser/parts/chatGroupsView.d.ts +136 -0
  24. package/vscode/src/vs/sessions/browser/parts/chatGroupsView.js +771 -0
  25. package/vscode/src/vs/sessions/browser/parts/customViewGridPart.d.ts +43 -0
  26. package/vscode/src/vs/sessions/browser/parts/customViewGridPart.js +113 -0
  27. package/vscode/src/vs/sessions/browser/parts/customViewGridParts.d.ts +17 -0
  28. package/vscode/src/vs/sessions/browser/parts/customViewGridParts.js +31 -0
  29. package/vscode/src/vs/sessions/browser/parts/customViewNode.d.ts +24 -0
  30. package/vscode/src/vs/sessions/browser/parts/customViewNode.js +131 -0
  31. package/vscode/src/vs/sessions/browser/parts/editorPart.d.ts +11 -0
  32. package/vscode/src/vs/sessions/browser/parts/editorPart.js +36 -0
  33. package/vscode/src/vs/sessions/browser/parts/editorParts.d.ts +12 -0
  34. package/vscode/src/vs/sessions/browser/parts/editorParts.js +45 -0
  35. package/vscode/src/vs/sessions/browser/parts/media/chatCompositeBar.css +559 -0
  36. package/vscode/src/vs/sessions/browser/parts/media/chatGroupDropTarget.css +27 -0
  37. package/vscode/src/vs/sessions/browser/parts/media/chatGroupsView.css +60 -0
  38. package/vscode/src/vs/sessions/browser/parts/media/customViewGridPart.css +108 -0
  39. package/vscode/src/vs/sessions/browser/parts/media/editorPart.css +210 -0
  40. package/vscode/src/vs/sessions/browser/parts/media/remoteHostUnavailableEmptyState.css +81 -0
  41. package/vscode/src/vs/sessions/browser/parts/media/sessionDropTarget.css +31 -0
  42. package/vscode/src/vs/sessions/browser/parts/media/sessionReadOnlyBanner.css +87 -0
  43. package/vscode/src/vs/sessions/browser/parts/media/sessionView.css +107 -0
  44. package/vscode/src/vs/sessions/browser/parts/media/sessionsPart.css +134 -0
  45. package/vscode/src/vs/sessions/browser/parts/menubar.contribution.d.ts +1 -0
  46. package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +79 -0
  47. package/vscode/src/vs/sessions/browser/parts/mobile/mobileCustomViewGridPart.d.ts +13 -0
  48. package/vscode/src/vs/sessions/browser/parts/mobile/mobileCustomViewGridPart.js +33 -0
  49. package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.d.ts +14 -0
  50. package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.js +34 -0
  51. package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.d.ts +39 -0
  52. package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.js +136 -0
  53. package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.d.ts +9 -0
  54. package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.js +62 -0
  55. package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.d.ts +39 -0
  56. package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.js +261 -0
  57. package/vscode/src/vs/sessions/browser/parts/sessionHeader.d.ts +97 -0
  58. package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +345 -0
  59. package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.d.ts +43 -0
  60. package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +69 -0
  61. package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.d.ts +79 -0
  62. package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +363 -0
  63. package/vscode/src/vs/sessions/browser/parts/sessionView.d.ts +125 -0
  64. package/vscode/src/vs/sessions/browser/parts/sessionView.js +300 -0
  65. package/vscode/src/vs/sessions/browser/parts/sessionsPart.d.ts +124 -0
  66. package/vscode/src/vs/sessions/browser/parts/sessionsPart.js +336 -0
  67. package/vscode/src/vs/sessions/browser/parts/sessionsParts.d.ts +33 -0
  68. package/vscode/src/vs/sessions/browser/parts/sessionsParts.js +62 -0
  69. package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.d.ts +13 -0
  70. package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.js +36 -0
  71. package/vscode/src/vs/sessions/browser/parts/singlePaneEditorPart.d.ts +65 -0
  72. package/vscode/src/vs/sessions/browser/parts/singlePaneEditorPart.js +178 -0
  73. package/vscode/src/vs/sessions/browser/sessionWorkspace.d.ts +12 -0
  74. package/vscode/src/vs/sessions/browser/sessionWorkspace.js +19 -0
  75. package/vscode/src/vs/sessions/browser/sessionsSetUpService.d.ts +24 -0
  76. package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +598 -0
  77. package/vscode/src/vs/sessions/browser/sessionsSignInDialog.d.ts +25 -0
  78. package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +91 -0
  79. package/vscode/src/vs/sessions/common/welcome.d.ts +1 -0
  80. package/vscode/src/vs/sessions/common/welcome.js +5 -0
  81. package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.d.ts +11 -0
  82. package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +1052 -0
  83. package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.d.ts +23 -0
  84. package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +168 -0
  85. package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountTitleBarWidget.css +646 -0
  86. package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountWidget.css +231 -0
  87. package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/chatPetAchievementBadges.css +120 -0
  88. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.d.ts +53 -0
  89. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.js +99 -0
  90. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.d.ts +1 -0
  91. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.js +270 -0
  92. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.d.ts +62 -0
  93. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.js +606 -0
  94. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/media/aiCustomizationTreeView.css +116 -0
  95. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.d.ts +1 -0
  96. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.js +97 -0
  97. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.d.ts +72 -0
  98. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.js +776 -0
  99. package/vscode/src/vs/sessions/contrib/aquarium/browser/fish.d.ts +68 -0
  100. package/vscode/src/vs/sessions/contrib/aquarium/browser/fish.js +153 -0
  101. package/vscode/src/vs/sessions/contrib/aquarium/browser/fishFeedingStreak.d.ts +58 -0
  102. package/vscode/src/vs/sessions/contrib/aquarium/browser/fishFeedingStreak.js +172 -0
  103. package/vscode/src/vs/sessions/contrib/aquarium/browser/media/aquarium.css +316 -0
  104. package/vscode/src/vs/sessions/contrib/aquarium/browser/vscodeLogoPath.d.ts +1 -0
  105. package/vscode/src/vs/sessions/contrib/aquarium/browser/vscodeLogoPath.js +5 -0
  106. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.d.ts +173 -0
  107. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.js +1589 -0
  108. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.d.ts +32 -0
  109. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +396 -0
  110. package/vscode/src/vs/sessions/contrib/automations/browser/automationInputCompletions.d.ts +33 -0
  111. package/vscode/src/vs/sessions/contrib/automations/browser/automationInputCompletions.js +216 -0
  112. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.d.ts +37 -0
  113. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.js +126 -0
  114. package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.d.ts +21 -0
  115. package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +294 -0
  116. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.d.ts +59 -0
  117. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +232 -0
  118. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.d.ts +13 -0
  119. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.js +22 -0
  120. package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.d.ts +60 -0
  121. package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +1256 -0
  122. package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.d.ts +1 -0
  123. package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +88 -0
  124. package/vscode/src/vs/sessions/contrib/automations/browser/media/automationDialog.css +746 -0
  125. package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.d.ts +62 -0
  126. package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +493 -0
  127. package/vscode/src/vs/sessions/contrib/automations/common/isolationGroupModel.d.ts +38 -0
  128. package/vscode/src/vs/sessions/contrib/automations/common/isolationGroupModel.js +123 -0
  129. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +45 -0
  130. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +110 -0
  131. package/vscode/src/vs/sessions/contrib/browserView/browser/sessionBrowserView.contribution.d.ts +1 -0
  132. package/vscode/src/vs/sessions/contrib/browserView/browser/sessionBrowserView.contribution.js +5 -0
  133. package/vscode/src/vs/sessions/contrib/browserView/browser/sessionBrowserView.d.ts +31 -0
  134. package/vscode/src/vs/sessions/contrib/browserView/browser/sessionBrowserView.js +137 -0
  135. package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.d.ts +1 -0
  136. package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +130 -0
  137. package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.d.ts +8 -0
  138. package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +385 -0
  139. package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.d.ts +28 -0
  140. package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.js +76 -0
  141. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.d.ts +1 -0
  142. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +509 -0
  143. package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.d.ts +6 -0
  144. package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +58 -0
  145. package/vscode/src/vs/sessions/contrib/changes/browser/media/changesActions.css +11 -0
  146. package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.d.ts +24 -0
  147. package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +188 -0
  148. package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.d.ts +15 -0
  149. package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +100 -0
  150. package/vscode/src/vs/sessions/contrib/chat/browser/chatViewStateService.d.ts +9 -0
  151. package/vscode/src/vs/sessions/contrib/chat/browser/chatViewStateService.js +18 -0
  152. package/vscode/src/vs/sessions/contrib/chat/browser/media/sessionChatInputToolbarDebug.css +59 -0
  153. package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.d.ts +47 -0
  154. package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +306 -0
  155. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.d.ts +41 -0
  156. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.js +31 -0
  157. package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.d.ts +1 -0
  158. package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +84 -0
  159. package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.d.ts +1 -0
  160. package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +111 -0
  161. package/vscode/src/vs/sessions/contrib/customViewTest/browser/media/customViewTest.css +9 -0
  162. package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.d.ts +21 -0
  163. package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +170 -0
  164. package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.d.ts +14 -0
  165. package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +425 -0
  166. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.d.ts +1 -0
  167. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +35 -0
  168. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.d.ts +18 -0
  169. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.js +85 -0
  170. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.d.ts +31 -0
  171. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.js +125 -0
  172. package/vscode/src/vs/sessions/contrib/editor/browser/media/editorBreadcrumbs.css +66 -0
  173. package/vscode/src/vs/sessions/contrib/editor/browser/media/editorHeader.css +113 -0
  174. package/vscode/src/vs/sessions/contrib/editor/browser/media/emptyFileEditor.css +30 -0
  175. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/fileTreeView.contribution.d.ts +1 -0
  176. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/fileTreeView.contribution.js +25 -0
  177. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +66 -0
  178. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +274 -0
  179. package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.d.ts +6 -0
  180. package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.js +100 -0
  181. package/vscode/src/vs/sessions/contrib/files/browser/filesView.d.ts +21 -0
  182. package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +76 -0
  183. package/vscode/src/vs/sessions/contrib/files/browser/media/filesView.css +29 -0
  184. package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.d.ts +211 -0
  185. package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +587 -0
  186. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.d.ts +112 -0
  187. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.js +444 -0
  188. package/vscode/src/vs/sessions/contrib/layout/browser/mobileSessionLayoutController.d.ts +13 -0
  189. package/vscode/src/vs/sessions/contrib/layout/browser/mobileSessionLayoutController.js +8 -0
  190. package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.d.ts +1 -0
  191. package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +68 -0
  192. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDetailPanelCoordinator.d.ts +32 -0
  193. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDetailPanelCoordinator.js +81 -0
  194. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDockedTabsCoordinator.d.ts +111 -0
  195. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDockedTabsCoordinator.js +513 -0
  196. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDraftSessionStrategy.d.ts +44 -0
  197. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDraftSessionStrategy.js +423 -0
  198. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneExistingSessionStrategy.d.ts +62 -0
  199. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneExistingSessionStrategy.js +435 -0
  200. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneLayoutStrategy.d.ts +46 -0
  201. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneLayoutStrategy.js +11 -0
  202. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.d.ts +11 -0
  203. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.js +43 -0
  204. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneVisibilityProfileStore.d.ts +21 -0
  205. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneVisibilityProfileStore.js +77 -0
  206. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.d.ts +55 -0
  207. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.js +91 -0
  208. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/agentHostReadinessContext.d.ts +11 -0
  209. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/agentHostReadinessContext.js +39 -0
  210. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.d.ts +1 -0
  211. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.js +109 -0
  212. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.d.ts +1 -0
  213. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.js +123 -0
  214. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.d.ts +24 -0
  215. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.js +67 -0
  216. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.d.ts +1 -0
  217. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.js +47 -0
  218. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.d.ts +79 -0
  219. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +1277 -0
  220. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3TourContribution.d.ts +1 -0
  221. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3TourContribution.js +75 -0
  222. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.d.ts +34 -0
  223. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +53 -0
  224. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.d.ts +40 -0
  225. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +69 -0
  226. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.d.ts +4 -0
  227. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +38 -0
  228. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.d.ts +6 -0
  229. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +63 -0
  230. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.d.ts +15 -0
  231. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.js +49 -0
  232. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/media/sessionsPolicyBlocked.css +125 -0
  233. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.d.ts +20 -0
  234. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.js +98 -0
  235. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.d.ts +39 -0
  236. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +218 -0
  237. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.d.ts +53 -0
  238. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +496 -0
  239. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.d.ts +27 -0
  240. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.js +26 -0
  241. package/vscode/src/vs/sessions/contrib/search/browser/media/searchEditorEmptyState.css +15 -0
  242. package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.d.ts +1 -0
  243. package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +79 -0
  244. package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.d.ts +7 -0
  245. package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +57 -0
  246. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsCIFixModel.d.ts +39 -0
  247. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsCIFixModel.js +155 -0
  248. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.d.ts +117 -0
  249. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +320 -0
  250. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.d.ts +65 -0
  251. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +129 -0
  252. package/vscode/src/vs/sessions/contrib/sessions/browser/media/automationsCards.css +624 -0
  253. package/vscode/src/vs/sessions/contrib/sessions/browser/media/blockedSessionsList.css +111 -0
  254. package/vscode/src/vs/sessions/contrib/sessions/browser/media/newSessionActionViewItem.css +112 -0
  255. package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css +159 -0
  256. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionActionFeedback.d.ts +26 -0
  257. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionActionFeedback.js +26 -0
  258. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.d.ts +2 -0
  259. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +77 -0
  260. package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.d.ts +1 -0
  261. package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +162 -0
  262. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.d.ts +111 -0
  263. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +1550 -0
  264. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsMouseNavigation.d.ts +13 -0
  265. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsMouseNavigation.js +69 -0
  266. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsPicker.d.ts +10 -0
  267. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsPicker.js +33 -0
  268. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.d.ts +126 -0
  269. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.js +724 -0
  270. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.d.ts +150 -0
  271. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +526 -0
  272. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTypedCharactersTracker.d.ts +64 -0
  273. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTypedCharactersTracker.js +99 -0
  274. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.d.ts +37 -0
  275. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +160 -0
  276. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.d.ts +19 -0
  277. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +74 -0
  278. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.d.ts +4 -0
  279. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +228 -0
  280. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.d.ts +53 -0
  281. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +2143 -0
  282. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.d.ts +12 -0
  283. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +1270 -0
  284. package/vscode/src/vs/sessions/contrib/workspace/browser/workspace.contribution.d.ts +1 -0
  285. package/vscode/src/vs/sessions/contrib/workspace/browser/workspace.contribution.js +5 -0
  286. package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.d.ts +28 -0
  287. package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.js +95 -0
  288. package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.d.ts +79 -0
  289. package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.js +259 -0
  290. package/vscode/src/vs/sessions/services/customView/browser/customView.d.ts +42 -0
  291. package/vscode/src/vs/sessions/services/customView/browser/customView.js +15 -0
  292. package/vscode/src/vs/sessions/services/customView/browser/customViewService.d.ts +21 -0
  293. package/vscode/src/vs/sessions/services/customView/browser/customViewService.js +68 -0
  294. package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.d.ts +72 -0
  295. package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.js +115 -0
  296. package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.d.ts +77 -0
  297. package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.js +330 -0
  298. package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.d.ts +67 -0
  299. package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.js +157 -0
  300. package/vscode/src/vs/sessions/services/sessions/browser/sessionOpenTelemetryService.d.ts +32 -0
  301. package/vscode/src/vs/sessions/services/sessions/browser/sessionOpenTelemetryService.js +162 -0
  302. package/vscode/src/vs/sessions/services/sessions/browser/sessionSectionOrderService.d.ts +40 -0
  303. package/vscode/src/vs/sessions/services/sessions/browser/sessionSectionOrderService.js +170 -0
  304. package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.d.ts +63 -0
  305. package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.js +419 -0
  306. package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.d.ts +229 -0
  307. package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +1212 -0
  308. package/vscode/src/vs/sessions/services/sessions/browser/sessionsProvidersService.d.ts +22 -0
  309. package/vscode/src/vs/sessions/services/sessions/browser/sessionsProvidersService.js +42 -0
  310. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.d.ts +43 -0
  311. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.js +103 -0
  312. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.d.ts +243 -0
  313. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +1121 -0
  314. package/vscode/src/vs/sessions/services/sessions/browser/sessionsWindowUsageService.d.ts +8 -0
  315. package/vscode/src/vs/sessions/services/sessions/browser/sessionsWindowUsageService.js +24 -0
  316. package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.d.ts +321 -0
  317. package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.js +729 -0
  318. package/vscode/src/vs/sessions/services/sessions/browser/worktreeTrust.d.ts +23 -0
  319. package/vscode/src/vs/sessions/services/sessions/browser/worktreeTrust.js +23 -0
  320. package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.d.ts +32 -0
  321. package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.js +103 -0
  322. package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.d.ts +16 -0
  323. package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.js +41 -0
  324. package/vscode/src/vs/workbench/browser/layout.js +7 -7
  325. package/vscode/src/vs/workbench/browser/workbench.js +3 -3
@@ -0,0 +1,294 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { DeferredPromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
4
+ import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
5
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
6
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
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 { IAutomationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService.service';
10
+ import { SessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
11
+ import { ISessionsManagementService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service';
12
+ import { waitForState } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/utilsCancellation';
13
+ import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
14
+
15
+ let AutomationRunner = class AutomationRunner {
16
+ constructor(
17
+ automationService,
18
+ sessionsManagementService,
19
+ logService,
20
+ notificationService
21
+ ) {
22
+ this.automationService = automationService;
23
+ this.sessionsManagementService = sessionsManagementService;
24
+ this.logService = logService;
25
+ this.notificationService = notificationService;
26
+ }
27
+ runOnce(automation, trigger, leaderWindowId, token = CancellationToken.None) {
28
+ const dispatched = ( new DeferredPromise());
29
+ return {
30
+ whenDispatched: dispatched.p,
31
+ whenCompleted: this._runOnce(automation, trigger, leaderWindowId, token, dispatched)
32
+ };
33
+ }
34
+ async _runOnce(automation, trigger, leaderWindowId, token, dispatched) {
35
+ try {
36
+ await this._runOnceInner(automation, trigger, leaderWindowId, token, dispatched);
37
+ } catch (err) {
38
+ this.logService.error(`[AutomationRunner] unexpected error in runOnce for ${automation.id}`, err);
39
+ } finally {
40
+ await dispatched.complete({
41
+ kind: "notStarted",
42
+ reason: "error"
43
+ });
44
+ }
45
+ }
46
+ async _runOnceInner(automation, trigger, leaderWindowId, token, dispatched) {
47
+ let runId;
48
+ try {
49
+ if (!this.automationService.getAutomation(automation.id)) {
50
+ this.logService.trace(`[AutomationRunner] skipping ${automation.id}: automation was deleted.`);
51
+ await dispatched.complete({
52
+ kind: "notStarted",
53
+ reason: "deleted"
54
+ });
55
+ return;
56
+ }
57
+ const target = automation.target;
58
+ const isolationMode = target.kind === "workspace" ? target.isolation.kind === "folder" ? "workspace" : target.isolation.kind === "worktree" ? "worktree" : undefined : undefined;
59
+ const branch = target.kind === "workspace" && target.isolation.kind === "worktree" ? target.isolation.branch : undefined;
60
+ const automationConfiguration = automation.sessionTemplate ? {
61
+ sessionTemplate: automation.sessionTemplate
62
+ } : automation.modelId !== undefined || automation.mode !== undefined || automation.permissionLevel !== undefined ? {
63
+ modelId: automation.modelId,
64
+ mode: automation.mode,
65
+ permissionLevel: automation.permissionLevel
66
+ } : undefined;
67
+ const createOptions = target.providerId !== undefined || target.sessionTypeId !== undefined || automationConfiguration !== undefined || isolationMode !== undefined || branch !== undefined ? {
68
+ providerId: target.providerId,
69
+ sessionTypeId: target.sessionTypeId,
70
+ ...(automationConfiguration ? {
71
+ sessionTemplate: automation.sessionTemplate,
72
+ automationConfiguration
73
+ } : {}),
74
+ ...((automation.sessionTemplate?.modelId ?? automation.modelId) ? {
75
+ modelId: automation.sessionTemplate?.modelId ?? automation.modelId
76
+ } : {}),
77
+ ...(!automation.sessionTemplate && automation.mode ? {
78
+ modeId: automation.mode
79
+ } : {}),
80
+ ...(!automation.sessionTemplate && automation.permissionLevel ? {
81
+ permissionLevel: automation.permissionLevel
82
+ } : {}),
83
+ isolationMode,
84
+ branch
85
+ } : undefined;
86
+ const targetAvailable = target.kind === "quickChat" ? this.sessionsManagementService.isQuickChatTargetAvailable(createOptions) : this.sessionsManagementService.isNewSessionTargetAvailable(target.folderUri, createOptions);
87
+ if (!targetAvailable) {
88
+ this.logService.trace(
89
+ `[AutomationRunner] deferring ${automation.id}: target is not yet advertised.`
90
+ );
91
+ if (trigger === "manual") {
92
+ this.notificationService.info(( localize(
93
+ 3335,
94
+ "Automation '{0}' cannot start until its agent becomes available.",
95
+ automation.name
96
+ )));
97
+ }
98
+ await dispatched.complete({
99
+ kind: "notStarted",
100
+ reason: "targetUnavailable"
101
+ });
102
+ return;
103
+ }
104
+ const claim = await this.automationService.recordRunStart(automation.id, trigger, leaderWindowId);
105
+ if (!claim.claimed) {
106
+ if (claim.externalDispatch) {
107
+ let cancellationForwarded = false;
108
+ const forwardCancellation = () => {
109
+ if (!cancellationForwarded) {
110
+ cancellationForwarded = true;
111
+ try {
112
+ claim.externalDispatch?.cancel?.();
113
+ } catch (error) {
114
+ this.logService.error(
115
+ `[AutomationRunner] Failed to forward cancellation for ${automation.id}`,
116
+ error
117
+ );
118
+ }
119
+ }
120
+ };
121
+ const cancellationListener = claim.externalDispatch.cancel ? token.onCancellationRequested(forwardCancellation) : undefined;
122
+ const sessionResource = claim.externalDispatch.sessionResource;
123
+ try {
124
+ if (sessionResource) {
125
+ await dispatched.complete({
126
+ kind: "started",
127
+ run: claim.run,
128
+ sessionResource
129
+ });
130
+ } else {
131
+ await dispatched.complete({
132
+ kind: "notStarted",
133
+ reason: "error",
134
+ run: claim.run
135
+ });
136
+ }
137
+ if (token.isCancellationRequested) {
138
+ forwardCancellation();
139
+ }
140
+ await claim.externalDispatch.whenCompleted;
141
+ } finally {
142
+ cancellationListener?.dispose();
143
+ }
144
+ return;
145
+ }
146
+ this.logService.trace(`[AutomationRunner] skipping ${automation.id}: active run already exists.`);
147
+ await dispatched.complete({
148
+ kind: "alreadyRunning",
149
+ activeRun: claim.run
150
+ });
151
+ return;
152
+ }
153
+ runId = claim.run.id;
154
+ const run = (await this.automationService.updateRun(runId, {
155
+ status: "running"
156
+ })) ?? claim.run;
157
+ this.logService.info(
158
+ `[AutomationRunner] claimed run ${runId} for automation ${automation.id}: trigger=${trigger}, leaderWindowId=${leaderWindowId}.`
159
+ );
160
+ if (token.isCancellationRequested) {
161
+ await dispatched.complete({
162
+ kind: "notStarted",
163
+ reason: "cancelled",
164
+ run
165
+ });
166
+ await this._markCancelled(runId, automation);
167
+ return;
168
+ }
169
+ const options = {
170
+ query: automation.prompt,
171
+ background: true,
172
+ title: automation.name?.substring(0, 100)
173
+ };
174
+ this.logService.trace(
175
+ `[AutomationRunner] running ${automation.id}: target=${target.kind}, provider=${createOptions?.providerId ?? "(default)"}, sessionType=${createOptions?.sessionTypeId ?? "(default)"}, model=${automationConfiguration?.modelId ?? "(default)"}, mode=${automationConfiguration?.mode ?? "(default)"}, permissionLevel=${automationConfiguration?.permissionLevel ?? "(default)"}`
176
+ );
177
+ this.logService.info(
178
+ `[AutomationRunner] creating a session for run ${runId} (automation ${automation.id}).`
179
+ );
180
+ let session;
181
+ if (target.kind === "quickChat") {
182
+ session = await this.sessionsManagementService.createAndSendQuickChatRequest(options, createOptions, token);
183
+ } else {
184
+ session = await this.sessionsManagementService.createAndSendNewChatRequest(target.folderUri, options, createOptions, token);
185
+ }
186
+ if (session) {
187
+ const sessionResource = session.resource;
188
+ let updatedRun;
189
+ try {
190
+ updatedRun = await this.automationService.updateRun(runId, {
191
+ sessionResource
192
+ });
193
+ } catch (err) {
194
+ this.logService.warn(`[AutomationRunner] session ${( sessionResource.toString())} was created for run ${runId} (automation ${automation.id}), but persisting the session link failed.`, err);
195
+ throw err;
196
+ }
197
+ if (updatedRun) {
198
+ this.logService.info(
199
+ `[AutomationRunner] linked run ${runId} for automation ${automation.id} to session ${( sessionResource.toString())}.`
200
+ );
201
+ } else {
202
+ this.logService.warn(`[AutomationRunner] session ${( sessionResource.toString())} was created for run ${runId} (automation ${automation.id}), but the run no longer exists and the session link was not persisted.`);
203
+ }
204
+ const dispatchedRun = updatedRun ?? run;
205
+ await dispatched.complete({
206
+ kind: "started",
207
+ run: dispatchedRun,
208
+ sessionResource
209
+ });
210
+ } else {
211
+ this.logService.warn(
212
+ `[AutomationRunner] session creation returned no session for run ${runId} (automation ${automation.id}): cancelled=${token.isCancellationRequested}.`
213
+ );
214
+ await dispatched.complete({
215
+ kind: "notStarted",
216
+ reason: token.isCancellationRequested ? "cancelled" : "error",
217
+ run
218
+ });
219
+ }
220
+ if (token.isCancellationRequested) {
221
+ await this._markCancelled(runId, automation);
222
+ return;
223
+ }
224
+ const terminalStatus = session ? await waitForState(
225
+ derived(reader => session.mainChat.read(reader).status.read(reader)),
226
+ status => status === SessionStatus.Completed || status === SessionStatus.Error,
227
+ undefined,
228
+ token
229
+ ) : SessionStatus.Completed;
230
+ if (token.isCancellationRequested) {
231
+ await this._markCancelled(runId, automation);
232
+ return;
233
+ }
234
+ if (terminalStatus === SessionStatus.Error) {
235
+ throw ( new Error(( localize(3336, "Agent session failed."))));
236
+ }
237
+ await this.automationService.updateRun(runId, {
238
+ status: "completed",
239
+ completedAt: ( new Date()).toISOString()
240
+ });
241
+ } catch (err) {
242
+ if (runId && token.isCancellationRequested) {
243
+ await dispatched.complete({
244
+ kind: "notStarted",
245
+ reason: "cancelled"
246
+ });
247
+ await this._markCancelled(runId, automation);
248
+ return;
249
+ }
250
+ this.logService.error(`[AutomationRunner] run for ${automation.id} failed`, err);
251
+ try {
252
+ const errorMessage = err instanceof Error ? err.message : String(err);
253
+ this.notificationService.error(( localize(3337, "Automation '{0}' failed: {1}", automation.name, errorMessage)));
254
+ let failedRun;
255
+ if (runId) {
256
+ failedRun = await this.automationService.updateRun(runId, {
257
+ status: "failed",
258
+ completedAt: ( new Date()).toISOString(),
259
+ errorMessage
260
+ });
261
+ }
262
+ await dispatched.complete({
263
+ kind: "notStarted",
264
+ reason: "error",
265
+ run: failedRun
266
+ });
267
+ } catch (innerErr) {
268
+ this.logService.error(
269
+ `[AutomationRunner] error recording failure for ${automation.id}`,
270
+ innerErr
271
+ );
272
+ }
273
+ }
274
+ }
275
+ async _markCancelled(runId, automation) {
276
+ try {
277
+ if (this.automationService.getActiveRunFor(automation.id)?.id === runId) {
278
+ await this.automationService.updateRun(runId, {
279
+ status: "failed",
280
+ completedAt: ( new Date()).toISOString(),
281
+ errorMessage: ( localize(3338, "Cancelled"))
282
+ });
283
+ }
284
+ } catch (err) {
285
+ this.logService.error(
286
+ `[AutomationRunner] error recording cancellation for ${automation.id}`,
287
+ err
288
+ );
289
+ }
290
+ }
291
+ };
292
+ AutomationRunner = ( __decorate([( __param(0, IAutomationService)), ( __param(1, ISessionsManagementService)), ( __param(2, ILogService)), ( __param(3, INotificationService))], AutomationRunner));
293
+
294
+ export { AutomationRunner };
@@ -0,0 +1,59 @@
1
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
2
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
4
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
5
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
6
+ import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
7
+ import { IAutomationRunner } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationRunner.service";
8
+ import { IAutomationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService.service";
9
+ import { ISessionsManagementService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service";
10
+ import { IAutomationLeaderElection } from "./automationLeaderElection.js";
11
+ export declare const DEFAULT_SCHEDULER_TICK_MS = 60000;
12
+ export declare const CRASH_RECOVERY_REASON: string;
13
+ export declare const RUN_TIMEOUT_REASON_PREFIX = "Timed out after";
14
+ export interface IAutomationSchedulerCoreOptions {
15
+ readonly tickIntervalMs?: number;
16
+ readonly now?: () => Date;
17
+ readonly leaderElection?: IAutomationLeaderElection;
18
+ readonly disableAutoTick?: boolean;
19
+ readonly isFeatureEnabled?: () => boolean;
20
+ readonly getRunTimeoutMs?: () => number;
21
+ readonly onDidChangeTargetAvailability?: Event<void>;
22
+ }
23
+ export declare class AutomationSchedulerCore extends Disposable {
24
+ private readonly automationService;
25
+ private readonly runner;
26
+ private readonly logService;
27
+ private readonly _leader;
28
+ private readonly _tickIntervalMs;
29
+ private readonly _now;
30
+ private readonly _isFeatureEnabled;
31
+ private readonly _getRunTimeoutMs;
32
+ private readonly _timer;
33
+ private readonly _runCts;
34
+ private _didStartupForCurrentLeadership;
35
+ private _pendingRuns;
36
+ constructor(automationService: IAutomationService, runner: IAutomationRunner, storageService: IStorageService, logService: ILogService, options?: IAutomationSchedulerCoreOptions);
37
+ /** Test-only: run a single tick and await it. */
38
+ tickForTesting(): Promise<void>;
39
+ /** Test-only: await in-flight runs. */
40
+ waitForPendingRuns(): Promise<void>;
41
+ private kickoffPendingRuns;
42
+ private tickOnce;
43
+ private dispatchDue;
44
+ private runOneWithTimeout;
45
+ dispose(): void;
46
+ }
47
+ export declare class AutomationScheduler extends Disposable implements IWorkbenchContribution {
48
+ private readonly _automationService;
49
+ private readonly _runner;
50
+ private readonly _storageService;
51
+ private readonly _logService;
52
+ private readonly _configurationService;
53
+ private readonly _sessionsManagementService;
54
+ static readonly ID = "workbench.contrib.automationScheduler";
55
+ private readonly _core;
56
+ constructor(_automationService: IAutomationService, _runner: IAutomationRunner, _storageService: IStorageService, _logService: ILogService, _configurationService: IConfigurationService, _sessionsManagementService: ISessionsManagementService);
57
+ private _isEnabled;
58
+ private _createCore;
59
+ }
@@ -0,0 +1,232 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { IntervalTimer, raceTimeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
4
+ import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
5
+ import { stringHash } from '@codingame/monaco-vscode-api/vscode/vs/base/common/hash';
6
+ import { Disposable, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
7
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
8
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
9
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
10
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
11
+ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
12
+ import { IAutomationRunner } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationRunner.service';
13
+ import { IAutomationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService.service';
14
+ import { DEFAULT_AUTOMATIONS_RUN_TIMEOUT_MINUTES, CHAT_AUTOMATIONS_ENABLED_SETTING, CHAT_AUTOMATIONS_RUN_TIMEOUT_MINUTES_SETTING } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationsEnabled';
15
+ import { ISessionsManagementService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service';
16
+ import { AutomationLeaderElection } from './automationLeaderElection.js';
17
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
18
+
19
+ const DEFAULT_SCHEDULER_TICK_MS = 60_000;
20
+ const CRASH_RECOVERY_REASON = ( localize(3339, "Interrupted by app shutdown"));
21
+ class AutomationSchedulerCore extends Disposable {
22
+ constructor(automationService, runner, storageService, logService, options = {}) {
23
+ super();
24
+ this.automationService = automationService;
25
+ this.runner = runner;
26
+ this.logService = logService;
27
+ this._timer = this._register(( new IntervalTimer()));
28
+ this._runCts = this._register(( new CancellationTokenSource()));
29
+ this._didStartupForCurrentLeadership = false;
30
+ this._pendingRuns = Promise.resolve();
31
+ this._tickIntervalMs = options.tickIntervalMs ?? DEFAULT_SCHEDULER_TICK_MS;
32
+ this._now = options.now ?? (() => ( new Date()));
33
+ this._isFeatureEnabled = options.isFeatureEnabled ?? (() => true);
34
+ this._getRunTimeoutMs = options.getRunTimeoutMs ?? (() => DEFAULT_AUTOMATIONS_RUN_TIMEOUT_MINUTES * 60_000);
35
+ this._leader = options.leaderElection ?? this._register(( new AutomationLeaderElection(storageService, logService)));
36
+ this._register(autorun(reader => {
37
+ const isLeader = this._leader.isLeader.read(reader);
38
+ if (!isLeader) {
39
+ this._didStartupForCurrentLeadership = false;
40
+ this.automationService.stopStaleRunRecovery();
41
+ return;
42
+ }
43
+ this.kickoffPendingRuns(() => this.tickOnce(true));
44
+ }));
45
+ if (!options.disableAutoTick) {
46
+ this._timer.cancelAndSet(() => {
47
+ this.kickoffPendingRuns(() => this.tickOnce(false));
48
+ }, this._tickIntervalMs);
49
+ }
50
+ if (options.onDidChangeTargetAvailability) {
51
+ this._register(options.onDidChangeTargetAvailability(() => {
52
+ this.kickoffPendingRuns(() => this.tickOnce(false));
53
+ }));
54
+ }
55
+ }
56
+ async tickForTesting() {
57
+ this.kickoffPendingRuns(() => this.tickOnce(false));
58
+ await this._pendingRuns;
59
+ }
60
+ async waitForPendingRuns() {
61
+ await this._pendingRuns;
62
+ }
63
+ kickoffPendingRuns(task) {
64
+ if (this._store.isDisposed) {
65
+ return;
66
+ }
67
+ this._pendingRuns = this._pendingRuns.then(task).catch(err => {
68
+ this.logService.error("[AutomationScheduler] tick failed", err);
69
+ });
70
+ }
71
+ async tickOnce(isLeadershipTransition) {
72
+ if (!this._leader.isLeader.get()) {
73
+ return;
74
+ }
75
+ if (!this._isFeatureEnabled()) {
76
+ return;
77
+ }
78
+ if (!this._didStartupForCurrentLeadership) {
79
+ this._didStartupForCurrentLeadership = true;
80
+ await this.automationService.startStaleRunRecovery(CRASH_RECOVERY_REASON);
81
+ await this.dispatchDue("catch_up");
82
+ if (isLeadershipTransition) {
83
+ return;
84
+ }
85
+ }
86
+ await this.dispatchDue("schedule");
87
+ }
88
+ async dispatchDue(trigger) {
89
+ const now = this._now();
90
+ const due = this.automationService.automations.get().filter(
91
+ automation => this.automationService.isSchedulingOwnedByHost?.(automation.id) !== true && isDue(automation, now)
92
+ );
93
+ if (due.length === 0) {
94
+ return;
95
+ }
96
+ const leaderWindowId = stringHash(this._leader.instanceId, 0);
97
+ for (const automation of due) {
98
+ try {
99
+ await this.runOneWithTimeout(automation, trigger, leaderWindowId);
100
+ } catch (err) {
101
+ this.logService.error("[AutomationScheduler] dispatch failed for automation", automation.id, err);
102
+ }
103
+ }
104
+ }
105
+ async runOneWithTimeout(automation, trigger, leaderWindowId) {
106
+ const timeoutMs = this._getRunTimeoutMs();
107
+ const perRunCts = ( new CancellationTokenSource(this._runCts.token));
108
+ try {
109
+ if (timeoutMs <= 0) {
110
+ await this.runner.runOnce(automation, trigger, leaderWindowId, perRunCts.token).whenCompleted;
111
+ return;
112
+ }
113
+ let timedOut = false;
114
+ await raceTimeout(
115
+ this.runner.runOnce(automation, trigger, leaderWindowId, perRunCts.token).whenCompleted,
116
+ timeoutMs,
117
+ () => {
118
+ timedOut = true;
119
+ }
120
+ );
121
+ if (!timedOut) {
122
+ return;
123
+ }
124
+ try {
125
+ const active = this.automationService.getActiveRunFor(automation.id);
126
+ if (active) {
127
+ const updated = await this.automationService.updateRun(active.id, {
128
+ status: "failed",
129
+ errorMessage: ( localize(3340, "Timed out after {0} minute(s).", Math.round(timeoutMs / 60_000))),
130
+ completedAt: this._now().toISOString()
131
+ });
132
+ if (updated) {
133
+ this.logService.warn(
134
+ `[AutomationScheduler] automation ${automation.id} timed out after ${timeoutMs}ms; marked run ${active.id} failed (previousStatus=${active.status}, session=${updated.sessionResource?.toString() ?? "(none)"}).`
135
+ );
136
+ } else {
137
+ this.logService.warn(
138
+ `[AutomationScheduler] automation ${automation.id} timed out after ${timeoutMs}ms, but active run ${active.id} disappeared before it could be marked failed (previousStatus=${active.status}, session=${active.sessionResource?.toString() ?? "(none)"}).`
139
+ );
140
+ }
141
+ } else {
142
+ this.logService.warn(
143
+ `[AutomationScheduler] automation ${automation.id} timed out after ${timeoutMs}ms with no active run recorded.`
144
+ );
145
+ }
146
+ } catch (err) {
147
+ this.logService.warn(
148
+ `[AutomationScheduler] automation ${automation.id} timed out after ${timeoutMs}ms and failed to mark its active run as failed.`,
149
+ err
150
+ );
151
+ }
152
+ perRunCts.cancel();
153
+ } finally {
154
+ perRunCts.dispose();
155
+ }
156
+ }
157
+ dispose() {
158
+ this.automationService.stopStaleRunRecovery();
159
+ this._runCts.cancel();
160
+ super.dispose();
161
+ }
162
+ }
163
+ let AutomationScheduler = class AutomationScheduler extends Disposable {
164
+ static {
165
+ this.ID = "workbench.contrib.automationScheduler";
166
+ }
167
+ constructor(
168
+ _automationService,
169
+ _runner,
170
+ _storageService,
171
+ _logService,
172
+ _configurationService,
173
+ _sessionsManagementService
174
+ ) {
175
+ super();
176
+ this._automationService = _automationService;
177
+ this._runner = _runner;
178
+ this._storageService = _storageService;
179
+ this._logService = _logService;
180
+ this._configurationService = _configurationService;
181
+ this._sessionsManagementService = _sessionsManagementService;
182
+ this._core = this._register(( new MutableDisposable()));
183
+ if (this._isEnabled()) {
184
+ this._createCore();
185
+ }
186
+ this._register(_configurationService.onDidChangeConfiguration(e => {
187
+ if (e.affectsConfiguration(CHAT_AUTOMATIONS_ENABLED_SETTING)) {
188
+ if (this._isEnabled()) {
189
+ this._createCore();
190
+ } else {
191
+ this._core.clear();
192
+ }
193
+ }
194
+ }));
195
+ }
196
+ _isEnabled() {
197
+ return this._configurationService.getValue(CHAT_AUTOMATIONS_ENABLED_SETTING) === true;
198
+ }
199
+ _createCore() {
200
+ if (this._core.value) {
201
+ return;
202
+ }
203
+ this._core.value = ( new AutomationSchedulerCore(
204
+ this._automationService,
205
+ this._runner,
206
+ this._storageService,
207
+ this._logService,
208
+ {
209
+ isFeatureEnabled: () => this._isEnabled(),
210
+ getRunTimeoutMs: () => {
211
+ const minutes = this._configurationService.getValue(CHAT_AUTOMATIONS_RUN_TIMEOUT_MINUTES_SETTING);
212
+ const sane = typeof minutes === "number" && Number.isFinite(minutes) && minutes >= 1 ? minutes : DEFAULT_AUTOMATIONS_RUN_TIMEOUT_MINUTES;
213
+ return sane * 60_000;
214
+ },
215
+ onDidChangeTargetAvailability: this._sessionsManagementService.onDidChangeSessionTypes
216
+ }
217
+ ));
218
+ }
219
+ };
220
+ AutomationScheduler = ( __decorate([( __param(0, IAutomationService)), ( __param(1, IAutomationRunner)), ( __param(2, IStorageService)), ( __param(3, ILogService)), ( __param(4, IConfigurationService)), ( __param(5, ISessionsManagementService))], AutomationScheduler));
221
+ function isDue(automation, now) {
222
+ if (!automation.enabled || !automation.nextRunAt) {
223
+ return false;
224
+ }
225
+ const next = Date.parse(automation.nextRunAt);
226
+ if (Number.isNaN(next)) {
227
+ return false;
228
+ }
229
+ return next <= now.getTime();
230
+ }
231
+
232
+ export { AutomationScheduler, AutomationSchedulerCore, CRASH_RECOVERY_REASON, DEFAULT_SCHEDULER_TICK_MS };
@@ -0,0 +1,13 @@
1
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
2
+ import { IAutomationStorageCompareAndSwapResult } from "@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/automations/common/automationStorageService";
3
+ import { IAutomationStorageService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/automations/common/automationStorageService.service";
4
+ /**
5
+ * Uses an IndexedDB transaction so automation writes remain atomic across browser tabs.
6
+ */
7
+ export declare class BrowserAutomationStorageService implements IAutomationStorageService {
8
+ readonly _serviceBrand: undefined;
9
+ private readonly storageService;
10
+ constructor(storageService: IStorageService);
11
+ read(key: string): Promise<string | undefined>;
12
+ compareAndSwap(key: string, expectedValue: string | undefined, newValue: string): Promise<IAutomationStorageCompareAndSwapResult>;
13
+ }
@@ -0,0 +1,22 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
4
+ import { BrowserStorageService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/storage/browser/storageService';
5
+
6
+ let BrowserAutomationStorageService = class BrowserAutomationStorageService {
7
+ constructor(storageService) {
8
+ if (!(storageService instanceof BrowserStorageService)) {
9
+ throw ( new Error("Browser automation storage requires BrowserStorageService."));
10
+ }
11
+ this.storageService = storageService;
12
+ }
13
+ async read(key) {
14
+ return this.storageService.getApplicationStorageValue(key);
15
+ }
16
+ async compareAndSwap(key, expectedValue, newValue) {
17
+ return this.storageService.compareAndSwapApplicationStorage(key, expectedValue, newValue);
18
+ }
19
+ };
20
+ BrowserAutomationStorageService = ( __decorate([( __param(0, IStorageService))], BrowserAutomationStorageService));
21
+
22
+ export { BrowserAutomationStorageService };