@codingame/monaco-vscode-workbench-service-override 37.2.0 → 37.3.1

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,320 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Disposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
+ import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
5
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
6
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
8
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
9
+ import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
10
+ import { AgentSessionApprovalModel, agentSessionApprovalId, AgentSessionApprovalKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel';
11
+ import { ISessionsService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service';
12
+ import { BlockedSessions, BlockedSessionReason, describeBlockedSessions } from '../../blockedSessions/browser/blockedSessions.js';
13
+ import { BlockedSessionsCIFixModel } from './blockedSessionsCIFixModel.js';
14
+ import { getFirstApprovalAcrossChats } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/views/sessionsList';
15
+ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
16
+ import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
17
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
18
+
19
+ const LOG_PREFIX = "[BlockedSessionsIndicator]";
20
+ var RequiresInputKind;
21
+ (function(RequiresInputKind) {
22
+ RequiresInputKind[RequiresInputKind["TerminalApproval"] = 0] = "TerminalApproval";
23
+ RequiresInputKind[RequiresInputKind["Question"] = 1] = "Question";
24
+ RequiresInputKind[RequiresInputKind["FailingCI"] = 2] = "FailingCI";
25
+ })(RequiresInputKind || (RequiresInputKind = {}));
26
+ let BlockedSessionsIndicatorModel = class BlockedSessionsIndicatorModel extends Disposable {
27
+ get approvalModel() {
28
+ return this._approvalModel;
29
+ }
30
+ get ciFixModel() {
31
+ return this._ciFixModel;
32
+ }
33
+ constructor(
34
+ approvalModel,
35
+ blockedSessions,
36
+ ciFixModel,
37
+ _sessionsService,
38
+ instantiationService,
39
+ productService,
40
+ _logService
41
+ ) {
42
+ super();
43
+ this._sessionsService = _sessionsService;
44
+ this._logService = _logService;
45
+ this._ignoredBlockOccurrences = observableValue("ignoredBlockOccurrences", ( new Map()));
46
+ this._lastBlockedOccurrences = ( new Map());
47
+ this._pendingBlinkOccurrences = ( new Map());
48
+ this._onDidRequestBlink = this._register(( new Emitter()));
49
+ this.onDidRequestBlink = this._onDidRequestBlink.event;
50
+ this._approvalModel = approvalModel ?? this._register(instantiationService.createInstance(AgentSessionApprovalModel));
51
+ this._blockedSessionsModel = blockedSessions ?? this._register(instantiationService.createInstance(BlockedSessions));
52
+ this._ciFixModel = ciFixModel ?? this._register(instantiationService.createInstance(BlockedSessionsCIFixModel));
53
+ const enabled = productService.quality !== "stable";
54
+ this._logService.trace(`${LOG_PREFIX} created (enabled: ${enabled})`);
55
+ this._register(toDisposable(() => this._logService.trace(
56
+ `${LOG_PREFIX} disposed, discarding ${this._ignoredBlockOccurrences.get().size} acknowledged occurrence(s)`
57
+ )));
58
+ this.blockedSessions = derived(this, reader => {
59
+ if (!enabled) {
60
+ return [];
61
+ }
62
+ const visibleSessionIds = ( new Set());
63
+ for (const session of this._sessionsService.visibleSessions.read(reader)) {
64
+ if (session) {
65
+ visibleSessionIds.add(session.sessionId);
66
+ }
67
+ }
68
+ const ignoredOccurrences = this._ignoredBlockOccurrences.read(reader);
69
+ const ciFixHidden = this._ciFixModel.hiddenSessions.read(reader);
70
+ return this._blockedSessionsModel.blockedSessionsWithReasons.read(reader).filter(blocked => !( visibleSessionIds.has(blocked.session.sessionId)) && !( ciFixHidden.has(blocked.session.sessionId)) && !this._isBlockIgnored(blocked, ignoredOccurrences, reader));
71
+ });
72
+ this.requiresInputKind = derived(this, reader => {
73
+ const blocked = this.blockedSessions.read(reader);
74
+ if (blocked.length === 0) {
75
+ return undefined;
76
+ }
77
+ let common;
78
+ let hasCommon = false;
79
+ for (const entry of blocked) {
80
+ const kind = this._kindOf(entry, reader);
81
+ if (kind === undefined) {
82
+ return undefined;
83
+ }
84
+ if (!hasCommon) {
85
+ common = kind;
86
+ hasCommon = true;
87
+ } else if (common !== kind) {
88
+ return undefined;
89
+ }
90
+ }
91
+ return common;
92
+ });
93
+ this._register(autorun(reader => {
94
+ if (!enabled) {
95
+ return;
96
+ }
97
+ const blockedSessions = this._blockedSessionsModel.blockedSessionsWithReasons.read(reader);
98
+ const blockedById = ( new Map(blockedSessions.map(entry => [entry.session.sessionId, entry])));
99
+ const visibleSessionIds = ( new Set(
100
+ this._sessionsService.visibleSessions.read(reader).filter(session => session !== undefined).map(session => session.sessionId)
101
+ ));
102
+ const ignoredOccurrences = this._ignoredBlockOccurrences.read(reader);
103
+ const next = ( new Map(ignoredOccurrences));
104
+ let changed = false;
105
+ for (const [sessionId, acknowledged] of ignoredOccurrences) {
106
+ const blockedSession = blockedById.get(sessionId);
107
+ if (blockedSession) {
108
+ const occurrenceId = this._getBlockOccurrenceId(blockedSession, reader, acknowledged.occurrenceId);
109
+ if (occurrenceId !== acknowledged.occurrenceId) {
110
+ next.delete(sessionId);
111
+ changed = true;
112
+ this._logService.trace(
113
+ `${LOG_PREFIX} releasing acknowledgement of ${sessionId}: new occurrence ${occurrenceId} replaces ${acknowledged.occurrenceId}`
114
+ );
115
+ }
116
+ continue;
117
+ }
118
+ if (acknowledged.reason === BlockedSessionReason.FailingCI) {
119
+ this._logService.trace(
120
+ `${LOG_PREFIX} keeping acknowledgement of ${sessionId} (${acknowledged.occurrenceId}) while it is not reported as blocked`
121
+ );
122
+ continue;
123
+ }
124
+ next.delete(sessionId);
125
+ changed = true;
126
+ this._logService.trace(
127
+ `${LOG_PREFIX} releasing acknowledgement of ${sessionId} (${acknowledged.occurrenceId}): no longer blocked`
128
+ );
129
+ }
130
+ for (const blockedSession of ( blockedById.values())) {
131
+ const sessionId = blockedSession.session.sessionId;
132
+ if (!( visibleSessionIds.has(sessionId))) {
133
+ continue;
134
+ }
135
+ const occurrenceId = this._getBlockOccurrenceId(blockedSession, reader, next.get(sessionId)?.occurrenceId);
136
+ if (next.get(sessionId)?.occurrenceId !== occurrenceId) {
137
+ next.set(sessionId, {
138
+ occurrenceId,
139
+ reason: blockedSession.reason
140
+ });
141
+ changed = true;
142
+ this._logService.trace(
143
+ `${LOG_PREFIX} acknowledging ${sessionId} (${occurrenceId}): the session is visible`
144
+ );
145
+ }
146
+ }
147
+ if (changed) {
148
+ this._ignoredBlockOccurrences.set(next, undefined);
149
+ }
150
+ }));
151
+ this._register(autorun(reader => {
152
+ if (!enabled) {
153
+ return;
154
+ }
155
+ const ignoredOccurrences = this._ignoredBlockOccurrences.read(reader);
156
+ const modelBlocked = this._blockedSessionsModel.blockedSessionsWithReasons.read(reader);
157
+ const currentOccurrences = ( new Map(
158
+ modelBlocked.map(blocked => [blocked.session.sessionId, this._getBlockOccurrenceId(
159
+ blocked,
160
+ reader,
161
+ ignoredOccurrences.get(blocked.session.sessionId)?.occurrenceId
162
+ )])
163
+ ));
164
+ const previousOccurrences = this._lastBlockedOccurrences;
165
+ this._lastBlockedOccurrences = currentOccurrences;
166
+ const visibleSessionIds = ( new Set());
167
+ for (const session of this._sessionsService.visibleSessions.read(reader)) {
168
+ if (session) {
169
+ visibleSessionIds.add(session.sessionId);
170
+ }
171
+ }
172
+ for (const [sessionId, occurrenceId] of this._pendingBlinkOccurrences) {
173
+ if (currentOccurrences.get(sessionId) !== occurrenceId || ( visibleSessionIds.has(sessionId))) {
174
+ this._pendingBlinkOccurrences.delete(sessionId);
175
+ }
176
+ }
177
+ let queued = false;
178
+ for (const blocked of modelBlocked) {
179
+ const sessionId = blocked.session.sessionId;
180
+ const occurrenceId = currentOccurrences.get(sessionId);
181
+ if (previousOccurrences.get(sessionId) !== occurrenceId && !( visibleSessionIds.has(sessionId))) {
182
+ this._pendingBlinkOccurrences.set(sessionId, occurrenceId);
183
+ queued = true;
184
+ this._logService.trace(`${LOG_PREFIX} queued attention blink for ${sessionId} (${occurrenceId})`);
185
+ }
186
+ }
187
+ if (queued) {
188
+ this._onDidRequestBlink.fire();
189
+ }
190
+ }));
191
+ this._register(autorun(reader => {
192
+ const surfaced = this.blockedSessions.read(reader);
193
+ this._logService.trace(
194
+ `${LOG_PREFIX} surfacing ${surfaced.length} blocked session(s): ${describeBlockedSessions(surfaced)}`
195
+ );
196
+ }));
197
+ }
198
+ consumePendingBlink() {
199
+ if (this._pendingBlinkOccurrences.size === 0) {
200
+ return false;
201
+ }
202
+ const ignoredOccurrences = this._ignoredBlockOccurrences.get();
203
+ const surfacedOccurrences = ( new Map(
204
+ this.blockedSessions.get().map(blocked => [blocked.session.sessionId, this._getBlockOccurrenceId(
205
+ blocked,
206
+ undefined,
207
+ ignoredOccurrences.get(blocked.session.sessionId)?.occurrenceId
208
+ )])
209
+ ));
210
+ let shouldBlink = false;
211
+ for (const [sessionId, occurrenceId] of this._pendingBlinkOccurrences) {
212
+ if (surfacedOccurrences.get(sessionId) === occurrenceId) {
213
+ shouldBlink = true;
214
+ break;
215
+ }
216
+ }
217
+ this._pendingBlinkOccurrences.clear();
218
+ return shouldBlink;
219
+ }
220
+ ignoreSession(session) {
221
+ const blocked = this._blockedSessionsModel.blockedSessionsWithReasons.get().find(entry => entry.session.sessionId === session.sessionId);
222
+ if (!blocked) {
223
+ this._logService.trace(
224
+ `${LOG_PREFIX} ignore requested for ${session.sessionId}, but it is not reported as blocked`
225
+ );
226
+ return;
227
+ }
228
+ this._ignoreOccurrence(blocked, this._getBlockOccurrenceId(
229
+ blocked,
230
+ undefined,
231
+ this._ignoredBlockOccurrences.get().get(session.sessionId)?.occurrenceId
232
+ ));
233
+ }
234
+ ignoreAllSessions() {
235
+ const blockedSessions = this.blockedSessions.get();
236
+ if (blockedSessions.length === 0) {
237
+ return;
238
+ }
239
+ const next = ( new Map(this._ignoredBlockOccurrences.get()));
240
+ for (const blocked of blockedSessions) {
241
+ const sessionId = blocked.session.sessionId;
242
+ const occurrenceId = this._getBlockOccurrenceId(blocked, undefined, next.get(sessionId)?.occurrenceId);
243
+ next.set(sessionId, {
244
+ occurrenceId,
245
+ reason: blocked.reason
246
+ });
247
+ this._logService.trace(`${LOG_PREFIX} ignoring ${sessionId} (${occurrenceId}): ignore all`);
248
+ }
249
+ this._ignoredBlockOccurrences.set(next, undefined);
250
+ }
251
+ dismissApproval(approved) {
252
+ const blocked = this._blockedSessionsModel.blockedSessionsWithReasons.get().find(entry => entry.session.sessionId === approved.session.sessionId);
253
+ if (!blocked || blocked.reason !== BlockedSessionReason.NeedsInput) {
254
+ return;
255
+ }
256
+ this._ignoreOccurrence(blocked, this._approvalOccurrenceId(blocked, approved.approvalId));
257
+ }
258
+ getRequiresInputLabel(count, kind) {
259
+ switch (kind) {
260
+ case RequiresInputKind.TerminalApproval:
261
+ return count === 1 ? ( localize(4498, "1 session requires terminal approval")) : ( localize(4499, "{0} sessions require terminal approval", count));
262
+ case RequiresInputKind.Question:
263
+ return count === 1 ? ( localize(4500, "1 session has a question")) : ( localize(4501, "{0} sessions have questions", count));
264
+ case RequiresInputKind.FailingCI:
265
+ return count === 1 ? ( localize(4502, "1 session is failing CI")) : ( localize(4503, "{0} sessions are failing CI", count));
266
+ default:
267
+ return count === 1 ? ( localize(4504, "1 session requires input")) : ( localize(4505, "{0} sessions require input", count));
268
+ }
269
+ }
270
+ _ignoreOccurrence(blocked, occurrenceId) {
271
+ const next = ( new Map(this._ignoredBlockOccurrences.get()));
272
+ next.set(blocked.session.sessionId, {
273
+ occurrenceId,
274
+ reason: blocked.reason
275
+ });
276
+ this._ignoredBlockOccurrences.set(next, undefined);
277
+ this._logService.trace(`${LOG_PREFIX} ignoring ${blocked.session.sessionId} (${occurrenceId})`);
278
+ }
279
+ _isBlockIgnored(blocked, ignoredOccurrences, reader) {
280
+ const acknowledged = ignoredOccurrences.get(blocked.session.sessionId);
281
+ return acknowledged !== undefined && this._getBlockOccurrenceId(blocked, reader, acknowledged.occurrenceId) === acknowledged.occurrenceId;
282
+ }
283
+ _getBlockOccurrenceId(blocked, reader, ignoredOccurrence) {
284
+ if (blocked.reason !== BlockedSessionReason.NeedsInput) {
285
+ return blocked.occurrenceId;
286
+ }
287
+ const approval = getFirstApprovalAcrossChats(this._approvalModel, blocked.session, reader);
288
+ if (approval) {
289
+ return this._approvalOccurrenceId(blocked, agentSessionApprovalId(approval));
290
+ }
291
+ const approvalPrefix = this._approvalOccurrenceId(blocked, "");
292
+ return ignoredOccurrence?.startsWith(approvalPrefix) ? ignoredOccurrence : blocked.occurrenceId;
293
+ }
294
+ _approvalOccurrenceId(blocked, approvalId) {
295
+ return `${blocked.occurrenceId}:approval:${approvalId}`;
296
+ }
297
+ _kindOf(blocked, reader) {
298
+ switch (blocked.reason) {
299
+ case BlockedSessionReason.FailingCI:
300
+ return RequiresInputKind.FailingCI;
301
+ case BlockedSessionReason.NeedsInput:
302
+ {
303
+ const approval = getFirstApprovalAcrossChats(this._approvalModel, blocked.session, reader);
304
+ switch (approval?.kind) {
305
+ case AgentSessionApprovalKind.Terminal:
306
+ return RequiresInputKind.TerminalApproval;
307
+ case AgentSessionApprovalKind.Question:
308
+ return RequiresInputKind.Question;
309
+ default:
310
+ return undefined;
311
+ }
312
+ }
313
+ default:
314
+ return undefined;
315
+ }
316
+ }
317
+ };
318
+ BlockedSessionsIndicatorModel = ( __decorate([( __param(3, ISessionsService)), ( __param(4, IInstantiationService)), ( __param(5, IProductService)), ( __param(6, ILogService))], BlockedSessionsIndicatorModel));
319
+
320
+ export { BlockedSessionsIndicatorModel, RequiresInputKind };
@@ -0,0 +1,65 @@
1
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
2
+ import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
5
+ import { ISession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session";
6
+ import { IApprovedSession, ISessionCIFixModel } from "@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/views/sessionsList";
7
+ import { AgentSessionApprovalModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel";
8
+ export declare const IGNORE_INPUT_NEEDED_COMMAND_ID = "sessions.blockedSessions.ignoreInputNeeded";
9
+ export declare const IGNORE_CI_FAILURE_COMMAND_ID = "sessions.blockedSessions.ignoreCIFailure";
10
+ export interface IBlockedSessionsHeaderActionContext {
11
+ readonly showAllSessions: () => void;
12
+ readonly ignoreAllSessions: () => void;
13
+ readonly close: () => void;
14
+ }
15
+ /** Register the actions shown in blocked-session row toolbars. */
16
+ export declare function registerBlockedSessionsItemActions(): IDisposable;
17
+ export interface IBlockedSessionsListOptions {
18
+ /** Invoked when a session row is activated (clicked or opened via keyboard). */
19
+ readonly onSessionOpen: (resource: URI, preserveFocus: boolean, sideBySide: boolean) => void;
20
+ /** Width of the list, in pixels. Defaults to a fixed width when omitted. */
21
+ readonly width?: number;
22
+ /** Approval model forwarded to the underlying list (see {@link ISessionsFlatListOptions.approvalModel}). */
23
+ readonly approvalModel?: AgentSessionApprovalModel;
24
+ /** Fix-CI model forwarded to the underlying list (see {@link ISessionsFlatListOptions.ciFixModel}). */
25
+ readonly ciFixModel?: ISessionCIFixModel;
26
+ /** Ignores the session's current blocked occurrence. */
27
+ readonly onIgnoreSession: (session: ISession) => void;
28
+ /** Opens the full sessions picker. */
29
+ readonly onShowAllSessions: () => void;
30
+ /** Ignores every blocked occurrence currently shown. */
31
+ readonly onIgnoreAllSessions: () => void;
32
+ /** Closes the surrounding blocked-sessions overlay. */
33
+ readonly onClose: () => void;
34
+ }
35
+ /**
36
+ * A self-sizing, flat list of blocked sessions.
37
+ *
38
+ * Wraps {@link SessionsFlatList} with the fixed width and bounded height used by
39
+ * the blocked-sessions dropdown in the sessions titlebar. Hosts append it to a
40
+ * container, push sessions via {@link setSessions}, and listen to
41
+ * {@link onDidChangeContentHeight} to reposition the surrounding surface (e.g. a
42
+ * context view) as rows resolve their heights.
43
+ */
44
+ export declare class BlockedSessionsList extends Disposable {
45
+ private readonly _onDidChangeContentHeight;
46
+ /** Fires when the list resizes and the host should re-layout its container. */
47
+ readonly onDidChangeContentHeight: Event<void>;
48
+ private readonly _onDidApproveSession;
49
+ /** Fires when a session's pending action is approved from its "Allow" button. */
50
+ readonly onDidApproveSession: Event<IApprovedSession>;
51
+ private readonly _rowsContainer;
52
+ private readonly _list;
53
+ private _width;
54
+ constructor(container: HTMLElement, options: IBlockedSessionsListOptions, instantiationService: IInstantiationService);
55
+ /** Replace the sessions shown in the list and resize to fit their content. */
56
+ setSessions(sessions: readonly ISession[]): void;
57
+ /** Move keyboard focus into the list. */
58
+ focus(): void;
59
+ /**
60
+ * Update the list width (e.g. when the anchoring widget reflows as the window
61
+ * resizes) and re-layout to the new width.
62
+ */
63
+ setWidth(width: number): void;
64
+ private _layout;
65
+ }
@@ -0,0 +1,129 @@
1
+
2
+ import { registerCss } from '@codingame/monaco-vscode-api/css';
3
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
+ import * as blockedSessionsList from './media/blockedSessionsList.css';
5
+ import { append, $ } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
+ import { status } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
7
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
8
+ import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
9
+ import { combinedDisposable, Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
10
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
11
+ import { MenuWorkbenchToolBar, HiddenItemStrategy } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/toolbar';
12
+ import { MenuRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
13
+ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
14
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
15
+ import { Menus } from '@codingame/monaco-vscode-api/vscode/vs/sessions/browser/menus';
16
+ import { SessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/session';
17
+ import { SessionItemStatusContext, SessionsFlatList } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessions/browser/views/sessionsList';
18
+
19
+ registerCss(blockedSessionsList, 1);
20
+ const IGNORE_INPUT_NEEDED_COMMAND_ID = "sessions.blockedSessions.ignoreInputNeeded";
21
+ const IGNORE_CI_FAILURE_COMMAND_ID = "sessions.blockedSessions.ignoreCIFailure";
22
+ function registerBlockedSessionsItemActions() {
23
+ return combinedDisposable(MenuRegistry.appendMenuItem(Menus.BlockedSessionsItem, {
24
+ command: {
25
+ id: IGNORE_INPUT_NEEDED_COMMAND_ID,
26
+ title: ( localize(4506, "Ignore Input Needed")),
27
+ icon: Codicon.bellSlash
28
+ },
29
+ group: "navigation",
30
+ order: 1,
31
+ when: ( ContextKeyExpr.equals(SessionItemStatusContext.key, SessionStatus.NeedsInput))
32
+ }), MenuRegistry.appendMenuItem(Menus.BlockedSessionsItem, {
33
+ command: {
34
+ id: IGNORE_CI_FAILURE_COMMAND_ID,
35
+ title: ( localize(4507, "Ignore CI Failure")),
36
+ icon: Codicon.bellSlash
37
+ },
38
+ group: "navigation",
39
+ order: 1,
40
+ when: ( ContextKeyExpr.notEquals(SessionItemStatusContext.key, SessionStatus.NeedsInput))
41
+ }));
42
+ }
43
+ const BLOCKED_LIST_WIDTH = 360;
44
+ const BLOCKED_LIST_MAX_VISIBLE_ROWS = 8;
45
+ const BLOCKED_LIST_APPROVAL_ROW_MAX_LINES = 5;
46
+ let BlockedSessionsList = class BlockedSessionsList extends Disposable {
47
+ constructor(container, options, instantiationService) {
48
+ super();
49
+ this._onDidChangeContentHeight = this._register(( new Emitter()));
50
+ this.onDidChangeContentHeight = this._onDidChangeContentHeight.event;
51
+ this._onDidApproveSession = this._register(( new Emitter()));
52
+ this.onDidApproveSession = this._onDidApproveSession.event;
53
+ this._width = options.width ?? BLOCKED_LIST_WIDTH;
54
+ const element = append(container, $(".agent-sessions-blocked-list"));
55
+ const header = append(element, $(".agent-sessions-blocked-list-header"));
56
+ const title = append(header, $(".agent-sessions-blocked-list-title"));
57
+ title.textContent = ( localize(4508, "Sessions requiring input"));
58
+ const headerActions = append(header, $(".agent-sessions-blocked-list-header-actions"));
59
+ this._register(
60
+ instantiationService.createInstance(MenuWorkbenchToolBar, headerActions, Menus.BlockedSessionsHeader, {
61
+ hiddenItemStrategy: HiddenItemStrategy.NoHide,
62
+ menuOptions: {
63
+ arg: {
64
+ showAllSessions: options.onShowAllSessions,
65
+ ignoreAllSessions: () => {
66
+ options.onIgnoreAllSessions();
67
+ status(( localize(4509, "All current blocked sessions were ignored.")));
68
+ },
69
+ close: options.onClose
70
+ }
71
+ },
72
+ toolbarOptions: {
73
+ primaryGroup: () => true
74
+ },
75
+ telemetrySource: "blockedSessionsList.header"
76
+ })
77
+ );
78
+ this._rowsContainer = append(element, $(".agent-sessions-blocked-list-rows"));
79
+ this._list = this._register(
80
+ instantiationService.createInstance(SessionsFlatList, this._rowsContainer, {
81
+ showSessionHover: true,
82
+ onSessionOpen: options.onSessionOpen,
83
+ approvalModel: options.approvalModel,
84
+ ciFixModel: options.ciFixModel,
85
+ approvalRowMaxLines: BLOCKED_LIST_APPROVAL_ROW_MAX_LINES,
86
+ toolbarMenuId: Menus.BlockedSessionsItem,
87
+ onToolbarAction: (action, session) => {
88
+ if (action.id !== IGNORE_INPUT_NEEDED_COMMAND_ID && action.id !== IGNORE_CI_FAILURE_COMMAND_ID) {
89
+ return false;
90
+ }
91
+ options.onIgnoreSession(session);
92
+ status(action.id === IGNORE_INPUT_NEEDED_COMMAND_ID ? ( localize(4510, "Input needed ignored until this session needs input again.")) : ( localize(4511, "CI failure ignored until this session has another CI failure.")));
93
+ return true;
94
+ }
95
+ })
96
+ );
97
+ this._register(this._list.onDidChangeContentHeight(() => {
98
+ this._layout();
99
+ this._onDidChangeContentHeight.fire();
100
+ }));
101
+ this._register(
102
+ this._list.onDidApproveSession(approved => this._onDidApproveSession.fire(approved))
103
+ );
104
+ }
105
+ setSessions(sessions) {
106
+ this._list.setSessions(sessions);
107
+ this._layout();
108
+ }
109
+ focus() {
110
+ this._list.focus();
111
+ }
112
+ setWidth(width) {
113
+ if (this._width === width) {
114
+ return;
115
+ }
116
+ this._width = width;
117
+ this._layout();
118
+ }
119
+ _layout() {
120
+ const maxHeight = BLOCKED_LIST_MAX_VISIBLE_ROWS * this._list.getRowHeight();
121
+ const height = Math.min(this._list.getContentHeight(), maxHeight);
122
+ this._rowsContainer.style.width = `${this._width}px`;
123
+ this._rowsContainer.style.height = `${height}px`;
124
+ this._list.layout(height, this._width);
125
+ }
126
+ };
127
+ BlockedSessionsList = ( __decorate([( __param(2, IInstantiationService))], BlockedSessionsList));
128
+
129
+ export { BlockedSessionsList, IGNORE_CI_FAILURE_COMMAND_ID, IGNORE_INPUT_NEEDED_COMMAND_ID, registerBlockedSessionsItemActions };