@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
@@ -10,25 +10,26 @@ import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event'
10
10
  import { isString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
11
11
 
12
12
  function getTaskDefinition(id) {
13
- const idx = id.indexOf(': ');
13
+ const idx = id.indexOf(": ");
14
14
  const taskType = id.substring(0, idx);
15
15
  let taskLabel = idx > 0 ? id.substring(idx + 2) : id;
16
16
  if (/^\d+$/.test(taskLabel)) {
17
17
  taskLabel = id;
18
18
  }
19
- return { taskLabel, taskType };
19
+ return {
20
+ taskLabel,
21
+ taskType
22
+ };
20
23
  }
21
24
  function getTaskRepresentation(task) {
22
- if ('label' in task && task.label) {
25
+ if ("label" in task && task.label) {
23
26
  return task.label;
24
- }
25
- else if ('script' in task && task.script) {
27
+ } else if ("script" in task && task.script) {
26
28
  return task.script;
29
+ } else if ("command" in task && task.command) {
30
+ return isString(task.command) ? task.command : task.command.name?.toString() || "";
27
31
  }
28
- else if ('command' in task && task.command) {
29
- return isString(task.command) ? task.command : task.command.name?.toString() || '';
30
- }
31
- return '';
32
+ return "";
32
33
  }
33
34
  function getTaskKey(task) {
34
35
  return task.getKey() ?? task.getMapKey();
@@ -45,27 +46,34 @@ function tasksMatch(a, b) {
45
46
  }
46
47
  return a._id === b._id;
47
48
  }
48
- async function getTaskForTool(id, taskDefinition, workspaceFolder, configurationService, taskService, allowParentTask) {
49
+ async function getTaskForTool(
50
+ id,
51
+ taskDefinition,
52
+ workspaceFolder,
53
+ configurationService,
54
+ taskService,
55
+ allowParentTask
56
+ ) {
49
57
  let index = 0;
50
58
  let task;
51
59
  const workspaceFolderToTaskMap = await taskService.getWorkspaceTasks();
52
60
  let configTasks = [];
53
61
  for (const folder of ( workspaceFolderToTaskMap.keys())) {
54
- const tasksConfig = configurationService.getValue('tasks', { resource: ( URI.parse(folder)) });
62
+ const tasksConfig = configurationService.getValue("tasks", {
63
+ resource: ( URI.parse(folder))
64
+ });
55
65
  if (tasksConfig?.tasks) {
56
66
  configTasks = configTasks.concat(tasksConfig.tasks);
57
67
  }
58
68
  }
59
69
  for (const configTask of configTasks) {
60
- if ((!allowParentTask && !configTask.type) || ('hide' in configTask && configTask.hide)) {
70
+ if ((!allowParentTask && !configTask.type) || ("hide" in configTask && configTask.hide)) {
61
71
  continue;
62
72
  }
63
- if ((configTask.type && taskDefinition.taskType ? configTask.type === taskDefinition.taskType : true) &&
64
- ((getTaskRepresentation(configTask) === taskDefinition?.taskLabel) || (id === configTask.label))) {
73
+ if ((configTask.type && taskDefinition.taskType ? configTask.type === taskDefinition.taskType : true) && ((getTaskRepresentation(configTask) === taskDefinition?.taskLabel) || (id === configTask.label))) {
65
74
  task = configTask;
66
75
  break;
67
- }
68
- else if (!configTask.label && id === `${configTask.type}: ${index}`) {
76
+ } else if (!configTask.label && id === `${configTask.type}: ${index}`) {
69
77
  task = configTask;
70
78
  break;
71
79
  }
@@ -103,16 +111,29 @@ async function resolveDependencyTasks(parentTask, workspaceFolder, configuration
103
111
  if (!parentTask.configurationProperties?.dependsOn) {
104
112
  return undefined;
105
113
  }
106
- const dependencyTasks = await Promise.all(( parentTask.configurationProperties.dependsOn.map(async (dep) => {
114
+ const dependencyTasks = await Promise.all(( parentTask.configurationProperties.dependsOn.map(async dep => {
107
115
  const depId = isString(dep.task) ? dep.task : dep.task?._key;
108
116
  if (!depId) {
109
117
  return undefined;
110
118
  }
111
- return await getTaskForTool(depId, { taskLabel: depId }, workspaceFolder, configurationService, taskService);
119
+ return await getTaskForTool(depId, {
120
+ taskLabel: depId
121
+ }, workspaceFolder, configurationService, taskService);
112
122
  })));
113
- return dependencyTasks.filter((t) => t !== undefined);
123
+ return dependencyTasks.filter(t => t !== undefined);
114
124
  }
115
- async function collectTerminalResults(terminals, task, instantiationService, invocationContext, progress, token, disposableStore, isActive, dependencyTasks, taskService) {
125
+ async function collectTerminalResults(
126
+ terminals,
127
+ task,
128
+ instantiationService,
129
+ invocationContext,
130
+ progress,
131
+ token,
132
+ disposableStore,
133
+ isActive,
134
+ dependencyTasks,
135
+ taskService
136
+ ) {
116
137
  const results = [];
117
138
  if (token.isCancellationRequested) {
118
139
  return results;
@@ -125,30 +146,30 @@ async function collectTerminalResults(terminals, task, instantiationService, inv
125
146
  taskIdToTaskMap[dependencyTask._id] = dependencyTask;
126
147
  taskLabelToTaskMap[dependencyTask._label] = dependencyTask;
127
148
  }
128
- for (const instance of terminals) {
129
- progress.report({ message: ( new MarkdownString(`Checking output for \`${instance.shellLaunchConfig.name ?? 'unknown'}\``)) });
149
+ const terminalNames = ( terminals.map(t => t.shellLaunchConfig.name ?? t.title ?? "unknown"));
150
+ progress.report({
151
+ message: ( new MarkdownString(`Checking output for ${( terminalNames.map(n => `\`${n}\``)).join(", ")}`))
152
+ });
153
+ const terminalPromises = ( terminals.map(async instance => {
130
154
  let terminalTask = task;
131
155
  if (dependencyTasks?.length) {
132
156
  const reconnectionData = instance.reconnectionProperties?.data;
133
157
  if (reconnectionData) {
134
158
  if (reconnectionData.lastTask in commonTaskIdToTaskMap) {
135
159
  terminalTask = commonTaskIdToTaskMap[reconnectionData.lastTask];
136
- }
137
- else if (reconnectionData.id in taskIdToTaskMap) {
160
+ } else if (reconnectionData.id in taskIdToTaskMap) {
138
161
  terminalTask = taskIdToTaskMap[reconnectionData.id];
139
162
  }
140
- }
141
- else {
163
+ } else {
142
164
  if (instance.shellLaunchConfig.name && instance.shellLaunchConfig.name in taskLabelToTaskMap) {
143
165
  terminalTask = taskLabelToTaskMap[instance.shellLaunchConfig.name];
144
- }
145
- else if (instance.title in taskLabelToTaskMap) {
166
+ } else if (instance.title in taskLabelToTaskMap) {
146
167
  terminalTask = taskLabelToTaskMap[instance.title];
147
168
  }
148
169
  }
149
170
  }
150
171
  const execution = {
151
- getOutput: () => getOutput(instance) ?? '',
172
+ getOutput: () => getOutput(instance) ?? "",
152
173
  task: terminalTask,
153
174
  isActive: isActive ? () => isActive(terminalTask) : undefined,
154
175
  instance,
@@ -166,12 +187,22 @@ async function collectTerminalResults(terminals, task, instantiationService, inv
166
187
  await timeout(100);
167
188
  }
168
189
  }
169
- const outputMonitor = disposableStore.add(instantiationService.createInstance(OutputMonitor, execution, taskProblemPollFn, invocationContext, token, task._label));
170
- await Event.toPromise(outputMonitor.onDidFinishCommand);
190
+ const outputMonitor = disposableStore.add(instantiationService.createInstance(
191
+ OutputMonitor,
192
+ execution,
193
+ taskProblemPollFn,
194
+ invocationContext,
195
+ token,
196
+ task._label
197
+ ));
198
+ await Promise.race([
199
+ Event.toPromise(outputMonitor.onDidFinishCommand),
200
+ Event.toPromise(token.onCancellationRequested)
201
+ ]);
171
202
  const pollingResult = outputMonitor.pollingResult;
172
- results.push({
173
- name: instance.shellLaunchConfig.name ?? instance.title ?? 'unknown',
174
- output: pollingResult?.output ?? '',
203
+ return {
204
+ name: instance.shellLaunchConfig.name ?? instance.title ?? "unknown",
205
+ output: pollingResult?.output ?? "",
175
206
  pollDurationMs: pollingResult?.pollDurationMs ?? 0,
176
207
  resources: pollingResult?.resources,
177
208
  state: pollingResult?.state || OutputMonitorState.Idle,
@@ -182,9 +213,11 @@ async function collectTerminalResults(terminals, task, instantiationService, inv
182
213
  inputToolAutoChars: outputMonitor.outputMonitorTelemetryCounters.inputToolAutoChars ?? 0,
183
214
  inputToolManualShownCount: outputMonitor.outputMonitorTelemetryCounters.inputToolManualShownCount ?? 0,
184
215
  inputToolFreeFormInputShownCount: outputMonitor.outputMonitorTelemetryCounters.inputToolFreeFormInputShownCount ?? 0,
185
- inputToolFreeFormInputCount: outputMonitor.outputMonitorTelemetryCounters.inputToolFreeFormInputCount ?? 0,
186
- });
187
- }
216
+ inputToolFreeFormInputCount: outputMonitor.outputMonitorTelemetryCounters.inputToolFreeFormInputCount ?? 0
217
+ };
218
+ }));
219
+ const parallelResults = await Promise.all(terminalPromises);
220
+ results.push(...parallelResults);
188
221
  return results;
189
222
  }
190
223
  async function taskProblemPollFn(execution, token, taskService) {
@@ -196,40 +229,43 @@ async function taskProblemPollFn(execution, token, taskService) {
196
229
  if (data) {
197
230
  const problemList = [];
198
231
  const resultResources = [];
199
- for (const [owner, { resources, markers }] of data.entries()) {
232
+ for (const [owner, {
233
+ resources,
234
+ markers
235
+ }] of data.entries()) {
200
236
  for (let i = 0; i < markers.length; i++) {
201
237
  const uri = resources[i];
202
238
  const marker = markers[i];
203
239
  resultResources.push({
204
240
  uri,
205
- range: marker.startLineNumber !== undefined && marker.startColumn !== undefined && marker.endLineNumber !== undefined && marker.endColumn !== undefined
206
- ? ( new Range(
241
+ range: marker.startLineNumber !== undefined && marker.startColumn !== undefined && marker.endLineNumber !== undefined && marker.endColumn !== undefined ? ( new Range(
207
242
  marker.startLineNumber,
208
243
  marker.startColumn,
209
244
  marker.endLineNumber,
210
245
  marker.endColumn
211
- ))
212
- : undefined
246
+ )) : undefined
213
247
  });
214
- const message = marker.message ?? '';
215
- problemList.push(`Problem: ${message} in ${uri.fsPath} coming from ${owner} starting on line ${marker.startLineNumber}${marker.startColumn ? `, column ${marker.startColumn} and ending on line ${marker.endLineNumber}${marker.endColumn ? `, column ${marker.endColumn}` : ''}` : ''}`);
248
+ const message = marker.message ?? "";
249
+ problemList.push(
250
+ `Problem: ${message} in ${uri.fsPath} coming from ${owner} starting on line ${marker.startLineNumber}${marker.startColumn ? `, column ${marker.startColumn} and ending on line ${marker.endLineNumber}${marker.endColumn ? `, column ${marker.endColumn}` : ""}` : ""}`
251
+ );
216
252
  }
217
253
  }
218
254
  if (problemList.length === 0) {
219
- const lastTenLines = execution.getOutput().split('\n').filter(line => line !== '').slice(-10).join('\n');
255
+ const lastTenLines = execution.getOutput().split("\n").filter(line => line !== "").slice(-10).join("\n");
220
256
  return {
221
257
  state: OutputMonitorState.Idle,
222
- output: `Task completed with output:\n${lastTenLines}`,
258
+ output: `Task completed with output:\n${lastTenLines}`
223
259
  };
224
260
  }
225
261
  return {
226
262
  state: OutputMonitorState.Idle,
227
- output: problemList.join('\n'),
228
- resources: resultResources,
263
+ output: problemList.join("\n"),
264
+ resources: resultResources
229
265
  };
230
266
  }
231
267
  }
232
- throw ( new Error('Polling failed'));
268
+ throw ( new Error("Polling failed"));
233
269
  }
234
270
 
235
271
  export { collectTerminalResults, getTaskDefinition, getTaskForTool, getTaskKey, getTaskRepresentation, resolveDependencyTasks, taskProblemPollFn, tasksMatch };
@@ -18,7 +18,9 @@ import { TerminalContextMenuGroup } from '@codingame/monaco-vscode-api/vscode/vs
18
18
  import { TerminalContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/common/terminalContextKey';
19
19
  import { TerminalChatAgentToolsCommandId } from '../common/terminal.chatAgentTools.js';
20
20
  import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
21
+ import { AwaitTerminalTool, AwaitTerminalToolData } from './tools/awaitTerminalTool.js';
21
22
  import { GetTerminalLastCommandTool, GetTerminalLastCommandToolData } from './tools/getTerminalLastCommandTool.js';
23
+ import { KillTerminalTool, KillTerminalToolData } from './tools/killTerminalTool.js';
22
24
  import { GetTerminalOutputTool, GetTerminalOutputToolData } from './tools/getTerminalOutputTool.js';
23
25
  import { GetTerminalSelectionTool, GetTerminalSelectionToolData } from './tools/getTerminalSelectionTool.js';
24
26
  import { ConfirmTerminalCommandTool, ConfirmTerminalCommandToolData } from './tools/runInTerminalConfirmationTool.js';
@@ -26,9 +28,13 @@ import { createRunInTerminalToolData, RunInTerminalTool } from './tools/runInTer
26
28
  import { CreateAndRunTaskTool, CreateAndRunTaskToolData } from './tools/task/createAndRunTaskTool.js';
27
29
  import { GetTaskOutputTool, GetTaskOutputToolData } from './tools/task/getTaskOutputTool.js';
28
30
  import { RunTaskTool, RunTaskToolData } from './tools/task/runTaskTool.js';
31
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
32
+ import '../common/terminalSandboxService.js';
29
33
 
30
34
  let ShellIntegrationTimeoutMigrationContribution = class ShellIntegrationTimeoutMigrationContribution extends Disposable {
31
- static { this.ID = 'terminal.shellIntegrationTimeoutMigration'; }
35
+ static {
36
+ this.ID = "terminal.shellIntegrationTimeoutMigration";
37
+ }
32
38
  constructor(configurationService) {
33
39
  super();
34
40
  const deprecatedSettingValue = configurationService.getValue(TerminalChatAgentToolsSettingId.ShellIntegrationTimeout);
@@ -41,28 +47,64 @@ let ShellIntegrationTimeoutMigrationContribution = class ShellIntegrationTimeout
41
47
  }
42
48
  }
43
49
  };
44
- ShellIntegrationTimeoutMigrationContribution = ( __decorate([
45
- ( __param(0, IConfigurationService))
46
- ], ShellIntegrationTimeoutMigrationContribution));
47
- registerWorkbenchContribution2(ShellIntegrationTimeoutMigrationContribution.ID, ShellIntegrationTimeoutMigrationContribution, WorkbenchPhase.Eventually);
50
+ ShellIntegrationTimeoutMigrationContribution = ( __decorate([( __param(0, IConfigurationService))], ShellIntegrationTimeoutMigrationContribution));
51
+ registerWorkbenchContribution2(
52
+ ShellIntegrationTimeoutMigrationContribution.ID,
53
+ ShellIntegrationTimeoutMigrationContribution,
54
+ WorkbenchPhase.Eventually
55
+ );
56
+ let OutputLocationMigrationContribution = class OutputLocationMigrationContribution extends Disposable {
57
+ static {
58
+ this.ID = "terminal.outputLocationMigration";
59
+ }
60
+ constructor(configurationService) {
61
+ super();
62
+ const currentValue = configurationService.getValue(TerminalChatAgentToolsSettingId.OutputLocation);
63
+ if (currentValue === "none") {
64
+ configurationService.updateValue(TerminalChatAgentToolsSettingId.OutputLocation, "chat");
65
+ }
66
+ }
67
+ };
68
+ OutputLocationMigrationContribution = ( __decorate([( __param(0, IConfigurationService))], OutputLocationMigrationContribution));
69
+ registerWorkbenchContribution2(
70
+ OutputLocationMigrationContribution.ID,
71
+ OutputLocationMigrationContribution,
72
+ WorkbenchPhase.Eventually
73
+ );
48
74
  let ChatAgentToolsContribution = class ChatAgentToolsContribution extends Disposable {
49
- static { this.ID = 'terminal.chatAgentTools'; }
75
+ static {
76
+ this.ID = "terminal.chatAgentTools";
77
+ }
50
78
  constructor(instantiationService, toolsService) {
51
79
  super();
52
80
  const confirmTerminalCommandTool = instantiationService.createInstance(ConfirmTerminalCommandTool);
53
- this._register(toolsService.registerTool(ConfirmTerminalCommandToolData, confirmTerminalCommandTool));
81
+ this._register(
82
+ toolsService.registerTool(ConfirmTerminalCommandToolData, confirmTerminalCommandTool)
83
+ );
54
84
  const getTerminalOutputTool = instantiationService.createInstance(GetTerminalOutputTool);
55
- this._register(toolsService.registerTool(GetTerminalOutputToolData, getTerminalOutputTool));
85
+ this._register(
86
+ toolsService.registerTool(GetTerminalOutputToolData, getTerminalOutputTool)
87
+ );
56
88
  this._register(toolsService.executeToolSet.addTool(GetTerminalOutputToolData));
89
+ const awaitTerminalTool = instantiationService.createInstance(AwaitTerminalTool);
90
+ this._register(toolsService.registerTool(AwaitTerminalToolData, awaitTerminalTool));
91
+ this._register(toolsService.executeToolSet.addTool(AwaitTerminalToolData));
92
+ const killTerminalTool = instantiationService.createInstance(KillTerminalTool);
93
+ this._register(toolsService.registerTool(KillTerminalToolData, killTerminalTool));
94
+ this._register(toolsService.executeToolSet.addTool(KillTerminalToolData));
57
95
  instantiationService.invokeFunction(createRunInTerminalToolData).then(runInTerminalToolData => {
58
96
  const runInTerminalTool = instantiationService.createInstance(RunInTerminalTool);
59
97
  this._register(toolsService.registerTool(runInTerminalToolData, runInTerminalTool));
60
98
  this._register(toolsService.executeToolSet.addTool(runInTerminalToolData));
61
99
  });
62
100
  const getTerminalSelectionTool = instantiationService.createInstance(GetTerminalSelectionTool);
63
- this._register(toolsService.registerTool(GetTerminalSelectionToolData, getTerminalSelectionTool));
101
+ this._register(
102
+ toolsService.registerTool(GetTerminalSelectionToolData, getTerminalSelectionTool)
103
+ );
64
104
  const getTerminalLastCommandTool = instantiationService.createInstance(GetTerminalLastCommandTool);
65
- this._register(toolsService.registerTool(GetTerminalLastCommandToolData, getTerminalLastCommandTool));
105
+ this._register(
106
+ toolsService.registerTool(GetTerminalLastCommandToolData, getTerminalLastCommandTool)
107
+ );
66
108
  this._register(toolsService.readToolSet.addTool(GetTerminalSelectionToolData));
67
109
  this._register(toolsService.readToolSet.addTool(GetTerminalLastCommandToolData));
68
110
  const runTaskTool = instantiationService.createInstance(RunTaskTool);
@@ -76,23 +118,22 @@ let ChatAgentToolsContribution = class ChatAgentToolsContribution extends Dispos
76
118
  this._register(toolsService.readToolSet.addTool(GetTaskOutputToolData));
77
119
  }
78
120
  };
79
- ChatAgentToolsContribution = ( __decorate([
80
- ( __param(0, IInstantiationService)),
81
- ( __param(1, ILanguageModelToolsService))
82
- ], ChatAgentToolsContribution));
83
- registerWorkbenchContribution2(ChatAgentToolsContribution.ID, ChatAgentToolsContribution, WorkbenchPhase.AfterRestored);
121
+ ChatAgentToolsContribution = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, ILanguageModelToolsService))], ChatAgentToolsContribution));
122
+ registerWorkbenchContribution2(
123
+ ChatAgentToolsContribution.ID,
124
+ ChatAgentToolsContribution,
125
+ WorkbenchPhase.AfterRestored
126
+ );
84
127
  registerActiveInstanceAction({
85
128
  id: TerminalChatAgentToolsCommandId.ChatAddTerminalSelection,
86
- title: ( localize(12020, 'Add Terminal Selection to Chat')),
129
+ title: ( localize(12348, "Add Terminal Selection to Chat")),
87
130
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, sharedWhenClause.terminalAvailable)),
88
- menu: [
89
- {
90
- id: MenuId.TerminalInstanceContext,
91
- group: TerminalContextMenuGroup.Chat,
92
- order: 1,
93
- when: ( ContextKeyExpr.and(ChatContextKeys.enabled, TerminalContextKeys.textSelected))
94
- },
95
- ],
131
+ menu: [{
132
+ id: MenuId.TerminalInstanceContext,
133
+ group: TerminalContextMenuGroup.Chat,
134
+ order: 1,
135
+ when: ( ContextKeyExpr.and(ChatContextKeys.enabled, TerminalContextKeys.textSelected))
136
+ }],
96
137
  run: async (activeInstance, _c, accessor) => {
97
138
  const chatWidgetService = accessor.get(IChatWidgetService);
98
139
  const selection = activeInstance.selection;
@@ -105,9 +146,9 @@ registerActiveInstanceAction({
105
146
  }
106
147
  chatView.attachmentModel.addContext({
107
148
  id: `terminal-selection-${Date.now()}`,
108
- kind: 'generic',
109
- name: ( localize(12021, 'Terminal Selection')),
110
- fullName: ( localize(12021, 'Terminal Selection')),
149
+ kind: "generic",
150
+ name: ( localize(12349, "Terminal Selection")),
151
+ fullName: ( localize(12349, "Terminal Selection")),
111
152
  value: selection,
112
153
  icon: Codicon.terminal
113
154
  });
@@ -14,6 +14,7 @@ export interface IToolTerminal {
14
14
  instance: ITerminalInstance;
15
15
  shellIntegrationQuality: ShellIntegrationQuality;
16
16
  receivedUserInput?: boolean;
17
+ isBackground?: boolean;
17
18
  }
18
19
  export declare class ToolTerminalCreator {
19
20
  private readonly _configurationService;
@@ -19,20 +19,24 @@ import { isBash, isZsh, isFish, isPowerShell } from './runInTerminalHelpers.js';
19
19
 
20
20
  var ToolTerminalCreator_1;
21
21
  var ShellLaunchType;
22
- (function (ShellLaunchType) {
22
+ (function(ShellLaunchType) {
23
23
  ShellLaunchType[ShellLaunchType["Unknown"] = 0] = "Unknown";
24
24
  ShellLaunchType[ShellLaunchType["Default"] = 1] = "Default";
25
25
  ShellLaunchType[ShellLaunchType["Fallback"] = 2] = "Fallback";
26
26
  })(ShellLaunchType || (ShellLaunchType = {}));
27
27
  var ShellIntegrationQuality;
28
- (function (ShellIntegrationQuality) {
28
+ (function(ShellIntegrationQuality) {
29
29
  ShellIntegrationQuality["None"] = "none";
30
30
  ShellIntegrationQuality["Basic"] = "basic";
31
31
  ShellIntegrationQuality["Rich"] = "rich";
32
32
  })(ShellIntegrationQuality || (ShellIntegrationQuality = {}));
33
33
  let ToolTerminalCreator = class ToolTerminalCreator {
34
- static { ToolTerminalCreator_1 = this; }
35
- static { this._lastSuccessfulShell = ShellLaunchType.Unknown; }
34
+ static {
35
+ ToolTerminalCreator_1 = this;
36
+ }
37
+ static {
38
+ this._lastSuccessfulShell = ShellLaunchType.Unknown;
39
+ }
36
40
  constructor(_configurationService, _logService, _terminalService) {
37
41
  this._configurationService = _configurationService;
38
42
  this._logService = _logService;
@@ -42,21 +46,29 @@ let ToolTerminalCreator = class ToolTerminalCreator {
42
46
  const instance = await this._createCopilotTerminal(shellOrProfile, os);
43
47
  const toolTerminal = {
44
48
  instance,
45
- shellIntegrationQuality: ShellIntegrationQuality.None,
49
+ shellIntegrationQuality: ShellIntegrationQuality.None
46
50
  };
47
51
  let processReadyTimestamp = 0;
48
52
  const initResult = await Promise.any([
49
53
  instance.processReady.then(() => processReadyTimestamp = Date.now()),
50
- Event.toPromise(instance.onExit),
54
+ Event.toPromise(instance.onExit)
51
55
  ]);
52
- if (!isNumber(initResult) && isObject(initResult) && hasKey(initResult, { message: true })) {
56
+ if (!isNumber(initResult) && isObject(initResult) && hasKey(initResult, {
57
+ message: true
58
+ })) {
53
59
  throw ( new Error(initResult.message));
54
60
  }
55
61
  const siInjectionEnabled = this._configurationService.getValue(TerminalSettingId.ShellIntegrationEnabled) === true;
56
- const waitTime = getShellIntegrationTimeout(this._configurationService, siInjectionEnabled, instance.hasRemoteAuthority, processReadyTimestamp);
57
- if (ToolTerminalCreator_1._lastSuccessfulShell !== ShellLaunchType.Fallback ||
58
- siInjectionEnabled) {
59
- this._logService.info(`ToolTerminalCreator#createTerminal: Waiting ${waitTime}ms for shell integration`);
62
+ const waitTime = getShellIntegrationTimeout(
63
+ this._configurationService,
64
+ siInjectionEnabled,
65
+ instance.hasRemoteAuthority,
66
+ processReadyTimestamp
67
+ );
68
+ if (ToolTerminalCreator_1._lastSuccessfulShell !== ShellLaunchType.Fallback || siInjectionEnabled) {
69
+ this._logService.info(
70
+ `ToolTerminalCreator#createTerminal: Waiting ${waitTime}ms for shell integration`
71
+ );
60
72
  const shellIntegrationQuality = await this._waitForShellIntegration(instance, waitTime);
61
73
  if (token.isCancellationRequested) {
62
74
  instance.dispose();
@@ -65,10 +77,14 @@ let ToolTerminalCreator = class ToolTerminalCreator {
65
77
  if (shellIntegrationQuality === ShellIntegrationQuality.Rich) {
66
78
  const commandDetection = instance.capabilities.get(TerminalCapability.CommandDetection);
67
79
  if (commandDetection?.promptInputModel.state === PromptInputState.Unknown) {
68
- this._logService.info(`ToolTerminalCreator#createTerminal: Waiting up to 2s for PromptInputModel state to change`);
80
+ this._logService.info(
81
+ `ToolTerminalCreator#createTerminal: Waiting up to 2s for PromptInputModel state to change`
82
+ );
69
83
  const didStart = await raceTimeout(Event.toPromise(commandDetection.onCommandStarted), 2000);
70
84
  if (!didStart) {
71
- this._logService.info(`ToolTerminalCreator#createTerminal: PromptInputModel state did not change within timeout`);
85
+ this._logService.info(
86
+ `ToolTerminalCreator#createTerminal: PromptInputModel state did not change within timeout`
87
+ );
72
88
  }
73
89
  }
74
90
  }
@@ -77,9 +93,10 @@ let ToolTerminalCreator = class ToolTerminalCreator {
77
93
  toolTerminal.shellIntegrationQuality = shellIntegrationQuality;
78
94
  return toolTerminal;
79
95
  }
80
- }
81
- else {
82
- this._logService.info(`ToolTerminalCreator#createTerminal: Skipping wait for shell integration - last successful launch type ${ToolTerminalCreator_1._lastSuccessfulShell}`);
96
+ } else {
97
+ this._logService.info(
98
+ `ToolTerminalCreator#createTerminal: Skipping wait for shell integration - last successful launch type ${ToolTerminalCreator_1._lastSuccessfulShell}`
99
+ );
83
100
  }
84
101
  ToolTerminalCreator_1._lastSuccessfulShell = ShellLaunchType.Fallback;
85
102
  return toolTerminal;
@@ -87,8 +104,7 @@ let ToolTerminalCreator = class ToolTerminalCreator {
87
104
  refreshShellIntegrationQuality(toolTerminal) {
88
105
  const commandDetection = toolTerminal.instance.capabilities.get(TerminalCapability.CommandDetection);
89
106
  if (commandDetection) {
90
- if (toolTerminal.shellIntegrationQuality === ShellIntegrationQuality.None ||
91
- toolTerminal.shellIntegrationQuality === ShellIntegrationQuality.Basic) {
107
+ if (toolTerminal.shellIntegrationQuality === ShellIntegrationQuality.None || toolTerminal.shellIntegrationQuality === ShellIntegrationQuality.Basic) {
92
108
  toolTerminal.shellIntegrationQuality = commandDetection.hasRichCommandDetection ? ShellIntegrationQuality.Rich : ShellIntegrationQuality.Basic;
93
109
  }
94
110
  }
@@ -96,27 +112,23 @@ let ToolTerminalCreator = class ToolTerminalCreator {
96
112
  _createCopilotTerminal(shellOrProfile, os) {
97
113
  const shellPath = isString(shellOrProfile) ? shellOrProfile : shellOrProfile.path;
98
114
  const env = {
99
- GIT_PAGER: 'cat',
115
+ GIT_PAGER: "cat"
100
116
  };
101
117
  const preventShellHistory = this._configurationService.getValue(TerminalChatAgentToolsSettingId.PreventShellHistory) === true;
102
118
  if (preventShellHistory) {
103
- if (isBash(shellPath, os) ||
104
- isZsh(shellPath, os) ||
105
- isFish(shellPath, os) ||
106
- isPowerShell(shellPath, os)) {
107
- env['VSCODE_PREVENT_SHELL_HISTORY'] = '1';
119
+ if (isBash(shellPath, os) || isZsh(shellPath, os) || isFish(shellPath, os) || isPowerShell(shellPath, os)) {
120
+ env["VSCODE_PREVENT_SHELL_HISTORY"] = "1";
108
121
  }
109
122
  }
110
123
  const config = {
111
124
  icon: ThemeIcon.fromId(Codicon.chatSparkle.id),
112
125
  hideFromUser: true,
113
126
  forcePersist: true,
114
- env,
127
+ env
115
128
  };
116
129
  if (isString(shellOrProfile)) {
117
130
  config.executable = shellOrProfile;
118
- }
119
- else {
131
+ } else {
120
132
  config.executable = shellOrProfile.path;
121
133
  config.args = shellOrProfile.args;
122
134
  config.icon = shellOrProfile.icon ?? config.icon;
@@ -126,60 +138,70 @@ let ToolTerminalCreator = class ToolTerminalCreator {
126
138
  ...shellOrProfile.env
127
139
  };
128
140
  }
129
- return this._terminalService.createTerminal({ config });
141
+ return this._terminalService.createTerminal({
142
+ config
143
+ });
130
144
  }
131
145
  _waitForShellIntegration(instance, timeoutMs) {
132
146
  const store = ( new DisposableStore());
133
147
  const result = ( new DeferredPromise());
134
148
  const siNoneTimer = store.add(( new MutableDisposable()));
135
149
  siNoneTimer.value = disposableTimeout(() => {
136
- this._logService.info(`ToolTerminalCreator#_waitForShellIntegration: Timed out ${timeoutMs}ms, using no SI`);
150
+ this._logService.info(
151
+ `ToolTerminalCreator#_waitForShellIntegration: Timed out ${timeoutMs}ms, using no SI`
152
+ );
137
153
  result.complete(ShellIntegrationQuality.None);
138
154
  }, timeoutMs);
139
155
  if (instance.capabilities.get(TerminalCapability.CommandDetection)?.hasRichCommandDetection) {
140
156
  siNoneTimer.clear();
141
- this._logService.info(`ToolTerminalCreator#_waitForShellIntegration: Rich SI available immediately`);
157
+ this._logService.info(
158
+ `ToolTerminalCreator#_waitForShellIntegration: Rich SI available immediately`
159
+ );
142
160
  result.complete(ShellIntegrationQuality.Rich);
143
- }
144
- else {
145
- const onSetRichCommandDetection = store.add(this._terminalService.createOnInstanceCapabilityEvent(TerminalCapability.CommandDetection, e => e.onSetRichCommandDetection));
146
- store.add(onSetRichCommandDetection.event((e) => {
161
+ } else {
162
+ const onSetRichCommandDetection = store.add(
163
+ this._terminalService.createOnInstanceCapabilityEvent(TerminalCapability.CommandDetection, e => e.onSetRichCommandDetection)
164
+ );
165
+ store.add(onSetRichCommandDetection.event(e => {
147
166
  if (e.instance !== instance) {
148
167
  return;
149
168
  }
150
169
  siNoneTimer.clear();
151
- this._logService.info(`ToolTerminalCreator#_waitForShellIntegration: Rich SI available eventually`);
170
+ this._logService.info(
171
+ `ToolTerminalCreator#_waitForShellIntegration: Rich SI available eventually`
172
+ );
152
173
  result.complete(ShellIntegrationQuality.Rich);
153
174
  }));
154
175
  const commandDetection = instance.capabilities.get(TerminalCapability.CommandDetection);
155
176
  if (commandDetection) {
156
177
  siNoneTimer.clear();
157
178
  store.add(disposableTimeout(() => {
158
- this._logService.info(`ToolTerminalCreator#_waitForShellIntegration: Timed out 200ms, using basic SI`);
179
+ this._logService.info(
180
+ `ToolTerminalCreator#_waitForShellIntegration: Timed out 200ms, using basic SI`
181
+ );
159
182
  result.complete(ShellIntegrationQuality.Basic);
160
183
  }, 200));
161
- }
162
- else {
184
+ } else {
163
185
  store.add(instance.capabilities.onDidAddCommandDetectionCapability(e => {
164
186
  siNoneTimer.clear();
165
187
  store.add(disposableTimeout(() => {
166
- this._logService.info(`ToolTerminalCreator#_waitForShellIntegration: Timed out 200ms, using basic SI (via listener)`);
188
+ this._logService.info(
189
+ `ToolTerminalCreator#_waitForShellIntegration: Timed out 200ms, using basic SI (via listener)`
190
+ );
167
191
  result.complete(ShellIntegrationQuality.Basic);
168
192
  }, 200));
169
193
  }));
170
194
  }
171
195
  }
172
196
  result.p.finally(() => {
173
- this._logService.info(`ToolTerminalCreator#_waitForShellIntegration: Promise complete, disposing store`);
197
+ this._logService.info(
198
+ `ToolTerminalCreator#_waitForShellIntegration: Promise complete, disposing store`
199
+ );
174
200
  store.dispose();
175
201
  });
176
202
  return result.p;
177
203
  }
178
204
  };
179
- ToolTerminalCreator = ToolTerminalCreator_1 = ( __decorate([
180
- ( __param(0, IConfigurationService)),
181
- ( __param(1, ITerminalLogService)),
182
- ( __param(2, ITerminalService))
183
- ], ToolTerminalCreator));
205
+ ToolTerminalCreator = ToolTerminalCreator_1 = ( __decorate([( __param(0, IConfigurationService)), ( __param(1, ITerminalLogService)), ( __param(2, ITerminalService))], ToolTerminalCreator));
184
206
 
185
207
  export { ShellIntegrationQuality, ToolTerminalCreator };
@@ -0,0 +1,12 @@
1
+ import type { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { type CountTokensCallback, type IPreparedToolInvocation, type IToolData, type IToolImpl, type IToolInvocation, type IToolInvocationPreparationContext, type IToolResult, type ToolProgress } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
4
+ export declare const AwaitTerminalToolData: IToolData;
5
+ export interface IAwaitTerminalInputParams {
6
+ id: string;
7
+ timeout: number;
8
+ }
9
+ export declare class AwaitTerminalTool extends Disposable implements IToolImpl {
10
+ prepareToolInvocation(_context: IToolInvocationPreparationContext, _token: CancellationToken): Promise<IPreparedToolInvocation | undefined>;
11
+ invoke(invocation: IToolInvocation, _countTokens: CountTokensCallback, _progress: ToolProgress, token: CancellationToken): Promise<IToolResult>;
12
+ }