@codingame/monaco-vscode-chat-service-override 23.3.0 → 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
@@ -15,16 +15,16 @@ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/pl
15
15
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
16
16
  import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
17
17
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
18
- import { TerminalCapability } from '@codingame/monaco-vscode-10af0e5d-64cb-56de-b584-29ab4a355d15-common/vscode/vs/platform/terminal/common/capabilities/capabilities';
18
+ import { TerminalCapability } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/capabilities/capabilities';
19
19
  import { ITerminalLogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service';
20
20
  import { IRemoteAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
21
- import { TerminalToolConfirmationStorageKeys } from '@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common/vscode/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart';
21
+ import { TerminalToolConfirmationStorageKeys } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart';
22
22
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
23
23
  import { ToolDataSource, ToolInvocationPresentation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
24
24
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
25
25
  import { ITerminalChatService, ITerminalService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
26
26
  import { ITerminalProfileResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/common/terminal.service';
27
- import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-de235d7f-e72a-5adb-9256-acf6c64eb6f2-common/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
27
+ import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
28
28
  import { getRecommendedToolsOverRunInTerminal } from '../alternativeRecommendation.js';
29
29
  import { BasicExecuteStrategy } from '../executeStrategy/basicExecuteStrategy.js';
30
30
  import { NoneExecuteStrategy } from '../executeStrategy/noneExecuteStrategy.js';
@@ -43,17 +43,21 @@ import { CommandLineCdPrefixRewriter } from './commandLineRewriter/commandLineCd
43
43
  import { CommandLinePwshChainOperatorRewriter } from './commandLineRewriter/commandLinePwshChainOperatorRewriter.js';
44
44
  import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
45
45
  import { IHistoryService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/history/common/history.service';
46
+ import { TerminalCommandArtifactCollector } from './terminalCommandArtifactCollector.js';
47
+ import { isNumber, isString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
46
48
  import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
49
+ import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
47
50
 
48
51
  var RunInTerminalTool_1;
49
52
  const TOOL_REFERENCE_NAME = 'runInTerminal';
53
+ const LEGACY_TOOL_REFERENCE_FULL_NAMES = ['runCommands/runInTerminal'];
50
54
  function createPowerShellModelDescription(shell) {
51
55
  const isWinPwsh = isWindowsPowerShell(shell);
52
56
  return [
53
57
  `This tool allows you to execute ${isWinPwsh ? 'Windows PowerShell 5.1' : 'PowerShell'} commands in a persistent terminal session, preserving environment variables, working directory, and other context across multiple commands.`,
54
58
  '',
55
59
  'Command Execution:',
56
- '- Use semicolons ; to chain commands on one line, NEVER use && even when asked explicitly',
60
+ isWinPwsh ? '- Use semicolons ; to chain commands on one line, NEVER use && even when asked explicitly' : '- Prefer ; when chaining commands on one line',
57
61
  '- Prefer pipelines | for object-based data flow',
58
62
  '- Never create a sub-shell (eg. powershell -c "command") unless explicitly asked',
59
63
  '',
@@ -173,9 +177,10 @@ async function createRunInTerminalToolData(accessor) {
173
177
  return {
174
178
  id: 'run_in_terminal',
175
179
  toolReferenceName: TOOL_REFERENCE_NAME,
176
- displayName: ( localize(11890, 'Run in Terminal')),
180
+ legacyToolReferenceFullNames: LEGACY_TOOL_REFERENCE_FULL_NAMES,
181
+ displayName: ( localize(12031, 'Run in Terminal')),
177
182
  modelDescription,
178
- userDescription: ( localize(11891, 'Tool for running commands in the terminal')),
183
+ userDescription: ( localize(12032, 'Run commands in the terminal')),
179
184
  source: ToolDataSource.Internal,
180
185
  icon: Codicon.terminal,
181
186
  inputSchema: {
@@ -220,7 +225,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
220
225
  }
221
226
  return backgroundExecution.getOutput();
222
227
  }
223
- constructor(_chatService, _configurationService, _historyService, _instantiationService, _languageModelToolsService, _remoteAgentService, _storageService, _terminalChatService, _logService, _terminalService, _workspaceContextService) {
228
+ constructor(_chatService, _configurationService, _historyService, _instantiationService, _languageModelToolsService, _remoteAgentService, _storageService, _terminalChatService, _logService, _terminalService, _workspaceContextService, _chatWidgetService) {
224
229
  super();
225
230
  this._chatService = _chatService;
226
231
  this._configurationService = _configurationService;
@@ -233,11 +238,13 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
233
238
  this._logService = _logService;
234
239
  this._terminalService = _terminalService;
235
240
  this._workspaceContextService = _workspaceContextService;
241
+ this._chatWidgetService = _chatWidgetService;
236
242
  this._sessionTerminalAssociations = ( new Map());
237
243
  this._osBackend = this._remoteAgentService.getEnvironment().then(remoteEnv => remoteEnv?.os ?? OS);
238
244
  this._terminalToolCreator = this._instantiationService.createInstance(ToolTerminalCreator);
239
245
  this._treeSitterCommandParser = this._register(this._instantiationService.createInstance(TreeSitterCommandParser));
240
246
  this._telemetry = this._instantiationService.createInstance(RunInTerminalToolTelemetry);
247
+ this._commandArtifactCollector = this._instantiationService.createInstance(TerminalCommandArtifactCollector);
241
248
  this._profileFetcher = this._instantiationService.createInstance(TerminalProfileFetcher);
242
249
  this._commandLineRewriters = [
243
250
  this._register(this._instantiationService.createInstance(CommandLineCdPrefixRewriter)),
@@ -321,10 +328,23 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
321
328
  };
322
329
  }
323
330
  const commandLine = rewrittenCommand ?? args.command;
324
- const isEligibleForAutoApproval = this._configurationService.getValue(ChatConfiguration.EligibleForAutoApproval)?.[TOOL_REFERENCE_NAME] ?? true;
331
+ const isEligibleForAutoApproval = () => {
332
+ const config = this._configurationService.getValue(ChatConfiguration.EligibleForAutoApproval);
333
+ if (config && typeof config === 'object') {
334
+ if (Object.prototype.hasOwnProperty.call(config, TOOL_REFERENCE_NAME)) {
335
+ return config[TOOL_REFERENCE_NAME];
336
+ }
337
+ for (const legacyName of LEGACY_TOOL_REFERENCE_FULL_NAMES) {
338
+ if (Object.prototype.hasOwnProperty.call(config, legacyName)) {
339
+ return config[legacyName];
340
+ }
341
+ }
342
+ }
343
+ return true;
344
+ };
325
345
  const isAutoApproveEnabled = this._configurationService.getValue(TerminalChatAgentToolsSettingId.EnableAutoApprove) === true;
326
346
  const isAutoApproveWarningAccepted = this._storageService.getBoolean(TerminalToolConfirmationStorageKeys.TerminalAutoApproveWarningAccepted, StorageScope.APPLICATION, false);
327
- const isAutoApproveAllowed = isEligibleForAutoApproval && isAutoApproveEnabled && isAutoApproveWarningAccepted;
347
+ const isAutoApproveAllowed = isEligibleForAutoApproval() && isAutoApproveEnabled && isAutoApproveWarningAccepted;
328
348
  const commandLineAnalyzerOptions = {
329
349
  commandLine,
330
350
  cwd,
@@ -332,6 +352,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
332
352
  shell,
333
353
  treeSitterLanguage: isPowerShell(shell, os) ? TreeSitterCommandParserLanguage.PowerShell : TreeSitterCommandParserLanguage.Bash,
334
354
  terminalToolSessionId,
355
+ chatSessionId: context.chatSessionId,
335
356
  };
336
357
  const commandLineAnalyzerResults = await Promise.all(( this._commandLineAnalyzers.map(e => e.analyze(commandLineAnalyzerOptions))));
337
358
  const disclaimersRaw = commandLineAnalyzerResults.filter(e => e.disclaimers).flatMap(e => e.disclaimers);
@@ -342,17 +363,25 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
342
363
  { supportThemeIcons: true }
343
364
  ));
344
365
  }
345
- const customActions = isEligibleForAutoApproval ? ( commandLineAnalyzerResults.map(e => e.customActions ?? [])).flat() : undefined;
346
- toolSpecificData.autoApproveInfo = commandLineAnalyzerResults.find(e => e.autoApproveInfo)?.autoApproveInfo;
366
+ const analyzersIsAutoApproveAllowed = commandLineAnalyzerResults.every(e => e.isAutoApproveAllowed);
367
+ const customActions = isEligibleForAutoApproval() && analyzersIsAutoApproveAllowed ? ( commandLineAnalyzerResults.map(e => e.customActions ?? [])).flat() : undefined;
347
368
  let shellType = basename(shell, '.exe');
348
369
  if (shellType === 'powershell') {
349
370
  shellType = 'pwsh';
350
371
  }
351
- const isFinalAutoApproved = isAutoApproveAllowed && commandLineAnalyzerResults.every(e => e.isAutoApproveAllowed);
372
+ const isFinalAutoApproved = (
373
+ (isAutoApproveAllowed &&
374
+ (
375
+ commandLineAnalyzerResults.some(e => e.isAutoApproved)) &&
376
+ commandLineAnalyzerResults.every(e => e.isAutoApproved !== false) &&
377
+ analyzersIsAutoApproveAllowed));
378
+ if (isFinalAutoApproved) {
379
+ toolSpecificData.autoApproveInfo = commandLineAnalyzerResults.find(e => e.autoApproveInfo)?.autoApproveInfo;
380
+ }
352
381
  const confirmationMessages = isFinalAutoApproved ? undefined : {
353
382
  title: args.isBackground
354
- ? ( localize(11892, "Run `{0}` command? (background terminal)", shellType))
355
- : ( localize(11893, "Run `{0}` command?", shellType)),
383
+ ? ( localize(12033, "Run `{0}` command? (background terminal)", shellType))
384
+ : ( localize(12034, "Run `{0}` command?", shellType)),
356
385
  message: ( new MarkdownString(args.explanation)),
357
386
  disclaimer,
358
387
  terminalCustomActions: customActions,
@@ -367,6 +396,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
367
396
  if (!toolSpecificData) {
368
397
  throw ( new Error('toolSpecificData must be provided for this tool'));
369
398
  }
399
+ const commandId = toolSpecificData.terminalCommandId;
370
400
  if (toolSpecificData.alternativeRecommendation) {
371
401
  return {
372
402
  content: [{
@@ -398,7 +428,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
398
428
  const toolTerminal = await (args.isBackground
399
429
  ? this._initBackgroundTerminal(chatSessionId, termId, terminalToolSessionId, token)
400
430
  : this._initForegroundTerminal(chatSessionId, termId, terminalToolSessionId, token));
401
- this._handleTerminalVisibility(toolTerminal);
431
+ this._handleTerminalVisibility(toolTerminal, chatSessionId);
402
432
  const timingConnectMs = Date.now() - timingStart;
403
433
  const xterm = await toolTerminal.instance.xtermReadyPromise;
404
434
  if (!xterm) {
@@ -418,7 +448,6 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
418
448
  let pollingResult;
419
449
  try {
420
450
  this._logService.debug(`RunInTerminalTool: Starting background execution \`${command}\``);
421
- const commandId = toolSpecificData.terminalCommandId;
422
451
  const execution = ( new BackgroundTerminalExecution(toolTerminal.instance, xterm, command, chatSessionId, commandId));
423
452
  RunInTerminalTool_1._backgroundExecutions.set(termId, execution);
424
453
  outputMonitor = store.add(this._instantiationService.createInstance(OutputMonitor, execution, undefined, invocation.context, token, command));
@@ -427,6 +456,10 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
427
456
  if (token.isCancellationRequested) {
428
457
  throw ( new CancellationError());
429
458
  }
459
+ await this._commandArtifactCollector.capture(toolSpecificData, toolTerminal.instance, commandId);
460
+ const state = toolSpecificData.terminalCommandState ?? {};
461
+ state.timestamp = state.timestamp ?? timingStart;
462
+ toolSpecificData.terminalCommandState = state;
430
463
  let resultText = (didUserEditCommand
431
464
  ? `Note: The user manually edited the command to \`${command}\`, and that command is now running in terminal with ID=${termId}`
432
465
  : didToolEditCommand
@@ -514,12 +547,23 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
514
547
  outputMonitor = store.add(this._instantiationService.createInstance(OutputMonitor, { instance: toolTerminal.instance, sessionId: invocation.context?.sessionId, getOutput: (marker) => getOutput(toolTerminal.instance, marker ?? startMarker) }, undefined, invocation.context, token, command));
515
548
  }
516
549
  }));
517
- const commandId = toolSpecificData.terminalCommandId;
518
550
  const executeResult = await strategy.execute(command, token, commandId);
519
551
  toolTerminal.receivedUserInput = false;
520
552
  if (token.isCancellationRequested) {
521
553
  throw ( new CancellationError());
522
554
  }
555
+ await this._commandArtifactCollector.capture(toolSpecificData, toolTerminal.instance, commandId);
556
+ {
557
+ const state = toolSpecificData.terminalCommandState ?? {};
558
+ state.timestamp = state.timestamp ?? timingStart;
559
+ if (executeResult.exitCode !== undefined) {
560
+ state.exitCode = executeResult.exitCode;
561
+ if (state.timestamp !== undefined) {
562
+ state.duration = state.duration ?? Math.max(0, Date.now() - state.timestamp);
563
+ }
564
+ }
565
+ toolSpecificData.terminalCommandState = state;
566
+ }
523
567
  this._logService.debug(`RunInTerminalTool: Finished \`${strategy.type}\` execute strategy with exitCode \`${executeResult.exitCode}\`, result.length \`${executeResult.output?.length}\`, error \`${executeResult.error}\``);
524
568
  outputLineCount = executeResult.output === undefined ? 0 : count(executeResult.output.trim(), '\n') + 1;
525
569
  exitCode = executeResult.exitCode;
@@ -588,8 +632,9 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
588
632
  };
589
633
  }
590
634
  }
591
- _handleTerminalVisibility(toolTerminal) {
592
- if (this._configurationService.getValue(TerminalChatAgentToolsSettingId.OutputLocation) === 'terminal') {
635
+ _handleTerminalVisibility(toolTerminal, chatSessionId) {
636
+ const chatSessionOpenInWidget = !!this._chatWidgetService.getWidgetBySessionResource(LocalChatSessionUri.forSession(chatSessionId));
637
+ if (this._configurationService.getValue(TerminalChatAgentToolsSettingId.OutputLocation) === 'terminal' && chatSessionOpenInWidget) {
593
638
  this._terminalService.setActiveInstance(toolTerminal.instance);
594
639
  this._terminalService.revealTerminal(toolTerminal.instance, true);
595
640
  }
@@ -678,7 +723,7 @@ let RunInTerminalTool = class RunInTerminalTool extends Disposable {
678
723
  terminal.processReady.then(() => terminal.processId),
679
724
  timeout(5000).then(() => { throw ( new Error('Timeout')); })
680
725
  ]);
681
- if (typeof pid === 'number') {
726
+ if (isNumber(pid)) {
682
727
  const storedAssociations = this._storageService.get(TerminalToolStorageKeysInternal.TerminalSession, StorageScope.WORKSPACE, '{}');
683
728
  const associations = JSON.parse(storedAssociations);
684
729
  const existingAssociation = associations[pid] || {};
@@ -741,7 +786,8 @@ RunInTerminalTool = RunInTerminalTool_1 = ( __decorate([
741
786
  ( __param(7, ITerminalChatService)),
742
787
  ( __param(8, ITerminalLogService)),
743
788
  ( __param(9, ITerminalService)),
744
- ( __param(10, IWorkspaceContextService))
789
+ ( __param(10, IWorkspaceContextService)),
790
+ ( __param(11, IChatWidgetService))
745
791
  ], RunInTerminalTool));
746
792
  class BackgroundTerminalExecution extends Disposable {
747
793
  constructor(instance, _xterm, _commandLine, sessionId, commandId) {
@@ -810,7 +856,7 @@ let TerminalProfileFetcher = class TerminalProfileFetcher {
810
856
  if (profile === null || profile === undefined || typeof profile !== 'object') {
811
857
  return false;
812
858
  }
813
- if ('path' in profile && typeof profile.path === 'string') {
859
+ if ('path' in profile && isString(profile.path)) {
814
860
  return true;
815
861
  }
816
862
  return false;
@@ -7,7 +7,7 @@ import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench
7
7
  import { ITaskService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService.service';
8
8
  import { TaskRunSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/tasks';
9
9
  import { ITerminalService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
10
- import { resolveDependencyTasks, collectTerminalResults } from '../../taskHelpers.js';
10
+ import { resolveDependencyTasks, collectTerminalResults, tasksMatch } from '../../taskHelpers.js';
11
11
  import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
12
12
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
13
13
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
@@ -57,7 +57,7 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
57
57
  await this._fileService.writeFile(tasksJsonUri, VSBuffer.fromString(JSON.stringify(tasksJson, null, '\t')));
58
58
  _progress.report({ message: 'Updated tasks.json file' });
59
59
  }
60
- _progress.report({ message: ( new MarkdownString(( localize(11894, 'Resolving the task')))) });
60
+ _progress.report({ message: ( new MarkdownString(( localize(12035, 'Resolving the task')))) });
61
61
  let task;
62
62
  const start = Date.now();
63
63
  while (Date.now() - start < 5000 && !token.isCancellationRequested) {
@@ -68,9 +68,9 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
68
68
  await timeout(100);
69
69
  }
70
70
  if (!task) {
71
- return { content: [{ kind: 'text', value: `Task not found: ${args.task.label}` }], toolResultMessage: ( new MarkdownString(( localize(11895, 'Task not found: `{0}`', args.task.label)))) };
71
+ return { content: [{ kind: 'text', value: `Task not found: ${args.task.label}` }], toolResultMessage: ( new MarkdownString(( localize(12036, 'Task not found: `{0}`', args.task.label)))) };
72
72
  }
73
- _progress.report({ message: ( new MarkdownString(( localize(11896, 'Running task `{0}`', args.task.label)))) });
73
+ _progress.report({ message: ( new MarkdownString(( localize(12037, 'Running task `{0}`', args.task.label)))) });
74
74
  const raceResult = await Promise.race([this._tasksService.run(task, undefined, TaskRunSource.ChatAgent), timeout(3000)]);
75
75
  const result = raceResult && typeof raceResult === 'object' ? raceResult : undefined;
76
76
  const dependencyTasks = await resolveDependencyTasks(task, args.workspaceFolder, this._configurationService, this._tasksService);
@@ -78,13 +78,13 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
78
78
  const terminals = resources?.map(resource => this._terminalService.instances.find(t => t.resource.path === resource?.path && t.resource.scheme === resource.scheme)).filter(Boolean);
79
79
  if (!terminals || terminals.length === 0) {
80
80
  return { content: [{ kind: 'text', value: `Task started but no terminal was found for: ${args.task.label}` }], toolResultMessage: ( new MarkdownString(( localize(
81
- 11897,
81
+ 12038,
82
82
  'Task started but no terminal was found for: `{0}`',
83
83
  args.task.label
84
84
  )))) };
85
85
  }
86
86
  const store = ( new DisposableStore());
87
- const terminalResults = await collectTerminalResults(terminals, task, this._instantiationService, invocation.context, _progress, token, store, (terminalTask) => this._isTaskActive(terminalTask), dependencyTasks);
87
+ const terminalResults = await collectTerminalResults(terminals, task, this._instantiationService, invocation.context, _progress, token, store, (terminalTask) => this._isTaskActive(terminalTask), dependencyTasks, this._tasksService);
88
88
  store.dispose();
89
89
  for (const r of terminalResults) {
90
90
  this._telemetryService.publicLog2?.('copilotChat.runTaskTool.createAndRunTask', {
@@ -110,8 +110,8 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
110
110
  };
111
111
  }
112
112
  async _isTaskActive(task) {
113
- const activeTasks = await this._tasksService.getActiveTasks();
114
- return activeTasks?.some((t) => t._id === task._id);
113
+ const busyTasks = await this._tasksService.getBusyTasks();
114
+ return busyTasks?.some(t => tasksMatch(t, task)) ?? false;
115
115
  }
116
116
  async prepareToolInvocation(context, token) {
117
117
  const args = context.parameters;
@@ -119,26 +119,26 @@ let CreateAndRunTaskTool = class CreateAndRunTaskTool {
119
119
  const allTasks = await this._tasksService.tasks();
120
120
  if (allTasks?.find(t => t._label === task.label)) {
121
121
  return {
122
- invocationMessage: ( new MarkdownString(( localize(11898, 'Task `{0}` already exists.', task.label)))),
123
- pastTenseMessage: ( new MarkdownString(( localize(11899, 'Task `{0}` already exists.', task.label)))),
122
+ invocationMessage: ( new MarkdownString(( localize(12039, 'Task `{0}` already exists.', task.label)))),
123
+ pastTenseMessage: ( new MarkdownString(( localize(12040, 'Task `{0}` already exists.', task.label)))),
124
124
  confirmationMessages: undefined
125
125
  };
126
126
  }
127
127
  const activeTasks = await this._tasksService.getActiveTasks();
128
128
  if (activeTasks.find(t => t._label === task.label)) {
129
129
  return {
130
- invocationMessage: ( new MarkdownString(( localize(11900, 'Task \`{0}\` is already running.', task.label)))),
131
- pastTenseMessage: ( new MarkdownString(( localize(11900, 'Task \`{0}\` is already running.', task.label)))),
130
+ invocationMessage: ( new MarkdownString(( localize(12041, 'Task \`{0}\` is already running.', task.label)))),
131
+ pastTenseMessage: ( new MarkdownString(( localize(12041, 'Task \`{0}\` is already running.', task.label)))),
132
132
  confirmationMessages: undefined
133
133
  };
134
134
  }
135
135
  return {
136
- invocationMessage: ( new MarkdownString(( localize(11901, 'Created task \`{0}\`', task.label)))),
137
- pastTenseMessage: ( new MarkdownString(( localize(11902, 'Created task \`{0}\`', task.label)))),
136
+ invocationMessage: ( new MarkdownString(( localize(12042, 'Created task \`{0}\`', task.label)))),
137
+ pastTenseMessage: ( new MarkdownString(( localize(12043, 'Created task \`{0}\`', task.label)))),
138
138
  confirmationMessages: {
139
- title: ( localize(11903, 'Allow task creation and execution?')),
139
+ title: ( localize(12044, 'Allow task creation and execution?')),
140
140
  message: ( new MarkdownString(( localize(
141
- 11904,
141
+ 12045,
142
142
  'A task \`{0}\` with command \`{1}\`{2} will be created.',
143
143
  task.label,
144
144
  task.command,
@@ -159,12 +159,10 @@ CreateAndRunTaskTool = ( __decorate([
159
159
  const CreateAndRunTaskToolData = {
160
160
  id: 'create_and_run_task',
161
161
  toolReferenceName: 'createAndRunTask',
162
- displayName: ( localize(11905, 'Create and run Task')),
163
- modelDescription: ( localize(
164
- 11906,
165
- 'Creates and runs a build, run, or custom task for the workspace by generating or adding to a tasks.json file based on the project structure (such as package.json or README.md). If the user asks to build, run, launch and they have no tasks.json file, use this tool. If they ask to create or add a task, use this tool.'
166
- )),
167
- userDescription: ( localize(11907, "Create and run a task in the workspace")),
162
+ legacyToolReferenceFullNames: ['runTasks/createAndRunTask'],
163
+ displayName: ( localize(12046, 'Create and run Task')),
164
+ modelDescription: 'Creates and runs a build, run, or custom task for the workspace by generating or adding to a tasks.json file based on the project structure (such as package.json or README.md). If the user asks to build, run, launch and they have no tasks.json file, use this tool. If they ask to create or add a task, use this tool.',
165
+ userDescription: ( localize(12047, "Create and run a task in the workspace")),
168
166
  source: ToolDataSource.Internal,
169
167
  inputSchema: {
170
168
  'type': 'object',
@@ -7,16 +7,17 @@ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/pl
7
7
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
8
8
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
9
9
  import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
10
- import { TasksAvailableContext } from '@codingame/monaco-vscode-05a2a821-e4de-5941-b7f9-bbf01c09f229-common/vscode/vs/workbench/contrib/tasks/common/taskService';
10
+ import { TasksAvailableContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService';
11
11
  import { ITaskService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService.service';
12
12
  import { ITerminalService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
13
- import { getTaskDefinition, getTaskForTool, resolveDependencyTasks, collectTerminalResults } from '../../taskHelpers.js';
13
+ import { getTaskDefinition, getTaskForTool, resolveDependencyTasks, collectTerminalResults, tasksMatch } from '../../taskHelpers.js';
14
14
  import { toolResultDetailsFromResponse, toolResultMessageFromResponse } from './taskHelpers.js';
15
15
 
16
16
  const GetTaskOutputToolData = {
17
17
  id: 'get_task_output',
18
18
  toolReferenceName: 'getTaskOutput',
19
- displayName: ( localize(11908, 'Get Task Output')),
19
+ legacyToolReferenceFullNames: ['runTasks/getTaskOutput'],
20
+ displayName: ( localize(12048, 'Get Task Output')),
20
21
  modelDescription: 'Get the output of a task',
21
22
  source: ToolDataSource.Internal,
22
23
  when: TasksAvailableContext,
@@ -52,16 +53,16 @@ let GetTaskOutputTool = class GetTaskOutputTool extends Disposable {
52
53
  const taskDefinition = getTaskDefinition(args.id);
53
54
  const task = await getTaskForTool(args.id, taskDefinition, args.workspaceFolder, this._configurationService, this._tasksService, true);
54
55
  if (!task) {
55
- return { invocationMessage: ( new MarkdownString(( localize(11909, 'Task not found: `{0}`', args.id)))) };
56
+ return { invocationMessage: ( new MarkdownString(( localize(12049, 'Task not found: `{0}`', args.id)))) };
56
57
  }
57
58
  const taskLabel = task._label;
58
59
  const activeTasks = await this._tasksService.getActiveTasks();
59
60
  if (activeTasks.includes(task)) {
60
- return { invocationMessage: ( new MarkdownString(( localize(11910, 'The task `{0}` is already running.', taskLabel)))) };
61
+ return { invocationMessage: ( new MarkdownString(( localize(12050, 'The task `{0}` is already running.', taskLabel)))) };
61
62
  }
62
63
  return {
63
- invocationMessage: ( new MarkdownString(( localize(11911, 'Checking output for task `{0}`', taskLabel)))),
64
- pastTenseMessage: ( new MarkdownString(( localize(11912, 'Checked output for task `{0}`', taskLabel)))),
64
+ invocationMessage: ( new MarkdownString(( localize(12051, 'Checking output for task `{0}`', taskLabel)))),
65
+ pastTenseMessage: ( new MarkdownString(( localize(12052, 'Checked output for task `{0}`', taskLabel)))),
65
66
  };
66
67
  }
67
68
  async invoke(invocation, _countTokens, _progress, token) {
@@ -69,17 +70,17 @@ let GetTaskOutputTool = class GetTaskOutputTool extends Disposable {
69
70
  const taskDefinition = getTaskDefinition(args.id);
70
71
  const task = await getTaskForTool(args.id, taskDefinition, args.workspaceFolder, this._configurationService, this._tasksService, true);
71
72
  if (!task) {
72
- return { content: [{ kind: 'text', value: `Task not found: ${args.id}` }], toolResultMessage: ( new MarkdownString(( localize(11909, 'Task not found: `{0}`', args.id)))) };
73
+ return { content: [{ kind: 'text', value: `Task not found: ${args.id}` }], toolResultMessage: ( new MarkdownString(( localize(12049, 'Task not found: `{0}`', args.id)))) };
73
74
  }
74
75
  const dependencyTasks = await resolveDependencyTasks(task, args.workspaceFolder, this._configurationService, this._tasksService);
75
76
  const resources = this._tasksService.getTerminalsForTasks(dependencyTasks ?? task);
76
77
  const taskLabel = task._label;
77
78
  const terminals = resources?.map(resource => this._terminalService.instances.find(t => t.resource.path === resource?.path && t.resource.scheme === resource.scheme)).filter(t => !!t);
78
79
  if (!terminals || terminals.length === 0) {
79
- return { content: [{ kind: 'text', value: `Terminal not found for task ${taskLabel}` }], toolResultMessage: ( new MarkdownString(( localize(11913, 'Terminal not found for task `{0}`', taskLabel)))) };
80
+ return { content: [{ kind: 'text', value: `Terminal not found for task ${taskLabel}` }], toolResultMessage: ( new MarkdownString(( localize(12053, 'Terminal not found for task `{0}`', taskLabel)))) };
80
81
  }
81
82
  const store = ( new DisposableStore());
82
- const terminalResults = await collectTerminalResults(terminals, task, this._instantiationService, invocation.context, _progress, token, store, (terminalTask) => this._isTaskActive(terminalTask), dependencyTasks);
83
+ const terminalResults = await collectTerminalResults(terminals, task, this._instantiationService, invocation.context, _progress, token, store, (terminalTask) => this._isTaskActive(terminalTask), dependencyTasks, this._tasksService);
83
84
  store.dispose();
84
85
  for (const r of terminalResults) {
85
86
  this._telemetryService.publicLog2?.('copilotChat.getTaskOutputTool.get', {
@@ -105,8 +106,8 @@ let GetTaskOutputTool = class GetTaskOutputTool extends Disposable {
105
106
  };
106
107
  }
107
108
  async _isTaskActive(task) {
108
- const activeTasks = await this._tasksService.getActiveTasks();
109
- return activeTasks?.some((t) => t._id === task._id);
109
+ const busyTasks = await this._tasksService.getBusyTasks();
110
+ return busyTasks?.some(t => tasksMatch(t, task)) ?? false;
110
111
  }
111
112
  };
112
113
  GetTaskOutputTool = ( __decorate([
@@ -4,11 +4,11 @@ import { timeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/asyn
4
4
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
5
5
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
6
6
  import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
7
- import { TasksAvailableContext } from '@codingame/monaco-vscode-05a2a821-e4de-5941-b7f9-bbf01c09f229-common/vscode/vs/workbench/contrib/tasks/common/taskService';
7
+ import { TasksAvailableContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService';
8
8
  import { ITaskService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService.service';
9
9
  import { TaskRunSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/tasks';
10
10
  import { ITerminalService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
11
- import { getTaskDefinition, getTaskForTool, resolveDependencyTasks, collectTerminalResults } from '../../taskHelpers.js';
11
+ import { getTaskDefinition, getTaskForTool, resolveDependencyTasks, collectTerminalResults, tasksMatch } from '../../taskHelpers.js';
12
12
  import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
13
13
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
14
14
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
@@ -32,26 +32,26 @@ let RunTaskTool = class RunTaskTool {
32
32
  const taskDefinition = getTaskDefinition(args.id);
33
33
  const task = await getTaskForTool(args.id, taskDefinition, args.workspaceFolder, this._configurationService, this._tasksService, true);
34
34
  if (!task) {
35
- return { content: [{ kind: 'text', value: `Task not found: ${args.id}` }], toolResultMessage: ( new MarkdownString(( localize(11914, 'Task not found: `{0}`', args.id)))) };
35
+ return { content: [{ kind: 'text', value: `Task not found: ${args.id}` }], toolResultMessage: ( new MarkdownString(( localize(12054, 'Task not found: `{0}`', args.id)))) };
36
36
  }
37
37
  const taskLabel = task._label;
38
38
  const activeTasks = await this._tasksService.getActiveTasks();
39
39
  if (activeTasks.includes(task)) {
40
- return { content: [{ kind: 'text', value: `The task ${taskLabel} is already running.` }], toolResultMessage: ( new MarkdownString(( localize(11915, 'The task `{0}` is already running.', taskLabel)))) };
40
+ return { content: [{ kind: 'text', value: `The task ${taskLabel} is already running.` }], toolResultMessage: ( new MarkdownString(( localize(12055, 'The task `{0}` is already running.', taskLabel)))) };
41
41
  }
42
42
  const raceResult = await Promise.race([this._tasksService.run(task, undefined, TaskRunSource.ChatAgent), timeout(3000)]);
43
43
  const result = raceResult && typeof raceResult === 'object' ? raceResult : undefined;
44
44
  const dependencyTasks = await resolveDependencyTasks(task, args.workspaceFolder, this._configurationService, this._tasksService);
45
45
  const resources = this._tasksService.getTerminalsForTasks(dependencyTasks ?? task);
46
46
  if (!resources || resources.length === 0) {
47
- return { content: [{ kind: 'text', value: `Task started but no terminal was found for: ${taskLabel}` }], toolResultMessage: ( new MarkdownString(( localize(11916, 'Task started but no terminal was found for: `{0}`', taskLabel)))) };
47
+ return { content: [{ kind: 'text', value: `Task started but no terminal was found for: ${taskLabel}` }], toolResultMessage: ( new MarkdownString(( localize(12056, 'Task started but no terminal was found for: `{0}`', taskLabel)))) };
48
48
  }
49
49
  const terminals = this._terminalService.instances.filter(t => ( resources.some(r => r.path === t.resource.path && r.scheme === t.resource.scheme)));
50
50
  if (terminals.length === 0) {
51
- return { content: [{ kind: 'text', value: `Task started but no terminal was found for: ${taskLabel}` }], toolResultMessage: ( new MarkdownString(( localize(11916, 'Task started but no terminal was found for: `{0}`', taskLabel)))) };
51
+ return { content: [{ kind: 'text', value: `Task started but no terminal was found for: ${taskLabel}` }], toolResultMessage: ( new MarkdownString(( localize(12056, 'Task started but no terminal was found for: `{0}`', taskLabel)))) };
52
52
  }
53
53
  const store = ( new DisposableStore());
54
- const terminalResults = await collectTerminalResults(terminals, task, this._instantiationService, invocation.context, _progress, token, store, (terminalTask) => this._isTaskActive(terminalTask), dependencyTasks);
54
+ const terminalResults = await collectTerminalResults(terminals, task, this._instantiationService, invocation.context, _progress, token, store, (terminalTask) => this._isTaskActive(terminalTask), dependencyTasks, this._tasksService);
55
55
  store.dispose();
56
56
  for (const r of terminalResults) {
57
57
  this._telemetryService.publicLog2?.('copilotChat.runTaskTool.run', {
@@ -77,35 +77,35 @@ let RunTaskTool = class RunTaskTool {
77
77
  };
78
78
  }
79
79
  async _isTaskActive(task) {
80
- const activeTasks = await this._tasksService.getActiveTasks();
81
- return Promise.resolve(activeTasks?.some((t) => t._id === task._id));
80
+ const busyTasks = await this._tasksService.getBusyTasks();
81
+ return busyTasks?.some(t => tasksMatch(t, task)) ?? false;
82
82
  }
83
83
  async prepareToolInvocation(context, token) {
84
84
  const args = context.parameters;
85
85
  const taskDefinition = getTaskDefinition(args.id);
86
86
  const task = await getTaskForTool(args.id, taskDefinition, args.workspaceFolder, this._configurationService, this._tasksService, true);
87
87
  if (!task) {
88
- return { invocationMessage: ( new MarkdownString(( localize(11914, 'Task not found: `{0}`', args.id)))) };
88
+ return { invocationMessage: ( new MarkdownString(( localize(12054, 'Task not found: `{0}`', args.id)))) };
89
89
  }
90
90
  const taskLabel = task._label;
91
91
  const activeTasks = await this._tasksService.getActiveTasks();
92
92
  if (task && activeTasks.includes(task)) {
93
- return { invocationMessage: ( new MarkdownString(( localize(11917, 'The task is already running.')))) };
93
+ return { invocationMessage: ( new MarkdownString(( localize(12057, 'The task is already running.')))) };
94
94
  }
95
95
  if (await this._isTaskActive(task)) {
96
96
  return {
97
- invocationMessage: ( new MarkdownString(( localize(11918, '`{0}` is already running.', taskLabel)))),
98
- pastTenseMessage: ( new MarkdownString(( localize(11919, '`{0}` was already running.', taskLabel)))),
97
+ invocationMessage: ( new MarkdownString(( localize(12058, '`{0}` is already running.', taskLabel)))),
98
+ pastTenseMessage: ( new MarkdownString(( localize(12059, '`{0}` was already running.', taskLabel)))),
99
99
  confirmationMessages: undefined
100
100
  };
101
101
  }
102
102
  return {
103
- invocationMessage: ( new MarkdownString(( localize(11920, 'Running `{0}`', taskLabel)))),
103
+ invocationMessage: ( new MarkdownString(( localize(12060, 'Running `{0}`', taskLabel)))),
104
104
  pastTenseMessage: ( new MarkdownString(task?.configurationProperties.isBackground
105
- ? ( localize(11921, 'Started `{0}`', taskLabel))
106
- : ( localize(11922, 'Ran `{0}`', taskLabel)))),
105
+ ? ( localize(12061, 'Started `{0}`', taskLabel))
106
+ : ( localize(12062, 'Ran `{0}`', taskLabel)))),
107
107
  confirmationMessages: task
108
- ? { title: ( localize(11923, 'Allow task run?')), message: ( localize(11924, 'Allow to run the task `{0}`?', taskLabel)) }
108
+ ? { title: ( localize(12063, 'Allow task run?')), message: ( localize(12064, 'Allow to run the task `{0}`?', taskLabel)) }
109
109
  : undefined
110
110
  };
111
111
  }
@@ -120,9 +120,10 @@ RunTaskTool = ( __decorate([
120
120
  const RunTaskToolData = {
121
121
  id: 'run_task',
122
122
  toolReferenceName: 'runTask',
123
- displayName: ( localize(11925, 'Run Task')),
123
+ legacyToolReferenceFullNames: ['runTasks/runTask'],
124
+ displayName: ( localize(12065, 'Run Task')),
124
125
  modelDescription: 'Runs a VS Code task.\n\n- If you see that an appropriate task exists for building or running code, prefer to use this tool to run the task instead of using the run_in_terminal tool.\n- Make sure that any appropriate build or watch task is running before trying to run tests or execute code.\n- If the user asks to run a task, use this tool to do so.',
125
- userDescription: ( localize(11926, 'Tool for running tasks in the workspace')),
126
+ userDescription: ( localize(12066, 'Run tasks in the workspace')),
126
127
  icon: Codicon.tools,
127
128
  source: ToolDataSource.Internal,
128
129
  when: TasksAvailableContext,
@@ -1,7 +1,7 @@
1
1
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
2
2
  import { Location } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages";
3
3
  import { Range } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range";
4
- import { ITaskSummary } from "@codingame/monaco-vscode-05a2a821-e4de-5941-b7f9-bbf01c09f229-common/vscode/vs/workbench/contrib/tasks/common/taskService";
4
+ import { ITaskSummary } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService";
5
5
  import { OutputMonitorState } from "../monitoring/types.js";
6
6
  import { MarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent";
7
7
  export declare function toolResultDetailsFromResponse(terminalResults: {
@@ -17,7 +17,7 @@ function toolResultDetailsFromResponse(terminalResults) {
17
17
  function toolResultMessageFromResponse(result, taskLabel, toolResultDetails, terminalResults, getOutputTool) {
18
18
  let resultSummary = '';
19
19
  if (result?.exitCode) {
20
- resultSummary = ( localize(11927, 'Task `{0}` failed with exit code {1}.', taskLabel, result.exitCode));
20
+ resultSummary = ( localize(12067, 'Task `{0}` failed with exit code {1}.', taskLabel, result.exitCode));
21
21
  }
22
22
  else {
23
23
  resultSummary += `\`${taskLabel}\` task `;
@@ -0,0 +1,12 @@
1
+ import { IChatTerminalToolInvocationData } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService";
2
+ import { ITerminalInstance } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
3
+ import { ITerminalLogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service";
4
+ export declare class TerminalCommandArtifactCollector {
5
+ private readonly _logService;
6
+ constructor(_logService: ITerminalLogService);
7
+ capture(toolSpecificData: IChatTerminalToolInvocationData, instance: ITerminalInstance, commandId: string | undefined): Promise<void>;
8
+ private _captureCommandOutput;
9
+ private _applyTheme;
10
+ private _createTerminalCommandUri;
11
+ private _tryGetCommand;
12
+ }