@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,776 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { $, addDisposableListener, EventType, getWindow, DisposableResizeObserver, scheduleAtNextAnimationFrame, addDisposableGenericMouseMoveListener, addDisposableGenericMouseDownListener } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
+ import { createInstantHoverDelegate } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
5
+ import { RunOnceScheduler } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
6
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
7
+ import { Disposable, MutableDisposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
9
+ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
10
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
11
+ import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
12
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
13
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
14
+ import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
15
+ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
16
+ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
17
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
18
+ import { Parts } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService';
19
+ import { IWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service';
20
+ import { SessionsAquariumActiveContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
21
+ import { Fish, pickRandomSpecies, disposeSharedFishDefs } from './fish.js';
22
+ import { FishFeedingStreak } from './fishFeedingStreak.js';
23
+ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
24
+
25
+ const SESSIONS_DEVELOPER_JOY_ENABLED_SETTING = "sessions.developerJoy.enabled";
26
+ const FISH_COUNT = 50;
27
+ const FISH_MIN_SIZE = 22;
28
+ const FISH_MAX_SIZE = 48;
29
+ const FISH_GROWTH_FACTOR = 1.08;
30
+ const SCATTER_RADIUS = 145;
31
+ const SCATTER_RADIUS_SQ = SCATTER_RADIUS * SCATTER_RADIUS;
32
+ const EAT_RADIUS = 14;
33
+ const FOOD_DETECT_RADIUS = 160;
34
+ const FOOD_DETECT_RADIUS_SQ = FOOD_DETECT_RADIUS * FOOD_DETECT_RADIUS;
35
+ const MAX_FOOD = 12;
36
+ const WALL_MARGIN = 36;
37
+ const BASE_SPEED = 24;
38
+ const MAX_SPEED = 50;
39
+ const MAX_SPEED_SQ = MAX_SPEED * MAX_SPEED;
40
+ const PANIC_MAX_SPEED = 240;
41
+ const PANIC_MAX_SPEED_SQ = PANIC_MAX_SPEED * PANIC_MAX_SPEED;
42
+ const PANIC_DURATION_MS = 600;
43
+ const EXIT_DURATION_MS = 900;
44
+ const ACTIVE_FRAME_INTERVAL_MS = 1000 / 30;
45
+ const DART_RATE_PER_SECOND = 0.04;
46
+ const DART_IMPULSE = 150;
47
+ const ENABLED_STORAGE_KEY = "sessions.developerJoy.enabled";
48
+ const ACTION_VISIBLE_STORAGE_KEY = "sessions.aquarium.action.visible";
49
+ const FISH_HUNGER_ICONS = {
50
+ happy: Codicon.fish1Happy,
51
+ neutral: Codicon.fish1Neutral,
52
+ sad: Codicon.fish1Sad,
53
+ verySad: Codicon.fish1VerySad
54
+ };
55
+ let AquariumService = class AquariumService extends Disposable {
56
+ constructor(
57
+ layoutService,
58
+ contextKeyService,
59
+ hoverService,
60
+ storageService,
61
+ configurationService,
62
+ accessibilityService,
63
+ telemetryService
64
+ ) {
65
+ super();
66
+ this.layoutService = layoutService;
67
+ this.hoverService = hoverService;
68
+ this.storageService = storageService;
69
+ this.configurationService = configurationService;
70
+ this.accessibilityService = accessibilityService;
71
+ this.telemetryService = telemetryService;
72
+ this.mounts = ( new Set());
73
+ this.activeRef = this._register(( new MutableDisposable()));
74
+ this.pendingExit = this._register(( new MutableDisposable()));
75
+ this._actionVisible = observableValue(this, true);
76
+ this.actionVisible = this._actionVisible;
77
+ this.mainContainer = layoutService.mainContainer;
78
+ this.activeContextKey = SessionsAquariumActiveContext.bindTo(contextKeyService);
79
+ this.streak = ( new FishFeedingStreak(storageService));
80
+ this._actionVisible.set(
81
+ this.storageService.getBoolean(ACTION_VISIBLE_STORAGE_KEY, StorageScope.APPLICATION, true),
82
+ undefined
83
+ );
84
+ this.hungerRefreshScheduler = this._register(( new RunOnceScheduler(() => {
85
+ this.updateAllToggleButtonsVisual(!!this.activeRef.value);
86
+ }, 0)));
87
+ this._register(
88
+ this.storageService.onDidChangeValue(StorageScope.APPLICATION, ACTION_VISIBLE_STORAGE_KEY, this._store)(() => {
89
+ this.setActionVisible(
90
+ this.storageService.getBoolean(ACTION_VISIBLE_STORAGE_KEY, StorageScope.APPLICATION, true)
91
+ );
92
+ })
93
+ );
94
+ this._register(this.configurationService.onDidChangeConfiguration(e => {
95
+ if (e.affectsConfiguration(SESSIONS_DEVELOPER_JOY_ENABLED_SETTING)) {
96
+ this.applyFeatureEnabledState();
97
+ }
98
+ }));
99
+ }
100
+ mountToggle(parent) {
101
+ const button = $("button.agents-aquarium-toggle");
102
+ button.type = "button";
103
+ this.updateToggleButtonVisual(button, !!this.activeRef.value);
104
+ const store = ( new DisposableStore());
105
+ store.add(addDisposableListener(button, EventType.CLICK, e => {
106
+ e.preventDefault();
107
+ e.stopPropagation();
108
+ this.toggle();
109
+ }));
110
+ const hoverDelegate = store.add(createInstantHoverDelegate());
111
+ store.add(
112
+ this.hoverService.setupManagedHover(hoverDelegate, button, () => this.getToggleLabel(!!this.activeRef.value))
113
+ );
114
+ parent.appendChild(button);
115
+ const mount = {
116
+ button,
117
+ hostVisible: true
118
+ };
119
+ this.mounts.add(mount);
120
+ this.applyFeatureEnabledStateForButton(button);
121
+ this.reconcileActivation();
122
+ this.scheduleHungerRefresh();
123
+ return {
124
+ setHostVisible: visible => {
125
+ if (mount.hostVisible === visible) {
126
+ return;
127
+ }
128
+ mount.hostVisible = visible;
129
+ this.reconcileActivation();
130
+ },
131
+ dispose: () => {
132
+ store.dispose();
133
+ button.remove();
134
+ this.mounts.delete(mount);
135
+ if (this.mounts.size === 0) {
136
+ this.hungerRefreshScheduler.cancel();
137
+ }
138
+ this.reconcileActivation();
139
+ }
140
+ };
141
+ }
142
+ toggleActionVisibility() {
143
+ const visible = !this._actionVisible.get();
144
+ this.setActionVisible(visible);
145
+ this.storageService.store(
146
+ ACTION_VISIBLE_STORAGE_KEY,
147
+ visible,
148
+ StorageScope.APPLICATION,
149
+ StorageTarget.USER
150
+ );
151
+ this.accessibilityService.status(visible ? ( localize(3259, "Aquarium action shown")) : ( localize(3260, "Aquarium action hidden")));
152
+ return visible;
153
+ }
154
+ simulateStreak(count, alive) {
155
+ this.streak.simulate(count, alive);
156
+ this.updateAllToggleButtonsVisual(!!this.activeRef.value);
157
+ }
158
+ setActionVisible(visible) {
159
+ this._actionVisible.set(visible, undefined);
160
+ for (const mount of this.mounts) {
161
+ this.applyFeatureEnabledStateForButton(mount.button);
162
+ }
163
+ }
164
+ reconcileActivation() {
165
+ const anyHostVisible = this.hasVisibleMount();
166
+ if (anyHostVisible && this.isFeatureEnabled() && this.isStoredEnabled() && !this.activeRef.value) {
167
+ this.activate( false);
168
+ } else if (!anyHostVisible) {
169
+ this.pendingExit.clear();
170
+ if (this.activeRef.value) {
171
+ this.deactivate( false, false);
172
+ }
173
+ }
174
+ }
175
+ hasVisibleMount() {
176
+ for (const m of this.mounts) {
177
+ if (m.hostVisible) {
178
+ return true;
179
+ }
180
+ }
181
+ return false;
182
+ }
183
+ isFeatureEnabled() {
184
+ return this.configurationService.getValue(SESSIONS_DEVELOPER_JOY_ENABLED_SETTING) === true;
185
+ }
186
+ isStoredEnabled() {
187
+ return this.storageService.getBoolean(ENABLED_STORAGE_KEY, StorageScope.APPLICATION, false);
188
+ }
189
+ setStoredEnabled(enabled) {
190
+ this.storageService.store(ENABLED_STORAGE_KEY, enabled, StorageScope.APPLICATION, StorageTarget.USER);
191
+ }
192
+ applyFeatureEnabledState() {
193
+ for (const mount of this.mounts) {
194
+ this.applyFeatureEnabledStateForButton(mount.button);
195
+ }
196
+ if (!this.isFeatureEnabled() && this.activeRef.value) {
197
+ this.deactivate( false);
198
+ } else if (this.isFeatureEnabled()) {
199
+ this.reconcileActivation();
200
+ }
201
+ }
202
+ applyFeatureEnabledStateForButton(button) {
203
+ button.style.display = this.isFeatureEnabled() && this._actionVisible.get() ? "" : "none";
204
+ }
205
+ updateToggleButtonVisual(button, active) {
206
+ button.classList.toggle("active", active);
207
+ this.streak.collectExpired();
208
+ const streak = this.streak.count;
209
+ const revivable = streak > 0 ? 0 : this.streak.revivableCount;
210
+ const hungerIcon = FISH_HUNGER_ICONS[this.streak.hungerState];
211
+ const icon = active ? Codicon.close : hungerIcon;
212
+ button.replaceChildren();
213
+ const iconSpan = $("span");
214
+ iconSpan.setAttribute("aria-hidden", "true");
215
+ addIconClasses(iconSpan, icon);
216
+ if (!active) {
217
+ button.appendChild(iconSpan);
218
+ }
219
+ const showStreak = streak > 0 || revivable > 0;
220
+ button.classList.toggle("has-streak", showStreak);
221
+ if (showStreak) {
222
+ const streakSpan = $("span");
223
+ streakSpan.className = "agents-aquarium-toggle-streak";
224
+ streakSpan.setAttribute("aria-hidden", "true");
225
+ if (active) {
226
+ const hungerIconSpan = $("span");
227
+ addIconClasses(hungerIconSpan, hungerIcon);
228
+ streakSpan.appendChild(hungerIconSpan);
229
+ }
230
+ if (streak > 0) {
231
+ streakSpan.append(String(streak));
232
+ } else {
233
+ streakSpan.classList.add("revivable");
234
+ streakSpan.append(( localize(3261, "{0} · Feed again to revive", revivable)));
235
+ }
236
+ button.appendChild(streakSpan);
237
+ }
238
+ if (active) {
239
+ button.appendChild(iconSpan);
240
+ }
241
+ const label = this.getToggleLabel(active);
242
+ button.setAttribute("aria-pressed", String(active));
243
+ button.setAttribute("aria-label", label);
244
+ }
245
+ getToggleLabel(active) {
246
+ const base = active ? ( localize(3262, "Hide Aquarium")) : ( localize(3263, "Show Aquarium"));
247
+ const streak = this.streak.count;
248
+ if (streak > 0) {
249
+ const hungerDescription = getFishHungerDescription(this.streak.hungerState);
250
+ return (streak === 1 ? localize(
251
+ 3264,
252
+ "{0} — {1} — {2} day feeding streak",
253
+ base,
254
+ hungerDescription,
255
+ streak
256
+ ) : localize(
257
+ 3265,
258
+ "{0} — {1} — {2} days feeding streak",
259
+ base,
260
+ hungerDescription,
261
+ streak
262
+ ));
263
+ }
264
+ const revivable = this.streak.revivableCount;
265
+ if (revivable > 0) {
266
+ return revivable === 1 ? ( localize(3266, "{0} — feed a fish to revive your {1} day streak", base, revivable)) : ( localize(3267, "{0} — feed a fish to revive your {1} day streak", base, revivable));
267
+ }
268
+ return base;
269
+ }
270
+ toggle() {
271
+ const willActivate = !this.activeRef.value;
272
+ this.telemetryService.publicLog2("vscodeAgents.aquarium/toggle", {
273
+ activated: willActivate
274
+ });
275
+ if (this.activeRef.value) {
276
+ this.deactivate( true);
277
+ } else if (this.hasVisibleMount()) {
278
+ this.activate( true);
279
+ }
280
+ }
281
+ updateAllToggleButtonsVisual(active) {
282
+ for (const mount of this.mounts) {
283
+ this.updateToggleButtonVisual(mount.button, active);
284
+ }
285
+ this.scheduleHungerRefresh();
286
+ }
287
+ scheduleHungerRefresh() {
288
+ this.hungerRefreshScheduler.cancel();
289
+ if (this.mounts.size === 0) {
290
+ return;
291
+ }
292
+ const delay = this.streak.millisecondsUntilHungerStateChange;
293
+ if (delay !== undefined) {
294
+ this.hungerRefreshScheduler.schedule(delay);
295
+ }
296
+ }
297
+ activate(persist) {
298
+ if (this.activeRef.value) {
299
+ return;
300
+ }
301
+ this.pendingExit.clear();
302
+ let active;
303
+ try {
304
+ active = createActiveAquarium(
305
+ this.mainContainer,
306
+ this.layoutService,
307
+ this.accessibilityService,
308
+ () => this.handleFishFed()
309
+ );
310
+ } catch (e) {
311
+ console.error("[aquarium] failed to activate", e);
312
+ return;
313
+ }
314
+ if (!active) {
315
+ return;
316
+ }
317
+ this.activeRef.value = active;
318
+ this.activeContextKey.set(true);
319
+ this.updateAllToggleButtonsVisual(true);
320
+ if (persist) {
321
+ this.setStoredEnabled(true);
322
+ }
323
+ this.streak.collectExpired();
324
+ this.updateAllToggleButtonsVisual(true);
325
+ }
326
+ handleFishFed() {
327
+ const before = this.streak.count;
328
+ const result = this.streak.recordFeed();
329
+ if (result.count !== before || result.revived) {
330
+ this.updateAllToggleButtonsVisual(!!this.activeRef.value);
331
+ }
332
+ }
333
+ deactivate(persist, animate = true) {
334
+ if (!animate) {
335
+ this.activeRef.clear();
336
+ this.activeContextKey.set(false);
337
+ this.updateAllToggleButtonsVisual(false);
338
+ if (persist) {
339
+ this.setStoredEnabled(false);
340
+ }
341
+ return;
342
+ }
343
+ const active = this.activeRef.clearAndLeak();
344
+ if (!active) {
345
+ return;
346
+ }
347
+ this.activeContextKey.set(false);
348
+ this.updateAllToggleButtonsVisual(false);
349
+ const pending = active.exit(() => {
350
+ if (this.pendingExit.value === pending) {
351
+ this.pendingExit.clear();
352
+ }
353
+ });
354
+ this.pendingExit.value = pending;
355
+ if (persist) {
356
+ this.setStoredEnabled(false);
357
+ }
358
+ }
359
+ };
360
+ AquariumService = ( __decorate([( __param(0, IWorkbenchLayoutService)), ( __param(1, IContextKeyService)), ( __param(2, IHoverService)), ( __param(3, IStorageService)), ( __param(4, IConfigurationService)), ( __param(5, IAccessibilityService)), ( __param(6, ITelemetryService))], AquariumService));
361
+ function createActiveAquarium(mainContainer, layoutService, accessibilityService, onFishFed) {
362
+ const targetWindow = getWindow(mainContainer);
363
+ const sessionsContainer = layoutService.getContainer(targetWindow, Parts.SESSIONS_PART);
364
+ if (!sessionsContainer || !layoutService.isVisible(Parts.SESSIONS_PART, targetWindow)) {
365
+ return undefined;
366
+ }
367
+ const store = ( new DisposableStore());
368
+ const water = $(".agents-aquarium-water");
369
+ water.setAttribute("aria-hidden", "true");
370
+ sessionsContainer.insertBefore(water, sessionsContainer.firstChild);
371
+ sessionsContainer.classList.add("aquarium-active");
372
+ store.add(toDisposable(() => {
373
+ water.remove();
374
+ sessionsContainer.classList.remove("aquarium-active");
375
+ }));
376
+ const fishLayer = $(".agents-aquarium-fish-layer");
377
+ water.appendChild(fishLayer);
378
+ const foodLayer = $(".agents-aquarium-food-layer");
379
+ water.appendChild(foodLayer);
380
+ const bounds = {
381
+ width: 0,
382
+ height: 0
383
+ };
384
+ const waterScreenOffset = {
385
+ left: 0,
386
+ top: 0
387
+ };
388
+ const updateBounds = () => {
389
+ bounds.width = water.clientWidth;
390
+ bounds.height = water.clientHeight;
391
+ const rect = water.getBoundingClientRect();
392
+ waterScreenOffset.left = rect.left;
393
+ waterScreenOffset.top = rect.top;
394
+ };
395
+ const fish = [];
396
+ updateBounds();
397
+ const resizeObserver = ( new DisposableResizeObserver("createActiveAquarium", () => {
398
+ updateBounds();
399
+ for (const f of fish) {
400
+ f.positionX = Math.min(f.positionX, Math.max(0, bounds.width - f.size));
401
+ f.positionY = Math.min(f.positionY, Math.max(0, bounds.height - f.size));
402
+ }
403
+ }));
404
+ resizeObserver.observe(water);
405
+ store.add(resizeObserver);
406
+ for (let i = 0; i < FISH_COUNT; i++) {
407
+ const size = randomBetween(FISH_MIN_SIZE, FISH_MAX_SIZE);
408
+ const angle = Math.random() * Math.PI * 2;
409
+ const speed = randomBetween(BASE_SPEED * 0.6, BASE_SPEED * 1.2);
410
+ const f = ( new Fish({
411
+ species: pickRandomSpecies(),
412
+ size,
413
+ positionX: randomBetween(0, Math.max(1, bounds.width - size)),
414
+ positionY: randomBetween(0, Math.max(1, bounds.height - size)),
415
+ velocityX: Math.cos(angle) * speed,
416
+ velocityY: Math.sin(angle) * speed
417
+ }, targetWindow.document));
418
+ fish.push(f);
419
+ }
420
+ const SYNC_BATCH = Math.ceil(FISH_COUNT / 2);
421
+ const firstBatch = targetWindow.document.createDocumentFragment();
422
+ for (let i = 0; i < Math.min(SYNC_BATCH, fish.length); i++) {
423
+ firstBatch.appendChild(fish[i].element);
424
+ }
425
+ fishLayer.appendChild(firstBatch);
426
+ let exiting = false;
427
+ if (SYNC_BATCH < fish.length) {
428
+ const deferred = scheduleAtNextAnimationFrame(targetWindow, () => {
429
+ if (exiting) {
430
+ return;
431
+ }
432
+ const restBatch = targetWindow.document.createDocumentFragment();
433
+ for (let i = SYNC_BATCH; i < fish.length; i++) {
434
+ restBatch.appendChild(fish[i].element);
435
+ }
436
+ fishLayer.appendChild(restBatch);
437
+ const fadeIn = scheduleAtNextAnimationFrame(targetWindow, () => {
438
+ if (exiting) {
439
+ return;
440
+ }
441
+ for (let i = SYNC_BATCH; i < fish.length; i++) {
442
+ const localIndex = i - SYNC_BATCH;
443
+ const delay = Math.min(localIndex * 12, 400);
444
+ fish[i].element.style.transitionDelay = `${delay}ms`;
445
+ fish[i].element.classList.add("visible");
446
+ }
447
+ });
448
+ store.add(fadeIn);
449
+ });
450
+ store.add(deferred);
451
+ }
452
+ store.add(toDisposable(() => {
453
+ for (const f of fish) {
454
+ f.element.remove();
455
+ }
456
+ disposeSharedFishDefs(targetWindow.document);
457
+ }));
458
+ const food = [];
459
+ const removeFood = pellet => {
460
+ const idx = food.indexOf(pellet);
461
+ if (idx !== -1) {
462
+ food.splice(idx, 1);
463
+ pellet.element.remove();
464
+ }
465
+ };
466
+ let boundsDirty = false;
467
+ const markBoundsDirty = () => {
468
+ boundsDirty = true;
469
+ };
470
+ store.add(addDisposableListener(targetWindow, EventType.RESIZE, markBoundsDirty, {
471
+ passive: true
472
+ }));
473
+ store.add(addDisposableListener(targetWindow, "scroll", markBoundsDirty, {
474
+ passive: true,
475
+ capture: true
476
+ }));
477
+ let mouseX = -1e6;
478
+ let mouseY = -1e6;
479
+ const resetMousePosition = () => {
480
+ mouseX = -1e6;
481
+ mouseY = -1e6;
482
+ };
483
+ store.add(addDisposableGenericMouseMoveListener(mainContainer, e => {
484
+ mouseX = e.clientX - waterScreenOffset.left;
485
+ mouseY = e.clientY - waterScreenOffset.top;
486
+ }));
487
+ store.add(
488
+ addDisposableListener(mainContainer, EventType.MOUSE_LEAVE, resetMousePosition, {
489
+ passive: true
490
+ })
491
+ );
492
+ store.add(
493
+ addDisposableListener(mainContainer, EventType.POINTER_LEAVE, resetMousePosition, {
494
+ passive: true
495
+ })
496
+ );
497
+ store.add(addDisposableGenericMouseDownListener(mainContainer, e => {
498
+ if (e.button !== 0) {
499
+ return;
500
+ }
501
+ const target = e.target;
502
+ if (!isBackgroundClick(target)) {
503
+ return;
504
+ }
505
+ updateBounds();
506
+ const dropX = e.clientX - waterScreenOffset.left;
507
+ const dropY = e.clientY - waterScreenOffset.top;
508
+ if (dropX < 0 || dropY < 0 || dropX > bounds.width || dropY > bounds.height) {
509
+ return;
510
+ }
511
+ spawnFood(dropX, dropY);
512
+ }));
513
+ function spawnFood(dropX, dropY) {
514
+ while (food.length >= MAX_FOOD) {
515
+ const oldest = food[0];
516
+ removeFood(oldest);
517
+ }
518
+ const el = $(".agents-aquarium-food");
519
+ el.style.transform = `translate(${dropX}px, ${dropY}px)`;
520
+ foodLayer.appendChild(el);
521
+ food.push({
522
+ element: el,
523
+ positionX: dropX,
524
+ positionY: dropY,
525
+ fallSpeed: randomBetween(20, 35)
526
+ });
527
+ }
528
+ let lastFrame = performance.now();
529
+ let rafDisposable;
530
+ const stopAnimation = () => {
531
+ rafDisposable?.dispose();
532
+ rafDisposable = undefined;
533
+ };
534
+ const startAnimation = () => {
535
+ if (rafDisposable || accessibilityService.isMotionReduced()) {
536
+ return;
537
+ }
538
+ lastFrame = performance.now();
539
+ rafDisposable = scheduleAtNextAnimationFrame(targetWindow, tick);
540
+ };
541
+ const tick = () => {
542
+ rafDisposable = undefined;
543
+ const now = performance.now();
544
+ const elapsedMs = now - lastFrame;
545
+ if (elapsedMs < ACTIVE_FRAME_INTERVAL_MS) {
546
+ rafDisposable = scheduleAtNextAnimationFrame(targetWindow, tick);
547
+ return;
548
+ }
549
+ const dtMs = Math.min(elapsedMs, 100);
550
+ const dt = dtMs / 1000;
551
+ lastFrame = now;
552
+ if (boundsDirty) {
553
+ boundsDirty = false;
554
+ updateBounds();
555
+ }
556
+ if (!accessibilityService.isMotionReduced() && targetWindow.document.visibilityState !== "hidden") {
557
+ updateFood(dt);
558
+ updateFish(dt);
559
+ }
560
+ if (!accessibilityService.isMotionReduced()) {
561
+ rafDisposable = scheduleAtNextAnimationFrame(targetWindow, tick);
562
+ }
563
+ };
564
+ function updateFood(dt) {
565
+ for (let i = food.length - 1; i >= 0; i--) {
566
+ const pellet = food[i];
567
+ pellet.positionY += pellet.fallSpeed * dt;
568
+ pellet.element.style.transform = `translate(${pellet.positionX.toFixed(1)}px, ${pellet.positionY.toFixed(1)}px)`;
569
+ if (pellet.positionY > bounds.height + 10) {
570
+ removeFood(pellet);
571
+ }
572
+ }
573
+ }
574
+ function updateFish(dt) {
575
+ const now = performance.now();
576
+ for (const f of fish) {
577
+ const centerX = f.positionX + f.size / 2;
578
+ const centerY = f.positionY + f.size / 2;
579
+ const wallEscapeAngle = computeWallAvoidAngle(centerX, centerY, bounds.width, bounds.height);
580
+ if (wallEscapeAngle !== undefined) {
581
+ const turnDelta = shortestAngleDelta(f.wanderAngle, wallEscapeAngle);
582
+ const maxTurnPerFrame = 4 * dt;
583
+ f.wanderAngle += Math.max(-maxTurnPerFrame, Math.min(maxTurnPerFrame, turnDelta));
584
+ } else {
585
+ f.wanderAngle += (Math.random() - 0.5) * 1.2 * dt + (Math.random() - 0.5) * 0.04;
586
+ }
587
+ const thrust = 32;
588
+ let accelX = Math.cos(f.wanderAngle) * thrust;
589
+ let accelY = Math.sin(f.wanderAngle) * thrust;
590
+ if (Math.random() < DART_RATE_PER_SECOND * dt) {
591
+ const dartAngle = Math.random() * Math.PI * 2;
592
+ f.velocityX += Math.cos(dartAngle) * DART_IMPULSE;
593
+ f.velocityY += Math.sin(dartAngle) * DART_IMPULSE;
594
+ f.panicUntil = now + PANIC_DURATION_MS;
595
+ }
596
+ if (centerX < WALL_MARGIN) {
597
+ accelX += (WALL_MARGIN - centerX) * 6;
598
+ } else if (centerX > bounds.width - WALL_MARGIN) {
599
+ accelX -= (centerX - (bounds.width - WALL_MARGIN)) * 6;
600
+ }
601
+ if (centerY < WALL_MARGIN) {
602
+ accelY += (WALL_MARGIN - centerY) * 6;
603
+ } else if (centerY > bounds.height - WALL_MARGIN) {
604
+ accelY -= (centerY - (bounds.height - WALL_MARGIN)) * 6;
605
+ }
606
+ const mouseDeltaX = centerX - mouseX;
607
+ const mouseDeltaY = centerY - mouseY;
608
+ const mouseDistSq = mouseDeltaX * mouseDeltaX + mouseDeltaY * mouseDeltaY;
609
+ if (mouseDistSq < SCATTER_RADIUS_SQ) {
610
+ const mouseDist = Math.max(Math.sqrt(mouseDistSq), 1);
611
+ const force = (1 - mouseDist / SCATTER_RADIUS) * 1100;
612
+ accelX += (mouseDeltaX / mouseDist) * force;
613
+ accelY += (mouseDeltaY / mouseDist) * force;
614
+ f.panicUntil = now + PANIC_DURATION_MS;
615
+ }
616
+ let nearestPellet;
617
+ let nearestDistSq = FOOD_DETECT_RADIUS_SQ;
618
+ for (const pellet of food) {
619
+ const foodDeltaX = pellet.positionX - centerX;
620
+ const foodDeltaY = pellet.positionY - centerY;
621
+ const distSq = foodDeltaX * foodDeltaX + foodDeltaY * foodDeltaY;
622
+ if (distSq < nearestDistSq) {
623
+ nearestDistSq = distSq;
624
+ nearestPellet = pellet;
625
+ }
626
+ }
627
+ if (nearestPellet) {
628
+ const nearestDist = Math.max(Math.sqrt(nearestDistSq), 1);
629
+ if (nearestDist < EAT_RADIUS) {
630
+ removeFood(nearestPellet);
631
+ f.grow(FISH_GROWTH_FACTOR);
632
+ onFishFed?.();
633
+ } else {
634
+ accelX += (nearestPellet.positionX - centerX) / nearestDist * 200;
635
+ accelY += (nearestPellet.positionY - centerY) / nearestDist * 200;
636
+ }
637
+ }
638
+ f.velocityX += accelX * dt;
639
+ f.velocityY += accelY * dt;
640
+ const speedSq = f.velocityX * f.velocityX + f.velocityY * f.velocityY;
641
+ const maxSpeed = now < f.panicUntil ? PANIC_MAX_SPEED : MAX_SPEED;
642
+ const maxSpeedSq = now < f.panicUntil ? PANIC_MAX_SPEED_SQ : MAX_SPEED_SQ;
643
+ if (speedSq > maxSpeedSq) {
644
+ const speed = Math.sqrt(speedSq);
645
+ f.velocityX = (f.velocityX / speed) * maxSpeed;
646
+ f.velocityY = (f.velocityY / speed) * maxSpeed;
647
+ }
648
+ f.positionX += f.velocityX * dt;
649
+ f.positionY += f.velocityY * dt;
650
+ f.positionX = clamp(f.positionX, -f.size * 0.25, bounds.width - f.size * 0.75);
651
+ f.positionY = clamp(f.positionY, -f.size * 0.25, bounds.height - f.size * 0.75);
652
+ f.applyTransform(dt);
653
+ }
654
+ }
655
+ store.add(accessibilityService.onDidChangeReducedMotion(() => {
656
+ if (accessibilityService.isMotionReduced()) {
657
+ stopAnimation();
658
+ } else {
659
+ startAnimation();
660
+ }
661
+ }));
662
+ store.add(toDisposable(() => stopAnimation()));
663
+ startAnimation();
664
+ const fadeIn = scheduleAtNextAnimationFrame(targetWindow, () => {
665
+ if (exiting) {
666
+ return;
667
+ }
668
+ water.classList.add("visible");
669
+ for (let i = 0; i < Math.min(SYNC_BATCH, fish.length); i++) {
670
+ const f = fish[i];
671
+ const delay = Math.min(i * 12, 400);
672
+ f.element.style.transitionDelay = `${delay}ms`;
673
+ f.element.classList.add("visible");
674
+ }
675
+ });
676
+ store.add(fadeIn);
677
+ const result = new (class extends Disposable {
678
+ constructor() {
679
+ super();
680
+ this._register(store);
681
+ }
682
+ exit(onDidComplete) {
683
+ if (exiting) {
684
+ return toDisposable(() => this.dispose());
685
+ }
686
+ exiting = true;
687
+ for (let i = 0; i < fish.length; i++) {
688
+ const f = fish[i];
689
+ const delay = Math.min(i * 12, 400);
690
+ f.element.style.transitionDelay = `${delay}ms`;
691
+ f.element.classList.remove("visible");
692
+ }
693
+ water.classList.remove("visible");
694
+ let timer = setTimeout(() => {
695
+ timer = undefined;
696
+ this.dispose();
697
+ onDidComplete();
698
+ }, EXIT_DURATION_MS);
699
+ return toDisposable(() => {
700
+ if (timer !== undefined) {
701
+ clearTimeout(timer);
702
+ timer = undefined;
703
+ }
704
+ this.dispose();
705
+ });
706
+ }
707
+ })();
708
+ return result;
709
+ }
710
+ function isBackgroundClick(target) {
711
+ if (!target) {
712
+ return false;
713
+ }
714
+ if (target.closest(
715
+ "input, textarea, select, button, a, [role=\"button\"], [role=\"link\"], [role=\"textbox\"], [role=\"combobox\"], [role=\"menuitem\"], [role=\"tab\"], .monaco-editor, .scroll-decoration, .monaco-list-row"
716
+ )) {
717
+ return false;
718
+ }
719
+ return true;
720
+ }
721
+ function randomBetween(min, max) {
722
+ return min + Math.random() * (max - min);
723
+ }
724
+ function clamp(value, min, max) {
725
+ if (max < min) {
726
+ return min;
727
+ }
728
+ return Math.min(Math.max(value, min), max);
729
+ }
730
+ function addIconClasses(element, icon) {
731
+ const iconClasses = ThemeIcon.asClassName(icon).split(/\s+/).filter(Boolean);
732
+ for (const cls of iconClasses) {
733
+ element.classList.add(cls);
734
+ }
735
+ }
736
+ function getFishHungerDescription(state) {
737
+ switch (state) {
738
+ case "happy":
739
+ return localize(3268, "fish is happy");
740
+ case "neutral":
741
+ return localize(3269, "fish is getting hungry");
742
+ case "sad":
743
+ return localize(3270, "fish is hungry");
744
+ case "verySad":
745
+ return localize(3271, "fish is starving");
746
+ }
747
+ }
748
+ function computeWallAvoidAngle(centerX, centerY, width, height) {
749
+ let escapeX = 0;
750
+ let escapeY = 0;
751
+ if (centerX < WALL_MARGIN) {
752
+ escapeX += (WALL_MARGIN - centerX) / WALL_MARGIN;
753
+ } else if (centerX > width - WALL_MARGIN) {
754
+ escapeX -= (centerX - (width - WALL_MARGIN)) / WALL_MARGIN;
755
+ }
756
+ if (centerY < WALL_MARGIN) {
757
+ escapeY += (WALL_MARGIN - centerY) / WALL_MARGIN;
758
+ } else if (centerY > height - WALL_MARGIN) {
759
+ escapeY -= (centerY - (height - WALL_MARGIN)) / WALL_MARGIN;
760
+ }
761
+ if (escapeX === 0 && escapeY === 0) {
762
+ return undefined;
763
+ }
764
+ return Math.atan2(escapeY, escapeX) + (Math.random() - 0.5) * 0.4;
765
+ }
766
+ function shortestAngleDelta(from, to) {
767
+ let delta = (to - from) % (Math.PI * 2);
768
+ if (delta > Math.PI) {
769
+ delta -= Math.PI * 2;
770
+ } else if (delta < -Math.PI) {
771
+ delta += Math.PI * 2;
772
+ }
773
+ return delta;
774
+ }
775
+
776
+ export { AquariumService, SESSIONS_DEVELOPER_JOY_ENABLED_SETTING };