@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,68 @@
1
+ /**
2
+ * VS Code logo "fish" used by the Agents window aquarium. Each fish is a small
3
+ * SVG element styled with `color:` so the silhouette inherits via `currentColor`,
4
+ * with animated body strips providing the swimming motion.
5
+ */
6
+ /** The three VS Code release channel colors used as fish "species". */
7
+ export declare enum FishSpecies {
8
+ Stable = "stable",
9
+ Insiders = "insiders",
10
+ Exploration = "exploration"
11
+ }
12
+ /** Pick a random species, weighted Stable > Insiders > Exploration. */
13
+ export declare function pickRandomSpecies(): FishSpecies;
14
+ /**
15
+ * Tear down the shared SVG defs container for the given document. Call when
16
+ * no fish are active in that document.
17
+ */
18
+ export declare function disposeSharedFishDefs(targetDocument: Document): void;
19
+ export interface IFishOptions {
20
+ readonly species: FishSpecies;
21
+ readonly size: number;
22
+ readonly positionX: number;
23
+ readonly positionY: number;
24
+ readonly velocityX: number;
25
+ readonly velocityY: number;
26
+ }
27
+ /**
28
+ * A swimming fish. Owns its DOM element and exposes mutable position/velocity
29
+ * for the aquarium's RAF loop to update.
30
+ */
31
+ export declare class Fish {
32
+ readonly element: HTMLDivElement;
33
+ private readonly innerElement;
34
+ positionX: number;
35
+ positionY: number;
36
+ velocityX: number;
37
+ velocityY: number;
38
+ /** Current rendered size in px. Grows when the fish eats (see {@link grow}). */
39
+ size: number;
40
+ /** Timestamp until which this fish is in "panic" mode (faster, scattering). */
41
+ panicUntil: number;
42
+ /**
43
+ * The fish's preferred swim heading in radians. Drifts smoothly each frame
44
+ * via a small random delta — much less jittery than randomizing per-axis
45
+ * acceleration every frame.
46
+ */
47
+ wanderAngle: number;
48
+ /**
49
+ * Smoothed facing in [-1, 1] (1 = right, -1 = left). Eased toward
50
+ * sign(velocityX) each frame so direction changes look like a turn instead of
51
+ * a snap-flip.
52
+ */
53
+ private facing;
54
+ constructor(opts: IFishOptions, targetDocument: Document);
55
+ /**
56
+ * Write the current position/facing to the DOM.
57
+ *
58
+ * @param deltaSeconds seconds since last frame, used to ease facing toward
59
+ * velocity direction. Pass 0 for the initial paint.
60
+ */
61
+ applyTransform(deltaSeconds?: number): void;
62
+ /**
63
+ * Grow the fish by a multiplicative `factor`. Growth is intentionally
64
+ * unbounded — a fish that keeps eating keeps getting bigger. The element's
65
+ * footprint is updated so the body SVG (sized at 100%) scales with it.
66
+ */
67
+ grow(factor: number): void;
68
+ }
@@ -0,0 +1,153 @@
1
+
2
+ import { $ } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
3
+ import { VSCODE_LOGO_PATH } from './vscodeLogoPath.js';
4
+
5
+ var FishSpecies;
6
+ (function(FishSpecies) {
7
+ FishSpecies["Stable"] = "stable";
8
+ FishSpecies["Insiders"] = "insiders";
9
+ FishSpecies["Exploration"] = "exploration";
10
+ })(FishSpecies || (FishSpecies = {}));
11
+ const SPECIES_COLOR = {
12
+ [FishSpecies.Stable]: "#007ACC",
13
+ [FishSpecies.Insiders]: "#24bfa5",
14
+ [FishSpecies.Exploration]: "#E04F00"
15
+ };
16
+ function pickRandomSpecies() {
17
+ const roll = Math.random();
18
+ if (roll < 0.5) {
19
+ return FishSpecies.Stable;
20
+ }
21
+ if (roll < 0.8) {
22
+ return FishSpecies.Insiders;
23
+ }
24
+ return FishSpecies.Exploration;
25
+ }
26
+ function disposeSharedFishDefs(targetDocument) {
27
+ const container = sharedDefsByDocument.get(targetDocument);
28
+ if (container) {
29
+ container.remove();
30
+ sharedDefsByDocument.delete(targetDocument);
31
+ }
32
+ }
33
+ class Fish {
34
+ constructor(opts, targetDocument) {
35
+ this.panicUntil = 0;
36
+ this.facing = 1;
37
+ this.positionX = opts.positionX;
38
+ this.positionY = opts.positionY;
39
+ this.velocityX = opts.velocityX;
40
+ this.velocityY = opts.velocityY;
41
+ this.size = opts.size;
42
+ this.wanderAngle = Math.atan2(opts.velocityY, opts.velocityX);
43
+ this.element = $(".agents-aquarium-fish");
44
+ this.element.style.width = `${opts.size}px`;
45
+ this.element.style.height = `${opts.size}px`;
46
+ this.element.style.color = SPECIES_COLOR[opts.species];
47
+ this.innerElement = $(".agents-aquarium-fish-inner");
48
+ this.innerElement.appendChild(buildFishSvg(targetDocument));
49
+ this.element.appendChild(this.innerElement);
50
+ this.applyTransform();
51
+ }
52
+ applyTransform(deltaSeconds = 0) {
53
+ this.element.style.transform = `translate(${this.positionX.toFixed(2)}px, ${this.positionY.toFixed(2)}px)`;
54
+ const targetFacing = this.velocityX >= 0 ? 1 : -1;
55
+ if (deltaSeconds > 0) {
56
+ const easeFactor = 1 - Math.exp(-8 * deltaSeconds);
57
+ this.facing += (targetFacing - this.facing) * easeFactor;
58
+ } else {
59
+ this.facing = targetFacing;
60
+ }
61
+ const flipScaleX = Math.sign(this.facing) * Math.max(Math.abs(this.facing), 0.05);
62
+ this.innerElement.style.transform = `scaleX(${flipScaleX.toFixed(3)})`;
63
+ }
64
+ grow(factor) {
65
+ if (!isFinite(factor) || factor <= 0) {
66
+ return;
67
+ }
68
+ const newSize = this.size * factor;
69
+ const delta = newSize - this.size;
70
+ this.positionX -= delta / 2;
71
+ this.positionY -= delta / 2;
72
+ this.size = newSize;
73
+ this.element.style.transitionDelay = "0ms";
74
+ this.element.style.width = `${this.size}px`;
75
+ this.element.style.height = `${this.size}px`;
76
+ this.applyTransform();
77
+ }
78
+ }
79
+ const NUM_BODY_STRIPS = 8;
80
+ const BODY_X_START = 5;
81
+ const BODY_X_END = 90;
82
+ const sharedDefsByDocument = ( new WeakMap());
83
+ const SHARED_LOGO_SYMBOL_ID = "agents-aquarium-fish-logo";
84
+ function ensureSharedDefs(targetDocument) {
85
+ if (( sharedDefsByDocument.has(targetDocument))) {
86
+ return;
87
+ }
88
+ const stripWidth = (BODY_X_END - BODY_X_START) / NUM_BODY_STRIPS;
89
+ const container = $.SVG("svg");
90
+ container.setAttribute("xmlns", "http://www.w3.org/2000/svg");
91
+ container.setAttribute("width", "0");
92
+ container.setAttribute("height", "0");
93
+ container.setAttribute("aria-hidden", "true");
94
+ container.style.position = "absolute";
95
+ container.style.width = "0";
96
+ container.style.height = "0";
97
+ container.style.overflow = "hidden";
98
+ container.style.pointerEvents = "none";
99
+ container.appendChild(createVSCodeLogoSymbol());
100
+ const defs = $.SVG("defs");
101
+ for (let i = 0; i < NUM_BODY_STRIPS; i++) {
102
+ const clip = $.SVG("clipPath");
103
+ clip.setAttribute("id", `agents-aquarium-fish-clip-${i}`);
104
+ clip.setAttribute("clipPathUnits", "userSpaceOnUse");
105
+ const rect = $.SVG("rect");
106
+ rect.setAttribute("x", String(BODY_X_START + i * stripWidth));
107
+ rect.setAttribute("y", "-20");
108
+ rect.setAttribute("width", String(stripWidth + 0.8));
109
+ rect.setAttribute("height", "136");
110
+ clip.appendChild(rect);
111
+ defs.appendChild(clip);
112
+ }
113
+ container.appendChild(defs);
114
+ targetDocument.body.appendChild(container);
115
+ sharedDefsByDocument.set(targetDocument, container);
116
+ }
117
+ function createVSCodeLogoSymbol() {
118
+ const symbol = $.SVG("symbol");
119
+ symbol.setAttribute("id", SHARED_LOGO_SYMBOL_ID);
120
+ symbol.setAttribute("viewBox", "0 0 96 96");
121
+ symbol.setAttribute("overflow", "visible");
122
+ const logoPath = $.SVG("path");
123
+ logoPath.setAttribute("d", VSCODE_LOGO_PATH);
124
+ logoPath.setAttribute("fill", "currentColor");
125
+ logoPath.setAttribute("fill-rule", "evenodd");
126
+ symbol.appendChild(logoPath);
127
+ return symbol;
128
+ }
129
+ function buildFishSvg(targetDocument) {
130
+ ensureSharedDefs(targetDocument);
131
+ const svg = $.SVG("svg");
132
+ svg.setAttribute("xmlns", "http://www.w3.org/2000/svg");
133
+ svg.setAttribute("focusable", "false");
134
+ svg.setAttribute("viewBox", "0 0 96 96");
135
+ svg.setAttribute("preserveAspectRatio", "xMidYMid meet");
136
+ svg.setAttribute("shape-rendering", "geometricPrecision");
137
+ const bodyGroup = $.SVG("g");
138
+ bodyGroup.setAttribute("class", "agents-aquarium-fish-body");
139
+ for (let i = 0; i < NUM_BODY_STRIPS; i++) {
140
+ const stripG = $.SVG("g");
141
+ stripG.setAttribute("class", "agents-aquarium-fish-strip");
142
+ stripG.style.setProperty("--agents-aquarium-strip-index", String(i));
143
+ const stripUse = $.SVG("use");
144
+ stripUse.setAttribute("href", `#${SHARED_LOGO_SYMBOL_ID}`);
145
+ stripUse.setAttribute("clip-path", `url(#agents-aquarium-fish-clip-${i})`);
146
+ stripG.appendChild(stripUse);
147
+ bodyGroup.appendChild(stripG);
148
+ }
149
+ svg.appendChild(bodyGroup);
150
+ return svg;
151
+ }
152
+
153
+ export { Fish, FishSpecies, disposeSharedFishDefs, pickRandomSpecies };
@@ -0,0 +1,58 @@
1
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
2
+ export type FishHungerState = "happy" | "neutral" | "sad" | "verySad";
3
+ /** Result of recording a feed, describing how the streak changed. */
4
+ export interface IFeedResult {
5
+ /** The streak count after this feed. */
6
+ readonly count: number;
7
+ /** True when this feed started a brand new streak (none was alive or revivable). */
8
+ readonly started: boolean;
9
+ /** True when this feed revived a previously-died streak. */
10
+ readonly revived: boolean;
11
+ }
12
+ /**
13
+ * Tracks how often the user feeds the aquarium fish as a persisted "streak".
14
+ *
15
+ * Feeding once on consecutive local calendar days grows the streak. Missing a
16
+ * full day kills it at local midnight, while parking the count for revival.
17
+ */
18
+ export declare class FishFeedingStreak {
19
+ private readonly storageService;
20
+ private readonly now;
21
+ private readonly getCalendarDay;
22
+ constructor(storageService: IStorageService, now?: () => number, getCalendarDay?: (timestamp: number) => number);
23
+ private get lastFedAt();
24
+ private get lastFedDay();
25
+ private get rawCount();
26
+ /** The count of a previously-died streak that is available to revive (0 if none). */
27
+ get revivableCount(): number;
28
+ /** Whether the current streak was fed today or yesterday. */
29
+ get isAlive(): boolean;
30
+ private isAliveAt;
31
+ /** The current live streak count, or 0 when no streak is alive. */
32
+ get count(): number;
33
+ /** The fish mood for the current streak and local time of day. */
34
+ get hungerState(): FishHungerState;
35
+ /** Delay until the next local time boundary that can change {@link hungerState}. */
36
+ get millisecondsUntilHungerStateChange(): number | undefined;
37
+ /**
38
+ * Detect a streak that has aged out and park its count as revivable. Safe to
39
+ * call repeatedly. Returns the count that just died, or 0 if nothing died.
40
+ */
41
+ collectExpired(): number;
42
+ private collectExpiredAt;
43
+ /**
44
+ * Record that a fish was just fed. The count increases once per local
45
+ * calendar day, and a previously-died streak is restored to its parked count.
46
+ */
47
+ recordFeed(): IFeedResult;
48
+ private normalizePersistedState;
49
+ /**
50
+ * Force the streak into a specific state. Intended for development and
51
+ * demos only (see the "Simulate Fish Feeding Streak" command). When
52
+ * `alive` is true the streak is fed "now" so it counts as live; otherwise
53
+ * it is parked as a {@link revivableCount} died streak. A `count` of 0 (or
54
+ * less) clears all streak state.
55
+ */
56
+ simulate(count: number, alive: boolean): void;
57
+ private store;
58
+ }
@@ -0,0 +1,172 @@
1
+
2
+ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
3
+
4
+ const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000;
5
+ const HOURS_PER_HUNGER_STATE = 6;
6
+ const STREAK_COUNT_KEY = "sessions.aquarium.streak.count";
7
+ const STREAK_LAST_FED_KEY = "sessions.aquarium.streak.lastFedAt";
8
+ const STREAK_LAST_FED_DAY_KEY = "sessions.aquarium.streak.lastFedDay";
9
+ const STREAK_REVIVABLE_KEY = "sessions.aquarium.streak.revivable";
10
+ function getLocalCalendarDay(timestamp) {
11
+ const date = ( new Date(timestamp));
12
+ return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) / MILLISECONDS_PER_DAY;
13
+ }
14
+ class FishFeedingStreak {
15
+ constructor(storageService, now = Date.now, getCalendarDay = getLocalCalendarDay) {
16
+ this.storageService = storageService;
17
+ this.now = now;
18
+ this.getCalendarDay = getCalendarDay;
19
+ this.normalizePersistedState();
20
+ }
21
+ get lastFedAt() {
22
+ return this.storageService.getNumber(STREAK_LAST_FED_KEY, StorageScope.APPLICATION, 0);
23
+ }
24
+ get lastFedDay() {
25
+ return this.storageService.getNumber(STREAK_LAST_FED_DAY_KEY, StorageScope.APPLICATION);
26
+ }
27
+ get rawCount() {
28
+ return this.storageService.getNumber(STREAK_COUNT_KEY, StorageScope.APPLICATION, 0);
29
+ }
30
+ get revivableCount() {
31
+ return this.storageService.getNumber(STREAK_REVIVABLE_KEY, StorageScope.APPLICATION, 0);
32
+ }
33
+ get isAlive() {
34
+ return this.isAliveAt(this.now());
35
+ }
36
+ isAliveAt(now) {
37
+ const lastFedDay = this.lastFedDay;
38
+ return this.rawCount > 0 && lastFedDay !== undefined && this.getCalendarDay(now) - lastFedDay <= 1;
39
+ }
40
+ get count() {
41
+ return this.isAlive ? this.rawCount : 0;
42
+ }
43
+ get hungerState() {
44
+ const count = this.rawCount;
45
+ if (count <= 0) {
46
+ return this.revivableCount > 0 ? "verySad" : "happy";
47
+ }
48
+ const now = this.now();
49
+ const lastFedDay = this.lastFedDay;
50
+ if (lastFedDay === undefined) {
51
+ return "happy";
52
+ }
53
+ const daysSinceFed = this.getCalendarDay(now) - lastFedDay;
54
+ if (daysSinceFed <= 0) {
55
+ return "happy";
56
+ }
57
+ if (daysSinceFed > 1) {
58
+ return "verySad";
59
+ }
60
+ const hour = ( new Date(now)).getHours();
61
+ if (hour < HOURS_PER_HUNGER_STATE) {
62
+ return "happy";
63
+ }
64
+ if (hour < HOURS_PER_HUNGER_STATE * 2) {
65
+ return "neutral";
66
+ }
67
+ if (hour < HOURS_PER_HUNGER_STATE * 3) {
68
+ return "sad";
69
+ }
70
+ return "verySad";
71
+ }
72
+ get millisecondsUntilHungerStateChange() {
73
+ const lastFedDay = this.lastFedDay;
74
+ if (this.rawCount <= 0 || lastFedDay === undefined) {
75
+ return undefined;
76
+ }
77
+ const now = this.now();
78
+ const daysSinceFed = this.getCalendarDay(now) - lastFedDay;
79
+ if (daysSinceFed < 0 || daysSinceFed > 1) {
80
+ return undefined;
81
+ }
82
+ const nextBoundary = ( new Date(now));
83
+ const nextHour = daysSinceFed === 0 ? 24 : (Math.floor(nextBoundary.getHours() / HOURS_PER_HUNGER_STATE) + 1) * HOURS_PER_HUNGER_STATE;
84
+ nextBoundary.setHours(nextHour, 0, 0, 0);
85
+ return Math.max(1, nextBoundary.getTime() - now);
86
+ }
87
+ collectExpired() {
88
+ return this.collectExpiredAt(this.now());
89
+ }
90
+ collectExpiredAt(now) {
91
+ const count = this.rawCount;
92
+ if (count > 0 && !this.isAliveAt(now)) {
93
+ const revivable = Math.max(this.revivableCount, count);
94
+ this.store(STREAK_REVIVABLE_KEY, revivable);
95
+ this.store(STREAK_COUNT_KEY, 0);
96
+ return count;
97
+ }
98
+ return 0;
99
+ }
100
+ recordFeed() {
101
+ const now = this.now();
102
+ const calendarDay = this.getCalendarDay(now);
103
+ this.collectExpiredAt(now);
104
+ const alive = this.isAliveAt(now);
105
+ const lastFedDay = this.lastFedDay;
106
+ const revivable = this.revivableCount;
107
+ let count;
108
+ let revived = false;
109
+ if (alive && lastFedDay !== undefined && calendarDay > lastFedDay) {
110
+ count = this.rawCount + 1;
111
+ this.store(STREAK_COUNT_KEY, count);
112
+ } else if (alive) {
113
+ count = this.rawCount;
114
+ } else if (revivable > 0) {
115
+ count = revivable;
116
+ revived = true;
117
+ this.store(STREAK_COUNT_KEY, count);
118
+ } else {
119
+ count = 1;
120
+ this.store(STREAK_COUNT_KEY, count);
121
+ }
122
+ this.store(STREAK_LAST_FED_KEY, now);
123
+ this.store(STREAK_LAST_FED_DAY_KEY, calendarDay);
124
+ if (revivable > 0) {
125
+ this.store(STREAK_REVIVABLE_KEY, 0);
126
+ }
127
+ return {
128
+ count,
129
+ started: !alive && !revived,
130
+ revived
131
+ };
132
+ }
133
+ normalizePersistedState() {
134
+ if (this.rawCount <= 0) {
135
+ return;
136
+ }
137
+ let lastFedAt = this.lastFedAt;
138
+ if (lastFedAt <= 0) {
139
+ lastFedAt = this.now();
140
+ this.store(STREAK_LAST_FED_KEY, lastFedAt);
141
+ }
142
+ if (this.lastFedDay === undefined) {
143
+ this.store(STREAK_LAST_FED_DAY_KEY, this.getCalendarDay(lastFedAt));
144
+ }
145
+ }
146
+ simulate(count, alive) {
147
+ if (count <= 0) {
148
+ this.store(STREAK_COUNT_KEY, 0);
149
+ this.store(STREAK_LAST_FED_KEY, 0);
150
+ this.storageService.remove(STREAK_LAST_FED_DAY_KEY, StorageScope.APPLICATION);
151
+ this.store(STREAK_REVIVABLE_KEY, 0);
152
+ return;
153
+ }
154
+ if (alive) {
155
+ const now = this.now();
156
+ this.store(STREAK_COUNT_KEY, count);
157
+ this.store(STREAK_LAST_FED_KEY, now);
158
+ this.store(STREAK_LAST_FED_DAY_KEY, this.getCalendarDay(now));
159
+ this.store(STREAK_REVIVABLE_KEY, 0);
160
+ } else {
161
+ this.store(STREAK_COUNT_KEY, 0);
162
+ this.store(STREAK_LAST_FED_KEY, 0);
163
+ this.storageService.remove(STREAK_LAST_FED_DAY_KEY, StorageScope.APPLICATION);
164
+ this.store(STREAK_REVIVABLE_KEY, count);
165
+ }
166
+ }
167
+ store(key, value) {
168
+ this.storageService.store(key, value, StorageScope.APPLICATION, StorageTarget.USER);
169
+ }
170
+ }
171
+
172
+ export { FishFeedingStreak };