@codingame/monaco-vscode-chat-service-override 23.2.2 → 24.1.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 (273) hide show
  1. package/index.js +13 -10
  2. package/package.json +5 -41
  3. package/vscode/src/vs/platform/domWidget/browser/domWidget.d.ts +52 -0
  4. package/vscode/src/vs/platform/domWidget/browser/domWidget.js +53 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +10 -10
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +61 -50
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.d.ts +18 -0
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +152 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +14 -14
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +37 -28
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +9 -9
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -5
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +7 -11
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +10 -10
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +12 -14
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +21 -18
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +27 -18
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +4 -4
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +11 -11
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +6 -27
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +44 -208
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -17
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +17 -17
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +1 -1
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +23 -24
  30. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +140 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +85 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +358 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +55 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +222 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +37 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +241 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.d.ts +13 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +27 -0
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.d.ts +11 -19
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.js +67 -230
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +65 -33
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +186 -62
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +23 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +140 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsview.css +2 -7
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +115 -29
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +389 -166
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +9 -6
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +22 -16
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +8 -8
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.d.ts +10 -3
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.js +63 -3
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimeline.d.ts +7 -3
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +14 -5
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +173 -32
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +1 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +66 -17
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +32 -29
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +12 -12
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -2
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +9 -6
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +2 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +6 -4
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +4 -4
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +8 -18
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.d.ts +1 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +12 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +5 -6
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +15 -24
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +13 -11
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +66 -50
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +3 -2
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +6 -5
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +3 -1
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +7 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +2 -2
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +6 -7
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.d.ts +3 -3
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +4 -4
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +2 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +1 -1
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +15 -4
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +3 -4
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +30 -37
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +13 -10
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +23 -32
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -9
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +20 -19
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +47 -15
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +270 -143
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +3 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +310 -170
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +10 -10
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +12 -2
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +1 -1
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +42 -42
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +3 -1
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +35 -25
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +4 -4
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.d.ts +1 -4
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +22 -26
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.d.ts +18 -14
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +80 -72
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.d.ts +2 -8
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +48 -77
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +16 -17
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +257 -77
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +55 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +34 -0
  119. package/vscode/src/vs/workbench/contrib/chat/browser/{chatSetup.d.ts → chatSetup/chatSetupContributions.d.ts} +4 -11
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +622 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +53 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +359 -0
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +89 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +667 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +37 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +260 -0
  127. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/chatSetup.css +4 -6
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +4 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +21 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +55 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatus.js → chatStatus/chatStatusDashboard.js} +193 -325
  132. package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatus.d.ts → chatStatus/chatStatusEntry.d.ts} +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +190 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusItemService.d.ts → chatStatus/chatStatusItemService.d.ts} +1 -1
  135. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatStatus/media}/chatStatus.css +22 -1
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusWidget.d.ts +25 -0
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusWidget.js +108 -0
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatTerminalOutputAccessibleView.d.ts +10 -0
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatTerminalOutputAccessibleView.js +34 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +57 -18
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +478 -146
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewTitleControl.d.ts +43 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewTitleControl.js +204 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidgetService.d.ts +44 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidgetService.js +187 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
  148. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +108 -62
  149. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
  150. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
  151. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.d.ts +1 -1
  152. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +37 -32
  153. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +37 -20
  154. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +232 -97
  155. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatusWidget.css +57 -0
  156. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewPane.css +142 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewTitleControl.css +39 -0
  158. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +51 -35
  159. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
  160. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +5 -4
  161. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +5 -5
  163. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +12 -12
  164. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +19 -21
  165. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.d.ts +1 -1
  166. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +8 -8
  167. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +16 -16
  168. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +6 -6
  169. package/vscode/src/vs/workbench/contrib/chat/common/chatCodeMapperService.d.ts +1 -1
  170. package/vscode/src/vs/workbench/contrib/chat/common/chatModelStore.d.ts +49 -0
  171. package/vscode/src/vs/workbench/contrib/chat/common/chatModelStore.js +100 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +1 -0
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +2 -1
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +3 -4
  175. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +41 -15
  176. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +208 -162
  177. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +3 -3
  178. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +15 -7
  179. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +61 -7
  180. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.d.ts +3 -2
  181. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +2 -2
  182. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +1 -1
  183. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +10 -10
  184. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +2 -2
  185. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +3 -3
  186. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +5 -1
  187. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +60 -43
  188. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +27 -4
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +37 -47
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -3
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +120 -87
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +49 -42
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +293 -187
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +17 -5
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +43 -9
  198. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +2 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +48 -29
  200. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +1 -1
  201. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -2
  202. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +8 -13
  203. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
  204. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +2 -2
  205. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +3 -3
  206. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +36 -41
  207. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +3 -3
  208. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +2 -2
  209. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
  210. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  211. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +1 -1
  212. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +18 -18
  213. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
  214. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +142 -38
  215. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +1 -1
  216. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +3 -7
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +19 -2
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +78 -6
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +7 -11
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +26 -44
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +3 -3
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +1 -1
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +9 -0
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +0 -1
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +23 -17
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +1 -1
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +4 -2
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +2 -0
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +26 -5
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +3 -1
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +32 -4
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +15 -29
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +10 -7
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +12 -0
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +3 -1
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +38 -19
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +1 -0
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +32 -7
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +5 -4
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +4 -3
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +4 -3
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +1 -0
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +128 -62
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +2 -2
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +12 -2
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +5 -2
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +68 -22
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +20 -22
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +13 -12
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +20 -19
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +12 -0
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +72 -0
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +1 -2
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +5 -17
  258. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.d.ts +0 -53
  259. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.js +0 -154
  260. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +0 -7
  261. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +0 -13
  262. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.d.ts +0 -25
  263. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.js +0 -135
  264. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.d.ts +0 -35
  265. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +0 -216
  266. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +0 -1617
  267. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +0 -44
  268. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +0 -313
  269. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/apple-dark.svg +0 -0
  270. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/apple-light.svg +0 -0
  271. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/github.svg +0 -0
  272. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/google.svg +0 -0
  273. /package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusItemService.js → chatStatus/chatStatusItemService.js} +0 -0
@@ -5,7 +5,7 @@ import { raceCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/ba
5
5
  import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
6
6
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
7
7
  import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
8
- import { Disposable, DisposableMap, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
+ import { Disposable, DisposableMap, DisposableStore, combinedDisposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
9
9
  import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
10
10
  import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
11
11
  import { joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
@@ -26,51 +26,59 @@ import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench
26
26
  import { isProposedApiEnabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions';
27
27
  import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
28
28
  import { ExtensionsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
29
- import { ChatEditorInput } from '@codingame/monaco-vscode-aac7027b-326c-513a-95a9-e4eedd151b38-common/vscode/vs/workbench/contrib/chat/browser/chatEditorInput';
29
+ import { ChatEditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatEditorInput';
30
30
  import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
31
31
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
32
32
  import { localChatSessionType, ChatSessionStatus } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
33
33
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
34
- import { AGENT_SESSIONS_VIEWLET_ID, ChatModeKind, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
35
- import { CHAT_CATEGORY } from '@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
36
- import { NEW_CHAT_SESSION_ACTION_ID } from '@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/browser/chatSessions/common';
34
+ import { LEGACY_AGENT_SESSIONS_VIEW_ID, ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
35
+ import { CHAT_CATEGORY } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
36
+ import { NEW_CHAT_SESSION_ACTION_ID } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/chatSessions/common';
37
+ import { IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService';
38
+ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
39
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
40
+ import { renderAsPlaintext } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
41
+ import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
42
+ import { ChatViewId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
43
+ import { autorunIterableDelta, autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
44
+ import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
37
45
 
38
46
  const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
39
47
  extensionPoint: 'chatSessions',
40
48
  jsonSchema: {
41
- description: ( localize(5386, 'Contributes chat session integrations to the chat widget.')),
49
+ description: ( localize(5466, 'Contributes chat session integrations to the chat widget.')),
42
50
  type: 'array',
43
51
  items: {
44
52
  type: 'object',
45
53
  additionalProperties: false,
46
54
  properties: {
47
55
  type: {
48
- description: ( localize(5387, 'Unique identifier for the type of chat session.')),
56
+ description: ( localize(5467, 'Unique identifier for the type of chat session.')),
49
57
  type: 'string',
50
58
  },
51
59
  name: {
52
60
  description: ( localize(
53
- 5388,
61
+ 5468,
54
62
  'Name of the dynamically registered chat participant (eg: @agent). Must not contain whitespace.'
55
63
  )),
56
64
  type: 'string',
57
65
  pattern: '^[\\w-]+$'
58
66
  },
59
67
  displayName: {
60
- description: ( localize(5389, 'A longer name for this item which is used for display in menus.')),
68
+ description: ( localize(5469, 'A longer name for this item which is used for display in menus.')),
61
69
  type: 'string',
62
70
  },
63
71
  description: {
64
- description: ( localize(5390, 'Description of the chat session for use in menus and tooltips.')),
72
+ description: ( localize(5470, 'Description of the chat session for use in menus and tooltips.')),
65
73
  type: 'string'
66
74
  },
67
75
  when: {
68
- description: ( localize(5391, 'Condition which must be true to show this item.')),
76
+ description: ( localize(5471, 'Condition which must be true to show this item.')),
69
77
  type: 'string'
70
78
  },
71
79
  icon: {
72
80
  description: ( localize(
73
- 5392,
81
+ 5472,
74
82
  'Icon identifier (codicon ID) for the chat session editor tab. For example, "$(github)" or "$(cloud)".'
75
83
  )),
76
84
  anyOf: [{
@@ -80,22 +88,22 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
80
88
  type: 'object',
81
89
  properties: {
82
90
  light: {
83
- description: ( localize(5393, 'Icon path when a light theme is used')),
91
+ description: ( localize(5473, 'Icon path when a light theme is used')),
84
92
  type: 'string'
85
93
  },
86
94
  dark: {
87
- description: ( localize(5394, 'Icon path when a dark theme is used')),
95
+ description: ( localize(5474, 'Icon path when a dark theme is used')),
88
96
  type: 'string'
89
97
  }
90
98
  }
91
99
  }]
92
100
  },
93
101
  order: {
94
- description: ( localize(5395, 'Order in which this item should be displayed.')),
102
+ description: ( localize(5475, 'Order in which this item should be displayed.')),
95
103
  type: 'integer'
96
104
  },
97
105
  alternativeIds: {
98
- description: ( localize(5396, 'Alternative identifiers for backward compatibility.')),
106
+ description: ( localize(5476, 'Alternative identifiers for backward compatibility.')),
99
107
  type: 'array',
100
108
  items: {
101
109
  type: 'string'
@@ -103,87 +111,87 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
103
111
  },
104
112
  welcomeTitle: {
105
113
  description: ( localize(
106
- 5397,
114
+ 5477,
107
115
  'Title text to display in the chat welcome view for this session type.'
108
116
  )),
109
117
  type: 'string'
110
118
  },
111
119
  welcomeMessage: {
112
120
  description: ( localize(
113
- 5398,
121
+ 5478,
114
122
  'Message text (supports markdown) to display in the chat welcome view for this session type.'
115
123
  )),
116
124
  type: 'string'
117
125
  },
118
126
  welcomeTips: {
119
127
  description: ( localize(
120
- 5399,
128
+ 5479,
121
129
  'Tips text (supports markdown and theme icons) to display in the chat welcome view for this session type.'
122
130
  )),
123
131
  type: 'string'
124
132
  },
125
133
  inputPlaceholder: {
126
134
  description: ( localize(
127
- 5400,
135
+ 5480,
128
136
  'Placeholder text to display in the chat input box for this session type.'
129
137
  )),
130
138
  type: 'string'
131
139
  },
132
140
  capabilities: {
133
- description: ( localize(5401, 'Optional capabilities for this chat session.')),
141
+ description: ( localize(5481, 'Optional capabilities for this chat session.')),
134
142
  type: 'object',
135
143
  additionalProperties: false,
136
144
  properties: {
137
145
  supportsFileAttachments: {
138
146
  description: ( localize(
139
- 5402,
147
+ 5482,
140
148
  'Whether this chat session supports attaching files or file references.'
141
149
  )),
142
150
  type: 'boolean'
143
151
  },
144
152
  supportsToolAttachments: {
145
153
  description: ( localize(
146
- 5403,
154
+ 5483,
147
155
  'Whether this chat session supports attaching tools or tool references.'
148
156
  )),
149
157
  type: 'boolean'
150
158
  },
151
159
  supportsMCPAttachments: {
152
- description: ( localize(5404, 'Whether this chat session supports attaching MCP resources.')),
160
+ description: ( localize(5484, 'Whether this chat session supports attaching MCP resources.')),
153
161
  type: 'boolean'
154
162
  },
155
163
  supportsImageAttachments: {
156
- description: ( localize(5405, 'Whether this chat session supports attaching images.')),
164
+ description: ( localize(5485, 'Whether this chat session supports attaching images.')),
157
165
  type: 'boolean'
158
166
  },
159
167
  supportsSearchResultAttachments: {
160
- description: ( localize(5406, 'Whether this chat session supports attaching search results.')),
168
+ description: ( localize(5486, 'Whether this chat session supports attaching search results.')),
161
169
  type: 'boolean'
162
170
  },
163
171
  supportsInstructionAttachments: {
164
- description: ( localize(5407, 'Whether this chat session supports attaching instructions.')),
172
+ description: ( localize(5487, 'Whether this chat session supports attaching instructions.')),
165
173
  type: 'boolean'
166
174
  },
167
175
  supportsSourceControlAttachments: {
168
176
  description: ( localize(
169
- 5408,
177
+ 5488,
170
178
  'Whether this chat session supports attaching source control changes.'
171
179
  )),
172
180
  type: 'boolean'
173
181
  },
174
182
  supportsProblemAttachments: {
175
- description: ( localize(5409, 'Whether this chat session supports attaching problems.')),
183
+ description: ( localize(5489, 'Whether this chat session supports attaching problems.')),
176
184
  type: 'boolean'
177
185
  },
178
186
  supportsSymbolAttachments: {
179
- description: ( localize(5410, 'Whether this chat session supports attaching symbols.')),
187
+ description: ( localize(5490, 'Whether this chat session supports attaching symbols.')),
180
188
  type: 'boolean'
181
189
  }
182
190
  }
183
191
  },
184
192
  commands: {
185
193
  markdownDescription: ( localize(
186
- 5411,
194
+ 5491,
187
195
  "Commands available for this chat session, which the user can invoke with a `/`."
188
196
  )),
189
197
  type: 'array',
@@ -195,21 +203,29 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
195
203
  properties: {
196
204
  name: {
197
205
  description: ( localize(
198
- 5412,
206
+ 5492,
199
207
  "A short name by which this command is referred to in the UI, e.g. `fix` or `explain` for commands that fix an issue or explain code. The name should be unique among the commands provided by this participant."
200
208
  )),
201
209
  type: 'string'
202
210
  },
203
211
  description: {
204
- description: ( localize(5413, "A description of this command.")),
212
+ description: ( localize(5493, "A description of this command.")),
205
213
  type: 'string'
206
214
  },
207
215
  when: {
208
- description: ( localize(5414, "A condition which must be true to enable this command.")),
216
+ description: ( localize(5494, "A condition which must be true to enable this command.")),
209
217
  type: 'string'
210
218
  },
211
219
  }
212
220
  }
221
+ },
222
+ canDelegate: {
223
+ description: ( localize(
224
+ 5495,
225
+ 'Whether delegation is supported. Default is false. Note that enabling this is experimental and may not be respected at all times.'
226
+ )),
227
+ type: 'boolean',
228
+ default: false
213
229
  }
214
230
  },
215
231
  required: ['type', 'name', 'displayName', 'description'],
@@ -249,6 +265,8 @@ class ContributedChatSessionData extends Disposable {
249
265
  let ChatSessionsService = class ChatSessionsService extends Disposable {
250
266
  get onDidChangeInProgress() { return this._onDidChangeInProgress.event; }
251
267
  get onDidChangeContentProviderSchemes() { return this._onDidChangeContentProviderSchemes.event; }
268
+ get onDidChangeSessionOptions() { return this._onDidChangeSessionOptions.event; }
269
+ get onDidChangeOptionGroups() { return this._onDidChangeOptionGroups.event; }
252
270
  constructor(_logService, _chatAgentService, _extensionService, _contextKeyService, _menuService, _themeService, _labelService) {
253
271
  super();
254
272
  this._logService = _logService;
@@ -272,6 +290,8 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
272
290
  this.onDidChangeAvailability = this._onDidChangeAvailability.event;
273
291
  this._onDidChangeInProgress = this._register(( new Emitter()));
274
292
  this._onDidChangeContentProviderSchemes = this._register(( new Emitter()));
293
+ this._onDidChangeSessionOptions = this._register(( new Emitter()));
294
+ this._onDidChangeOptionGroups = this._register(( new Emitter()));
275
295
  this.inProgressMap = ( new Map());
276
296
  this._sessionTypeOptions = ( new Map());
277
297
  this._sessionTypeIcons = ( new Map());
@@ -330,7 +350,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
330
350
  async updateInProgressStatus(chatSessionType) {
331
351
  try {
332
352
  const items = await this.getChatSessionItems(chatSessionType, CancellationToken.None);
333
- const inProgress = items.filter(item => item.status === ChatSessionStatus.InProgress);
353
+ const inProgress = items.filter(item => item.status && this.isChatSessionInProgressStatus(item.status));
334
354
  this.reportInProgress(chatSessionType, inProgress.length);
335
355
  }
336
356
  catch (error) {
@@ -339,7 +359,6 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
339
359
  }
340
360
  registerContribution(contribution, ext) {
341
361
  if (( this._contributions.has(contribution.type))) {
342
- this._logService.warn(`Chat session contribution with id '${contribution.type}' is already registered.`);
343
362
  return { dispose: () => { } };
344
363
  }
345
364
  if (contribution.when) {
@@ -426,7 +445,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
426
445
  if (primaryType) {
427
446
  const altContribution = this._contributions.get(primaryType)?.contribution;
428
447
  if (altContribution && this._isContributionAvailable(altContribution)) {
429
- this._logService.info(`Resolving chat session type '${sessionType}' to alternative type '${primaryType}'`);
448
+ this._logService.trace(`Resolving chat session type '${sessionType}' to alternative type '${primaryType}'`);
430
449
  return primaryType;
431
450
  }
432
451
  }
@@ -436,38 +455,39 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
436
455
  const contextKeyService = this._contextKeyService.createOverlay([
437
456
  ['chatSessionType', contribution.type]
438
457
  ]);
439
- const rawMenuActions = this._menuService.getMenuActions(MenuId.ChatSessionsCreateSubMenu, contextKeyService);
458
+ const rawMenuActions = this._menuService.getMenuActions(MenuId.AgentSessionsCreateSubMenu, contextKeyService);
440
459
  const menuActions = ( rawMenuActions.map(value => value[1])).flat();
441
- const whenClause = ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', `${AGENT_SESSIONS_VIEWLET_ID}.${contribution.type}`))));
460
+ const whenClause = ( ContextKeyExpr.and(( ContextKeyExpr.equals('view', `${LEGACY_AGENT_SESSIONS_VIEW_ID}.${contribution.type}`))));
461
+ const disposables = ( new DisposableStore());
442
462
  if (menuActions.length === 1) {
443
463
  const first = menuActions[0];
444
464
  if (first instanceof MenuItemAction) {
445
- return MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
465
+ disposables.add(MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
446
466
  group: 'navigation',
447
467
  title: first.label,
448
468
  icon: Codicon.plus,
449
469
  order: 1,
450
470
  when: whenClause,
451
471
  command: first.item,
452
- });
472
+ }));
453
473
  }
454
474
  }
455
475
  if (menuActions.length) {
456
- return MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
476
+ disposables.add(MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
457
477
  group: 'navigation',
458
- title: ( localize(5415, "Create chat session")),
478
+ title: ( localize(5496, "Create chat session")),
459
479
  icon: Codicon.plus,
460
480
  order: 1,
461
481
  when: whenClause,
462
- submenu: MenuId.ChatSessionsCreateSubMenu,
482
+ submenu: MenuId.AgentSessionsCreateSubMenu,
463
483
  isSplitButton: menuActions.length > 1
464
- });
484
+ }));
465
485
  }
466
486
  else {
467
- return MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
487
+ disposables.add(MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
468
488
  command: {
469
489
  id: `${NEW_CHAT_SESSION_ACTION_ID}.${contribution.type}`,
470
- title: ( localize(5416, "New {0}", contribution.displayName)),
490
+ title: ( localize(5497, "New {0}", contribution.displayName)),
471
491
  icon: Codicon.plus,
472
492
  source: {
473
493
  id: extensionDescription.identifier.value,
@@ -477,31 +497,65 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
477
497
  group: 'navigation',
478
498
  order: 1,
479
499
  when: whenClause,
480
- });
500
+ }));
501
+ }
502
+ for (const action of menuActions) {
503
+ if (action instanceof MenuItemAction) {
504
+ disposables.add(MenuRegistry.appendMenuItem(MenuId.ChatNewMenu, {
505
+ command: action.item,
506
+ group: '4_externally_contributed',
507
+ }));
508
+ }
481
509
  }
510
+ return {
511
+ dispose: () => disposables.dispose()
512
+ };
482
513
  }
483
514
  _registerCommands(contribution) {
484
- return registerAction2(class OpenNewChatSessionEditorAction extends Action2 {
515
+ return combinedDisposable(registerAction2(class OpenChatSessionAction extends Action2 {
516
+ constructor() {
517
+ super({
518
+ id: `workbench.action.chat.openSessionWithPrompt.${contribution.type}`,
519
+ title: ( localize2(5498, "New {0} with Prompt", contribution.displayName)),
520
+ category: CHAT_CATEGORY,
521
+ icon: Codicon.plus,
522
+ f1: false,
523
+ precondition: ChatContextKeys.enabled
524
+ });
525
+ }
526
+ async run(accessor, chatOptions) {
527
+ const chatService = accessor.get(IChatService);
528
+ const { type } = contribution;
529
+ if (chatOptions) {
530
+ const resource = URI.revive(chatOptions.resource);
531
+ const ref = await chatService.loadSessionForResource(resource, ChatAgentLocation.Chat, CancellationToken.None);
532
+ await chatService.sendRequest(resource, chatOptions.prompt, { agentIdSilent: type, attachedContext: chatOptions.attachedContext });
533
+ ref?.dispose();
534
+ }
535
+ }
536
+ }),
537
+ registerAction2(class OpenNewChatSessionEditorAction extends Action2 {
485
538
  constructor() {
486
539
  super({
487
540
  id: `workbench.action.chat.openNewSessionEditor.${contribution.type}`,
488
- title: ( localize2(5416, "New {0}", contribution.displayName)),
541
+ title: ( localize2(5497, "New {0}", contribution.displayName)),
489
542
  category: CHAT_CATEGORY,
490
543
  icon: Codicon.plus,
491
544
  f1: true,
492
- precondition: ChatContextKeys.enabled
545
+ precondition: ChatContextKeys.enabled,
493
546
  });
494
547
  }
495
- async run(accessor) {
548
+ async run(accessor, chatOptions) {
496
549
  const editorService = accessor.get(IEditorService);
497
550
  const logService = accessor.get(ILogService);
551
+ const chatService = accessor.get(IChatService);
498
552
  const { type } = contribution;
499
553
  try {
500
554
  const options = {
501
555
  override: ChatEditorInput.EditorID,
502
556
  pinned: true,
503
557
  title: {
504
- fallback: ( localize(5417, "{0}", contribution.displayName)),
558
+ fallback: ( localize(5499, "{0}", contribution.displayName)),
505
559
  }
506
560
  };
507
561
  const resource = ( URI.from({
@@ -509,12 +563,52 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
509
563
  path: `/untitled-${generateUuid()}`,
510
564
  }));
511
565
  await editorService.openEditor({ resource, options });
566
+ if (chatOptions?.prompt) {
567
+ await chatService.sendRequest(resource, chatOptions.prompt, { agentIdSilent: type, attachedContext: chatOptions.attachedContext });
568
+ }
512
569
  }
513
570
  catch (e) {
514
571
  logService.error(`Failed to open new '${type}' chat session editor`, e);
515
572
  }
516
573
  }
517
- });
574
+ }),
575
+ registerAction2(class OpenNewChatSessionSidebarAction extends Action2 {
576
+ constructor() {
577
+ super({
578
+ id: `workbench.action.chat.openNewSessionSidebar.${contribution.type}`,
579
+ title: ( localize2(5500, "New {0}", contribution.displayName)),
580
+ category: CHAT_CATEGORY,
581
+ icon: Codicon.plus,
582
+ f1: false,
583
+ precondition: ChatContextKeys.enabled,
584
+ menu: {
585
+ id: MenuId.ChatNewMenu,
586
+ group: '3_new_special',
587
+ }
588
+ });
589
+ }
590
+ async run(accessor, chatOptions) {
591
+ const viewsService = accessor.get(IViewsService);
592
+ const logService = accessor.get(ILogService);
593
+ const chatService = accessor.get(IChatService);
594
+ const { type } = contribution;
595
+ try {
596
+ const resource = ( URI.from({
597
+ scheme: type,
598
+ path: `/untitled-${generateUuid()}`,
599
+ }));
600
+ const view = await viewsService.openView(ChatViewId);
601
+ await view.loadSession(resource);
602
+ if (chatOptions?.prompt) {
603
+ await chatService.sendRequest(resource, chatOptions.prompt, { agentIdSilent: type, attachedContext: chatOptions.attachedContext });
604
+ }
605
+ view.focus();
606
+ }
607
+ catch (e) {
608
+ logService.error(`Failed to open new '${type}' chat session in sidebar`, e);
609
+ }
610
+ }
611
+ }));
518
612
  }
519
613
  _evaluateAvailability() {
520
614
  let hasChanges = false;
@@ -544,8 +638,10 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
544
638
  _enableContribution(contribution, ext) {
545
639
  const disposableStore = ( new DisposableStore());
546
640
  this._contributionDisposables.set(contribution.type, disposableStore);
547
- disposableStore.add(this._registerAgent(contribution, ext));
548
- disposableStore.add(this._registerCommands(contribution));
641
+ if (contribution.canDelegate) {
642
+ disposableStore.add(this._registerAgent(contribution, ext));
643
+ disposableStore.add(this._registerCommands(contribution));
644
+ }
549
645
  disposableStore.add(this._registerMenuItems(contribution, ext));
550
646
  }
551
647
  _disposeSessionsForContribution(contributionId) {
@@ -567,6 +663,12 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
567
663
  }
568
664
  _registerAgent(contribution, ext) {
569
665
  const { type: id, name, displayName, description } = contribution;
666
+ const storedIcon = this._sessionTypeIcons.get(id);
667
+ const icons = ThemeIcon.isThemeIcon(storedIcon)
668
+ ? { themeIcon: storedIcon, icon: undefined, iconDark: undefined }
669
+ : storedIcon
670
+ ? { icon: storedIcon.light, iconDark: storedIcon.dark }
671
+ : { themeIcon: Codicon.sendToRemoteAgent };
570
672
  const agentData = {
571
673
  id,
572
674
  name,
@@ -580,10 +682,10 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
580
682
  modes: [ChatModeKind.Agent, ChatModeKind.Ask],
581
683
  disambiguation: [],
582
684
  metadata: {
583
- themeIcon: Codicon.sendToRemoteAgent,
584
- isSticky: false,
685
+ ...icons,
585
686
  },
586
687
  capabilities: contribution.capabilities,
688
+ canAccessPreviousChatHistory: true,
587
689
  extensionId: ext.identifier,
588
690
  extensionVersion: ext.version,
589
691
  extensionDisplayName: ext.displayName || ext.name,
@@ -595,13 +697,20 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
595
697
  return Array.from(( this._contributions.values()), x => x.contribution)
596
698
  .filter(contribution => this._isContributionAvailable(contribution));
597
699
  }
700
+ getChatSessionContribution(chatSessionType) {
701
+ const contribution = this._contributions.get(chatSessionType)?.contribution;
702
+ if (!contribution) {
703
+ return undefined;
704
+ }
705
+ return this._isContributionAvailable(contribution) ? contribution : undefined;
706
+ }
598
707
  getAllChatSessionItemProviders() {
599
708
  return [...( this._itemsProviders.values())].filter(provider => {
600
709
  const contribution = this._contributions.get(provider.chatSessionType)?.contribution;
601
710
  return !contribution || this._isContributionAvailable(contribution);
602
711
  });
603
712
  }
604
- async hasChatSessionItemProvider(chatViewType) {
713
+ async activateChatSessionItemProvider(chatViewType) {
605
714
  await this._extensionService.whenInstalledExtensionsRegistered();
606
715
  const resolvedType = this._resolveToPrimaryType(chatViewType);
607
716
  if (resolvedType) {
@@ -609,13 +718,13 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
609
718
  }
610
719
  const contribution = this._contributions.get(chatViewType)?.contribution;
611
720
  if (contribution && !this._isContributionAvailable(contribution)) {
612
- return false;
721
+ return undefined;
613
722
  }
614
723
  if (( this._itemsProviders.has(chatViewType))) {
615
- return true;
724
+ return this._itemsProviders.get(chatViewType);
616
725
  }
617
726
  await this._extensionService.activateByEvent(`onChatSession:${chatViewType}`);
618
- return ( this._itemsProviders.has(chatViewType));
727
+ return this._itemsProviders.get(chatViewType);
619
728
  }
620
729
  async canResolveChatSession(chatSessionResource) {
621
730
  await this._extensionService.whenInstalledExtensionsRegistered();
@@ -639,7 +748,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
639
748
  }));
640
749
  }
641
750
  async getChatSessionItems(chatSessionType, token) {
642
- if (!(await this.hasChatSessionItemProvider(chatSessionType))) {
751
+ if (!(await this.activateChatSessionItemProvider(chatSessionType))) {
643
752
  return [];
644
753
  }
645
754
  const resolvedType = this._resolveToPrimaryType(chatSessionType);
@@ -694,21 +803,87 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
694
803
  }
695
804
  };
696
805
  }
697
- async getNewChatSessionItem(chatSessionType, options, token) {
698
- if (!(await this.hasChatSessionItemProvider(chatSessionType))) {
699
- throw Error(`Cannot find provider for ${chatSessionType}`);
700
- }
701
- const resolvedType = this._resolveToPrimaryType(chatSessionType);
702
- if (resolvedType) {
703
- chatSessionType = resolvedType;
704
- }
705
- const provider = this._itemsProviders.get(chatSessionType);
706
- if (!provider?.provideNewChatSessionItem) {
707
- throw Error(`Provider for ${chatSessionType} does not support creating sessions`);
806
+ registerChatModelChangeListeners(chatService, chatSessionType, onChange) {
807
+ const disposableStore = ( new DisposableStore());
808
+ const chatModelsICareAbout = ( chatService.chatModels.map(
809
+ models => Array.from(models).filter((model) => model.sessionResource.scheme === chatSessionType)
810
+ ));
811
+ const listeners = ( new ResourceMap());
812
+ const autoRunDisposable = autorunIterableDelta(reader => chatModelsICareAbout.read(reader), ({ addedValues, removedValues }) => {
813
+ removedValues.forEach((removed) => {
814
+ const listener = listeners.get(removed.sessionResource);
815
+ if (listener) {
816
+ listeners.delete(removed.sessionResource);
817
+ listener.dispose();
818
+ }
819
+ });
820
+ addedValues.forEach((added) => {
821
+ const requestChangeListener = ( added.lastRequestObs.map(
822
+ last => last?.response && observableSignalFromEvent('chatSessions.modelRequestChangeListener', last.response.onDidChange)
823
+ ));
824
+ const modelChangeListener = observableSignalFromEvent('chatSessions.modelChangeListener', added.onDidChange);
825
+ listeners.set(added.sessionResource, autorun(reader => {
826
+ requestChangeListener.read(reader)?.read(reader);
827
+ modelChangeListener.read(reader);
828
+ onChange();
829
+ }));
830
+ });
831
+ });
832
+ disposableStore.add(toDisposable(() => {
833
+ for (const listener of ( listeners.values())) {
834
+ listener.dispose();
835
+ }
836
+ }));
837
+ disposableStore.add(autoRunDisposable);
838
+ return disposableStore;
839
+ }
840
+ getInProgressSessionDescription(chatModel) {
841
+ const requests = chatModel.getRequests();
842
+ if (requests.length === 0) {
843
+ return undefined;
844
+ }
845
+ const lastRequest = requests.at(-1);
846
+ const response = lastRequest?.response;
847
+ if (!response) {
848
+ return undefined;
849
+ }
850
+ if (response.isComplete) {
851
+ return undefined;
852
+ }
853
+ const responseParts = response.response.value;
854
+ let description = '';
855
+ for (let i = responseParts.length - 1; i >= 0; i--) {
856
+ const part = responseParts[i];
857
+ if (description) {
858
+ break;
859
+ }
860
+ if (part.kind === 'confirmation' && typeof part.message === 'string') {
861
+ description = part.message;
862
+ }
863
+ else if (part.kind === 'toolInvocation') {
864
+ const toolInvocation = part;
865
+ const state = toolInvocation.state.get();
866
+ description = toolInvocation.generatedTitle || toolInvocation.pastTenseMessage || toolInvocation.invocationMessage;
867
+ if (state.type === IChatToolInvocation.StateKind.WaitingForConfirmation) {
868
+ const confirmationTitle = toolInvocation.confirmationMessages?.title;
869
+ const titleMessage = confirmationTitle && (typeof confirmationTitle === 'string'
870
+ ? confirmationTitle
871
+ : confirmationTitle.value);
872
+ const descriptionValue = typeof description === 'string' ? description : description.value;
873
+ description = titleMessage ?? ( localize(5501, "Waiting for confirmation: {0}", descriptionValue));
874
+ }
875
+ }
876
+ else if (part.kind === 'toolInvocationSerialized') {
877
+ description = part.invocationMessage;
878
+ }
879
+ else if (part.kind === 'progressMessage') {
880
+ description = part.content;
881
+ }
882
+ else if (part.kind === 'thinking') {
883
+ description = ( localize(5502, 'Thinking...'));
884
+ }
708
885
  }
709
- const chatSessionItem = await provider.provideNewChatSessionItem(options, token);
710
- this._onDidChangeSessionItems.fire(chatSessionType);
711
- return chatSessionItem;
886
+ return renderAsPlaintext(description, { useLinkFormatter: true });
712
887
  }
713
888
  async getOrCreateChatSession(sessionResource, token) {
714
889
  const existingSessionData = this._sessions.get(sessionResource);
@@ -774,6 +949,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
774
949
  else {
775
950
  this._sessionTypeOptions.delete(chatSessionType);
776
951
  }
952
+ this._onDidChangeOptionGroups.fire(chatSessionType);
777
953
  }
778
954
  getOptionGroupsForSessionType(chatSessionType) {
779
955
  return this._sessionTypeOptions.get(chatSessionType);
@@ -791,6 +967,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
791
967
  for (const u of updates) {
792
968
  this.setSessionOption(sessionResource, u.optionId, u.value);
793
969
  }
970
+ this._onDidChangeSessionOptions.fire(sessionResource);
794
971
  }
795
972
  getIconForSessionType(chatSessionType) {
796
973
  const sessionTypeIcon = this._sessionTypeIcons.get(chatSessionType);
@@ -820,6 +997,9 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
820
997
  getContentProviderSchemes() {
821
998
  return Array.from(( this._contentProviders.keys()));
822
999
  }
1000
+ isChatSessionInProgressStatus(state) {
1001
+ return state === ChatSessionStatus.InProgress || state === ChatSessionStatus.NeedsInput;
1002
+ }
823
1003
  };
824
1004
  ChatSessionsService = ( __decorate([
825
1005
  ( __param(0, ILogService)),