@codingame/monaco-vscode-chat-service-override 25.1.2 → 26.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 (334) hide show
  1. package/index.js +24 -3
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +23 -3
  4. package/vscode/src/vs/platform/browserElements/common/browserElements.js +13 -6
  5. package/vscode/src/vs/platform/domWidget/browser/domWidget.js +4 -4
  6. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +42 -27
  8. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +14 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +218 -74
  10. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatTerminalOutputAccessibleView.js +6 -8
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +14 -9
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +165 -168
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +27 -25
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +141 -140
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +189 -121
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +14 -15
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +60 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +435 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +28 -12
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +10 -12
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +37 -16
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.d.ts +11 -0
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +54 -24
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +73 -34
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +71 -30
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +151 -89
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +12 -15
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +39 -40
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +90 -125
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +5 -2
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +263 -143
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.js +4 -4
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +188 -126
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -1
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +37 -28
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +21 -9
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +392 -226
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +31 -27
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +25 -23
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +1 -3
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.d.ts +2 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +13 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +20 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +83 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +68 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +319 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.d.ts +1 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +215 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +179 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +951 -0
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agentsessionprojection.css +20 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +388 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/unifiedQuickAccess.css +195 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +120 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +394 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.d.ts +38 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +95 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +3 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +31 -29
  61. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +49 -47
  62. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +4 -6
  63. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/media/simpleBrowserOverlay.css +0 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +188 -151
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +1012 -639
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +256 -151
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +8 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +182 -101
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +79 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +193 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +9 -7
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.d.ts +68 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +253 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +69 -50
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -4
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +52 -33
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +5 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +274 -155
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +2 -10
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +130 -104
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +12 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +385 -160
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +53 -36
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +112 -75
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +19 -10
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +31 -11
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +39 -17
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNewNotebookContentEdits.js +10 -14
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +0 -2
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +25 -16
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +265 -203
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +29 -26
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.js +114 -60
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +16 -19
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +44 -30
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +119 -45
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +152 -136
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +12 -8
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +51 -31
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +323 -217
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -3
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +653 -401
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +52 -40
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +5 -2
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +43 -28
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +182 -136
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +33 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +548 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +222 -138
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +3 -3
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +151 -113
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +6 -4
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +453 -217
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +162 -88
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/media/chatSetup.css +2 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +0 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +1 -13
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +309 -233
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +55 -53
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.js +3 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +37 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +109 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +35 -23
  132. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.d.ts +9 -4
  133. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +73 -33
  134. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +47 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +333 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +39 -25
  137. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +9 -5
  138. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +23 -20
  139. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +20 -16
  141. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +65 -57
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +48 -36
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +20 -12
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +52 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +155 -159
  147. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +24 -14
  148. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +521 -246
  149. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +107 -76
  150. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +28 -24
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.js +10 -6
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.d.ts +16 -0
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.js +57 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatLayoutService.js +4 -6
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +56 -44
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +0 -3
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +37 -47
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatEditorInputContentProvider.js +5 -7
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +10 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +1284 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +179 -125
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +9 -11
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/editorHoverWrapper.js +7 -6
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +96 -78
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +58 -53
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +25 -11
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +484 -292
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.d.ts +1 -6
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +65 -92
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +16 -19
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +1 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +9 -1
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +331 -189
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +81 -93
  175. package/vscode/src/vs/workbench/contrib/chat/common/ignoredFiles.js +1 -3
  176. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -3
  177. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +6 -7
  178. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +36 -8
  179. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +169 -31
  180. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.d.ts +6 -0
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +141 -0
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -4
  183. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +218 -144
  184. package/vscode/src/vs/workbench/contrib/chat/common/model/chatTransferService.js +20 -10
  185. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +109 -0
  186. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +349 -0
  187. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +9 -8
  188. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +9 -0
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +139 -36
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +3 -6
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +64 -51
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +49 -34
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +21 -13
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +125 -97
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +91 -131
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +8 -5
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +488 -222
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +32 -12
  201. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +58 -13
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +717 -200
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +79 -18
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +371 -130
  205. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +0 -1
  206. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +3 -7
  207. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +79 -61
  208. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +27 -21
  209. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +7 -10
  210. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -1
  211. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +26 -32
  212. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +2 -2
  213. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -60
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +115 -426
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +15 -0
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +127 -0
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -37
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +16 -0
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +21 -0
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +51 -0
  221. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +334 -0
  222. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.d.ts +41 -0
  223. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +424 -0
  224. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.d.ts +4 -0
  225. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +58 -0
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.d.ts +7 -0
  227. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +195 -0
  228. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.d.ts +8 -0
  229. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +368 -0
  230. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.d.ts +2 -0
  231. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +7 -0
  232. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +1 -1
  234. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +23 -25
  235. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/common/remoteCodingAgentsService.js +7 -8
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +34 -38
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +8 -12
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +103 -95
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +28 -16
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +4 -5
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +12 -8
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +65 -54
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +86 -60
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +13 -26
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -1
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +56 -46
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +2 -2
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +63 -31
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +2 -1
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +35 -30
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -1
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +44 -37
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +3 -4
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +3 -3
  258. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -0
  259. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +70 -50
  260. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +26 -394
  261. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +85 -49
  262. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +68 -27
  263. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +1 -0
  264. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +67 -45
  265. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.d.ts +12 -0
  266. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +106 -0
  267. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +2 -2
  268. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +177 -97
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +136 -49
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +2 -1
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +128 -112
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +51 -49
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +8 -0
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +25 -0
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +12 -0
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +21 -0
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +5 -14
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +2 -4
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +1 -0
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -0
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +29 -0
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +30 -31
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +16 -17
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +19 -20
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.d.ts +11 -0
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +58 -0
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +31 -3
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +325 -199
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -1
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +1 -1
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +33 -38
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +45 -5
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +746 -456
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +145 -98
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +88 -37
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +120 -51
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +25 -28
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +5 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +58 -12
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +12 -0
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.js +17 -0
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +8 -1
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +47 -28
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +37 -0
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +171 -0
  313. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +0 -58
  314. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +0 -213
  315. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +0 -39
  316. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +0 -243
  317. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.d.ts +0 -7
  318. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +0 -41
  319. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +0 -166
  320. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +0 -607
  321. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +0 -255
  322. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
  323. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -396
  324. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -9
  325. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -379
  326. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -117
  327. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +0 -141
  328. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +0 -961
  329. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +0 -36
  330. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +0 -447
  331. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.d.ts +0 -6
  332. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.js +0 -251
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.d.ts +0 -10
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +0 -42
@@ -20,54 +20,58 @@ import { ChatEditorInput, showClearEditingSessionConfirmation } from '@codingame
20
20
  import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
21
21
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
22
22
  import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
23
- import { CHAT_CATEGORY, ACTION_ID_NEW_CHAT } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
23
+ import { ACTION_ID_NEW_CHAT } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
24
24
  import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
25
25
  import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
26
26
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
27
27
  import { AgentSessionsPicker } from './agentSessionsPicker.js';
28
- import { ActiveEditorContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
28
+ import { AuxiliaryBarMaximizedContext, ActiveEditorContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
29
29
  import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
30
30
  import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
31
31
  import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
32
+ import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
33
+ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
34
+ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
32
35
 
33
- class ToggleChatViewSessionsAction extends Action2 {
36
+ const AGENT_SESSIONS_CATEGORY = ( localize2(4909, "Chat Agent Sessions"));
37
+ class ToggleShowAgentSessionsAction extends Action2 {
34
38
  constructor() {
35
39
  super({
36
- id: 'workbench.action.chat.toggleChatViewSessions',
37
- title: ( localize2(4855, "Show Sessions")),
40
+ id: "workbench.action.chat.toggleShowAgentSessions",
41
+ title: ( localize2(4910, "Show Sessions")),
38
42
  toggled: ( ContextKeyExpr.equals(`config.${ChatConfiguration.ChatViewSessionsEnabled}`, true)),
39
43
  menu: {
40
44
  id: MenuId.ChatWelcomeContext,
41
- group: '0_sessions',
42
- order: 1,
45
+ group: "0_sessions",
46
+ order: 2,
43
47
  when: ( ChatContextKeys.inChatEditor.negate())
44
48
  }
45
49
  });
46
50
  }
47
51
  async run(accessor) {
48
52
  const configurationService = accessor.get(IConfigurationService);
49
- const chatViewSessionsEnabled = configurationService.getValue(ChatConfiguration.ChatViewSessionsEnabled);
50
- await configurationService.updateValue(ChatConfiguration.ChatViewSessionsEnabled, !chatViewSessionsEnabled);
53
+ const currentValue = configurationService.getValue(ChatConfiguration.ChatViewSessionsEnabled);
54
+ await configurationService.updateValue(ChatConfiguration.ChatViewSessionsEnabled, !currentValue);
51
55
  }
52
56
  }
53
- const agentSessionsOrientationSubmenu = ( new MenuId('chatAgentSessionsOrientationSubmenu'));
57
+ const agentSessionsOrientationSubmenu = ( new MenuId("chatAgentSessionsOrientationSubmenu"));
54
58
  MenuRegistry.appendMenuItem(MenuId.ChatWelcomeContext, {
55
59
  submenu: agentSessionsOrientationSubmenu,
56
- title: ( localize2(4856, "Sessions Orientation")),
57
- group: '0_sessions',
58
- order: 2,
60
+ title: ( localize2(4911, "Sessions Orientation")),
61
+ group: "0_sessions",
62
+ order: 1,
59
63
  when: ( ChatContextKeys.inChatEditor.negate())
60
64
  });
61
65
  class SetAgentSessionsOrientationStackedAction extends Action2 {
62
66
  constructor() {
63
67
  super({
64
- id: 'workbench.action.chat.setAgentSessionsOrientationStacked',
65
- title: ( localize2(4857, "Stacked")),
66
- toggled: ( ContextKeyExpr.equals(`config.${ChatConfiguration.ChatViewSessionsOrientation}`, 'stacked')),
67
- precondition: ( ContextKeyExpr.equals(`config.${ChatConfiguration.ChatViewSessionsEnabled}`, true)),
68
+ id: "workbench.action.chat.setAgentSessionsOrientationStacked",
69
+ title: ( localize2(4912, "Stacked")),
70
+ toggled: ( ContextKeyExpr.equals(`config.${ChatConfiguration.ChatViewSessionsOrientation}`, "stacked")),
71
+ precondition: ( ContextKeyExpr.and(( ContextKeyExpr.equals(`config.${ChatConfiguration.ChatViewSessionsEnabled}`, true)), ( AuxiliaryBarMaximizedContext.negate()))),
68
72
  menu: {
69
73
  id: agentSessionsOrientationSubmenu,
70
- group: 'navigation',
74
+ group: "navigation",
71
75
  order: 2
72
76
  }
73
77
  });
@@ -80,13 +84,13 @@ class SetAgentSessionsOrientationStackedAction extends Action2 {
80
84
  class SetAgentSessionsOrientationSideBySideAction extends Action2 {
81
85
  constructor() {
82
86
  super({
83
- id: 'workbench.action.chat.setAgentSessionsOrientationSideBySide',
84
- title: ( localize2(4858, "Side by Side")),
85
- toggled: ( ContextKeyExpr.notEquals(`config.${ChatConfiguration.ChatViewSessionsOrientation}`, 'stacked')),
86
- precondition: ( ContextKeyExpr.equals(`config.${ChatConfiguration.ChatViewSessionsEnabled}`, true)),
87
+ id: "workbench.action.chat.setAgentSessionsOrientationSideBySide",
88
+ title: ( localize2(4913, "Side by Side")),
89
+ toggled: ( ContextKeyExpr.notEquals(`config.${ChatConfiguration.ChatViewSessionsOrientation}`, "stacked")),
90
+ precondition: ( ContextKeyExpr.and(( ContextKeyExpr.equals(`config.${ChatConfiguration.ChatViewSessionsEnabled}`, true)), ( AuxiliaryBarMaximizedContext.negate()))),
87
91
  menu: {
88
92
  id: agentSessionsOrientationSubmenu,
89
- group: 'navigation',
93
+ group: "navigation",
90
94
  order: 1
91
95
  }
92
96
  });
@@ -100,26 +104,17 @@ class PickAgentSessionAction extends Action2 {
100
104
  constructor() {
101
105
  super({
102
106
  id: `workbench.action.chat.history`,
103
- title: ( localize2(4859, "Open Agent Session...")),
104
- menu: [
105
- {
106
- id: MenuId.ViewTitle,
107
- when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', ChatViewId)), ( ContextKeyExpr.equals(`config.${ChatConfiguration.ChatViewSessionsEnabled}`, false)))),
108
- group: 'navigation',
109
- order: 2
110
- },
111
- {
112
- id: MenuId.ViewTitle,
113
- when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', ChatViewId)), ( ContextKeyExpr.equals(`config.${ChatConfiguration.ChatViewSessionsEnabled}`, true)))),
114
- group: '2_history',
115
- order: 1
116
- },
117
- {
118
- id: MenuId.EditorTitle,
119
- when: ( ActiveEditorContext.isEqualTo(ChatEditorInput.EditorID)),
120
- }
121
- ],
122
- category: CHAT_CATEGORY,
107
+ title: ( localize2(4914, "Open Agent Session...")),
108
+ menu: [{
109
+ id: MenuId.ViewTitle,
110
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.equals("view", ChatViewId)), ( ContextKeyExpr.equals(`config.${ChatConfiguration.ChatViewSessionsEnabled}`, false)))),
111
+ group: "navigation",
112
+ order: 2
113
+ }, {
114
+ id: MenuId.EditorTitle,
115
+ when: ( ActiveEditorContext.isEqualTo(ChatEditorInput.EditorID))
116
+ }],
117
+ category: AGENT_SESSIONS_CATEGORY,
123
118
  icon: Codicon.history,
124
119
  f1: true,
125
120
  precondition: ChatContextKeys.enabled
@@ -134,11 +129,11 @@ class PickAgentSessionAction extends Action2 {
134
129
  class ArchiveAllAgentSessionsAction extends Action2 {
135
130
  constructor() {
136
131
  super({
137
- id: 'workbench.action.chat.archiveAllAgentSessions',
138
- title: ( localize2(4860, "Archive All Workspace Agent Sessions")),
132
+ id: "workbench.action.chat.archiveAllAgentSessions",
133
+ title: ( localize2(4915, "Archive All Workspace Agent Sessions")),
139
134
  precondition: ChatContextKeys.enabled,
140
- category: CHAT_CATEGORY,
141
- f1: true,
135
+ category: AGENT_SESSIONS_CATEGORY,
136
+ f1: true
142
137
  });
143
138
  }
144
139
  async run(accessor) {
@@ -149,15 +144,13 @@ class ArchiveAllAgentSessionsAction extends Action2 {
149
144
  return;
150
145
  }
151
146
  const confirmed = await dialogService.confirm({
152
- message: sessionsToArchive.length === 1
153
- ? ( localize(4861, "Are you sure you want to archive 1 agent session?"))
154
- : ( localize(
155
- 4862,
147
+ message: sessionsToArchive.length === 1 ? ( localize(4916, "Are you sure you want to archive 1 agent session?")) : ( localize(
148
+ 4917,
156
149
  "Are you sure you want to archive {0} agent sessions?",
157
150
  sessionsToArchive.length
158
151
  )),
159
- detail: ( localize(4863, "You can unarchive sessions later if needed from the Chat view.")),
160
- primaryButton: ( localize(4864, "Archive"))
152
+ detail: ( localize(4918, "You can unarchive sessions later if needed from the Chat view.")),
153
+ primaryButton: ( localize(4919, "Archive"))
161
154
  });
162
155
  if (!confirmed.confirmed) {
163
156
  return;
@@ -167,18 +160,107 @@ class ArchiveAllAgentSessionsAction extends Action2 {
167
160
  }
168
161
  }
169
162
  }
163
+ class MarkAllAgentSessionsReadAction extends Action2 {
164
+ constructor() {
165
+ super({
166
+ id: "workbench.action.chat.markAllAgentSessionsRead",
167
+ title: ( localize2(4920, "Mark All as Read")),
168
+ precondition: ChatContextKeys.enabled,
169
+ category: AGENT_SESSIONS_CATEGORY,
170
+ f1: true,
171
+ menu: {
172
+ id: MenuId.AgentSessionsContext,
173
+ group: "0_read",
174
+ order: 2,
175
+ when: ( ChatContextKeys.isArchivedAgentSession.negate())
176
+ }
177
+ });
178
+ }
179
+ async run(accessor) {
180
+ const agentSessionsService = accessor.get(IAgentSessionsService);
181
+ const sessionsToMarkRead = agentSessionsService.model.sessions.filter(session => !session.isArchived() && !session.isRead());
182
+ if (sessionsToMarkRead.length === 0) {
183
+ return;
184
+ }
185
+ for (const session of sessionsToMarkRead) {
186
+ session.setRead(true);
187
+ }
188
+ }
189
+ }
190
+ const ConfirmArchiveStorageKey = "chat.sessions.confirmArchive";
170
191
  class ArchiveAgentSessionSectionAction extends Action2 {
171
192
  constructor() {
172
193
  super({
173
- id: 'agentSessionSection.archive',
174
- title: ( localize2(4865, "Archive All")),
194
+ id: "agentSessionSection.archive",
195
+ title: ( localize2(4921, "Archive All")),
175
196
  icon: Codicon.archive,
176
- menu: {
197
+ menu: [{
177
198
  id: MenuId.AgentSessionSectionToolbar,
178
- group: 'navigation',
199
+ group: "navigation",
179
200
  order: 1,
180
- when: ( ChatContextKeys.agentSessionSection.notEqualsTo(AgentSessionSection.Archived)),
201
+ when: ( ChatContextKeys.agentSessionSection.notEqualsTo(AgentSessionSection.Archived))
202
+ }, {
203
+ id: MenuId.AgentSessionSectionContext,
204
+ group: "1_edit",
205
+ order: 2,
206
+ when: ( ChatContextKeys.agentSessionSection.notEqualsTo(AgentSessionSection.Archived))
207
+ }]
208
+ });
209
+ }
210
+ async run(accessor, context) {
211
+ if (!context || !isAgentSessionSection(context)) {
212
+ return;
213
+ }
214
+ const dialogService = accessor.get(IDialogService);
215
+ const storageService = accessor.get(IStorageService);
216
+ const skipConfirmation = storageService.getBoolean(ConfirmArchiveStorageKey, StorageScope.PROFILE, false);
217
+ if (!skipConfirmation) {
218
+ const confirmed = await dialogService.confirm({
219
+ message: context.sessions.length === 1 ? ( localize(
220
+ 4922,
221
+ "Are you sure you want to archive 1 agent session from '{0}'?",
222
+ context.label
223
+ )) : ( localize(
224
+ 4923,
225
+ "Are you sure you want to archive {0} agent sessions from '{1}'?",
226
+ context.sessions.length,
227
+ context.label
228
+ )),
229
+ detail: ( localize(4924, "You can unarchive sessions later if needed from the sessions view.")),
230
+ primaryButton: ( localize(4925, "Archive All")),
231
+ checkbox: {
232
+ label: ( localize(4926, "Do not ask me again"))
233
+ }
234
+ });
235
+ if (!confirmed.confirmed) {
236
+ return;
181
237
  }
238
+ if (confirmed.checkboxChecked) {
239
+ storageService.store(ConfirmArchiveStorageKey, true, StorageScope.PROFILE, StorageTarget.USER);
240
+ }
241
+ }
242
+ for (const session of context.sessions) {
243
+ session.setArchived(true);
244
+ }
245
+ }
246
+ }
247
+ class UnarchiveAgentSessionSectionAction extends Action2 {
248
+ constructor() {
249
+ super({
250
+ id: "agentSessionSection.unarchive",
251
+ title: ( localize2(4927, "Unarchive All")),
252
+ icon: Codicon.unarchive,
253
+ menu: [{
254
+ id: MenuId.AgentSessionSectionToolbar,
255
+ group: "navigation",
256
+ order: 1,
257
+ when: ( ChatContextKeys.agentSessionSection.isEqualTo(AgentSessionSection.Archived))
258
+ }, {
259
+ id: MenuId.AgentSessionSectionContext,
260
+ group: "1_edit",
261
+ order: 2,
262
+ when: ( ChatContextKeys.agentSessionSection.isEqualTo(AgentSessionSection.Archived))
263
+ }]
182
264
  });
183
265
  }
184
266
  async run(accessor, context) {
@@ -186,27 +268,51 @@ class ArchiveAgentSessionSectionAction extends Action2 {
186
268
  return;
187
269
  }
188
270
  const dialogService = accessor.get(IDialogService);
189
- const confirmed = await dialogService.confirm({
190
- message: context.sessions.length === 1
191
- ? ( localize(
192
- 4866,
193
- "Are you sure you want to archive 1 agent session from '{0}'?",
194
- context.label
195
- ))
196
- : ( localize(
197
- 4867,
198
- "Are you sure you want to archive {0} agent sessions from '{1}'?",
199
- context.sessions.length,
200
- context.label
201
- )),
202
- detail: ( localize(4868, "You can unarchive sessions later if needed from the sessions view.")),
203
- primaryButton: ( localize(4869, "Archive All"))
271
+ const storageService = accessor.get(IStorageService);
272
+ const skipConfirmation = storageService.getBoolean(ConfirmArchiveStorageKey, StorageScope.PROFILE, false);
273
+ if (!skipConfirmation) {
274
+ const confirmed = await dialogService.confirm({
275
+ message: context.sessions.length === 1 ? ( localize(4928, "Are you sure you want to unarchive 1 agent session?")) : ( localize(
276
+ 4929,
277
+ "Are you sure you want to unarchive {0} agent sessions?",
278
+ context.sessions.length
279
+ )),
280
+ primaryButton: ( localize(4930, "Unarchive All")),
281
+ checkbox: {
282
+ label: ( localize(4926, "Do not ask me again"))
283
+ }
284
+ });
285
+ if (!confirmed.confirmed) {
286
+ return;
287
+ }
288
+ if (confirmed.checkboxChecked) {
289
+ storageService.store(ConfirmArchiveStorageKey, true, StorageScope.PROFILE, StorageTarget.USER);
290
+ }
291
+ }
292
+ for (const session of context.sessions) {
293
+ session.setArchived(false);
294
+ }
295
+ }
296
+ }
297
+ class MarkAgentSessionSectionReadAction extends Action2 {
298
+ constructor() {
299
+ super({
300
+ id: "agentSessionSection.markRead",
301
+ title: ( localize2(4931, "Mark All as Read")),
302
+ menu: [{
303
+ id: MenuId.AgentSessionSectionContext,
304
+ group: "1_edit",
305
+ order: 1,
306
+ when: ( ChatContextKeys.agentSessionSection.notEqualsTo(AgentSessionSection.Archived))
307
+ }]
204
308
  });
205
- if (!confirmed.confirmed) {
309
+ }
310
+ async run(accessor, context) {
311
+ if (!context || !isAgentSessionSection(context)) {
206
312
  return;
207
313
  }
208
314
  for (const session of context.sessions) {
209
- session.setArchived(true);
315
+ session.setRead(true);
210
316
  }
211
317
  }
212
318
  }
@@ -214,107 +320,117 @@ class BaseAgentSessionAction extends Action2 {
214
320
  async run(accessor, context) {
215
321
  const agentSessionsService = accessor.get(IAgentSessionsService);
216
322
  const viewsService = accessor.get(IViewsService);
217
- let session;
323
+ let sessions = [];
218
324
  if (isMarshalledAgentSessionContext(context)) {
219
- session = agentSessionsService.getSession(context.session.resource);
325
+ sessions = coalesce(( (context.sessions ?? [context.session]).map(session => agentSessionsService.getSession(session.resource))));
326
+ } else if (context) {
327
+ sessions = [context];
220
328
  }
221
- else {
222
- session = context;
223
- }
224
- if (!session) {
329
+ if (sessions.length === 0) {
225
330
  const chatView = viewsService.getActiveViewWithId(ChatViewId);
226
- session = chatView?.getFocusedSessions().at(0);
331
+ const focused = chatView?.getFocusedSessions().at(0);
332
+ if (focused) {
333
+ sessions = [focused];
334
+ }
227
335
  }
228
- if (session) {
229
- await this.runWithSession(session, accessor);
336
+ if (sessions.length > 0) {
337
+ await this.runWithSessions(sessions, accessor);
230
338
  }
231
339
  }
232
340
  }
233
341
  class MarkAgentSessionUnreadAction extends BaseAgentSessionAction {
234
342
  constructor() {
235
343
  super({
236
- id: 'agentSession.markUnread',
237
- title: ( localize2(4870, "Mark as Unread")),
344
+ id: "agentSession.markUnread",
345
+ title: ( localize2(4932, "Mark as Unread")),
238
346
  menu: {
239
347
  id: MenuId.AgentSessionsContext,
240
- group: '1_edit',
348
+ group: "0_read",
241
349
  order: 1,
242
350
  when: ( ContextKeyExpr.and(ChatContextKeys.isReadAgentSession, (
243
- ChatContextKeys.isArchivedAgentSession.negate()))),
351
+ ChatContextKeys.isArchivedAgentSession.negate())))
244
352
  }
245
353
  });
246
354
  }
247
- runWithSession(session) {
248
- session.setRead(false);
355
+ runWithSessions(sessions) {
356
+ for (const session of sessions) {
357
+ session.setRead(false);
358
+ }
249
359
  }
250
360
  }
251
361
  class MarkAgentSessionReadAction extends BaseAgentSessionAction {
252
362
  constructor() {
253
363
  super({
254
- id: 'agentSession.markRead',
255
- title: ( localize2(4871, "Mark as Read")),
364
+ id: "agentSession.markRead",
365
+ title: ( localize2(4933, "Mark as Read")),
256
366
  menu: {
257
367
  id: MenuId.AgentSessionsContext,
258
- group: '1_edit',
368
+ group: "0_read",
259
369
  order: 1,
260
370
  when: ( ContextKeyExpr.and(( ChatContextKeys.isReadAgentSession.negate()), (
261
- ChatContextKeys.isArchivedAgentSession.negate()))),
371
+ ChatContextKeys.isArchivedAgentSession.negate())))
262
372
  }
263
373
  });
264
374
  }
265
- runWithSession(session) {
266
- session.setRead(true);
375
+ runWithSessions(sessions) {
376
+ for (const session of sessions) {
377
+ session.setRead(true);
378
+ }
267
379
  }
268
380
  }
269
381
  class ArchiveAgentSessionAction extends BaseAgentSessionAction {
270
382
  constructor() {
271
383
  super({
272
- id: 'agentSession.archive',
273
- title: ( localize2(4872, "Archive")),
384
+ id: "agentSession.archive",
385
+ title: ( localize2(4934, "Archive")),
274
386
  icon: Codicon.archive,
275
387
  keybinding: {
276
388
  primary: KeyCode.Delete,
277
- mac: { primary: KeyMod.CtrlCmd | KeyCode.Backspace },
389
+ mac: {
390
+ primary: KeyMod.CtrlCmd | KeyCode.Backspace
391
+ },
278
392
  weight: KeybindingWeight.WorkbenchContrib + 1,
279
393
  when: ( ContextKeyExpr.and(ChatContextKeys.agentSessionsViewerFocused, ( ChatContextKeys.isArchivedAgentSession.negate())))
280
394
  },
281
395
  menu: [{
282
- id: MenuId.AgentSessionItemToolbar,
283
- group: 'navigation',
284
- order: 1,
285
- when: ( ChatContextKeys.isArchivedAgentSession.negate()),
286
- }, {
287
- id: MenuId.AgentSessionsContext,
288
- group: '1_edit',
289
- order: 2,
290
- when: ( ChatContextKeys.isArchivedAgentSession.negate())
291
- }]
396
+ id: MenuId.AgentSessionItemToolbar,
397
+ group: "navigation",
398
+ order: 1,
399
+ when: ( ChatContextKeys.isArchivedAgentSession.negate())
400
+ }, {
401
+ id: MenuId.AgentSessionsContext,
402
+ group: "1_edit",
403
+ order: 2,
404
+ when: ( ChatContextKeys.isArchivedAgentSession.negate())
405
+ }]
292
406
  });
293
407
  }
294
- async runWithSession(session, accessor) {
408
+ async runWithSessions(sessions, accessor) {
295
409
  const chatService = accessor.get(IChatService);
296
- const chatModel = chatService.getSession(session.resource);
297
410
  const dialogService = accessor.get(IDialogService);
298
- if (chatModel && !(await showClearEditingSessionConfirmation(chatModel, dialogService, {
299
- isArchiveAction: true,
300
- titleOverride: ( localize(4873, "Archive chat with pending edits?")),
301
- messageOverride: ( localize(4874, "You have pending changes in this chat session."))
302
- }))) {
303
- return;
411
+ for (const session of sessions) {
412
+ const chatModel = chatService.getSession(session.resource);
413
+ if (chatModel && !(await showClearEditingSessionConfirmation(chatModel, dialogService, {
414
+ isArchiveAction: true,
415
+ titleOverride: ( localize(4935, "Archive chat with pending edits?")),
416
+ messageOverride: ( localize(4936, "You have pending changes in this chat session."))
417
+ }))) {
418
+ return;
419
+ }
420
+ session.setArchived(true);
304
421
  }
305
- session.setArchived(true);
306
422
  }
307
423
  }
308
424
  class UnarchiveAgentSessionAction extends BaseAgentSessionAction {
309
425
  constructor() {
310
426
  super({
311
- id: 'agentSession.unarchive',
312
- title: ( localize2(4875, "Unarchive")),
427
+ id: "agentSession.unarchive",
428
+ title: ( localize2(4937, "Unarchive")),
313
429
  icon: Codicon.unarchive,
314
430
  keybinding: {
315
431
  primary: KeyMod.Shift | KeyCode.Delete,
316
432
  mac: {
317
- primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.Backspace,
433
+ primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.Backspace
318
434
  },
319
435
  weight: KeybindingWeight.WorkbenchContrib + 1,
320
436
  when: ( ContextKeyExpr.and(
@@ -323,47 +439,57 @@ class UnarchiveAgentSessionAction extends BaseAgentSessionAction {
323
439
  ))
324
440
  },
325
441
  menu: [{
326
- id: MenuId.AgentSessionItemToolbar,
327
- group: 'navigation',
328
- order: 1,
329
- when: ChatContextKeys.isArchivedAgentSession,
330
- }, {
331
- id: MenuId.AgentSessionsContext,
332
- group: '1_edit',
333
- order: 2,
334
- when: ChatContextKeys.isArchivedAgentSession,
335
- }]
442
+ id: MenuId.AgentSessionItemToolbar,
443
+ group: "navigation",
444
+ order: 1,
445
+ when: ChatContextKeys.isArchivedAgentSession
446
+ }, {
447
+ id: MenuId.AgentSessionsContext,
448
+ group: "1_edit",
449
+ order: 2,
450
+ when: ChatContextKeys.isArchivedAgentSession
451
+ }]
336
452
  });
337
453
  }
338
- runWithSession(session) {
339
- session.setArchived(false);
454
+ runWithSessions(sessions) {
455
+ for (const session of sessions) {
456
+ session.setArchived(false);
457
+ }
340
458
  }
341
459
  }
342
460
  class RenameAgentSessionAction extends BaseAgentSessionAction {
343
461
  constructor() {
344
462
  super({
345
463
  id: AGENT_SESSION_RENAME_ACTION_ID,
346
- title: ( localize2(4876, "Rename...")),
464
+ title: ( localize2(4938, "Rename...")),
465
+ precondition: ( ChatContextKeys.hasMultipleAgentSessionsSelected.negate()),
347
466
  keybinding: {
348
467
  primary: KeyCode.F2,
349
468
  mac: {
350
469
  primary: KeyCode.Enter
351
470
  },
352
471
  weight: KeybindingWeight.WorkbenchContrib + 1,
353
- when: ( ContextKeyExpr.and(ChatContextKeys.agentSessionsViewerFocused, ( ChatContextKeys.agentSessionType.isEqualTo(AgentSessionProviders.Local)))),
472
+ when: ( ContextKeyExpr.and(ChatContextKeys.agentSessionsViewerFocused, ( ChatContextKeys.agentSessionType.isEqualTo(AgentSessionProviders.Local))))
354
473
  },
355
474
  menu: {
356
475
  id: MenuId.AgentSessionsContext,
357
- group: '1_edit',
476
+ group: "1_edit",
358
477
  order: 3,
359
478
  when: ( ChatContextKeys.agentSessionType.isEqualTo(AgentSessionProviders.Local))
360
479
  }
361
480
  });
362
481
  }
363
- async runWithSession(session, accessor) {
482
+ async runWithSessions(sessions, accessor) {
483
+ const session = sessions.at(0);
484
+ if (!session) {
485
+ return;
486
+ }
364
487
  const quickInputService = accessor.get(IQuickInputService);
365
488
  const chatService = accessor.get(IChatService);
366
- const title = await quickInputService.input({ prompt: ( localize(4877, "New agent session title")), value: session.label });
489
+ const title = await quickInputService.input({
490
+ prompt: ( localize(4939, "New agent session title")),
491
+ value: session.label
492
+ });
367
493
  if (title) {
368
494
  chatService.setChatSessionTitle(session.resource, title);
369
495
  }
@@ -373,39 +499,48 @@ class DeleteAgentSessionAction extends BaseAgentSessionAction {
373
499
  constructor() {
374
500
  super({
375
501
  id: AGENT_SESSION_DELETE_ACTION_ID,
376
- title: ( localize2(4878, "Delete...")),
502
+ title: ( localize2(4940, "Delete...")),
377
503
  menu: {
378
504
  id: MenuId.AgentSessionsContext,
379
- group: '1_edit',
505
+ group: "1_edit",
380
506
  order: 4,
381
507
  when: ( ChatContextKeys.agentSessionType.isEqualTo(AgentSessionProviders.Local))
382
508
  }
383
509
  });
384
510
  }
385
- async runWithSession(session, accessor) {
511
+ async runWithSessions(sessions, accessor) {
512
+ if (sessions.length === 0) {
513
+ return;
514
+ }
386
515
  const chatService = accessor.get(IChatService);
387
516
  const dialogService = accessor.get(IDialogService);
388
517
  const widgetService = accessor.get(IChatWidgetService);
389
518
  const confirmed = await dialogService.confirm({
390
- message: ( localize(4879, "Are you sure you want to delete this chat session?")),
391
- detail: ( localize(4880, "This action cannot be undone.")),
392
- primaryButton: ( localize(4881, "Delete"))
519
+ message: sessions.length === 1 ? ( localize(4941, "Are you sure you want to delete this chat session?")) : ( localize(
520
+ 4942,
521
+ "Are you sure you want to delete {0} chat sessions?",
522
+ sessions.length
523
+ )),
524
+ detail: ( localize(4943, "This action cannot be undone.")),
525
+ primaryButton: ( localize(4944, "Delete"))
393
526
  });
394
527
  if (!confirmed.confirmed) {
395
528
  return;
396
529
  }
397
- await widgetService.getWidgetBySessionResource(session.resource)?.clear();
398
- await chatService.removeHistoryEntry(session.resource);
530
+ for (const session of sessions) {
531
+ await widgetService.getWidgetBySessionResource(session.resource)?.clear();
532
+ await chatService.removeHistoryEntry(session.resource);
533
+ }
399
534
  }
400
535
  }
401
536
  class DeleteAllLocalSessionsAction extends Action2 {
402
537
  constructor() {
403
538
  super({
404
- id: 'workbench.action.chat.clearHistory',
405
- title: ( localize2(4882, "Delete All Local Workspace Chat Sessions")),
539
+ id: "workbench.action.chat.clearHistory",
540
+ title: ( localize2(4945, "Delete All Local Workspace Chat Sessions")),
406
541
  precondition: ChatContextKeys.enabled,
407
- category: CHAT_CATEGORY,
408
- f1: true,
542
+ category: AGENT_SESSIONS_CATEGORY,
543
+ f1: true
409
544
  });
410
545
  }
411
546
  async run(accessor, ...args) {
@@ -418,15 +553,13 @@ class DeleteAllLocalSessionsAction extends Action2 {
418
553
  return;
419
554
  }
420
555
  const confirmed = await dialogService.confirm({
421
- message: localSessionsCount === 1
422
- ? ( localize(4883, "Are you sure you want to delete 1 local workspace chat session?"))
423
- : ( localize(
424
- 4884,
556
+ message: localSessionsCount === 1 ? ( localize(4946, "Are you sure you want to delete 1 local workspace chat session?")) : ( localize(
557
+ 4947,
425
558
  "Are you sure you want to delete {0} local workspace chat sessions?",
426
559
  localSessionsCount
427
560
  )),
428
- detail: ( localize(4885, "This action cannot be undone.")),
429
- primaryButton: ( localize(4886, "Delete All"))
561
+ detail: ( localize(4948, "This action cannot be undone.")),
562
+ primaryButton: ( localize(4949, "Delete All"))
430
563
  });
431
564
  if (!confirmed.confirmed) {
432
565
  return;
@@ -436,33 +569,38 @@ class DeleteAllLocalSessionsAction extends Action2 {
436
569
  }
437
570
  }
438
571
  class BaseOpenAgentSessionAction extends BaseAgentSessionAction {
439
- async runWithSession(session, accessor) {
572
+ async runWithSessions(sessions, accessor) {
440
573
  const chatWidgetService = accessor.get(IChatWidgetService);
441
- const uri = session.resource;
442
- await chatWidgetService.openSession(uri, this.getTargetGroup(), {
443
- ...this.getOptions(),
444
- pinned: true
445
- });
574
+ const targetGroup = this.getTargetGroup();
575
+ for (const session of sessions) {
576
+ const uri = session.resource;
577
+ await chatWidgetService.openSession(uri, targetGroup, {
578
+ ...this.getOptions(),
579
+ pinned: true
580
+ });
581
+ }
446
582
  }
447
583
  }
448
584
  class OpenAgentSessionInEditorGroupAction extends BaseOpenAgentSessionAction {
449
- static { this.id = 'workbench.action.chat.openSessionInEditorGroup'; }
585
+ static {
586
+ this.id = "workbench.action.chat.openSessionInEditorGroup";
587
+ }
450
588
  constructor() {
451
589
  super({
452
590
  id: OpenAgentSessionInEditorGroupAction.id,
453
- title: ( localize2(4887, "Open as Editor")),
591
+ title: ( localize2(4950, "Open as Editor")),
454
592
  keybinding: {
455
593
  primary: KeyMod.CtrlCmd | KeyCode.Enter,
456
594
  mac: {
457
595
  primary: KeyMod.WinCtrl | KeyCode.Enter
458
596
  },
459
597
  weight: KeybindingWeight.WorkbenchContrib + 1,
460
- when: ChatContextKeys.agentSessionsViewerFocused,
598
+ when: ChatContextKeys.agentSessionsViewerFocused
461
599
  },
462
600
  menu: {
463
601
  id: MenuId.AgentSessionsContext,
464
602
  order: 1,
465
- group: 'navigation'
603
+ group: "navigation"
466
604
  }
467
605
  });
468
606
  }
@@ -474,23 +612,25 @@ class OpenAgentSessionInEditorGroupAction extends BaseOpenAgentSessionAction {
474
612
  }
475
613
  }
476
614
  class OpenAgentSessionInNewEditorGroupAction extends BaseOpenAgentSessionAction {
477
- static { this.id = 'workbench.action.chat.openSessionInNewEditorGroup'; }
615
+ static {
616
+ this.id = "workbench.action.chat.openSessionInNewEditorGroup";
617
+ }
478
618
  constructor() {
479
619
  super({
480
620
  id: OpenAgentSessionInNewEditorGroupAction.id,
481
- title: ( localize2(4888, "Open to the Side")),
621
+ title: ( localize2(4951, "Open to the Side")),
482
622
  keybinding: {
483
623
  primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.Enter,
484
624
  mac: {
485
625
  primary: KeyMod.WinCtrl | KeyMod.Alt | KeyCode.Enter
486
626
  },
487
627
  weight: KeybindingWeight.WorkbenchContrib + 1,
488
- when: ChatContextKeys.agentSessionsViewerFocused,
628
+ when: ChatContextKeys.agentSessionsViewerFocused
489
629
  },
490
630
  menu: {
491
631
  id: MenuId.AgentSessionsContext,
492
632
  order: 2,
493
- group: 'navigation'
633
+ group: "navigation"
494
634
  }
495
635
  });
496
636
  }
@@ -502,15 +642,17 @@ class OpenAgentSessionInNewEditorGroupAction extends BaseOpenAgentSessionAction
502
642
  }
503
643
  }
504
644
  class OpenAgentSessionInNewWindowAction extends BaseOpenAgentSessionAction {
505
- static { this.id = 'workbench.action.chat.openSessionInNewWindow'; }
645
+ static {
646
+ this.id = "workbench.action.chat.openSessionInNewWindow";
647
+ }
506
648
  constructor() {
507
649
  super({
508
650
  id: OpenAgentSessionInNewWindowAction.id,
509
- title: ( localize2(4889, "Open in New Window")),
651
+ title: ( localize2(4952, "Open in New Window")),
510
652
  menu: {
511
653
  id: MenuId.AgentSessionsContext,
512
654
  order: 3,
513
- group: 'navigation'
655
+ group: "navigation"
514
656
  }
515
657
  });
516
658
  }
@@ -519,22 +661,27 @@ class OpenAgentSessionInNewWindowAction extends BaseOpenAgentSessionAction {
519
661
  }
520
662
  getOptions() {
521
663
  return {
522
- auxiliary: { compact: true, bounds: { width: 800, height: 640 } }
664
+ auxiliary: {
665
+ compact: true,
666
+ bounds: {
667
+ width: 800,
668
+ height: 640
669
+ }
670
+ }
523
671
  };
524
672
  }
525
673
  }
526
674
  class RefreshAgentSessionsViewerAction extends Action2 {
527
675
  constructor() {
528
676
  super({
529
- id: 'agentSessionsViewer.refresh',
530
- title: ( localize2(4890, "Refresh Agent Sessions")),
677
+ id: "agentSessionsViewer.refresh",
678
+ title: ( localize2(4953, "Refresh Agent Sessions")),
531
679
  icon: Codicon.refresh,
532
680
  menu: {
533
681
  id: MenuId.AgentSessionsToolbar,
534
- group: 'navigation',
535
- order: 1,
536
- when: ( ChatContextKeys.agentSessionsViewerLimited.negate())
537
- },
682
+ group: "navigation",
683
+ order: 1
684
+ }
538
685
  });
539
686
  }
540
687
  run(accessor, agentSessionsControl) {
@@ -544,14 +691,13 @@ class RefreshAgentSessionsViewerAction extends Action2 {
544
691
  class FindAgentSessionInViewerAction extends Action2 {
545
692
  constructor() {
546
693
  super({
547
- id: 'agentSessionsViewer.find',
548
- title: ( localize2(4891, "Find Agent Session")),
694
+ id: "agentSessionsViewer.find",
695
+ title: ( localize2(4954, "Find Agent Session")),
549
696
  icon: Codicon.search,
550
697
  menu: {
551
698
  id: MenuId.AgentSessionsToolbar,
552
- group: 'navigation',
553
- order: 2,
554
- when: ( ChatContextKeys.agentSessionsViewerLimited.negate())
699
+ group: "navigation",
700
+ order: 2
555
701
  }
556
702
  });
557
703
  }
@@ -566,7 +712,7 @@ class UpdateChatViewWidthAction extends Action2 {
566
712
  const configurationService = accessor.get(IConfigurationService);
567
713
  const viewsService = accessor.get(IViewsService);
568
714
  const chatLocation = viewDescriptorService.getViewLocationById(ChatViewId);
569
- if (typeof chatLocation !== 'number') {
715
+ if (typeof chatLocation !== "number") {
570
716
  return;
571
717
  }
572
718
  const panelPosition = layoutService.getPanelPosition();
@@ -584,19 +730,17 @@ class UpdateChatViewWidthAction extends Action2 {
584
730
  }
585
731
  const configuredOrientation = configurationService.getValue(ChatConfiguration.ChatViewSessionsOrientation);
586
732
  let validatedConfiguredOrientation;
587
- if (configuredOrientation === 'stacked' || configuredOrientation === 'sideBySide') {
733
+ if (configuredOrientation === "stacked" || configuredOrientation === "sideBySide") {
588
734
  validatedConfiguredOrientation = configuredOrientation;
589
- }
590
- else {
591
- validatedConfiguredOrientation = 'sideBySide';
735
+ } else {
736
+ validatedConfiguredOrientation = "sideBySide";
592
737
  }
593
738
  const newOrientation = this.getOrientation();
594
739
  const lastWidthForOrientation = chatView?.getLastDimensions(newOrientation)?.width;
595
- if ((!canResizeView || validatedConfiguredOrientation === 'sideBySide') && newOrientation === AgentSessionsViewerOrientation.Stacked) {
596
- chatView.updateConfiguredSessionsViewerOrientation('stacked');
597
- }
598
- else if ((!canResizeView || validatedConfiguredOrientation === 'stacked') && newOrientation === AgentSessionsViewerOrientation.SideBySide) {
599
- chatView.updateConfiguredSessionsViewerOrientation('sideBySide');
740
+ if ((!canResizeView || validatedConfiguredOrientation === "sideBySide") && newOrientation === AgentSessionsViewerOrientation.Stacked) {
741
+ chatView.updateConfiguredSessionsViewerOrientation("stacked");
742
+ } else if ((!canResizeView || validatedConfiguredOrientation === "stacked") && newOrientation === AgentSessionsViewerOrientation.SideBySide) {
743
+ chatView.updateConfiguredSessionsViewerOrientation("sideBySide");
600
744
  }
601
745
  if (!canResizeView) {
602
746
  return;
@@ -604,10 +748,10 @@ class UpdateChatViewWidthAction extends Action2 {
604
748
  const part = getPartByLocation(chatLocation);
605
749
  let currentSize = layoutService.getSize(part);
606
750
  const chatViewDefaultWidth = 300;
607
- const sideBySideMinWidth = (chatViewDefaultWidth * 2) + 1;
608
- if ((newOrientation === AgentSessionsViewerOrientation.SideBySide && currentSize.width >= sideBySideMinWidth) ||
609
- (newOrientation === AgentSessionsViewerOrientation.Stacked && chatLocation === ViewContainerLocation.AuxiliaryBar && layoutService.isAuxiliaryBarMaximized())
610
- ) {
751
+ const sessionsViewDefaultWidth = chatViewDefaultWidth;
752
+ const sideBySideMinWidth = chatViewDefaultWidth + sessionsViewDefaultWidth + 1;
753
+ if (
754
+ (newOrientation === AgentSessionsViewerOrientation.SideBySide && currentSize.width >= sideBySideMinWidth) || (newOrientation === AgentSessionsViewerOrientation.Stacked && chatLocation === ViewContainerLocation.AuxiliaryBar && layoutService.isAuxiliaryBarMaximized())) {
611
755
  return;
612
756
  }
613
757
  if (chatLocation === ViewContainerLocation.AuxiliaryBar) {
@@ -616,24 +760,38 @@ class UpdateChatViewWidthAction extends Action2 {
616
760
  }
617
761
  let newWidth;
618
762
  if (newOrientation === AgentSessionsViewerOrientation.SideBySide) {
619
- newWidth = Math.max(sideBySideMinWidth, lastWidthForOrientation || Math.round(layoutService.mainContainerDimension.width / 2));
620
- }
621
- else {
622
- newWidth = lastWidthForOrientation || chatViewDefaultWidth;
763
+ newWidth = Math.max(
764
+ sideBySideMinWidth,
765
+ lastWidthForOrientation || Math.round(layoutService.mainContainerDimension.width / 2)
766
+ );
767
+ } else {
768
+ newWidth = lastWidthForOrientation || Math.max(chatViewDefaultWidth, currentSize.width - sessionsViewDefaultWidth);
769
+ }
770
+ layoutService.setSize(part, {
771
+ width: newWidth,
772
+ height: currentSize.height
773
+ });
774
+ const actualSize = layoutService.getSize(part);
775
+ if (
776
+ chatLocation === ViewContainerLocation.AuxiliaryBar && newOrientation === AgentSessionsViewerOrientation.SideBySide && actualSize.width < sideBySideMinWidth) {
777
+ layoutService.setAuxiliaryBarMaximized(true);
623
778
  }
624
- layoutService.setSize(part, { width: newWidth, height: currentSize.height });
625
779
  }
626
780
  }
627
781
  class ShowAgentSessionsSidebar extends UpdateChatViewWidthAction {
628
- static { this.ID = 'agentSessions.showAgentSessionsSidebar'; }
629
- static { this.TITLE = ( localize2(4892, "Show Agent Sessions Sidebar")); }
782
+ static {
783
+ this.ID = "agentSessions.showAgentSessionsSidebar";
784
+ }
785
+ static {
786
+ this.TITLE = ( localize2(4955, "Show Agent Sessions Sidebar"));
787
+ }
630
788
  constructor() {
631
789
  super({
632
790
  id: ShowAgentSessionsSidebar.ID,
633
791
  title: ShowAgentSessionsSidebar.TITLE,
634
- precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.agentSessionsViewerOrientation.isEqualTo(AgentSessionsViewerOrientation.Stacked)))),
792
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.agentSessionsViewerOrientation.isEqualTo(AgentSessionsViewerOrientation.Stacked)), ( AuxiliaryBarMaximizedContext.negate()))),
635
793
  f1: true,
636
- category: CHAT_CATEGORY,
794
+ category: AGENT_SESSIONS_CATEGORY
637
795
  });
638
796
  }
639
797
  getOrientation() {
@@ -641,15 +799,19 @@ class ShowAgentSessionsSidebar extends UpdateChatViewWidthAction {
641
799
  }
642
800
  }
643
801
  class HideAgentSessionsSidebar extends UpdateChatViewWidthAction {
644
- static { this.ID = 'agentSessions.hideAgentSessionsSidebar'; }
645
- static { this.TITLE = ( localize2(4893, "Hide Agent Sessions Sidebar")); }
802
+ static {
803
+ this.ID = "agentSessions.hideAgentSessionsSidebar";
804
+ }
805
+ static {
806
+ this.TITLE = ( localize2(4956, "Hide Agent Sessions Sidebar"));
807
+ }
646
808
  constructor() {
647
809
  super({
648
810
  id: HideAgentSessionsSidebar.ID,
649
811
  title: HideAgentSessionsSidebar.TITLE,
650
- precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.agentSessionsViewerOrientation.isEqualTo(AgentSessionsViewerOrientation.SideBySide)))),
812
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ChatContextKeys.agentSessionsViewerOrientation.isEqualTo(AgentSessionsViewerOrientation.SideBySide)), ( AuxiliaryBarMaximizedContext.negate()))),
651
813
  f1: true,
652
- category: CHAT_CATEGORY,
814
+ category: AGENT_SESSIONS_CATEGORY
653
815
  });
654
816
  }
655
817
  getOrientation() {
@@ -657,15 +819,19 @@ class HideAgentSessionsSidebar extends UpdateChatViewWidthAction {
657
819
  }
658
820
  }
659
821
  class ToggleAgentSessionsSidebar extends Action2 {
660
- static { this.ID = 'agentSessions.toggleAgentSessionsSidebar'; }
661
- static { this.TITLE = ( localize2(4894, "Toggle Agent Sessions Sidebar")); }
822
+ static {
823
+ this.ID = "agentSessions.toggleAgentSessionsSidebar";
824
+ }
825
+ static {
826
+ this.TITLE = ( localize2(4957, "Toggle Agent Sessions Sidebar"));
827
+ }
662
828
  constructor() {
663
829
  super({
664
830
  id: ToggleAgentSessionsSidebar.ID,
665
831
  title: ToggleAgentSessionsSidebar.TITLE,
666
- precondition: ChatContextKeys.enabled,
832
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( AuxiliaryBarMaximizedContext.negate()))),
667
833
  f1: true,
668
- category: CHAT_CATEGORY,
834
+ category: AGENT_SESSIONS_CATEGORY
669
835
  });
670
836
  }
671
837
  async run(accessor) {
@@ -675,21 +841,22 @@ class ToggleAgentSessionsSidebar extends Action2 {
675
841
  const currentOrientation = chatView?.getSessionsViewerOrientation();
676
842
  if (currentOrientation === AgentSessionsViewerOrientation.SideBySide) {
677
843
  await commandService.executeCommand(HideAgentSessionsSidebar.ID);
678
- }
679
- else {
844
+ } else {
680
845
  await commandService.executeCommand(ShowAgentSessionsSidebar.ID);
681
846
  }
682
847
  }
683
848
  }
684
849
  class FocusAgentSessionsAction extends Action2 {
685
- static { this.id = 'workbench.action.chat.focusAgentSessionsViewer'; }
850
+ static {
851
+ this.id = "workbench.action.chat.focusAgentSessionsViewer";
852
+ }
686
853
  constructor() {
687
854
  super({
688
855
  id: FocusAgentSessionsAction.id,
689
- title: ( localize2(4895, "Focus Agent Sessions")),
856
+ title: ( localize2(4958, "Focus Agent Sessions")),
690
857
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.equals(`config.${ChatConfiguration.ChatViewSessionsEnabled}`, true)))),
691
- category: CHAT_CATEGORY,
692
- f1: true,
858
+ category: AGENT_SESSIONS_CATEGORY,
859
+ f1: true
693
860
  });
694
861
  }
695
862
  async run(accessor) {
@@ -702,14 +869,13 @@ class FocusAgentSessionsAction extends Action2 {
702
869
  return;
703
870
  }
704
871
  const configuredSessionsViewerOrientation = configurationService.getValue(ChatConfiguration.ChatViewSessionsOrientation);
705
- if (configuredSessionsViewerOrientation === 'stacked') {
872
+ if (configuredSessionsViewerOrientation === "stacked") {
706
873
  await commandService.executeCommand(ACTION_ID_NEW_CHAT);
707
- }
708
- else {
874
+ } else {
709
875
  await commandService.executeCommand(ShowAgentSessionsSidebar.ID);
710
876
  }
711
877
  chatView?.focusSessions();
712
878
  }
713
879
  }
714
880
 
715
- export { ArchiveAgentSessionAction, ArchiveAgentSessionSectionAction, ArchiveAllAgentSessionsAction, DeleteAgentSessionAction, DeleteAllLocalSessionsAction, FindAgentSessionInViewerAction, FocusAgentSessionsAction, HideAgentSessionsSidebar, MarkAgentSessionReadAction, MarkAgentSessionUnreadAction, OpenAgentSessionInEditorGroupAction, OpenAgentSessionInNewEditorGroupAction, OpenAgentSessionInNewWindowAction, PickAgentSessionAction, RefreshAgentSessionsViewerAction, RenameAgentSessionAction, SetAgentSessionsOrientationSideBySideAction, SetAgentSessionsOrientationStackedAction, ShowAgentSessionsSidebar, ToggleAgentSessionsSidebar, ToggleChatViewSessionsAction, UnarchiveAgentSessionAction };
881
+ export { ArchiveAgentSessionAction, ArchiveAgentSessionSectionAction, ArchiveAllAgentSessionsAction, DeleteAgentSessionAction, DeleteAllLocalSessionsAction, FindAgentSessionInViewerAction, FocusAgentSessionsAction, HideAgentSessionsSidebar, MarkAgentSessionReadAction, MarkAgentSessionSectionReadAction, MarkAgentSessionUnreadAction, MarkAllAgentSessionsReadAction, OpenAgentSessionInEditorGroupAction, OpenAgentSessionInNewEditorGroupAction, OpenAgentSessionInNewWindowAction, PickAgentSessionAction, RefreshAgentSessionsViewerAction, RenameAgentSessionAction, SetAgentSessionsOrientationSideBySideAction, SetAgentSessionsOrientationStackedAction, ShowAgentSessionsSidebar, ToggleAgentSessionsSidebar, ToggleShowAgentSessionsAction, UnarchiveAgentSessionAction, UnarchiveAgentSessionSectionAction };