@codingame/monaco-vscode-workbench-service-override 37.6.0 → 38.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/common.js +2 -0
  2. package/index.js +9 -10
  3. package/package.json +10 -10
  4. package/session.js +45 -42
  5. package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.d.ts +1 -0
  6. package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.js +12 -0
  7. package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.d.ts → desktopWorkbench.d.ts} +6 -5
  8. package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.js → desktopWorkbench.js} +23 -25
  9. package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.d.ts +5 -2
  10. package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.js +41 -3
  11. package/vscode/src/vs/sessions/browser/layoutActions.js +25 -41
  12. package/vscode/src/vs/sessions/browser/mobileWorkbench.d.ts +4 -0
  13. package/vscode/src/vs/sessions/browser/mobileWorkbench.js +10 -0
  14. package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.d.ts +10 -5
  15. package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +138 -34
  16. package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.d.ts +2 -0
  17. package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.js +13 -5
  18. package/vscode/src/vs/sessions/browser/parts/chatGroupView.d.ts +27 -5
  19. package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +129 -28
  20. package/vscode/src/vs/sessions/browser/parts/chatGroupsView.d.ts +22 -7
  21. package/vscode/src/vs/sessions/browser/parts/chatGroupsView.js +260 -21
  22. package/vscode/src/vs/sessions/browser/parts/chatHeader.d.ts +25 -0
  23. package/vscode/src/vs/sessions/browser/parts/chatHeader.js +42 -0
  24. package/vscode/src/vs/sessions/browser/parts/customViewGridPart.js +9 -1
  25. package/vscode/src/vs/sessions/browser/parts/customViewNode.js +1 -1
  26. package/vscode/src/vs/sessions/browser/parts/{singlePaneAuxiliaryBarPart.d.ts → desktopAuxiliaryBarPart.d.ts} +4 -4
  27. package/vscode/src/vs/sessions/browser/parts/desktopAuxiliaryBarPart.js +26 -0
  28. package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.d.ts → desktopEditorPart.d.ts} +8 -6
  29. package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.js → desktopEditorPart.js} +25 -5
  30. package/vscode/src/vs/sessions/browser/parts/editorPart.js +16 -4
  31. package/vscode/src/vs/sessions/browser/parts/editorParts.d.ts +1 -1
  32. package/vscode/src/vs/sessions/browser/parts/editorParts.js +7 -6
  33. package/vscode/src/vs/sessions/browser/parts/gridGap.d.ts +14 -0
  34. package/vscode/src/vs/sessions/browser/parts/gridGap.js +69 -0
  35. package/vscode/src/vs/sessions/browser/parts/media/chatCompositeBar.css +132 -4
  36. package/vscode/src/vs/sessions/browser/parts/media/chatGroupsView.css +10 -0
  37. package/vscode/src/vs/sessions/browser/parts/media/editorPart.css +46 -2
  38. package/vscode/src/vs/sessions/browser/parts/media/sessionReadOnlyBanner.css +3 -3
  39. package/vscode/src/vs/sessions/browser/parts/media/sessionView.css +45 -48
  40. package/vscode/src/vs/sessions/browser/parts/media/sessionsPart.css +15 -0
  41. package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +8 -8
  42. package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.js +1 -1
  43. package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.d.ts +9 -1
  44. package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.js +21 -3
  45. package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.js +1 -1
  46. package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.d.ts +4 -3
  47. package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.js +29 -15
  48. package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.d.ts +67 -0
  49. package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.js +598 -0
  50. package/vscode/src/vs/sessions/browser/parts/sessionHeader.d.ts +11 -84
  51. package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +37 -317
  52. package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.d.ts +103 -0
  53. package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.js +391 -0
  54. package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.d.ts +6 -4
  55. package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +58 -28
  56. package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.d.ts +4 -0
  57. package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +66 -23
  58. package/vscode/src/vs/sessions/browser/parts/sessionView.d.ts +24 -5
  59. package/vscode/src/vs/sessions/browser/parts/sessionView.js +143 -33
  60. package/vscode/src/vs/sessions/browser/parts/sessionsPart.d.ts +25 -19
  61. package/vscode/src/vs/sessions/browser/parts/sessionsPart.js +157 -58
  62. package/vscode/src/vs/sessions/browser/parts/sessionsParts.d.ts +12 -3
  63. package/vscode/src/vs/sessions/browser/parts/sessionsParts.js +17 -2
  64. package/vscode/src/vs/sessions/browser/sessionWorkspace.d.ts +6 -3
  65. package/vscode/src/vs/sessions/browser/sessionWorkspace.js +2 -2
  66. package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +66 -20
  67. package/vscode/src/vs/sessions/browser/sessionsSignInDialog.d.ts +1 -0
  68. package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +5 -4
  69. package/vscode/src/vs/sessions/browser/workbenchFactory.d.ts +12 -0
  70. package/vscode/src/vs/sessions/browser/workbenchFactory.js +17 -0
  71. package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.d.ts +85 -1
  72. package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +118 -100
  73. package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.d.ts +3 -2
  74. package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +39 -34
  75. package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountTitleBarWidget.css +6 -0
  76. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.d.ts +3 -0
  77. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.js +6 -0
  78. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.js +18 -18
  79. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.js +12 -12
  80. package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.js +7 -7
  81. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.js +12 -12
  82. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.js +10 -10
  83. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.d.ts +78 -8
  84. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.js +1166 -202
  85. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.d.ts +11 -1
  86. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +190 -69
  87. package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.d.ts +11 -9
  88. package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +122 -233
  89. package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.d.ts +22 -0
  90. package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.js +62 -0
  91. package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.d.ts +7 -2
  92. package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +172 -84
  93. package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +17 -7
  94. package/vscode/src/vs/sessions/contrib/automations/browser/media/automationDialog.css +242 -60
  95. package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.d.ts +24 -36
  96. package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +104 -420
  97. package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +15 -14
  98. package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.d.ts +13 -3
  99. package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +66 -43
  100. package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.js +2 -7
  101. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +54 -59
  102. package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +7 -7
  103. package/vscode/src/vs/sessions/contrib/changes/browser/media/changesActions.css +6 -0
  104. package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +25 -21
  105. package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +21 -27
  106. package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +17 -17
  107. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.d.ts +5 -5
  108. package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.js +2 -2
  109. package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +2 -2
  110. package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.js +9 -16
  111. package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +7 -7
  112. package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +15 -13
  113. package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.d.ts +13 -1
  114. package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +104 -117
  115. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +8 -7
  116. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.js +5 -5
  117. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.js +1 -1
  118. package/vscode/src/vs/sessions/contrib/editor/browser/media/editorBreadcrumbs.css +0 -1
  119. package/vscode/src/vs/sessions/contrib/editor/browser/media/editorHeader.css +1 -1
  120. package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.d.ts +7 -0
  121. package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.js +77 -13
  122. package/vscode/src/vs/sessions/contrib/files/browser/filesView.d.ts +2 -1
  123. package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +14 -4
  124. package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.d.ts +45 -10
  125. package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +527 -96
  126. package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.d.ts +18 -0
  127. package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.js +95 -0
  128. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.d.ts → desktop/desktopDetailPanelCoordinator.d.ts} +5 -4
  129. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.js → desktop/desktopDetailPanelCoordinator.js} +10 -7
  130. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.d.ts → desktop/desktopDockedTabsCoordinator.d.ts} +15 -12
  131. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.js → desktop/desktopDockedTabsCoordinator.js} +91 -44
  132. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.d.ts → desktop/desktopDraftSessionStrategy.d.ts} +10 -5
  133. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.js → desktop/desktopDraftSessionStrategy.js} +95 -22
  134. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.d.ts → desktop/desktopExistingSessionStrategy.d.ts} +13 -11
  135. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.js → desktop/desktopExistingSessionStrategy.js} +137 -57
  136. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.d.ts → desktop/desktopLayoutStrategy.d.ts} +22 -13
  137. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.js → desktop/desktopLayoutStrategy.js} +2 -2
  138. package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.d.ts +22 -0
  139. package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.js +136 -0
  140. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneSharedHelpers.d.ts → desktop/desktopSharedHelpers.d.ts} +9 -2
  141. package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopSharedHelpers.js +56 -0
  142. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.d.ts → desktop/desktopVisibilityProfileStore.d.ts} +3 -2
  143. package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.js → desktop/desktopVisibilityProfileStore.js} +10 -9
  144. package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.d.ts +71 -0
  145. package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.js +201 -0
  146. package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.d.ts +8 -1
  147. package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +35 -35
  148. package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.d.ts +39 -0
  149. package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.js +73 -0
  150. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.d.ts +42 -1
  151. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.js +14 -10
  152. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.js +3 -4
  153. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.d.ts +2 -2
  154. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.js +13 -9
  155. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.js +20 -5
  156. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.d.ts +8 -0
  157. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.js +19 -0
  158. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +21 -20
  159. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +10 -5
  160. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +12 -8
  161. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.d.ts +3 -1
  162. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +12 -7
  163. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.d.ts +9 -1
  164. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +46 -19
  165. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.js +2 -0
  166. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/media/sessionsPolicyBlocked.css +33 -0
  167. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.d.ts +4 -2
  168. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.js +29 -8
  169. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.d.ts +15 -2
  170. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +169 -32
  171. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.js +30 -8
  172. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js +8 -34
  173. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.js +63 -49
  174. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.js +1 -1
  175. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.js +31 -17
  176. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.d.ts +32 -0
  177. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.js +250 -0
  178. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.d.ts +6 -0
  179. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.js +52 -0
  180. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.d.ts +51 -0
  181. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.js +439 -0
  182. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.d.ts +45 -0
  183. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.js +595 -0
  184. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.d.ts +20 -3
  185. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +360 -46
  186. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.d.ts +9 -0
  187. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.js +59 -0
  188. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/media/connectionDiagnostics.css +201 -0
  189. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.d.ts +10 -0
  190. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.js +70 -0
  191. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.d.ts +20 -0
  192. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.js +104 -0
  193. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.d.ts +15 -0
  194. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.js +152 -0
  195. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.d.ts +49 -0
  196. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.js +340 -0
  197. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.d.ts +41 -0
  198. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.js +400 -0
  199. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.d.ts +28 -0
  200. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.js +178 -0
  201. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.d.ts +17 -0
  202. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.js +206 -0
  203. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.d.ts +1 -0
  204. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.js +58 -0
  205. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.d.ts +10 -0
  206. package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.js +90 -0
  207. package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.d.ts +38 -0
  208. package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.js +58 -0
  209. package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +4 -5
  210. package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +1 -1
  211. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.d.ts +1 -0
  212. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.js +33 -0
  213. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.d.ts +30 -0
  214. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.js +190 -0
  215. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.d.ts +31 -0
  216. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.js +559 -0
  217. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.d.ts +12 -0
  218. package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.js +38 -0
  219. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.d.ts +13 -4
  220. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +155 -22
  221. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +9 -5
  222. package/vscode/src/vs/sessions/contrib/sessions/browser/media/automationsCards.css +90 -25
  223. package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css +21 -4
  224. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.d.ts +2 -1
  225. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +11 -7
  226. package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.d.ts +116 -1
  227. package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +126 -30
  228. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.d.ts +26 -0
  229. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.js +160 -0
  230. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.d.ts +14 -6
  231. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +555 -151
  232. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.d.ts +192 -0
  233. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.js +510 -0
  234. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.d.ts +6 -7
  235. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.js +64 -57
  236. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.d.ts +5 -3
  237. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +83 -51
  238. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.d.ts +5 -1
  239. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +33 -12
  240. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.d.ts +3 -0
  241. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.js +53 -0
  242. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +10 -10
  243. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.d.ts +2 -2
  244. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +103 -55
  245. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.d.ts +7 -1
  246. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +679 -325
  247. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.d.ts +27 -1
  248. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +508 -163
  249. package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.d.ts +20 -2
  250. package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.js +100 -17
  251. package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.d.ts +5 -1
  252. package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.js +108 -30
  253. package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.d.ts +5 -3
  254. package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.js +47 -35
  255. package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.d.ts +9 -4
  256. package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.js +75 -25
  257. package/vscode/src/vs/sessions/services/customView/browser/customViewService.d.ts +11 -4
  258. package/vscode/src/vs/sessions/services/customView/browser/customViewService.js +17 -9
  259. package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.d.ts +5 -0
  260. package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.js +20 -2
  261. package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.d.ts +75 -0
  262. package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.js +1135 -0
  263. package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.d.ts +17 -0
  264. package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.js +99 -0
  265. package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.d.ts +4 -0
  266. package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.js +88 -23
  267. package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.d.ts +19 -26
  268. package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.js +115 -74
  269. package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.js +1 -1
  270. package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.d.ts +22 -7
  271. package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +278 -60
  272. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.d.ts +17 -20
  273. package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.js +33 -22
  274. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.d.ts +28 -8
  275. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +673 -160
  276. package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.d.ts +13 -4
  277. package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.js +105 -15
  278. package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.js +53 -34
  279. package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.js +1 -1
  280. package/vscode/src/vs/workbench/browser/layout.d.ts +46 -70
  281. package/vscode/src/vs/workbench/browser/layout.js +243 -44
  282. package/vscode/src/vs/workbench/browser/workbench.d.ts +1 -3
  283. package/vscode/src/vs/workbench/browser/workbench.js +26 -24
  284. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +6 -0
  285. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +41 -0
  286. package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.d.ts +15 -0
  287. package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.js +56 -0
  288. package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +0 -18
  289. package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.js +0 -27
  290. package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.js +0 -36
  291. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.d.ts +0 -37
  292. package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.js +0 -126
  293. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.d.ts +0 -59
  294. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +0 -232
  295. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.d.ts +0 -13
  296. package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.js +0 -22
  297. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +0 -45
  298. package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +0 -110
  299. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.d.ts +0 -112
  300. package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.js +0 -444
  301. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.js +0 -43
  302. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.d.ts +0 -55
  303. package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.js +0 -91
  304. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.d.ts +0 -26
  305. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +0 -98
  306. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +0 -33
  307. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +0 -98
  308. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +0 -2
  309. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +0 -13
  310. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +0 -122
  311. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +0 -464
  312. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +0 -35
  313. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +0 -90
  314. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +0 -84
  315. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +0 -328
  316. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +0 -174
  317. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +0 -1390
  318. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +0 -44
  319. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +0 -30
  320. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +0 -78
  321. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +0 -11
  322. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +0 -26
  323. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.d.ts +0 -27
  324. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.js +0 -26
@@ -0,0 +1,206 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
4
+ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
5
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
6
+ import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
7
+ import { remoteSessionToolsWhen, parseCreateRemoteSessionOptions } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/remoteSessions/common/remoteSessions';
8
+ import { IRemoteSessionService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/remoteSessions/common/remoteSessions.service';
9
+ import { assertRemoteSessionCaller } from './remoteSessionSource.js';
10
+
11
+ let ListAgentHostsTool = class ListAgentHostsTool {
12
+ constructor(remoteSessionsService) {
13
+ this.remoteSessionsService = remoteSessionsService;
14
+ }
15
+ getToolData() {
16
+ return {
17
+ id: "vscode_list_agent_hosts",
18
+ toolReferenceName: "list_agent_hosts",
19
+ displayName: ( localize(5592, "List Agent Hosts")),
20
+ userDescription: ( localize(5593, "List connected remote agent hosts and their resources")),
21
+ modelDescription: "List remote agent hosts, status, resources, load, agents/models, and workspaces to inspect capacity or get exact IDs. Only connected hosts with delegation support are usable; null support or missing resources mean unknown, not unsupported or zero. create_remote_session selects a host itself. This tool changes nothing.",
22
+ source: ToolDataSource.Internal,
23
+ icon: Codicon.remote,
24
+ when: remoteSessionToolsWhen,
25
+ runsInWorkspace: false,
26
+ canBeReferencedInPrompt: false,
27
+ inputSchema: {
28
+ type: "object",
29
+ properties: {},
30
+ additionalProperties: false
31
+ }
32
+ };
33
+ }
34
+ async prepareToolInvocation(_context, _token) {
35
+ return {
36
+ invocationMessage: ( localize(5594, "Reading remote agent hosts")),
37
+ pastTenseMessage: ( localize(5595, "Read remote agent hosts"))
38
+ };
39
+ }
40
+ async invoke(_invocation, _countTokens, _progress, _token) {
41
+ const hosts = this.remoteSessionsService.listHosts();
42
+ return {
43
+ content: [{
44
+ kind: "text",
45
+ value: JSON.stringify({
46
+ hosts
47
+ })
48
+ }],
49
+ toolResultMessage: ( localize(5596, "Listed {0} remote agent hosts", hosts.length))
50
+ };
51
+ }
52
+ };
53
+ ListAgentHostsTool = ( __decorate([( __param(0, IRemoteSessionService))], ListAgentHostsTool));
54
+ let CreateRemoteSessionTool = class CreateRemoteSessionTool {
55
+ constructor(remoteSessionsService) {
56
+ this.remoteSessionsService = remoteSessionsService;
57
+ }
58
+ getToolData() {
59
+ return {
60
+ id: "vscode_create_remote_session",
61
+ toolReferenceName: "create_remote_session",
62
+ displayName: ( localize(5597, "Create Remote Session")),
63
+ userDescription: ( localize(5598, "Delegate work to a matching remote agent host")),
64
+ modelDescription: "Start a task on a connected remote agent host; use create_session for same-host work. Requires an Agent Host originating chat. Selects the matching host with the fewest running sessions and pending creations. Omitted workspace creates a workspace-less session; omitted model uses the target default. Workspaces must already exist and be trusted on the target; nothing is cloned, copied, or inherited from the origin. Ask for results or blockers via send_remote_message with session \"origin\"; final answers are not forwarded. Returns on prompt acceptance, not completion; replies arrive as new turns. Keep the coordinating Agents window connected. Normal approval applies. Continue independent work or end your turn; do not sleep or poll for replies. Do not retry an uncertain creation.",
65
+ source: ToolDataSource.Internal,
66
+ icon: Codicon.remote,
67
+ when: remoteSessionToolsWhen,
68
+ runsInWorkspace: false,
69
+ canRequestPreApproval: true,
70
+ canBeReferencedInPrompt: false,
71
+ inputSchema: {
72
+ type: "object",
73
+ additionalProperties: false,
74
+ required: ["prompt"],
75
+ properties: {
76
+ prompt: {
77
+ type: "string",
78
+ minLength: 1
79
+ },
80
+ title: {
81
+ type: "string",
82
+ minLength: 1,
83
+ maxLength: 200
84
+ },
85
+ hostId: {
86
+ type: "string",
87
+ description: "Exact ID from list_agent_hosts; omit for automatic placement."
88
+ },
89
+ model: {
90
+ type: "object",
91
+ additionalProperties: false,
92
+ required: ["provider", "id"],
93
+ description: "Exact provider/model pair from list_agent_hosts; no substitution.",
94
+ properties: {
95
+ provider: {
96
+ type: "string",
97
+ description: "Host-advertised agent provider."
98
+ },
99
+ id: {
100
+ type: "string",
101
+ description: "Provider-native model ID."
102
+ }
103
+ }
104
+ },
105
+ requirements: {
106
+ type: "object",
107
+ additionalProperties: false,
108
+ properties: {
109
+ platform: {
110
+ type: "string",
111
+ enum: ["windows", "linux", "macos"],
112
+ description: "Execution OS (WSL/Linux containers: linux)."
113
+ },
114
+ minMemoryGiB: {
115
+ type: "number",
116
+ exclusiveMinimum: 0,
117
+ description: "Minimum capacity in GiB, not free memory."
118
+ },
119
+ minCpuCount: {
120
+ type: "integer",
121
+ minimum: 1,
122
+ description: "Minimum logical CPUs."
123
+ }
124
+ }
125
+ },
126
+ workspace: {
127
+ type: "object",
128
+ additionalProperties: false,
129
+ required: ["uri"],
130
+ properties: {
131
+ uri: {
132
+ type: "string",
133
+ description: "Exact workspace URI from list_agent_hosts (pins its host), or an existing target directory's file URI. Do not guess paths."
134
+ },
135
+ isolation: {
136
+ type: "string",
137
+ enum: ["folder", "worktree"],
138
+ default: "worktree",
139
+ description: "worktree creates a fresh Git worktree; folder edits the directory directly."
140
+ },
141
+ branch: {
142
+ type: "string",
143
+ description: "Target-local base branch; worktree only. Omit for the target default."
144
+ }
145
+ }
146
+ }
147
+ }
148
+ }
149
+ };
150
+ }
151
+ async prepareToolInvocation(context, _token) {
152
+ const options = parseCreateRemoteSessionOptions(context.parameters);
153
+ if (!context.chatSessionResource) {
154
+ throw ( new Error(( localize(5599, "Remote session creation requires an originating session."))));
155
+ }
156
+ assertRemoteSessionCaller(context.chatSessionResource);
157
+ const message = ( new MarkdownString()).appendText(( localize(
158
+ 5600,
159
+ "Start this task on {0}? The host is selected from your connected remote agent hosts using the requested resources and current workload. The new session can send messages back to this chat.",
160
+ options.hostId ?? ( localize(5601, "a matching remote host"))
161
+ )));
162
+ message.appendText(`\n\n${options.prompt}`);
163
+ message.appendText(`\n\n${options.workspace ? ( localize(
164
+ 5602,
165
+ "Workspace: {0} ({1})",
166
+ (options.workspace.uri.toString()),
167
+ options.workspace.isolation
168
+ )) : ( localize(5603, "No workspace or files are inherited from this session."))}`);
169
+ if (options.model) {
170
+ message.appendText(`\n\n${( localize(5604, "Model: {0}/{1}", options.model.provider, options.model.id))}`);
171
+ }
172
+ if (options.workspace?.branch) {
173
+ message.appendText(`\n\n${( localize(5605, "Worktree base branch: {0}", options.workspace.branch))}`);
174
+ }
175
+ if (( ( Object.values(options.requirements)).some(value => value !== undefined))) {
176
+ message.appendText(`\n\n${( localize(5606, "Requirements: {0}", JSON.stringify(options.requirements)))}`);
177
+ }
178
+ return {
179
+ invocationMessage: ( localize(5607, "Creating remote session")),
180
+ pastTenseMessage: ( localize(5608, "Created remote session")),
181
+ confirmationMessages: {
182
+ title: ( localize(5609, "Create Remote Session?")),
183
+ message
184
+ }
185
+ };
186
+ }
187
+ async invoke(invocation, _countTokens, _progress, token) {
188
+ const options = parseCreateRemoteSessionOptions(invocation.parameters);
189
+ const source = invocation.context?.sessionResource;
190
+ if (!source) {
191
+ throw ( new Error(( localize(5599, "Remote session creation requires an originating session."))));
192
+ }
193
+ assertRemoteSessionCaller(source);
194
+ const created = await this.remoteSessionsService.createSession(options, source, invocation.callId, token);
195
+ return {
196
+ content: [{
197
+ kind: "text",
198
+ value: JSON.stringify(created)
199
+ }],
200
+ toolResultMessage: ( new MarkdownString()).appendLink(created.openLink, ( localize(5610, "Created remote session on {0}", created.host.label)))
201
+ };
202
+ }
203
+ };
204
+ CreateRemoteSessionTool = ( __decorate([( __param(0, IRemoteSessionService))], CreateRemoteSessionTool));
205
+
206
+ export { CreateRemoteSessionTool, ListAgentHostsTool };
@@ -0,0 +1,58 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
5
+ import { Extensions, ConfigurationScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
6
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
7
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
8
+ import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
9
+ import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
10
+ import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
11
+ import { RemoteSessionToolsEnabledSettingId } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/remoteSessions/common/remoteSessions';
12
+ import './remoteSessionService.js';
13
+ import { ListAgentHostsTool, CreateRemoteSessionTool } from './remoteSessionTools.js';
14
+ import { SendRemoteMessageTool } from './sendRemoteMessageTool.js';
15
+ import { GetRemoteSessionTool } from './getRemoteSessionTool.js';
16
+ import './remoteSessionChatService.js';
17
+
18
+ ( Registry.as(Extensions.Configuration)).registerConfiguration({
19
+ id: "chat",
20
+ properties: {
21
+ [RemoteSessionToolsEnabledSettingId]: {
22
+ type: "boolean",
23
+ default: false,
24
+ scope: ConfigurationScope.APPLICATION,
25
+ tags: ["experimental", "advanced"],
26
+ markdownDescription: ( localize(
27
+ 5611,
28
+ "Enable built-in tools to discover remote agent hosts, create and inspect remote sessions, and send messages between sessions in the Agents window. Requires {0}. Disabling this setting does not disconnect hosts or stop sessions already running.",
29
+ "`#chat.remoteAgentHostsEnabled#`"
30
+ )),
31
+ experiment: {
32
+ mode: "auto"
33
+ }
34
+ }
35
+ }
36
+ });
37
+ let RemoteSessionToolsContribution = class RemoteSessionToolsContribution extends Disposable {
38
+ static {
39
+ this.ID = "workbench.contrib.remoteSessionTools";
40
+ }
41
+ constructor(instantiationService, toolsService) {
42
+ super();
43
+ const list = instantiationService.createInstance(ListAgentHostsTool);
44
+ const create = instantiationService.createInstance(CreateRemoteSessionTool);
45
+ const message = instantiationService.createInstance(SendRemoteMessageTool);
46
+ const inspect = instantiationService.createInstance(GetRemoteSessionTool);
47
+ this._register(toolsService.registerTool(list.getToolData(), list));
48
+ this._register(toolsService.registerTool(create.getToolData(), create));
49
+ this._register(toolsService.registerTool(message.getToolData(), message));
50
+ this._register(toolsService.registerTool(inspect.getToolData(), inspect));
51
+ }
52
+ };
53
+ RemoteSessionToolsContribution = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, ILanguageModelToolsService))], RemoteSessionToolsContribution));
54
+ registerWorkbenchContribution2(
55
+ RemoteSessionToolsContribution.ID,
56
+ RemoteSessionToolsContribution,
57
+ WorkbenchPhase.Eventually
58
+ );
@@ -0,0 +1,10 @@
1
+ import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
3
+ import { CountTokensCallback, IPreparedToolInvocation, IToolData, IToolImpl, IToolInvocation, IToolInvocationPreparationContext, IToolResult, ToolProgress } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
4
+ export declare class SendRemoteMessageTool implements IToolImpl {
5
+ private readonly router;
6
+ constructor(instantiationService: IInstantiationService);
7
+ getToolData(): IToolData;
8
+ prepareToolInvocation(context: IToolInvocationPreparationContext, token: CancellationToken): Promise<IPreparedToolInvocation>;
9
+ invoke(invocation: IToolInvocation, _countTokens: CountTokensCallback, _progress: ToolProgress, token: CancellationToken): Promise<IToolResult>;
10
+ }
@@ -0,0 +1,90 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
4
+ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
5
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
6
+ import { SendRemoteMessageToolReferenceName } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/meta/vscode/agentRemoteSessionMeta';
7
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
8
+ import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
9
+ import { RemoteSessionMessageRouter, maxRemoteMessageLength, parseSendRemoteMessageOptions } from './remoteSessionMessageRouter.js';
10
+ import { assertRemoteSessionCaller } from './remoteSessionSource.js';
11
+ import { remoteSessionToolsWhen } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/remoteSessions/common/remoteSessions';
12
+
13
+ let SendRemoteMessageTool = class SendRemoteMessageTool {
14
+ constructor(instantiationService) {
15
+ this.router = instantiationService.createInstance(RemoteSessionMessageRouter);
16
+ }
17
+ getToolData() {
18
+ return {
19
+ id: "vscode_send_remote_message",
20
+ toolReferenceName: SendRemoteMessageToolReferenceName,
21
+ displayName: ( localize(5612, "Send Remote Message")),
22
+ userDescription: ( localize(5613, "Send a message to a session on a connected agent host")),
23
+ modelDescription: "Send a message to a known remote session/chat, or reply to the exact originating chat with session \"origin\". Use send_message for ordinary same-host messaging. Requires an Agent Host originating chat and a target connected to this Agents window. Starts an agent-authored turn with the target chat's existing permissions/configuration, or joins its FIFO queue. Returns delivery status, never a response. When assigning work, request a reply; final answers are not forwarded. Normal approval applies. Only claim delivery after \"sent\" or \"queued\"; report failures here. Do not retry uncertain delivery or acknowledge messages with no new task or question. Continue independent work or end your turn; do not sleep or poll for replies.",
24
+ source: ToolDataSource.Internal,
25
+ icon: Codicon.send,
26
+ when: remoteSessionToolsWhen,
27
+ runsInWorkspace: false,
28
+ canRequestPreApproval: true,
29
+ canBeReferencedInPrompt: false,
30
+ inputSchema: {
31
+ type: "object",
32
+ additionalProperties: false,
33
+ required: ["session", "message"],
34
+ properties: {
35
+ session: {
36
+ type: "string",
37
+ minLength: 1,
38
+ description: "\"origin\", or an exact host-qualified session/chat URI or openLink from the remote tools. No bare IDs."
39
+ },
40
+ message: {
41
+ type: "string",
42
+ minLength: 1,
43
+ maxLength: maxRemoteMessageLength
44
+ }
45
+ }
46
+ }
47
+ };
48
+ }
49
+ async prepareToolInvocation(context, token) {
50
+ const options = parseSendRemoteMessageOptions(context.parameters);
51
+ if (!context.chatSessionResource) {
52
+ throw ( new Error(( localize(5614, "Remote messaging requires an originating chat."))));
53
+ }
54
+ assertRemoteSessionCaller(context.chatSessionResource);
55
+ const target = await this.router.prepareTarget(context.chatSessionResource, options.session, token);
56
+ const message = ( new MarkdownString()).appendText(( localize(
57
+ 5615,
58
+ "Send this message to {0} on {1}? It will use the target chat's existing permissions and queue behind any active or pending turns.",
59
+ target.chat,
60
+ target.host.label
61
+ )));
62
+ message.appendText(`\n\n${options.message}`);
63
+ return {
64
+ invocationMessage: ( localize(5616, "Sending a remote message")),
65
+ pastTenseMessage: ( localize(5617, "Processed a remote message")),
66
+ confirmationMessages: {
67
+ title: ( localize(5618, "Send Remote Message")),
68
+ message
69
+ }
70
+ };
71
+ }
72
+ async invoke(invocation, _countTokens, _progress, token) {
73
+ const options = parseSendRemoteMessageOptions(invocation.parameters);
74
+ if (!invocation.context?.sessionResource) {
75
+ throw ( new Error(( localize(5614, "Remote messaging requires an originating chat."))));
76
+ }
77
+ assertRemoteSessionCaller(invocation.context.sessionResource);
78
+ const result = await this.router.send(invocation.context.sessionResource, options, invocation.callId, token);
79
+ return {
80
+ content: [{
81
+ kind: "text",
82
+ value: JSON.stringify(result)
83
+ }],
84
+ toolResultMessage: result.status === "queued" ? ( localize(5619, "Queued a message on {0}", result.host.label)) : ( localize(5620, "Sent a message on {0}", result.host.label))
85
+ };
86
+ }
87
+ };
88
+ SendRemoteMessageTool = ( __decorate([( __param(0, IInstantiationService))], SendRemoteMessageTool));
89
+
90
+ export { SendRemoteMessageTool };
@@ -0,0 +1,38 @@
1
+ import { ChatState } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/sessionState";
2
+ export declare const maxRemoteSessionResponseLength: number;
3
+ interface IRemoteSessionInspectionTarget {
4
+ readonly session: string;
5
+ readonly chat: string;
6
+ readonly openLink: string;
7
+ readonly host: {
8
+ readonly id: string;
9
+ readonly label: string;
10
+ };
11
+ }
12
+ interface IRemoteSessionTurnSnapshot {
13
+ readonly id: string;
14
+ readonly status: "running" | "completed" | "cancelled" | "failed";
15
+ readonly response: string;
16
+ readonly error: {
17
+ readonly type: string;
18
+ readonly message: string;
19
+ readonly resumable: boolean;
20
+ } | null;
21
+ readonly truncated: boolean;
22
+ }
23
+ interface IRemoteSessionSnapshot {
24
+ readonly status: IRemoteSessionTurnSnapshot["status"] | "idle" | "queued" | "needsInput";
25
+ readonly title: string;
26
+ readonly queuedMessages: number;
27
+ readonly hasSteeringMessage: boolean;
28
+ readonly latestTurn: IRemoteSessionTurnSnapshot | null;
29
+ }
30
+ export type IRemoteSessionInspectionResult = IRemoteSessionInspectionTarget & (IRemoteSessionSnapshot | {
31
+ readonly status: "unavailable";
32
+ readonly reason: string;
33
+ });
34
+ export declare function parseGetRemoteSessionOptions(value: unknown): {
35
+ readonly session: string;
36
+ };
37
+ export declare function remoteSessionSnapshot(chat: ChatState): IRemoteSessionSnapshot;
38
+ export {};
@@ -0,0 +1,58 @@
1
+
2
+ import { isObject } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
3
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
4
+ import { getErrorResponsePart } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/sessionState';
5
+ import { TurnState, ResponsePartKind } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-chat/state';
6
+ import { SessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-session/state';
7
+
8
+ const maxRemoteSessionResponseLength = 16 * 1024;
9
+ function parseGetRemoteSessionOptions(value) {
10
+ const input = isObject(value) ? value : undefined;
11
+ if (!input || typeof input.session !== "string" || !input.session.trim() || ( ( Object.keys(input)).some(key => key !== "session"))) {
12
+ throw ( new Error(( localize(
13
+ 5621,
14
+ "Provide an exact session or chat reference returned by the remote session tools."
15
+ ))));
16
+ }
17
+ return {
18
+ session: input.session.trim()
19
+ };
20
+ }
21
+ function remoteSessionSnapshot(chat) {
22
+ const turn = chat.activeTurn ?? chat.turns.at(-1);
23
+ const completed = chat.activeTurn ? undefined : chat.turns.at(-1);
24
+ const turnStatus = !completed ? "running" : completed.state === TurnState.Error ? "failed" : completed.state === TurnState.Cancelled ? "cancelled" : "completed";
25
+ let response = "";
26
+ for (const part of turn?.responseParts ?? []) {
27
+ if (part.kind === ResponsePartKind.Markdown) {
28
+ response += part.content.slice(0, maxRemoteSessionResponseLength + 1 - response.length);
29
+ if (response.length > maxRemoteSessionResponseLength) {
30
+ break;
31
+ }
32
+ }
33
+ }
34
+ const errorPart = getErrorResponsePart(turn);
35
+ const errorMessage = errorPart?.error.message ?? "";
36
+ const queuedMessages = chat.queuedMessages?.length ?? 0;
37
+ const hasSteeringMessage = chat.steeringMessage !== undefined;
38
+ const status = (chat.status & SessionStatus.InputNeeded) === SessionStatus.InputNeeded ? "needsInput" : chat.activeTurn || (chat.status & SessionStatus.InProgress) !== 0 ? "running" : turnStatus === "failed" || (chat.status & SessionStatus.Error) !== 0 ? "failed" : queuedMessages || hasSteeringMessage ? "queued" : completed ? turnStatus : "idle";
39
+ return {
40
+ status,
41
+ title: chat.title,
42
+ queuedMessages,
43
+ hasSteeringMessage,
44
+ latestTurn: turn ? {
45
+ id: turn.id,
46
+ status: turnStatus,
47
+ response: response.slice(0, maxRemoteSessionResponseLength),
48
+ error: errorPart ? {
49
+ type: errorPart.error.errorType,
50
+ message: errorMessage.slice(0, maxRemoteSessionResponseLength),
51
+ resumable: errorPart.resumable === true
52
+ } : null,
53
+ truncated: response.length > maxRemoteSessionResponseLength || errorMessage.length > maxRemoteSessionResponseLength
54
+ } : null
55
+ };
56
+ }
57
+
58
+ export { maxRemoteSessionResponseLength, parseGetRemoteSessionOptions, remoteSessionSnapshot };
@@ -10,11 +10,10 @@ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/
10
10
  import { KeybindingsRegistry, KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
11
11
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
12
12
  import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
13
- import { ExplorerFolderContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/files/common/files';
13
+ import { SESSIONS_FILES_VIEW_ID, ExplorerFolderContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/files/common/files';
14
14
  import { IExplorerService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/files/browser/files.service';
15
15
  import { OpenEditorCommandId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/searchEditor/browser/constants';
16
16
  import { resolveResourcesForSearchIncludes } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/search/common/queryBuilder';
17
- import { SESSIONS_FILES_VIEW_ID } from '../../files/browser/filesView.js';
18
17
 
19
18
  KeybindingsRegistry.registerKeybindingRule({
20
19
  id: OpenEditorCommandId,
@@ -24,7 +23,7 @@ KeybindingsRegistry.registerKeybindingRule({
24
23
  MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
25
24
  command: {
26
25
  id: OpenEditorCommandId,
27
- title: ( localize2(4581, "Search")),
26
+ title: ( localize2(5645, "Search")),
28
27
  icon: Codicon.search
29
28
  },
30
29
  group: "1_files",
@@ -34,7 +33,7 @@ MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
34
33
  MenuRegistry.appendMenuItem(MenuId.MenubarViewMenu, {
35
34
  command: {
36
35
  id: OpenEditorCommandId,
37
- title: ( localize(4582, "&&Search"))
36
+ title: ( localize(5646, "&&Search"))
38
37
  },
39
38
  group: "4_auxbar",
40
39
  order: 1
@@ -43,7 +42,7 @@ registerAction2(class extends Action2 {
43
42
  constructor() {
44
43
  super({
45
44
  id: "sessions.files.action.findInFolder",
46
- title: ( localize2(4583, "Find in Folder...")),
45
+ title: ( localize2(5647, "Find in Folder...")),
47
46
  menu: {
48
47
  id: MenuId.ExplorerContext,
49
48
  group: "4_search",
@@ -30,7 +30,7 @@ class SearchEditorEmptyStateContribution extends Disposable {
30
30
  return;
31
31
  }
32
32
  const container = $(".sessions-search-empty-state");
33
- renderSessionsEmptyState(container, ( localize(4584, "Search")), ( localize(4585, "Search for text in your files")));
33
+ renderSessionsEmptyState(container, ( localize(5648, "Search")), ( localize(5649, "Search for text in your files")));
34
34
  reader.store.add(editorObservable.createOverlayWidget({
35
35
  domNode: container,
36
36
  position: constObservable(null),
@@ -0,0 +1,33 @@
1
+
2
+ import { localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
3
+ import { registerAction2, Action2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
4
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
5
+ import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
6
+ import { OPEN_SESSION_COMPARISON_COMMAND_ID } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessionComparison/common/sessionComparison';
7
+ import { SessionComparisonToolContribution } from './sessionComparisonTool.js';
8
+ import { SessionComparisonGridController } from './sessionComparisonGridController.js';
9
+ import './sessionComparisonViewService.js';
10
+ import { ISessionComparisonViewService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.service';
11
+
12
+ registerWorkbenchContribution2(
13
+ SessionComparisonToolContribution.ID,
14
+ SessionComparisonToolContribution,
15
+ WorkbenchPhase.Eventually
16
+ );
17
+ registerWorkbenchContribution2(
18
+ SessionComparisonGridController.ID,
19
+ SessionComparisonGridController,
20
+ WorkbenchPhase.Eventually
21
+ );
22
+ registerAction2(class extends Action2 {
23
+ constructor() {
24
+ super({
25
+ id: OPEN_SESSION_COMPARISON_COMMAND_ID,
26
+ title: ( localize2(5650, "Open Attempt Comparison")),
27
+ f1: false
28
+ });
29
+ }
30
+ async run(accessor, comparisonId) {
31
+ await accessor.get(ISessionComparisonViewService).open(comparisonId);
32
+ }
33
+ });
@@ -0,0 +1,30 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IAccessibilityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service";
3
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
4
+ import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
5
+ import { IAgentWorkbenchLayoutService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/browser/workbench.service";
6
+ import { ISessionsPartService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsPartService.service";
7
+ import { ISessionsService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service";
8
+ import { ISessionComparisonService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionComparison.service";
9
+ export declare class SessionComparisonGridController extends Disposable implements IWorkbenchContribution {
10
+ private readonly sessionsService;
11
+ private readonly comparisonService;
12
+ private readonly layoutService;
13
+ static readonly ID = "workbench.contrib.sessionComparisonGridController";
14
+ private _comparisonGridActive;
15
+ private _isolatedJudgeSessionId;
16
+ private _keepSidePaneHidden;
17
+ private _pendingJudgeIsolationSessionId;
18
+ private readonly _partsHiddenByController;
19
+ constructor(sessionsPartService: ISessionsPartService, sessionsService: ISessionsService, comparisonService: ISessionComparisonService, layoutService: IAgentWorkbenchLayoutService, configurationService: IConfigurationService, accessibilityService: IAccessibilityService);
20
+ private _onDidFocusSession;
21
+ private _scheduleJudgeIsolation;
22
+ private _isolateJudge;
23
+ private _isComparisonGrid;
24
+ private _isAttemptComparisonGrid;
25
+ private _getJudgeSessionId;
26
+ private _getComparisonForVisibleSessions;
27
+ private _setSidePaneSuppressed;
28
+ private _hideSidePane;
29
+ private _restoreSidePane;
30
+ }