@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,496 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { CancellationToken, CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
4
+ import { CancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
5
+ import { raceCancellationError, raceTimeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
6
+ import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
7
+ import { getComparisonKey } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
8
+ import { StringSHA1 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/hash';
9
+ import { Disposable, DisposableMap, toDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
10
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
11
+ import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
12
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
13
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
14
+ import { agentHostAuthority, AGENT_HOST_SCHEME } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/agentHostUri';
15
+ import { agentsWindowAgentHostClientInfo } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/agentHostClientInfo';
16
+ import { AgentHostProtocolClient } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/browser/agentHostProtocolClient';
17
+ import { RemoteAgentHostEntryType, getEntryTypeConfig, RemoteAgentHostConnectionStatus, getEntryAddress } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService';
18
+ import { IRemoteAgentHostService } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/remoteAgentHostService.service';
19
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
20
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
21
+ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
22
+ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
23
+ import { ISessionsProvidersService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service';
24
+ import { RemoteAgentHostSessionsProvider } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostSessionsProvider';
25
+ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
26
+
27
+ const DEV_CONTAINER_AGENT_HOSTS_STORAGE_KEY = "devContainerAgentHost.connections";
28
+ const CONNECTOR_REGISTRATION_TIMEOUT_MS = 30_000;
29
+ function isStoredDevContainerAgentHost(value) {
30
+ return typeof value === "object" && value !== null && typeof Reflect.get(value, "workspaceUri") === "string" && typeof Reflect.get(value, "name") === "string";
31
+ }
32
+ function devContainerAddress(workspaceUri) {
33
+ const sha = ( new StringSHA1());
34
+ sha.update(getComparisonKey(workspaceUri));
35
+ return `devcontainer:${sha.digest()}`;
36
+ }
37
+ class DevContainerConnectionFactory extends Disposable {
38
+ constructor(_instantiationService) {
39
+ super();
40
+ this._instantiationService = _instantiationService;
41
+ this.kind = RemoteAgentHostEntryType.DevContainer;
42
+ this._stagedConnections = ( new Map());
43
+ this._entries = observableValue(this, []);
44
+ this.entries = this._entries;
45
+ }
46
+ stageConnection(connector, workspaceUri, connection) {
47
+ const entry = {
48
+ name: connection.name,
49
+ connection: {
50
+ type: RemoteAgentHostEntryType.DevContainer,
51
+ address: connection.address,
52
+ hostPath: workspaceUri.fsPath
53
+ }
54
+ };
55
+ this._stagedConnections.set(connection.address, {
56
+ entry,
57
+ connector,
58
+ workspaceUri,
59
+ initialConnection: connection
60
+ });
61
+ this._updateEntries();
62
+ return entry;
63
+ }
64
+ unstageConnection(address) {
65
+ const staged = this._stagedConnections.get(address);
66
+ this._stagedConnections.delete(address);
67
+ staged?.initialConnection?.transportDisposable?.dispose();
68
+ this._updateEntries();
69
+ }
70
+ async createConnection(entry, _options) {
71
+ if (entry.connection.type !== RemoteAgentHostEntryType.DevContainer) {
72
+ throw ( new Error(
73
+ `Dev Container factory cannot create a ${entry.connection.type} connection.`
74
+ ));
75
+ }
76
+ const staged = this._stagedConnections.get(entry.connection.address);
77
+ if (!staged) {
78
+ throw ( new Error(`No Dev Container connection is staged for ${entry.connection.address}.`));
79
+ }
80
+ const connection = staged.initialConnection ?? (await staged.connector.createConnection(staged.workspaceUri, entry.connection.address, CancellationToken.None));
81
+ try {
82
+ const authority = agentHostAuthority(entry.connection.address);
83
+ if (connection.workspaceUri.scheme !== AGENT_HOST_SCHEME || connection.workspaceUri.authority !== authority) {
84
+ throw ( new Error(( localize(
85
+ 4266,
86
+ "Dev Container workspace URI must use the '{0}' scheme and '{1}' authority.",
87
+ AGENT_HOST_SCHEME,
88
+ authority
89
+ ))));
90
+ }
91
+ const client = this._instantiationService.createInstance(
92
+ AgentHostProtocolClient,
93
+ entry.connection.address,
94
+ connection.transportFactory,
95
+ {
96
+ clientInfo: agentsWindowAgentHostClientInfo,
97
+ reconnectPolicy: getEntryTypeConfig(RemoteAgentHostEntryType.DevContainer).reconnect
98
+ }
99
+ );
100
+ staged.initialConnection = undefined;
101
+ return {
102
+ connection: client,
103
+ transportDisposable: connection.transportDisposable
104
+ };
105
+ } catch (error) {
106
+ if (staged.initialConnection === connection) {
107
+ staged.initialConnection = undefined;
108
+ }
109
+ connection.transportDisposable?.dispose();
110
+ throw error;
111
+ }
112
+ }
113
+ _updateEntries() {
114
+ this._entries.set([...( this._stagedConnections.values())].map(connection => connection.entry), undefined);
115
+ }
116
+ }
117
+ let DevContainerAgentHostService = class DevContainerAgentHostService extends Disposable {
118
+ constructor(
119
+ _instantiationService,
120
+ _remoteAgentHostService,
121
+ _sessionsProvidersService,
122
+ _storageService
123
+ ) {
124
+ super();
125
+ this._instantiationService = _instantiationService;
126
+ this._remoteAgentHostService = _remoteAgentHostService;
127
+ this._sessionsProvidersService = _sessionsProvidersService;
128
+ this._storageService = _storageService;
129
+ this._providerStores = this._register(( new DisposableMap()));
130
+ this._providers = ( new Map());
131
+ this._activeConnections = ( new Map());
132
+ this._pendingConnections = ( new Map());
133
+ this._storedConnections = ( new Map());
134
+ this._onDidRegisterConnector = this._register(( new Emitter()));
135
+ this._onDidChangeAvailability = this._register(( new Emitter()));
136
+ this.onDidChangeAvailability = this._onDidChangeAvailability.event;
137
+ this._connectionFactory = this._register(( new DevContainerConnectionFactory(this._instantiationService)));
138
+ this._register(
139
+ this._remoteAgentHostService.registerConnectionFactory(this._connectionFactory)
140
+ );
141
+ this._register(
142
+ this._remoteAgentHostService.onDidChangeConnections(() => this._reconcileConnections())
143
+ );
144
+ this._restoreProviders();
145
+ this._register(this._storageService.onDidChangeValue(
146
+ StorageScope.APPLICATION,
147
+ DEV_CONTAINER_AGENT_HOSTS_STORAGE_KEY,
148
+ this._store
149
+ )(() => this._restoreProviders()));
150
+ }
151
+ registerConnector(connector) {
152
+ if (this._connector) {
153
+ throw ( new Error(( localize(4267, "A Dev Container Agent Host connector is already registered."))));
154
+ }
155
+ this._connector = connector;
156
+ this._onDidRegisterConnector.fire(connector);
157
+ this._onDidChangeAvailability.fire();
158
+ return toDisposable(() => {
159
+ if (this._connector === connector) {
160
+ this._connector = undefined;
161
+ this._onDidChangeAvailability.fire();
162
+ }
163
+ });
164
+ }
165
+ isAvailable(workspaceUri) {
166
+ return this._connector?.isAvailable(workspaceUri) ?? Promise.resolve(false);
167
+ }
168
+ connect(workspaceUri, token) {
169
+ return this._ensureConnection(workspaceUri, token).then(active => this._acquireConnection(getComparisonKey(workspaceUri), active));
170
+ }
171
+ _ensureConnection(workspaceUri, token) {
172
+ const key = getComparisonKey(workspaceUri);
173
+ const active = this._activeConnections.get(key);
174
+ if (active && this._isConnectedOrReconnecting(active.address)) {
175
+ return Promise.resolve(active);
176
+ }
177
+ const pending = this._pendingConnections.get(key);
178
+ if (pending) {
179
+ return raceCancellationError(pending.promise, token);
180
+ }
181
+ this._providers.get(key)?.setConnectionStatus(RemoteAgentHostConnectionStatus.connecting);
182
+ const tokenSource = ( new CancellationTokenSource(token));
183
+ const promise = this._replaceConnectionAndConnect(workspaceUri, key, active, tokenSource.token);
184
+ const pendingConnection = {
185
+ promise,
186
+ tokenSource
187
+ };
188
+ this._pendingConnections.set(key, pendingConnection);
189
+ void promise.then(
190
+ () => this._completePendingConnection(key, pendingConnection),
191
+ () => this._completePendingConnection(key, pendingConnection)
192
+ );
193
+ return promise;
194
+ }
195
+ _completePendingConnection(key, pending) {
196
+ if (this._pendingConnections.get(key) === pending) {
197
+ this._pendingConnections.delete(key);
198
+ }
199
+ if (!( this._activeConnections.has(key))) {
200
+ this._providers.get(key)?.setConnectionStatus(RemoteAgentHostConnectionStatus.disconnected);
201
+ }
202
+ pending.tokenSource.dispose();
203
+ }
204
+ async _replaceConnectionAndConnect(workspaceUri, key, active, token) {
205
+ const connector = this._connector ?? (await this._waitForConnector(token));
206
+ if (active) {
207
+ await this._disconnectActiveConnection(key, active);
208
+ }
209
+ return this._connect(connector, workspaceUri, key, token);
210
+ }
211
+ async _waitForConnector(token) {
212
+ const connectorPromise = Event.toPromise(this._onDidRegisterConnector.event);
213
+ try {
214
+ const connector = await raceCancellationError(raceTimeout(connectorPromise, CONNECTOR_REGISTRATION_TIMEOUT_MS), token);
215
+ if (!connector) {
216
+ throw ( new Error(( localize(4268, "No Dev Container Agent Host connector is registered."))));
217
+ }
218
+ return connector;
219
+ } finally {
220
+ connectorPromise.cancel();
221
+ }
222
+ }
223
+ async _connect(connector, workspaceUri, key, token) {
224
+ if (token.isCancellationRequested) {
225
+ throw ( new CancellationError());
226
+ }
227
+ const connected = await connector.createConnection(workspaceUri, devContainerAddress(workspaceUri), token);
228
+ if (token.isCancellationRequested) {
229
+ connected.transportDisposable?.dispose();
230
+ throw ( new CancellationError());
231
+ }
232
+ let stagedAddress;
233
+ try {
234
+ const provider = this._ensureProvider(workspaceUri, connected.name, connected.address);
235
+ const entry = this._connectionFactory.stageConnection(connector, workspaceUri, connected);
236
+ const address = getEntryAddress(entry);
237
+ stagedAddress = address;
238
+ if (token.isCancellationRequested) {
239
+ throw ( new CancellationError());
240
+ }
241
+ this._remoteAgentHostService.reconnect(address, true);
242
+ const connectionInfo = await raceCancellationError(this._remoteAgentHostService.waitForConnection(address), token);
243
+ const connection = this._remoteAgentHostService.getConnection(connectionInfo.address);
244
+ if (!connection) {
245
+ throw ( new Error(( localize(
246
+ 4269,
247
+ "Dev Container Agent Host connection was not available after connecting."
248
+ ))));
249
+ }
250
+ provider.setConnection(connection, connected.defaultDirectory ?? connectionInfo.defaultDirectory);
251
+ provider.setConnectionStatus(connectionInfo.status);
252
+ await this._waitForSessionTypes(provider, token);
253
+ if (provider.getSessions().length > 0) {
254
+ this._storeConnection(workspaceUri, connected.name);
255
+ }
256
+ const target = {
257
+ providerId: provider.id,
258
+ workspaceUri: connected.workspaceUri
259
+ };
260
+ const active = {
261
+ address,
262
+ provider,
263
+ target,
264
+ references: 0
265
+ };
266
+ this._activeConnections.set(key, active);
267
+ return active;
268
+ } catch (error) {
269
+ if (stagedAddress !== undefined) {
270
+ const connectionStillLive = this._isConnectedOrReconnecting(stagedAddress);
271
+ if (token.isCancellationRequested || !connectionStillLive) {
272
+ this._connectionFactory.unstageConnection(stagedAddress);
273
+ await this._remoteAgentHostService.removeRemoteAgentHost(stagedAddress);
274
+ }
275
+ } else {
276
+ connected.transportDisposable?.dispose();
277
+ }
278
+ if (!( this._storedConnections.has(key))) {
279
+ this._removeProvider(key);
280
+ }
281
+ throw error;
282
+ }
283
+ }
284
+ _acquireConnection(key, active) {
285
+ active.references++;
286
+ let released = false;
287
+ return {
288
+ ...active.target,
289
+ release: async () => {
290
+ if (released) {
291
+ return;
292
+ }
293
+ released = true;
294
+ active.references--;
295
+ if (active.references === 0 && this._activeConnections.get(key) === active) {
296
+ await this._disconnectActiveConnection(key, active);
297
+ if (active.provider.getSessions().length === 0) {
298
+ this._removeStoredConnection(key);
299
+ this._removeProvider(key);
300
+ }
301
+ }
302
+ }
303
+ };
304
+ }
305
+ _ensureProvider(workspaceUri, name, address = devContainerAddress(workspaceUri)) {
306
+ const key = getComparisonKey(workspaceUri);
307
+ const existing = this._providers.get(key);
308
+ if (existing) {
309
+ return existing;
310
+ }
311
+ const store = ( new DisposableStore());
312
+ const provider = store.add(this._createProvider({
313
+ address,
314
+ name,
315
+ devContainerWorktreeScope: key,
316
+ omitHostFromWorkspaceLabel: true,
317
+ connectOnDemand: async () => {
318
+ await this._ensureConnection(workspaceUri, CancellationToken.None);
319
+ },
320
+ disconnectOnDemand: () => this.disconnect(workspaceUri)
321
+ }));
322
+ provider.setConnectionStatus(RemoteAgentHostConnectionStatus.disconnected);
323
+ store.add(this._sessionsProvidersService.registerProvider(provider));
324
+ store.add(provider.onDidChangeSessions(event => {
325
+ if (event.added.length > 0) {
326
+ this._storeConnection(workspaceUri, name);
327
+ }
328
+ }));
329
+ store.add(toDisposable(() => this._providers.delete(key)));
330
+ this._providers.set(key, provider);
331
+ this._providerStores.set(key, store);
332
+ return provider;
333
+ }
334
+ _createProvider(config) {
335
+ return this._instantiationService.createInstance(RemoteAgentHostSessionsProvider, config);
336
+ }
337
+ async _waitForSessionTypes(provider, token) {
338
+ const deadline = Date.now() + 30_000;
339
+ while (provider.sessionTypes.length === 0) {
340
+ const remaining = deadline - Date.now();
341
+ if (remaining <= 0) {
342
+ throw ( new Error(( localize(
343
+ 4270,
344
+ "Timed out waiting for the Dev Container Agent Host to advertise agents."
345
+ ))));
346
+ }
347
+ let timedOut = false;
348
+ await raceCancellationError(raceTimeout(
349
+ Event.toPromise(provider.onDidChangeSessionTypes),
350
+ remaining,
351
+ () => timedOut = true
352
+ ), token);
353
+ if (timedOut) {
354
+ throw ( new Error(( localize(
355
+ 4270,
356
+ "Timed out waiting for the Dev Container Agent Host to advertise agents."
357
+ ))));
358
+ }
359
+ }
360
+ }
361
+ async disconnect(workspaceUri) {
362
+ const key = getComparisonKey(workspaceUri);
363
+ const pending = this._pendingConnections.get(key);
364
+ if (pending) {
365
+ pending.tokenSource.cancel();
366
+ await pending.promise.then(() => undefined, () => undefined);
367
+ }
368
+ const active = this._activeConnections.get(key);
369
+ if (!active) {
370
+ return;
371
+ }
372
+ await this._disconnectActiveConnection(key, active);
373
+ if (active.provider.getSessions().length === 0) {
374
+ this._removeStoredConnection(key);
375
+ this._removeProvider(key);
376
+ }
377
+ }
378
+ async _disconnectActiveConnection(key, active) {
379
+ this._activeConnections.delete(key);
380
+ this._connectionFactory.unstageConnection(active.address);
381
+ await this._remoteAgentHostService.removeRemoteAgentHost(active.address);
382
+ active.provider.clearConnection();
383
+ active.provider.setConnectionStatus(RemoteAgentHostConnectionStatus.disconnected);
384
+ }
385
+ _isConnectedOrReconnecting(address) {
386
+ return ( this._remoteAgentHostService.connections.some(
387
+ connection => connection.address === address && (RemoteAgentHostConnectionStatus.isConnected(connection.status) || RemoteAgentHostConnectionStatus.isReconnecting(connection.status))
388
+ ));
389
+ }
390
+ _reconcileConnections() {
391
+ for (const [key, active] of this._activeConnections) {
392
+ const connectionInfo = this._remoteAgentHostService.connections.find(connection => connection.address === active.address);
393
+ if (!connectionInfo) {
394
+ this._activeConnections.delete(key);
395
+ this._connectionFactory.unstageConnection(active.address);
396
+ active.provider.clearConnection();
397
+ active.provider.setConnectionStatus(RemoteAgentHostConnectionStatus.disconnected);
398
+ if (!( this._storedConnections.has(key))) {
399
+ this._removeProvider(key);
400
+ }
401
+ continue;
402
+ }
403
+ active.provider.setConnectionStatus(connectionInfo.status);
404
+ if (RemoteAgentHostConnectionStatus.isConnected(connectionInfo.status)) {
405
+ const connection = this._remoteAgentHostService.getConnection(active.address);
406
+ if (connection) {
407
+ active.provider.setConnection(connection, connectionInfo.defaultDirectory);
408
+ }
409
+ }
410
+ }
411
+ }
412
+ _restoreProviders() {
413
+ const stored = this._readStoredConnections();
414
+ for (const key of ( this._storedConnections.keys())) {
415
+ if (!( stored.has(key))) {
416
+ this._storedConnections.delete(key);
417
+ if (!( this._activeConnections.has(key))) {
418
+ this._removeProvider(key);
419
+ }
420
+ }
421
+ }
422
+ for (const [key, connection] of stored) {
423
+ this._storedConnections.set(key, connection);
424
+ const workspaceUri = ( URI.parse(connection.workspaceUri));
425
+ this._ensureProvider(workspaceUri, connection.name);
426
+ }
427
+ }
428
+ _readStoredConnections() {
429
+ const result = ( new Map());
430
+ const raw = this._storageService.get(DEV_CONTAINER_AGENT_HOSTS_STORAGE_KEY, StorageScope.APPLICATION);
431
+ if (!raw) {
432
+ return result;
433
+ }
434
+ try {
435
+ const stored = JSON.parse(raw);
436
+ if (!Array.isArray(stored)) {
437
+ return result;
438
+ }
439
+ for (const candidate of stored) {
440
+ if (!isStoredDevContainerAgentHost(candidate)) {
441
+ continue;
442
+ }
443
+ const uri = ( URI.parse(candidate.workspaceUri));
444
+ if (uri.scheme !== Schemas.file || candidate.name.length === 0) {
445
+ continue;
446
+ }
447
+ result.set(getComparisonKey(uri), {
448
+ workspaceUri: ( uri.toString()),
449
+ name: candidate.name
450
+ });
451
+ }
452
+ } catch {
453
+ return result;
454
+ }
455
+ return result;
456
+ }
457
+ _storeConnection(workspaceUri, name) {
458
+ const key = getComparisonKey(workspaceUri);
459
+ const stored = {
460
+ workspaceUri: ( workspaceUri.toString()),
461
+ name
462
+ };
463
+ const existing = this._storedConnections.get(key);
464
+ if (existing?.workspaceUri === stored.workspaceUri && existing.name === stored.name) {
465
+ return;
466
+ }
467
+ this._storedConnections.set(key, stored);
468
+ this._writeStoredConnections();
469
+ }
470
+ _removeStoredConnection(key) {
471
+ if (this._storedConnections.delete(key)) {
472
+ this._writeStoredConnections();
473
+ }
474
+ }
475
+ _writeStoredConnections() {
476
+ if (this._storedConnections.size === 0) {
477
+ this._storageService.remove(DEV_CONTAINER_AGENT_HOSTS_STORAGE_KEY, StorageScope.APPLICATION);
478
+ return;
479
+ }
480
+ this._storageService.store(DEV_CONTAINER_AGENT_HOSTS_STORAGE_KEY, JSON.stringify([...( this._storedConnections.values())]), StorageScope.APPLICATION, StorageTarget.MACHINE);
481
+ }
482
+ _removeProvider(key) {
483
+ this._providerStores.deleteAndDispose(key);
484
+ }
485
+ dispose() {
486
+ for (const pending of ( this._pendingConnections.values())) {
487
+ pending.tokenSource.cancel();
488
+ pending.tokenSource.dispose();
489
+ }
490
+ this._pendingConnections.clear();
491
+ super.dispose();
492
+ }
493
+ };
494
+ DevContainerAgentHostService = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IRemoteAgentHostService)), ( __param(2, ISessionsProvidersService)), ( __param(3, IStorageService))], DevContainerAgentHostService));
495
+
496
+ export { DevContainerAgentHostService };
@@ -0,0 +1,27 @@
1
+ import { IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IAgentHostAuthenticateRequest } from "@codingame/monaco-vscode-chat-service-override/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostAuth";
3
+ import { IRemoteAgentHostConnectionCustomizationService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.service";
4
+ /**
5
+ * Per-connection behavior a specific remote-agent-host kind can inject into the otherwise
6
+ * host-agnostic remote-agent-host contribution. Connections with no customization are unaffected.
7
+ */
8
+ export interface IRemoteAgentHostConnectionCustomization {
9
+ /**
10
+ * Transform the outgoing `authenticate` request before it is sent. Must fail closed: throw rather
11
+ * than forward a value that does not meet the host's contract. Omit to forward it unchanged.
12
+ */
13
+ readonly authenticate?: (request: IAgentHostAuthenticateRequest) => Promise<IAgentHostAuthenticateRequest>;
14
+ /**
15
+ * The backend session URI scheme for an agent provider when it differs from the provider itself.
16
+ * Return `undefined` to keep scheme == provider.
17
+ */
18
+ readonly backendSessionScheme?: (provider: string) => string | undefined;
19
+ }
20
+ /** Builds a {@link IRemoteAgentHostConnectionCustomization} for a concrete connection address. */
21
+ export type RemoteAgentHostConnectionCustomizationFactory = (address: string) => IRemoteAgentHostConnectionCustomization;
22
+ export declare class RemoteAgentHostConnectionCustomizationService implements IRemoteAgentHostConnectionCustomizationService {
23
+ readonly _serviceBrand: undefined;
24
+ private readonly _entries;
25
+ register(match: (address: string) => boolean, factory: RemoteAgentHostConnectionCustomizationFactory): IDisposable;
26
+ get(address: string): IRemoteAgentHostConnectionCustomization | undefined;
27
+ }
@@ -0,0 +1,26 @@
1
+
2
+ import { toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
3
+
4
+ class RemoteAgentHostConnectionCustomizationService {
5
+ constructor() {
6
+ this._entries = ( new Set());
7
+ }
8
+ register(match, factory) {
9
+ const entry = {
10
+ match,
11
+ factory
12
+ };
13
+ this._entries.add(entry);
14
+ return toDisposable(() => this._entries.delete(entry));
15
+ }
16
+ get(address) {
17
+ for (const entry of this._entries) {
18
+ if (entry.match(address)) {
19
+ return entry.factory(address);
20
+ }
21
+ }
22
+ return undefined;
23
+ }
24
+ }
25
+
26
+ export { RemoteAgentHostConnectionCustomizationService };
@@ -0,0 +1,15 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+
6
+ .sessions-search-empty-state {
7
+ top: 0;
8
+ left: 0;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ box-sizing: border-box;
13
+ padding: var(--vscode-spacing-size200);
14
+ pointer-events: none;
15
+ }
@@ -0,0 +1,79 @@
1
+
2
+ import './searchEditorEmptyState.contribution.js';
3
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
4
+ import { dirname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
5
+ import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
6
+ import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
+ import { MenuRegistry, MenuId, registerAction2, Action2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
8
+ import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
9
+ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
10
+ import { KeybindingsRegistry, KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
11
+ import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
12
+ import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
13
+ import { ExplorerFolderContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/files/common/files';
14
+ import { IExplorerService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/files/browser/files.service';
15
+ import { OpenEditorCommandId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/searchEditor/browser/constants';
16
+ import { resolveResourcesForSearchIncludes } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/search/common/queryBuilder';
17
+ import { SESSIONS_FILES_VIEW_ID } from '../../files/browser/filesView.js';
18
+
19
+ KeybindingsRegistry.registerKeybindingRule({
20
+ id: OpenEditorCommandId,
21
+ primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KeyF,
22
+ weight: KeybindingWeight.WorkbenchContrib
23
+ });
24
+ MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
25
+ command: {
26
+ id: OpenEditorCommandId,
27
+ title: ( localize2(4462, "Search")),
28
+ icon: Codicon.search
29
+ },
30
+ group: "1_files",
31
+ order: 0,
32
+ when: ( ContextKeyExpr.equals("view", SESSIONS_FILES_VIEW_ID))
33
+ });
34
+ MenuRegistry.appendMenuItem(MenuId.MenubarViewMenu, {
35
+ command: {
36
+ id: OpenEditorCommandId,
37
+ title: ( localize(4463, "&&Search"))
38
+ },
39
+ group: "4_auxbar",
40
+ order: 1
41
+ });
42
+ registerAction2(class extends Action2 {
43
+ constructor() {
44
+ super({
45
+ id: "sessions.files.action.findInFolder",
46
+ title: ( localize2(4464, "Find in Folder...")),
47
+ menu: {
48
+ id: MenuId.ExplorerContext,
49
+ group: "4_search",
50
+ order: 10,
51
+ when: ExplorerFolderContext
52
+ }
53
+ });
54
+ }
55
+ async run(accessor, resource) {
56
+ const explorerService = accessor.get(IExplorerService);
57
+ const fileService = accessor.get(IFileService);
58
+ const contextService = accessor.get(IWorkspaceContextService);
59
+ const commandService = accessor.get(ICommandService);
60
+ const resources = resource ? [resource] : explorerService.getContext(true).map(item => item.resource);
61
+ const results = await fileService.resolveAll(resources.map(resource => ({
62
+ resource
63
+ })));
64
+ const folders = [];
65
+ for (const result of results) {
66
+ if (result.success && result.stat) {
67
+ folders.push(
68
+ result.stat.isDirectory ? result.stat.resource : dirname(result.stat.resource)
69
+ );
70
+ }
71
+ }
72
+ const filesToInclude = resolveResourcesForSearchIncludes(folders, contextService);
73
+ await commandService.executeCommand(OpenEditorCommandId, {
74
+ filesToInclude: filesToInclude.join(", "),
75
+ showIncludesExcludes: true,
76
+ location: "reuse"
77
+ });
78
+ }
79
+ });
@@ -0,0 +1,7 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { ICodeEditor } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorBrowser";
3
+ import { IEditorContribution } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/editorCommon";
4
+ export declare class SearchEditorEmptyStateContribution extends Disposable implements IEditorContribution {
5
+ static readonly ID = "sessions.searchEditor.emptyState";
6
+ constructor(editor: ICodeEditor);
7
+ }