@codingame/monaco-vscode-chat-service-override 25.1.2 → 26.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/index.js +24 -3
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +23 -3
  4. package/vscode/src/vs/platform/browserElements/common/browserElements.js +13 -6
  5. package/vscode/src/vs/platform/domWidget/browser/domWidget.js +4 -4
  6. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +42 -27
  8. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +14 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +218 -74
  10. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatTerminalOutputAccessibleView.js +6 -8
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +14 -9
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +165 -168
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +27 -25
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +141 -140
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +189 -121
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +14 -15
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +60 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +435 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +28 -12
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +10 -12
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +37 -16
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.d.ts +11 -0
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +54 -24
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +73 -34
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +71 -30
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +151 -89
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +12 -15
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +39 -40
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +90 -125
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +5 -2
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +263 -143
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.js +4 -4
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +188 -126
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -1
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +37 -28
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +21 -9
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +392 -226
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +31 -27
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +25 -23
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +1 -3
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.d.ts +2 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +13 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +20 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +83 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +68 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +319 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.d.ts +1 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +215 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +179 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +951 -0
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agentsessionprojection.css +20 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +388 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/unifiedQuickAccess.css +195 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +120 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +394 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.d.ts +38 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +95 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +3 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +31 -29
  61. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +49 -47
  62. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +4 -6
  63. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/media/simpleBrowserOverlay.css +0 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +188 -151
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +1012 -639
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +256 -151
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +8 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +182 -101
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +79 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +193 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +9 -7
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.d.ts +68 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +253 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +69 -50
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -4
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +52 -33
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +5 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +274 -155
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +2 -10
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +130 -104
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +12 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +385 -160
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +53 -36
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +112 -75
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +19 -10
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +31 -11
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +39 -17
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNewNotebookContentEdits.js +10 -14
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +0 -2
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +25 -16
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +265 -203
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +29 -26
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.js +114 -60
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +16 -19
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +44 -30
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +119 -45
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +152 -136
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +12 -8
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +51 -31
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +323 -217
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -3
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +653 -401
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +52 -40
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +5 -2
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +43 -28
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +182 -136
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +33 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +548 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +222 -138
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +3 -3
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +151 -113
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +6 -4
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +453 -217
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +162 -88
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/media/chatSetup.css +2 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +0 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +1 -13
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +309 -233
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +55 -53
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.js +3 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +37 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +109 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +35 -23
  132. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.d.ts +9 -4
  133. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +73 -33
  134. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +47 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +333 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +39 -25
  137. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +9 -5
  138. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +23 -20
  139. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +20 -16
  141. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +65 -57
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +48 -36
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +20 -12
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +52 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +155 -159
  147. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +24 -14
  148. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +521 -246
  149. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +107 -76
  150. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +28 -24
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.js +10 -6
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.d.ts +16 -0
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.js +57 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatLayoutService.js +4 -6
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +56 -44
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +0 -3
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +37 -47
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatEditorInputContentProvider.js +5 -7
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +10 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +1284 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +179 -125
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +9 -11
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/editorHoverWrapper.js +7 -6
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +96 -78
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +58 -53
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +25 -11
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +484 -292
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.d.ts +1 -6
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +65 -92
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +16 -19
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +1 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +9 -1
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +331 -189
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +81 -93
  175. package/vscode/src/vs/workbench/contrib/chat/common/ignoredFiles.js +1 -3
  176. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -3
  177. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +6 -7
  178. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +36 -8
  179. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +169 -31
  180. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.d.ts +6 -0
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +141 -0
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -4
  183. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +218 -144
  184. package/vscode/src/vs/workbench/contrib/chat/common/model/chatTransferService.js +20 -10
  185. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +109 -0
  186. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +349 -0
  187. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +9 -8
  188. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +9 -0
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +139 -36
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +3 -6
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +64 -51
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +49 -34
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +21 -13
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +125 -97
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +91 -131
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +8 -5
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +488 -222
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +32 -12
  201. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +58 -13
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +717 -200
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +79 -18
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +371 -130
  205. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +0 -1
  206. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +3 -7
  207. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +79 -61
  208. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +27 -21
  209. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +7 -10
  210. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -1
  211. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +26 -32
  212. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +2 -2
  213. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -60
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +115 -426
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +15 -0
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +127 -0
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -37
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +16 -0
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +21 -0
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +51 -0
  221. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +334 -0
  222. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.d.ts +41 -0
  223. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +424 -0
  224. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.d.ts +4 -0
  225. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +58 -0
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.d.ts +7 -0
  227. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +195 -0
  228. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.d.ts +8 -0
  229. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +368 -0
  230. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.d.ts +2 -0
  231. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +7 -0
  232. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +1 -1
  234. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +23 -25
  235. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/common/remoteCodingAgentsService.js +7 -8
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +34 -38
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +8 -12
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +103 -95
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +28 -16
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +4 -5
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +12 -8
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +65 -54
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +86 -60
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +13 -26
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -1
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +56 -46
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +2 -2
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +63 -31
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +2 -1
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +35 -30
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -1
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +44 -37
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +3 -4
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +3 -3
  258. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -0
  259. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +70 -50
  260. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +26 -394
  261. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +85 -49
  262. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +68 -27
  263. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +1 -0
  264. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +67 -45
  265. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.d.ts +12 -0
  266. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +106 -0
  267. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +2 -2
  268. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +177 -97
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +136 -49
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +2 -1
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +128 -112
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +51 -49
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +8 -0
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +25 -0
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +12 -0
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +21 -0
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +5 -14
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +2 -4
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +1 -0
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -0
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +29 -0
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +30 -31
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +16 -17
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +19 -20
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.d.ts +11 -0
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +58 -0
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +31 -3
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +325 -199
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -1
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +1 -1
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +33 -38
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +45 -5
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +746 -456
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +145 -98
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +88 -37
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +120 -51
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +25 -28
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +5 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +58 -12
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +12 -0
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.js +17 -0
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +8 -1
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +47 -28
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +37 -0
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +171 -0
  313. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +0 -58
  314. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +0 -213
  315. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +0 -39
  316. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +0 -243
  317. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.d.ts +0 -7
  318. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +0 -41
  319. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +0 -166
  320. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +0 -607
  321. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +0 -255
  322. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
  323. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -396
  324. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -9
  325. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -379
  326. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -117
  327. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +0 -141
  328. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +0 -961
  329. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +0 -36
  330. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +0 -447
  331. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.d.ts +0 -6
  332. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.js +0 -251
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.d.ts +0 -10
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +0 -42
@@ -15,9 +15,16 @@ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codi
15
15
  import { toolResultDetailsFromResponse, toolResultMessageFromResponse } from './taskHelpers.js';
16
16
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
17
17
  import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
18
+ import { TerminalToolId } from '../toolIds.js';
18
19
 
19
20
  let RunTaskTool = class RunTaskTool {
20
- constructor(_tasksService, _telemetryService, _terminalService, _configurationService, _instantiationService) {
21
+ constructor(
22
+ _tasksService,
23
+ _telemetryService,
24
+ _terminalService,
25
+ _configurationService,
26
+ _instantiationService
27
+ ) {
21
28
  this._tasksService = _tasksService;
22
29
  this._telemetryService = _telemetryService;
23
30
  this._terminalService = _terminalService;
@@ -27,34 +34,85 @@ let RunTaskTool = class RunTaskTool {
27
34
  async invoke(invocation, _countTokens, _progress, token) {
28
35
  const args = invocation.parameters;
29
36
  if (!invocation.context) {
30
- return { content: [{ kind: 'text', value: `No invocation context` }], toolResultMessage: `No invocation context` };
37
+ return {
38
+ content: [{
39
+ kind: "text",
40
+ value: `No invocation context`
41
+ }],
42
+ toolResultMessage: `No invocation context`
43
+ };
31
44
  }
32
45
  const taskDefinition = getTaskDefinition(args.id);
33
- const task = await getTaskForTool(args.id, taskDefinition, args.workspaceFolder, this._configurationService, this._tasksService, true);
46
+ const task = await getTaskForTool(
47
+ args.id,
48
+ taskDefinition,
49
+ args.workspaceFolder,
50
+ this._configurationService,
51
+ this._tasksService,
52
+ true
53
+ );
34
54
  if (!task) {
35
- return { content: [{ kind: 'text', value: `Task not found: ${args.id}` }], toolResultMessage: ( new MarkdownString(( localize(12082, 'Task not found: `{0}`', args.id)))) };
55
+ return {
56
+ content: [{
57
+ kind: "text",
58
+ value: `Task not found: ${args.id}`
59
+ }],
60
+ toolResultMessage: ( new MarkdownString(( localize(12423, "Task not found: `{0}`", args.id))))
61
+ };
36
62
  }
37
63
  const taskLabel = task._label;
38
64
  const activeTasks = await this._tasksService.getActiveTasks();
39
65
  if (activeTasks.includes(task)) {
40
- return { content: [{ kind: 'text', value: `The task ${taskLabel} is already running.` }], toolResultMessage: ( new MarkdownString(( localize(12083, 'The task `{0}` is already running.', taskLabel)))) };
66
+ return {
67
+ content: [{
68
+ kind: "text",
69
+ value: `The task ${taskLabel} is already running.`
70
+ }],
71
+ toolResultMessage: ( new MarkdownString(( localize(12424, "The task `{0}` is already running.", taskLabel))))
72
+ };
41
73
  }
42
- const raceResult = await Promise.race([this._tasksService.run(task, undefined, TaskRunSource.ChatAgent), timeout(3000)]);
43
- const result = raceResult && typeof raceResult === 'object' ? raceResult : undefined;
74
+ const raceResult = await Promise.race([
75
+ this._tasksService.run(task, undefined, TaskRunSource.ChatAgent),
76
+ timeout(3000)
77
+ ]);
78
+ const result = raceResult && typeof raceResult === "object" ? raceResult : undefined;
44
79
  const dependencyTasks = await resolveDependencyTasks(task, args.workspaceFolder, this._configurationService, this._tasksService);
45
80
  const resources = this._tasksService.getTerminalsForTasks(dependencyTasks ?? task);
46
81
  if (!resources || resources.length === 0) {
47
- return { content: [{ kind: 'text', value: `Task started but no terminal was found for: ${taskLabel}` }], toolResultMessage: ( new MarkdownString(( localize(12084, 'Task started but no terminal was found for: `{0}`', taskLabel)))) };
82
+ return {
83
+ content: [{
84
+ kind: "text",
85
+ value: `Task started but no terminal was found for: ${taskLabel}`
86
+ }],
87
+ toolResultMessage: ( new MarkdownString(( localize(12425, "Task started but no terminal was found for: `{0}`", taskLabel))))
88
+ };
48
89
  }
49
90
  const terminals = this._terminalService.instances.filter(t => ( resources.some(r => r.path === t.resource.path && r.scheme === t.resource.scheme)));
50
91
  if (terminals.length === 0) {
51
- return { content: [{ kind: 'text', value: `Task started but no terminal was found for: ${taskLabel}` }], toolResultMessage: ( new MarkdownString(( localize(12084, 'Task started but no terminal was found for: `{0}`', taskLabel)))) };
92
+ return {
93
+ content: [{
94
+ kind: "text",
95
+ value: `Task started but no terminal was found for: ${taskLabel}`
96
+ }],
97
+ toolResultMessage: ( new MarkdownString(( localize(12425, "Task started but no terminal was found for: `{0}`", taskLabel))))
98
+ };
52
99
  }
53
100
  const store = ( new DisposableStore());
54
- const terminalResults = await collectTerminalResults(terminals, task, this._instantiationService, invocation.context, _progress, token, store, (terminalTask) => this._isTaskActive(terminalTask), dependencyTasks, this._tasksService);
101
+ const terminalResults = await collectTerminalResults(
102
+ terminals,
103
+ task,
104
+ this._instantiationService,
105
+ invocation.context,
106
+ _progress,
107
+ token,
108
+ store,
109
+ terminalTask => this._isTaskActive(terminalTask),
110
+ dependencyTasks,
111
+ this._tasksService
112
+ );
55
113
  store.dispose();
56
114
  for (const r of terminalResults) {
57
- this._telemetryService.publicLog2?.('copilotChat.runTaskTool.run', {
115
+ this._telemetryService.publicLog2?.("copilotChat.runTaskTool.run", {
58
116
  taskId: args.id,
59
117
  bufferLength: r.output.length ?? 0,
60
118
  pollDurationMs: r.pollDurationMs ?? 0,
@@ -67,11 +125,21 @@ let RunTaskTool = class RunTaskTool {
67
125
  });
68
126
  }
69
127
  const details = ( terminalResults.map(r => `Terminal: ${r.name}\nOutput:\n${r.output}`));
70
- const uniqueDetails = Array.from(( new Set(details))).join('\n\n');
128
+ const uniqueDetails = Array.from(( new Set(details))).join("\n\n");
71
129
  const toolResultDetails = toolResultDetailsFromResponse(terminalResults);
72
- const toolResultMessage = toolResultMessageFromResponse(result, taskLabel, toolResultDetails, terminalResults, undefined, task.configurationProperties.isBackground);
130
+ const toolResultMessage = toolResultMessageFromResponse(
131
+ result,
132
+ taskLabel,
133
+ toolResultDetails,
134
+ terminalResults,
135
+ undefined,
136
+ task.configurationProperties.isBackground
137
+ );
73
138
  return {
74
- content: [{ kind: 'text', value: uniqueDetails }],
139
+ content: [{
140
+ kind: "text",
141
+ value: uniqueDetails
142
+ }],
75
143
  toolResultMessage,
76
144
  toolResultDetails
77
145
  };
@@ -83,66 +151,67 @@ let RunTaskTool = class RunTaskTool {
83
151
  async prepareToolInvocation(context, token) {
84
152
  const args = context.parameters;
85
153
  const taskDefinition = getTaskDefinition(args.id);
86
- const task = await getTaskForTool(args.id, taskDefinition, args.workspaceFolder, this._configurationService, this._tasksService, true);
154
+ const task = await getTaskForTool(
155
+ args.id,
156
+ taskDefinition,
157
+ args.workspaceFolder,
158
+ this._configurationService,
159
+ this._tasksService,
160
+ true
161
+ );
87
162
  if (!task) {
88
- return { invocationMessage: ( new MarkdownString(( localize(12082, 'Task not found: `{0}`', args.id)))) };
163
+ return {
164
+ invocationMessage: ( new MarkdownString(( localize(12423, "Task not found: `{0}`", args.id))))
165
+ };
89
166
  }
90
167
  const taskLabel = task._label;
91
168
  const activeTasks = await this._tasksService.getActiveTasks();
92
169
  if (task && activeTasks.includes(task)) {
93
- return { invocationMessage: ( new MarkdownString(( localize(12085, 'The task is already running.')))) };
170
+ return {
171
+ invocationMessage: ( new MarkdownString(( localize(12426, "The task is already running."))))
172
+ };
94
173
  }
95
174
  if (await this._isTaskActive(task)) {
96
175
  return {
97
- invocationMessage: ( new MarkdownString(( localize(12086, '`{0}` is already running.', taskLabel)))),
98
- pastTenseMessage: ( new MarkdownString(( localize(12087, '`{0}` was already running.', taskLabel)))),
176
+ invocationMessage: ( new MarkdownString(( localize(12427, "`{0}` is already running.", taskLabel)))),
177
+ pastTenseMessage: ( new MarkdownString(( localize(12428, "`{0}` was already running.", taskLabel)))),
99
178
  confirmationMessages: undefined
100
179
  };
101
180
  }
102
181
  return {
103
- invocationMessage: ( new MarkdownString(( localize(12088, 'Running `{0}`', taskLabel)))),
104
- pastTenseMessage: ( new MarkdownString(task?.configurationProperties.isBackground
105
- ? ( localize(12089, 'Started `{0}`', taskLabel))
106
- : ( localize(12090, 'Ran `{0}`', taskLabel)))),
107
- confirmationMessages: task
108
- ? { title: ( localize(12091, 'Allow task run?')), message: ( localize(12092, 'Allow to run the task `{0}`?', taskLabel)) }
109
- : undefined
182
+ invocationMessage: ( new MarkdownString(( localize(12429, "Running `{0}`", taskLabel)))),
183
+ pastTenseMessage: ( new MarkdownString(task?.configurationProperties.isBackground ? ( localize(12430, "Started `{0}`", taskLabel)) : ( localize(12431, "Ran `{0}`", taskLabel)))),
184
+ confirmationMessages: task ? {
185
+ title: ( localize(12432, "Allow task run?")),
186
+ message: ( localize(12433, "Allow to run the task `{0}`?", taskLabel))
187
+ } : undefined
110
188
  };
111
189
  }
112
190
  };
113
- RunTaskTool = ( __decorate([
114
- ( __param(0, ITaskService)),
115
- ( __param(1, ITelemetryService)),
116
- ( __param(2, ITerminalService)),
117
- ( __param(3, IConfigurationService)),
118
- ( __param(4, IInstantiationService))
119
- ], RunTaskTool));
191
+ RunTaskTool = ( __decorate([( __param(0, ITaskService)), ( __param(1, ITelemetryService)), ( __param(2, ITerminalService)), ( __param(3, IConfigurationService)), ( __param(4, IInstantiationService))], RunTaskTool));
120
192
  const RunTaskToolData = {
121
- id: 'run_task',
122
- toolReferenceName: 'runTask',
123
- legacyToolReferenceFullNames: ['runTasks/runTask'],
124
- displayName: ( localize(12093, 'Run Task')),
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.',
126
- userDescription: ( localize(12094, 'Run tasks in the workspace')),
193
+ id: TerminalToolId.RunTask,
194
+ toolReferenceName: "runTask",
195
+ legacyToolReferenceFullNames: ["runTasks/runTask"],
196
+ displayName: ( localize(12434, "Run Task")),
197
+ 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 ${TerminalToolId.RunInTerminal} 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.`,
198
+ userDescription: ( localize(12435, "Run tasks in the workspace")),
127
199
  icon: Codicon.tools,
128
200
  source: ToolDataSource.Internal,
129
201
  when: TasksAvailableContext,
130
202
  inputSchema: {
131
- 'type': 'object',
132
- 'properties': {
133
- 'workspaceFolder': {
134
- 'type': 'string',
135
- 'description': 'The workspace folder path containing the task'
203
+ "type": "object",
204
+ "properties": {
205
+ "workspaceFolder": {
206
+ "type": "string",
207
+ "description": "The workspace folder path containing the task"
136
208
  },
137
- 'id': {
138
- 'type': 'string',
139
- 'description': 'The task ID to run.'
209
+ "id": {
210
+ "type": "string",
211
+ "description": "The task ID to run."
140
212
  }
141
213
  },
142
- 'required': [
143
- 'workspaceFolder',
144
- 'id'
145
- ]
214
+ "required": ["workspaceFolder", "id"]
146
215
  }
147
216
  };
148
217
 
@@ -4,42 +4,39 @@ import { OutputMonitorState } from '../monitoring/types.js';
4
4
  import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
5
5
 
6
6
  function toolResultDetailsFromResponse(terminalResults) {
7
- return Array.from(( ( new Map(terminalResults
8
- .flatMap(r => r.resources?.filter(res => res.uri).map(res => {
9
- const range = res.range;
10
- const item = range !== undefined ? { uri: res.uri, range } : res.uri;
11
- const key = range !== undefined
12
- ? `${( res.uri.toString())}-${( range.toString())}`
13
- : `${( res.uri.toString())}`;
14
- return [key, item];
15
- }) ?? []))).values()));
7
+ return Array.from(( ( new Map(
8
+ terminalResults.flatMap(r => r.resources?.filter(res => res.uri).map(res => {
9
+ const range = res.range;
10
+ const item = range !== undefined ? {
11
+ uri: res.uri,
12
+ range
13
+ } : res.uri;
14
+ const key = range !== undefined ? `${( res.uri.toString())}-${( range.toString())}` : `${( res.uri.toString())}`;
15
+ return [key, item];
16
+ }) ?? [])
17
+ )).values()));
16
18
  }
17
- function toolResultMessageFromResponse(result, taskLabel, toolResultDetails, terminalResults, getOutputTool, isBackground) {
18
- let resultSummary = '';
19
+ function toolResultMessageFromResponse(
20
+ result,
21
+ taskLabel,
22
+ toolResultDetails,
23
+ terminalResults,
24
+ getOutputTool,
25
+ isBackground
26
+ ) {
27
+ let resultSummary = "";
19
28
  if (result?.exitCode) {
20
- resultSummary = ( localize(12095, 'Task `{0}` failed with exit code {1}.', taskLabel, result.exitCode));
21
- }
22
- else {
29
+ resultSummary = ( localize(12436, "Task `{0}` failed with exit code {1}.", taskLabel, result.exitCode));
30
+ } else {
23
31
  resultSummary += `\`${taskLabel}\` task `;
24
32
  const problemCount = toolResultDetails.length;
25
33
  if (getOutputTool) {
26
34
  return problemCount ? ( new MarkdownString(
27
- `Got output for ${resultSummary} with \`${problemCount}\` problem${problemCount === 1 ? '' : 's'}`
35
+ `Got output for ${resultSummary} with \`${problemCount}\` problem${problemCount === 1 ? "" : "s"}`
28
36
  )) : ( new MarkdownString(`Got output for ${resultSummary}`));
29
- }
30
- else {
37
+ } else {
31
38
  const problemCount = toolResultDetails.length;
32
- resultSummary += terminalResults.every(r => r.state === OutputMonitorState.Idle)
33
- ? (problemCount
34
- ? `finished with \`${problemCount}\` problem${problemCount === 1 ? '' : 's'}`
35
- : 'finished')
36
- : (isBackground
37
- ? (problemCount
38
- ? `started and will continue to run in the background with \`${problemCount}\` problem${problemCount === 1 ? '' : 's'}`
39
- : 'started and will continue to run in the background')
40
- : (problemCount
41
- ? `started with \`${problemCount}\` problem${problemCount === 1 ? '' : 's'}`
42
- : 'started'));
39
+ resultSummary += terminalResults.every(r => r.state === OutputMonitorState.Idle) ? (problemCount ? `finished with \`${problemCount}\` problem${problemCount === 1 ? "" : "s"}` : "finished") : (isBackground ? (problemCount ? `started and will continue to run in the background with \`${problemCount}\` problem${problemCount === 1 ? "" : "s"}` : "started and will continue to run in the background") : (problemCount ? `started with \`${problemCount}\` problem${problemCount === 1 ? "" : "s"}` : "started"));
43
40
  }
44
41
  }
45
42
  return ( new MarkdownString(resultSummary));
@@ -6,6 +6,11 @@ export declare class TerminalCommandArtifactCollector {
6
6
  constructor(_logService: ITerminalLogService);
7
7
  capture(toolSpecificData: IChatTerminalToolInvocationData, instance: ITerminalInstance, commandId: string | undefined): Promise<void>;
8
8
  private _captureCommandOutput;
9
+ /**
10
+ * Captures output from a partial/current command that hasn't finished yet.
11
+ * This is used when the command is cancelled mid-execution.
12
+ */
13
+ private _capturePartialCommandOutput;
9
14
  private _applyTheme;
10
15
  private _createTerminalCommandUri;
11
16
  private _tryGetCommand;
@@ -12,9 +12,11 @@ let TerminalCommandArtifactCollector = class TerminalCommandArtifactCollector {
12
12
  if (commandId) {
13
13
  try {
14
14
  toolSpecificData.terminalCommandUri = this._createTerminalCommandUri(instance, commandId);
15
- }
16
- catch (error) {
17
- this._logService.warn(`RunInTerminalTool: Failed to create terminal command URI for ${commandId}`, error);
15
+ } catch (error) {
16
+ this._logService.warn(
17
+ `RunInTerminalTool: Failed to create terminal command URI for ${commandId}`,
18
+ error
19
+ );
18
20
  }
19
21
  const command = await this._tryGetCommand(instance, commandId);
20
22
  if (command) {
@@ -30,14 +32,18 @@ let TerminalCommandArtifactCollector = class TerminalCommandArtifactCollector {
30
32
  this._applyTheme(toolSpecificData, instance);
31
33
  return;
32
34
  }
35
+ const partialSnapshot = await this._capturePartialCommandOutput(instance, commandId);
36
+ if (partialSnapshot) {
37
+ toolSpecificData.terminalCommandOutput = partialSnapshot;
38
+ this._logService.debug(`RunInTerminalTool: Captured partial command output for ${commandId}`);
39
+ }
33
40
  }
34
41
  this._applyTheme(toolSpecificData, instance);
35
42
  }
36
43
  async _captureCommandOutput(instance, command) {
37
44
  try {
38
45
  await instance.xtermReadyPromise;
39
- }
40
- catch {
46
+ } catch {
41
47
  return undefined;
42
48
  }
43
49
  const xterm = instance.xterm;
@@ -45,28 +51,68 @@ let TerminalCommandArtifactCollector = class TerminalCommandArtifactCollector {
45
51
  return undefined;
46
52
  }
47
53
  return getCommandOutputSnapshot(xterm, command, (reason, error) => {
48
- const suffix = reason === 'fallback' ? ' (fallback)' : '';
54
+ const suffix = reason === "fallback" ? " (fallback)" : "";
49
55
  this._logService.debug(`RunInTerminalTool: Failed to snapshot command output${suffix}`, error);
50
56
  });
51
57
  }
58
+ async _capturePartialCommandOutput(instance, commandId) {
59
+ try {
60
+ await instance.xtermReadyPromise;
61
+ } catch {
62
+ return undefined;
63
+ }
64
+ const xterm = instance.xterm;
65
+ if (!xterm) {
66
+ return undefined;
67
+ }
68
+ const commandDetection = instance.capabilities.get(TerminalCapability.CommandDetection);
69
+ const currentCommand = commandDetection?.currentCommand;
70
+ if (currentCommand && currentCommand.id === commandId) {
71
+ const executedMarker = currentCommand.commandExecutedMarker;
72
+ if (executedMarker && !executedMarker.isDisposed) {
73
+ try {
74
+ const raw = xterm.raw;
75
+ const buffer = raw.buffer.active;
76
+ const endLine = buffer.baseY + buffer.cursorY;
77
+ const startLine = executedMarker.line;
78
+ const lineCount = Math.max(endLine - startLine, 0);
79
+ if (lineCount > 0) {
80
+ const text = await xterm.getRangeAsVT(executedMarker, undefined, true);
81
+ if (text) {
82
+ return {
83
+ text,
84
+ lineCount
85
+ };
86
+ }
87
+ }
88
+ } catch (error) {
89
+ this._logService.debug(`RunInTerminalTool: Failed to capture partial command output`, error);
90
+ }
91
+ }
92
+ }
93
+ return undefined;
94
+ }
52
95
  _applyTheme(toolSpecificData, instance) {
53
96
  const theme = instance.xterm?.getXtermTheme();
54
97
  if (theme) {
55
- toolSpecificData.terminalTheme = { background: theme.background, foreground: theme.foreground };
98
+ toolSpecificData.terminalTheme = {
99
+ background: theme.background,
100
+ foreground: theme.foreground
101
+ };
56
102
  }
57
103
  }
58
104
  _createTerminalCommandUri(instance, commandId) {
59
105
  const params = ( new URLSearchParams(instance.resource.query));
60
- params.set('command', commandId);
61
- return instance.resource.with({ query: ( params.toString()) });
106
+ params.set("command", commandId);
107
+ return instance.resource.with({
108
+ query: ( params.toString())
109
+ });
62
110
  }
63
111
  async _tryGetCommand(instance, commandId) {
64
112
  const commandDetection = instance.capabilities.get(TerminalCapability.CommandDetection);
65
113
  return commandDetection?.commands.find(c => c.id === commandId);
66
114
  }
67
115
  };
68
- TerminalCommandArtifactCollector = ( __decorate([
69
- ( __param(0, ITerminalLogService))
70
- ], TerminalCommandArtifactCollector));
116
+ TerminalCommandArtifactCollector = ( __decorate([( __param(0, ITerminalLogService))], TerminalCommandArtifactCollector));
71
117
 
72
118
  export { TerminalCommandArtifactCollector };
@@ -0,0 +1,12 @@
1
+ export declare enum TerminalToolId {
2
+ RunInTerminal = "run_in_terminal",
3
+ AwaitTerminal = "await_terminal",
4
+ GetTerminalOutput = "get_terminal_output",
5
+ KillTerminal = "kill_terminal",
6
+ TerminalSelection = "terminal_selection",
7
+ TerminalLastCommand = "terminal_last_command",
8
+ ConfirmTerminalCommand = "vscode_get_terminal_confirmation",
9
+ CreateAndRunTask = "create_and_run_task",
10
+ GetTaskOutput = "get_task_output",
11
+ RunTask = "run_task"
12
+ }
@@ -0,0 +1,17 @@
1
+
2
+
3
+ var TerminalToolId;
4
+ (function (TerminalToolId) {
5
+ TerminalToolId["RunInTerminal"] = "run_in_terminal";
6
+ TerminalToolId["AwaitTerminal"] = "await_terminal";
7
+ TerminalToolId["GetTerminalOutput"] = "get_terminal_output";
8
+ TerminalToolId["KillTerminal"] = "kill_terminal";
9
+ TerminalToolId["TerminalSelection"] = "terminal_selection";
10
+ TerminalToolId["TerminalLastCommand"] = "terminal_last_command";
11
+ TerminalToolId["ConfirmTerminalCommand"] = "vscode_get_terminal_confirmation";
12
+ TerminalToolId["CreateAndRunTask"] = "create_and_run_task";
13
+ TerminalToolId["GetTaskOutput"] = "get_task_output";
14
+ TerminalToolId["RunTask"] = "run_task";
15
+ })(TerminalToolId || (TerminalToolId = {}));
16
+
17
+ export { TerminalToolId };
@@ -1,4 +1,4 @@
1
- import type { QueryCapture } from "@vscode/tree-sitter-wasm";
1
+ import type { QueryCapture } from "@codingame/monaco-vscode-api/external/@vscode/tree-sitter-wasm/wasm/tree-sitter";
2
2
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
3
  import { ITreeSitterLibraryService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/treeSitter/treeSitterLibraryService.service";
4
4
  export declare enum TreeSitterCommandParserLanguage {
@@ -9,10 +9,17 @@ export declare class TreeSitterCommandParser extends Disposable {
9
9
  private readonly _treeSitterLibraryService;
10
10
  private readonly _parser;
11
11
  private readonly _treeCache;
12
+ private readonly _commandFileWriteParsers;
12
13
  constructor(_treeSitterLibraryService: ITreeSitterLibraryService);
13
14
  extractSubCommands(languageId: TreeSitterCommandParserLanguage, commandLine: string): Promise<string[]>;
14
15
  extractPwshDoubleAmpersandChainOperators(commandLine: string): Promise<QueryCapture[]>;
15
16
  getFileWrites(languageId: TreeSitterCommandParserLanguage, commandLine: string): Promise<string[]>;
17
+ /**
18
+ * Extracts file targets from commands that perform file writes beyond shell redirections.
19
+ * Uses registered command parsers (e.g., for `sed -i`) to detect command-specific file writes.
20
+ * Returns an array of file paths that would be modified.
21
+ */
22
+ getCommandFileWrites(languageId: TreeSitterCommandParserLanguage, commandLine: string): Promise<string[]>;
16
23
  private _queryTree;
17
24
  private _doQuery;
18
25
  }
@@ -5,9 +5,10 @@ import { BugIndicatingError, ErrorNoTelemetry } from '@codingame/monaco-vscode-a
5
5
  import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
6
6
  import { Disposable, MutableDisposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
7
7
  import { ITreeSitterLibraryService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/treeSitter/treeSitterLibraryService.service';
8
+ import { SedFileWriteParser } from './commandParsers/sedFileWriteParser.js';
8
9
 
9
10
  var TreeSitterCommandParserLanguage;
10
- (function (TreeSitterCommandParserLanguage) {
11
+ (function(TreeSitterCommandParserLanguage) {
11
12
  TreeSitterCommandParserLanguage["Bash"] = "bash";
12
13
  TreeSitterCommandParserLanguage["PowerShell"] = "powershell";
13
14
  })(TreeSitterCommandParserLanguage || (TreeSitterCommandParserLanguage = {}));
@@ -16,50 +17,67 @@ let TreeSitterCommandParser = class TreeSitterCommandParser extends Disposable {
16
17
  super();
17
18
  this._treeSitterLibraryService = _treeSitterLibraryService;
18
19
  this._treeCache = this._register(( new TreeCache()));
20
+ this._commandFileWriteParsers = [( new SedFileWriteParser())];
19
21
  this._parser = ( new Lazy(
20
22
  () => this._treeSitterLibraryService.getParserClass().then(ParserCtor => ( new ParserCtor()))
21
23
  ));
22
24
  }
23
25
  async extractSubCommands(languageId, commandLine) {
24
- const captures = await this._queryTree(languageId, commandLine, '(command) @command');
26
+ const captures = await this._queryTree(languageId, commandLine, "(command) @command");
25
27
  return ( captures.map(e => e.node.text));
26
28
  }
27
29
  async extractPwshDoubleAmpersandChainOperators(commandLine) {
28
- const captures = await this._queryTree(TreeSitterCommandParserLanguage.PowerShell, commandLine, [
29
- '(',
30
- ' (pipeline',
31
- ' (pipeline_chain_tail) @double.ampersand)',
32
- ')',
33
- ].join('\n'));
30
+ const captures = await this._queryTree(
31
+ TreeSitterCommandParserLanguage.PowerShell,
32
+ commandLine,
33
+ ["(", " (pipeline", " (pipeline_chain_tail) @double.ampersand)", ")"].join("\n")
34
+ );
34
35
  return captures;
35
36
  }
36
37
  async getFileWrites(languageId, commandLine) {
37
38
  let query;
38
39
  switch (languageId) {
39
- case TreeSitterCommandParserLanguage.Bash:
40
- query = [
41
- '(file_redirect',
42
- ' destination: [(word) (string (string_content)) (raw_string) (concatenation)] @file)',
43
- ].join('\n');
44
- break;
45
- case TreeSitterCommandParserLanguage.PowerShell:
46
- query = [
47
- '(redirection',
48
- ' (redirected_file_name) @file)',
49
- ].join('\n');
50
- break;
40
+ case TreeSitterCommandParserLanguage.Bash:
41
+ query = [
42
+ "(file_redirect",
43
+ " destination: [(word) (string (string_content)) (raw_string) (concatenation)] @file)"
44
+ ].join("\n");
45
+ break;
46
+ case TreeSitterCommandParserLanguage.PowerShell:
47
+ query = ["(redirection", " (redirected_file_name) @file)"].join("\n");
48
+ break;
51
49
  }
52
50
  const captures = await this._queryTree(languageId, commandLine, query);
53
51
  return ( captures.map(e => e.node.text.trim()));
54
52
  }
53
+ async getCommandFileWrites(languageId, commandLine) {
54
+ if (languageId !== TreeSitterCommandParserLanguage.Bash) {
55
+ return [];
56
+ }
57
+ const query = "(command) @command";
58
+ const captures = await this._queryTree(languageId, commandLine, query);
59
+ const result = [];
60
+ for (const capture of captures) {
61
+ const commandText = capture.node.text;
62
+ for (const parser of this._commandFileWriteParsers) {
63
+ if (parser.canHandle(commandText)) {
64
+ result.push(...parser.extractFileWrites(commandText));
65
+ }
66
+ }
67
+ }
68
+ return result;
69
+ }
55
70
  async _queryTree(languageId, commandLine, querySource) {
56
- const { tree, query } = await this._doQuery(languageId, commandLine, querySource);
71
+ const {
72
+ tree,
73
+ query
74
+ } = await this._doQuery(languageId, commandLine, querySource);
57
75
  return query.captures(tree.rootNode);
58
76
  }
59
77
  async _doQuery(languageId, commandLine, querySource) {
60
78
  const language = await this._treeSitterLibraryService.getLanguagePromise(languageId);
61
79
  if (!language) {
62
- throw ( new BugIndicatingError('Failed to fetch language grammar'));
80
+ throw ( new BugIndicatingError("Failed to fetch language grammar"));
63
81
  }
64
82
  let tree = this._treeCache.get(languageId, commandLine);
65
83
  if (!tree) {
@@ -67,21 +85,22 @@ let TreeSitterCommandParser = class TreeSitterCommandParser extends Disposable {
67
85
  parser.setLanguage(language);
68
86
  const parsedTree = parser.parse(commandLine);
69
87
  if (!parsedTree) {
70
- throw ( new ErrorNoTelemetry('Failed to parse tree'));
88
+ throw ( new ErrorNoTelemetry("Failed to parse tree"));
71
89
  }
72
90
  tree = parsedTree;
73
91
  this._treeCache.set(languageId, commandLine, tree);
74
92
  }
75
93
  const query = await this._treeSitterLibraryService.createQuery(language, querySource);
76
94
  if (!query) {
77
- throw ( new BugIndicatingError('Failed to create tree sitter query'));
95
+ throw ( new BugIndicatingError("Failed to create tree sitter query"));
78
96
  }
79
- return { tree, query };
97
+ return {
98
+ tree,
99
+ query
100
+ };
80
101
  }
81
102
  };
82
- TreeSitterCommandParser = ( __decorate([
83
- ( __param(0, ITreeSitterLibraryService))
84
- ], TreeSitterCommandParser));
103
+ TreeSitterCommandParser = ( __decorate([( __param(0, ITreeSitterLibraryService))], TreeSitterCommandParser));
85
104
  class TreeCache extends Disposable {
86
105
  constructor() {
87
106
  super();