@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,62 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
4
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
5
+ import { IAutomationDescriptor, IAutomationRun, AutomationRunTrigger } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automation";
6
+ import { AutomationCatalogueState, AutomationMutationGuard, IAutomationRunClaim, ICreateAutomationOptions, IGuardedAutomationUpdateResult, IUpdateAutomationOptions, IUpdateAutomationRunOptions } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService";
7
+ import { IAutomationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService.service";
8
+ import { ISessionsProvidersService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service";
9
+ export declare class ProviderAutomationService extends Disposable implements IAutomationService {
10
+ private readonly sessionsProvidersService;
11
+ private readonly logService;
12
+ readonly _serviceBrand: undefined;
13
+ private readonly legacyStore;
14
+ private readonly providersChanged;
15
+ private readonly migrationSequencer;
16
+ private readonly migrationRetry;
17
+ private migrationPromise;
18
+ private readonly runsForCache;
19
+ private staleRunRecoveryGeneration;
20
+ private staleRunRecoveryReason;
21
+ private readonly recoveredStores;
22
+ readonly automations: IObservable<readonly IAutomationDescriptor[]>;
23
+ readonly runs: IObservable<readonly IAutomationRun[]>;
24
+ readonly catalogueState: IObservable<AutomationCatalogueState>;
25
+ constructor(initialProvidersSettled: IObservable<boolean>, sessionsProvidersService: ISessionsProvidersService, instantiationService: IInstantiationService, logService: ILogService);
26
+ getAutomation(id: string): IAutomationDescriptor | undefined;
27
+ runsFor(automationId: string): IObservable<readonly IAutomationRun[]>;
28
+ createAutomation(options: ICreateAutomationOptions, mutationGuard?: AutomationMutationGuard): Promise<IAutomationDescriptor>;
29
+ updateAutomation(id: string, patch: IUpdateAutomationOptions): Promise<IAutomationDescriptor>;
30
+ updateAutomationIfUnchanged(id: string, patch: IUpdateAutomationOptions, expected: IAutomationDescriptor, mutationGuard?: AutomationMutationGuard): Promise<IGuardedAutomationUpdateResult>;
31
+ deleteAutomation(id: string, mutationGuard?: AutomationMutationGuard): Promise<void>;
32
+ recordRunStart(automationId: string, trigger: AutomationRunTrigger, leaderWindowId: number): Promise<IAutomationRunClaim>;
33
+ updateRun(runId: string, patch: IUpdateAutomationRunOptions): Promise<IAutomationRun | undefined>;
34
+ deleteRun(runId: string): Promise<void>;
35
+ getActiveRunFor(automationId: string): IAutomationRun | undefined;
36
+ isSchedulingOwnedByHost(automationId: string): boolean;
37
+ canRunAutomation(automationId: string): boolean;
38
+ canUpdateAutomation(automationId: string): boolean;
39
+ canDeleteAutomation(automationId: string): boolean;
40
+ markStaleRunsFailed(reason: string): Promise<void>;
41
+ startStaleRunRecovery(reason: string): Promise<void>;
42
+ stopStaleRunRecovery(): void;
43
+ waitForMigrationForTesting(): Promise<void>;
44
+ private getProviderStores;
45
+ private getStores;
46
+ private getCreationStore;
47
+ private getTargetStore;
48
+ private hasTargetChanged;
49
+ private assertCanTransferStorage;
50
+ private createActiveRunTransferError;
51
+ private retargetAutomationStorageIfNeeded;
52
+ private restoreSourceAfterBlockedTransfer;
53
+ private findAutomationStore;
54
+ private requireAutomationStore;
55
+ private findRunStore;
56
+ private queueMigration;
57
+ private recoverStores;
58
+ private migrateLegacyAutomations;
59
+ private migrateLegacyAutomation;
60
+ private completeProviderMigrations;
61
+ private rollbackAutomationSnapshotIfUnchanged;
62
+ }
@@ -0,0 +1,493 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Sequencer, disposableTimeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
4
+ import { isCancellationError, CancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
5
+ import { Disposable, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
7
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
8
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
9
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
10
+ import { combineAutomationCatalogueStates, serializeAutomationEditableState, isAutomationActiveRunError } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService';
11
+ import { ISessionsProvidersService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service';
12
+ import { AutomationService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/automations/browser/automationService';
13
+ import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
14
+ import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
15
+
16
+ const MAX_AUTOMATION_TRANSFER_ATTEMPTS = 3;
17
+ const AUTOMATION_MIGRATION_RETRY_DELAY_MS = 30_000;
18
+ let ProviderAutomationService = class ProviderAutomationService extends Disposable {
19
+ constructor(
20
+ initialProvidersSettled,
21
+ sessionsProvidersService,
22
+ instantiationService,
23
+ logService
24
+ ) {
25
+ super();
26
+ this.sessionsProvidersService = sessionsProvidersService;
27
+ this.logService = logService;
28
+ this.migrationSequencer = ( new Sequencer());
29
+ this.migrationRetry = this._register(( new MutableDisposable()));
30
+ this.migrationPromise = Promise.resolve();
31
+ this.runsForCache = ( new Map());
32
+ this.staleRunRecoveryGeneration = 0;
33
+ this.recoveredStores = ( new Set());
34
+ this.legacyStore = this._register(instantiationService.createInstance(AutomationService));
35
+ this.providersChanged = observableSignalFromEvent(this, sessionsProvidersService.onDidChangeProviders);
36
+ this.catalogueState = derived(this, reader => {
37
+ this.providersChanged.read(reader);
38
+ const states = this.getStores().map(entry => entry.store.catalogueState.read(reader));
39
+ if (!initialProvidersSettled.read(reader)) {
40
+ states.push("loading");
41
+ }
42
+ return combineAutomationCatalogueStates(states);
43
+ });
44
+ this.automations = derived(this, reader => {
45
+ this.providersChanged.read(reader);
46
+ return distinctById(
47
+ this.getStores().flatMap(entry => [...entry.store.automations.read(reader)])
48
+ ).sort((a, b) => b.createdAt.localeCompare(a.createdAt));
49
+ });
50
+ this.runs = derived(this, reader => {
51
+ this.providersChanged.read(reader);
52
+ return distinctById(this.getStores().flatMap(entry => [...entry.store.runs.read(reader)])).sort((a, b) => b.startedAt.localeCompare(a.startedAt));
53
+ });
54
+ this._register(sessionsProvidersService.onDidChangeProviders(event => {
55
+ for (const provider of event.removed) {
56
+ if (provider.automations) {
57
+ this.recoveredStores.delete(provider.automations);
58
+ }
59
+ }
60
+ if (( event.added.some(provider => provider.automations))) {
61
+ this.queueMigration();
62
+ }
63
+ }));
64
+ this.queueMigration();
65
+ }
66
+ getAutomation(id) {
67
+ return this.findAutomationStore(id)?.store.getAutomation(id);
68
+ }
69
+ runsFor(automationId) {
70
+ let result = this.runsForCache.get(automationId);
71
+ if (!result) {
72
+ result = derived(
73
+ this,
74
+ reader => this.runs.read(reader).filter(run => run.automationId === automationId)
75
+ );
76
+ this.runsForCache.set(automationId, result);
77
+ }
78
+ return result;
79
+ }
80
+ createAutomation(options, mutationGuard) {
81
+ return this.getCreationStore(options).createAutomation(options, mutationGuard);
82
+ }
83
+ async updateAutomation(id, patch) {
84
+ const source = this.requireAutomationStore(id);
85
+ let previous = source.getAutomation(id);
86
+ while (previous) {
87
+ const targetChanged = this.hasTargetChanged(previous, patch.target);
88
+ this.assertCanTransferStorage(source, id, patch.target, targetChanged);
89
+ const result = await source.updateAutomationIfUnchanged(id, patch, previous);
90
+ if (result.kind === "conflict") {
91
+ previous = result.current;
92
+ continue;
93
+ }
94
+ await this.retargetAutomationStorageIfNeeded(source, result.automation, previous, targetChanged);
95
+ return result.automation;
96
+ }
97
+ throw ( new Error(`Automation '${id}' does not exist.`));
98
+ }
99
+ async updateAutomationIfUnchanged(id, patch, expected, mutationGuard) {
100
+ const source = this.requireAutomationStore(id);
101
+ const previous = source.getAutomation(id);
102
+ if (!previous) {
103
+ return {
104
+ kind: "conflict",
105
+ current: undefined
106
+ };
107
+ }
108
+ if (serializeAutomationEditableState(previous) !== serializeAutomationEditableState(expected)) {
109
+ return {
110
+ kind: "conflict",
111
+ current: previous
112
+ };
113
+ }
114
+ const targetChanged = this.hasTargetChanged(previous, patch.target);
115
+ this.assertCanTransferStorage(source, id, patch.target, targetChanged);
116
+ const result = await source.updateAutomationIfUnchanged(id, patch, expected, mutationGuard);
117
+ if (result.kind === "updated") {
118
+ await this.retargetAutomationStorageIfNeeded(source, result.automation, previous, targetChanged);
119
+ }
120
+ return result;
121
+ }
122
+ async deleteAutomation(id, mutationGuard) {
123
+ await this.requireAutomationStore(id).deleteAutomation(id, mutationGuard);
124
+ this.runsForCache.delete(id);
125
+ }
126
+ recordRunStart(automationId, trigger, leaderWindowId) {
127
+ return this.requireAutomationStore(automationId).recordRunStart(automationId, trigger, leaderWindowId);
128
+ }
129
+ updateRun(runId, patch) {
130
+ const store = this.findRunStore(runId);
131
+ return store ? store.updateRun(runId, patch) : Promise.resolve(undefined);
132
+ }
133
+ deleteRun(runId) {
134
+ const store = this.findRunStore(runId);
135
+ return store ? store.deleteRun(runId) : Promise.resolve();
136
+ }
137
+ getActiveRunFor(automationId) {
138
+ return this.findAutomationStore(automationId)?.store.getActiveRunFor(automationId);
139
+ }
140
+ isSchedulingOwnedByHost(automationId) {
141
+ return this.findAutomationStore(automationId)?.store.isSchedulingOwnedByHost?.(automationId) === true;
142
+ }
143
+ canRunAutomation(automationId) {
144
+ const entry = this.findAutomationStore(automationId);
145
+ return entry?.store.canRunAutomation?.(automationId) ?? entry !== undefined;
146
+ }
147
+ canUpdateAutomation(automationId) {
148
+ const entry = this.findAutomationStore(automationId);
149
+ return entry?.store.canUpdateAutomation?.(automationId) ?? entry !== undefined;
150
+ }
151
+ canDeleteAutomation(automationId) {
152
+ const entry = this.findAutomationStore(automationId);
153
+ return entry?.store.canDeleteAutomation?.(automationId) ?? entry !== undefined;
154
+ }
155
+ async markStaleRunsFailed(reason) {
156
+ await this.migrationPromise;
157
+ const stores = this.getStores();
158
+ const results = await Promise.allSettled(stores.map(entry => entry.store.markStaleRunsFailed(reason)));
159
+ for (let index = 0; index < results.length; index++) {
160
+ const result = results[index];
161
+ if (result.status === "rejected") {
162
+ const providerId = stores[index].providerId ?? "legacy";
163
+ this.logService.error(
164
+ `[ProviderAutomationService] Failed to recover stale Automation runs for '${providerId}'.`,
165
+ result.reason
166
+ );
167
+ }
168
+ }
169
+ }
170
+ async startStaleRunRecovery(reason) {
171
+ const generation = ++this.staleRunRecoveryGeneration;
172
+ this.staleRunRecoveryReason = reason;
173
+ this.recoveredStores.clear();
174
+ const stores = this.getStores();
175
+ this.migrationPromise = this.migrationSequencer.queue(() => this.recoverStores(stores, reason, generation)).catch(error => {
176
+ this.logService.error(
177
+ "[ProviderAutomationService] Failed to start stale Automation run recovery.",
178
+ error
179
+ );
180
+ });
181
+ await this.migrationPromise;
182
+ }
183
+ stopStaleRunRecovery() {
184
+ this.staleRunRecoveryGeneration++;
185
+ this.staleRunRecoveryReason = undefined;
186
+ this.recoveredStores.clear();
187
+ }
188
+ waitForMigrationForTesting() {
189
+ return this.migrationPromise;
190
+ }
191
+ getProviderStores() {
192
+ return this.sessionsProvidersService.getProviders().filter(provider => provider.automations).map(provider => ({
193
+ providerId: provider.id,
194
+ store: provider.automations
195
+ }));
196
+ }
197
+ getStores() {
198
+ return [...this.getProviderStores(), {
199
+ providerId: undefined,
200
+ store: this.legacyStore
201
+ }];
202
+ }
203
+ getCreationStore(options) {
204
+ return this.getTargetStore(options.target.providerId);
205
+ }
206
+ getTargetStore(providerId) {
207
+ if (providerId) {
208
+ const providerStore = this.sessionsProvidersService.getProvider(providerId)?.automations;
209
+ if (providerStore) {
210
+ return providerStore;
211
+ }
212
+ }
213
+ return this.legacyStore;
214
+ }
215
+ hasTargetChanged(current, target) {
216
+ return !!target && serializeAutomationEditableState(current) !== serializeAutomationEditableState({
217
+ ...current,
218
+ target
219
+ });
220
+ }
221
+ assertCanTransferStorage(source, automationId, target, targetChanged) {
222
+ if (!targetChanged || !target || source === this.getTargetStore(target.providerId) || !source.getActiveRunFor(automationId)) {
223
+ return;
224
+ }
225
+ throw this.createActiveRunTransferError();
226
+ }
227
+ createActiveRunTransferError() {
228
+ return (new Error(localize(
229
+ 3385,
230
+ "Wait for the active run to finish before changing this automation's agent."
231
+ )));
232
+ }
233
+ async retargetAutomationStorageIfNeeded(sourceStore, initialAutomation, previousAutomation, targetChanged) {
234
+ let snapshot = {
235
+ automation: initialAutomation,
236
+ runs: sourceStore.runsFor(initialAutomation.id).get()
237
+ };
238
+ for (let attempt = 0; attempt < MAX_AUTOMATION_TRANSFER_ATTEMPTS; attempt++) {
239
+ const destinationStore = this.getTargetStore(snapshot.automation.target.providerId);
240
+ if (sourceStore === destinationStore) {
241
+ return;
242
+ }
243
+ if (sourceStore.getActiveRunFor(snapshot.automation.id)) {
244
+ if (!targetChanged) {
245
+ return;
246
+ }
247
+ await this.restoreSourceAfterBlockedTransfer(sourceStore, initialAutomation, previousAutomation);
248
+ throw this.createActiveRunTransferError();
249
+ }
250
+ try {
251
+ await destinationStore.upsertAutomationSnapshot(snapshot);
252
+ } catch (error) {
253
+ if (!isAutomationActiveRunError(error)) {
254
+ throw error;
255
+ }
256
+ if (!targetChanged) {
257
+ return;
258
+ }
259
+ await this.restoreSourceAfterBlockedTransfer(sourceStore, initialAutomation, previousAutomation);
260
+ throw this.createActiveRunTransferError();
261
+ }
262
+ if (destinationStore.preservesImportedRunHistory === false) {
263
+ return;
264
+ }
265
+ const sourceRemoval = await sourceStore.removeAutomationSnapshotIfUnchanged(snapshot);
266
+ switch (sourceRemoval.kind) {
267
+ case "removed":
268
+ await destinationStore.acknowledgeAutomationSnapshotImported?.(snapshot);
269
+ return;
270
+ case "missing":
271
+ await this.rollbackAutomationSnapshotIfUnchanged(destinationStore, snapshot);
272
+ return;
273
+ case "conflict":
274
+ if (!(await this.rollbackAutomationSnapshotIfUnchanged(destinationStore, snapshot))) {
275
+ return;
276
+ }
277
+ snapshot = sourceRemoval.current;
278
+ break;
279
+ }
280
+ }
281
+ this.logService.warn(
282
+ `[ProviderAutomationService] Automation '${snapshot.automation.id}' kept changing while transferring storage ownership; leaving the source copy in place.`
283
+ );
284
+ }
285
+ async restoreSourceAfterBlockedTransfer(sourceStore, expected, previous) {
286
+ try {
287
+ const result = await sourceStore.updateAutomationIfUnchanged(expected.id, {
288
+ name: previous.name,
289
+ prompt: previous.prompt,
290
+ schedule: previous.schedule,
291
+ target: previous.target,
292
+ ...(previous.sessionTemplate ? {
293
+ sessionTemplate: previous.sessionTemplate
294
+ } : {
295
+ modelId: previous.modelId ?? null,
296
+ mode: previous.mode ?? null,
297
+ permissionLevel: previous.permissionLevel ?? null
298
+ }),
299
+ enabled: previous.enabled
300
+ }, expected);
301
+ if (result.kind === "conflict") {
302
+ this.logService.warn(
303
+ `[ProviderAutomationService] Automation '${expected.id}' changed while its active run blocked storage transfer; the latest source state was preserved.`
304
+ );
305
+ }
306
+ } catch (error) {
307
+ this.logService.error(
308
+ `[ProviderAutomationService] Failed to restore the source state after an active run blocked storage transfer for '${expected.id}'.`,
309
+ error
310
+ );
311
+ }
312
+ }
313
+ findAutomationStore(id) {
314
+ return this.getStores().find(entry => !!entry.store.getAutomation(id));
315
+ }
316
+ requireAutomationStore(id) {
317
+ const entry = this.findAutomationStore(id);
318
+ if (!entry) {
319
+ throw ( new Error(`Automation '${id}' does not exist.`));
320
+ }
321
+ return entry.store;
322
+ }
323
+ findRunStore(runId) {
324
+ return this.getStores().find(entry => ( entry.store.runs.get().some(run => run.id === runId)))?.store;
325
+ }
326
+ queueMigration() {
327
+ this.migrationRetry.clear();
328
+ const migration = this.migrationSequencer.queue(async () => {
329
+ const initialRecoveryReason = this.staleRunRecoveryReason;
330
+ if (initialRecoveryReason) {
331
+ await this.recoverStores(this.getStores(), initialRecoveryReason, this.staleRunRecoveryGeneration);
332
+ }
333
+ await this.migrateLegacyAutomations();
334
+ await this.completeProviderMigrations();
335
+ const finalRecoveryReason = this.staleRunRecoveryReason;
336
+ if (finalRecoveryReason) {
337
+ await this.recoverStores(this.getStores(), finalRecoveryReason, this.staleRunRecoveryGeneration);
338
+ }
339
+ });
340
+ this.migrationPromise = migration;
341
+ void migration.then(() => this.migrationRetry.clear(), error => {
342
+ if (this._store.isDisposed || isCancellationError(error)) {
343
+ return;
344
+ }
345
+ if (isAutomationActiveRunError(error)) {
346
+ this.logService.info(
347
+ `[ProviderAutomationService] Automation migration deferred while a run is active; retrying in ${AUTOMATION_MIGRATION_RETRY_DELAY_MS}ms.`
348
+ );
349
+ } else {
350
+ this.logService.error(
351
+ `[ProviderAutomationService] Failed to migrate legacy Automations; retrying in ${AUTOMATION_MIGRATION_RETRY_DELAY_MS}ms.`,
352
+ error
353
+ );
354
+ }
355
+ this.migrationRetry.value = disposableTimeout(() => this.queueMigration(), AUTOMATION_MIGRATION_RETRY_DELAY_MS);
356
+ });
357
+ }
358
+ async recoverStores(entries, reason, generation) {
359
+ for (const entry of entries) {
360
+ if (generation !== this.staleRunRecoveryGeneration || this.staleRunRecoveryReason !== reason) {
361
+ return;
362
+ }
363
+ if (( this.recoveredStores.has(entry.store))) {
364
+ continue;
365
+ }
366
+ try {
367
+ await entry.store.markStaleRunsFailed(reason);
368
+ if (generation === this.staleRunRecoveryGeneration && this.staleRunRecoveryReason === reason) {
369
+ this.recoveredStores.add(entry.store);
370
+ }
371
+ } catch (error) {
372
+ const providerId = entry.providerId ?? "legacy";
373
+ this.logService.error(
374
+ `[ProviderAutomationService] Failed to recover stale Automation runs for '${providerId}'.`,
375
+ error
376
+ );
377
+ }
378
+ }
379
+ }
380
+ async migrateLegacyAutomations() {
381
+ if (this.legacyStore.canCompleteMigration() === false) {
382
+ throw ( new Error("Legacy Automation storage cannot be migrated safely by this version."));
383
+ }
384
+ const failures = [];
385
+ for (const automation of [...this.legacyStore.automations.get()]) {
386
+ try {
387
+ await this.migrateLegacyAutomation(automation);
388
+ } catch (error) {
389
+ if (isCancellationError(error) || this._store.isDisposed) {
390
+ throw ( new CancellationError());
391
+ }
392
+ if (isAutomationActiveRunError(error)) {
393
+ this.logService.info(
394
+ `[ProviderAutomationService] Deferred migration for Automation '${automation.id}' while a run is active.`
395
+ );
396
+ } else {
397
+ this.logService.error(
398
+ `[ProviderAutomationService] Failed to migrate Automation '${automation.id}'.`,
399
+ error
400
+ );
401
+ }
402
+ failures.push(error instanceof Error ? error : ( new Error(String(error))));
403
+ }
404
+ }
405
+ if (failures.length > 0) {
406
+ throw ( new AggregateError(failures, `Failed to migrate ${failures.length} Automation snapshot(s).`));
407
+ }
408
+ }
409
+ async migrateLegacyAutomation(initialAutomation) {
410
+ let snapshot = {
411
+ automation: initialAutomation,
412
+ runs: this.legacyStore.runsFor(initialAutomation.id).get()
413
+ };
414
+ for (let attempt = 0; attempt < MAX_AUTOMATION_TRANSFER_ATTEMPTS; attempt++) {
415
+ const providerId = snapshot.automation.target.providerId;
416
+ if (!providerId) {
417
+ return;
418
+ }
419
+ const providerStore = this.sessionsProvidersService.getProvider(providerId)?.automations;
420
+ if (!providerStore) {
421
+ return;
422
+ }
423
+ const importResult = await providerStore.importAutomationSnapshot(snapshot);
424
+ if (importResult.kind === "conflict") {
425
+ this.logService.warn(
426
+ `[ProviderAutomationService] Automation '${snapshot.automation.id}' conflicts with the destination provider store; leaving the legacy copy in place.`
427
+ );
428
+ return;
429
+ }
430
+ this.recoveredStores.delete(providerStore);
431
+ if (providerStore.preservesImportedRunHistory === false) {
432
+ return;
433
+ }
434
+ const sourceRemoval = await this.legacyStore.removeAutomationSnapshotIfUnchanged(snapshot);
435
+ switch (sourceRemoval.kind) {
436
+ case "removed":
437
+ await providerStore.acknowledgeAutomationSnapshotImported?.(snapshot);
438
+ return;
439
+ case "missing":
440
+ if (importResult.kind === "inserted") {
441
+ await this.rollbackAutomationSnapshotIfUnchanged(providerStore, snapshot);
442
+ }
443
+ return;
444
+ case "conflict":
445
+ if (importResult.kind === "inserted" && !(await this.rollbackAutomationSnapshotIfUnchanged(providerStore, snapshot))) {
446
+ return;
447
+ }
448
+ snapshot = sourceRemoval.current;
449
+ break;
450
+ }
451
+ }
452
+ this.logService.warn(
453
+ `[ProviderAutomationService] Automation '${snapshot.automation.id}' kept changing during legacy migration; leaving it in legacy storage.`
454
+ );
455
+ }
456
+ async completeProviderMigrations() {
457
+ const stores = [...( new Set(this.getStores().map(entry => entry.store)))];
458
+ for (const store of stores) {
459
+ await store.completeMigration?.();
460
+ }
461
+ }
462
+ async rollbackAutomationSnapshotIfUnchanged(store, snapshot) {
463
+ const result = await store.removeAutomationSnapshotIfUnchanged(snapshot);
464
+ switch (result.kind) {
465
+ case "removed":
466
+ return true;
467
+ case "conflict":
468
+ this.logService.warn(
469
+ `[ProviderAutomationService] Automation '${snapshot.automation.id}' changed in the destination store during rollback; leaving both copies in place.`
470
+ );
471
+ return false;
472
+ case "missing":
473
+ this.logService.warn(
474
+ `[ProviderAutomationService] Automation '${snapshot.automation.id}' was deleted from the destination store during rollback; leaving the source copy in place.`
475
+ );
476
+ return false;
477
+ }
478
+ }
479
+ };
480
+ ProviderAutomationService = ( __decorate([( __param(1, ISessionsProvidersService)), ( __param(2, IInstantiationService)), ( __param(3, ILogService))], ProviderAutomationService));
481
+ function distinctById(items) {
482
+ const result = [];
483
+ const seen = ( new Set());
484
+ for (const item of items) {
485
+ if (!( seen.has(item.id))) {
486
+ seen.add(item.id);
487
+ result.push(item);
488
+ }
489
+ }
490
+ return result;
491
+ }
492
+
493
+ export { ProviderAutomationService };
@@ -0,0 +1,38 @@
1
+ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
2
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
3
+ export declare function normalizeAutomationBranchNames(names: Iterable<string | undefined>): readonly string[];
4
+ export interface IAutomationIsolationFormState {
5
+ isQuickChat: boolean;
6
+ folderUri: URI | undefined;
7
+ isolationMode: string | undefined;
8
+ branch: string | undefined;
9
+ }
10
+ /**
11
+ * Keeps explicit Worktree branch intent separate from the repository's live HEAD.
12
+ */
13
+ export declare class AutomationIsolationModel {
14
+ private readonly _state;
15
+ private _headBranch;
16
+ private _selectedBranch;
17
+ private _supportsWorktreeConfiguration;
18
+ private readonly _isQuickChat;
19
+ readonly isQuickChatObs: IObservable<boolean>;
20
+ private readonly _folderUri;
21
+ readonly folderUriObs: IObservable<URI | undefined>;
22
+ constructor(_state: IAutomationIsolationFormState);
23
+ get isQuickChat(): boolean;
24
+ get folderUri(): URI | undefined;
25
+ get isolationMode(): string;
26
+ get selectedBranch(): string | undefined;
27
+ get headBranch(): string | undefined;
28
+ get displayBranch(): string | undefined;
29
+ get persistedBranch(): string | undefined;
30
+ get supportsWorktreeConfiguration(): boolean;
31
+ get branchPickerAvailable(): boolean;
32
+ setSupportsWorktreeConfiguration(supported: boolean): void;
33
+ selectIsolationMode(mode: "workspace" | "worktree"): boolean;
34
+ setQuickChat(isQuickChat: boolean, workspaceFolderUri?: URI): void;
35
+ setWorkspace(folderUri: URI | undefined): boolean;
36
+ setHeadBranch(branch: string | undefined): void;
37
+ selectBranch(branch: string): void;
38
+ }