@codingame/monaco-vscode-chat-service-override 20.4.1 → 21.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 (200) hide show
  1. package/index.js +15 -7
  2. package/package.json +38 -36
  3. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +2 -0
  4. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +60 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +56 -46
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +18 -16
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +52 -11
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +28 -26
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +19 -13
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +2 -2
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +15 -12
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +11 -11
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +10 -10
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +68 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +433 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -18
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +7 -3
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +205 -551
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +7 -5
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +52 -29
  24. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -163
  25. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +1 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +20 -5
  27. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +17 -17
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +11 -14
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +32 -6
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +22 -3
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +2 -1
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +22 -9
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +6 -8
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +1 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +47 -15
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +12 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +8 -2
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +33 -8
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +3 -3
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +3 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +74 -19
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +1 -1
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +2 -2
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +19 -19
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +3 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +23 -19
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.d.ts +12 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.js +36 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +36 -35
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +6 -6
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +2 -2
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +1 -1
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +37 -9
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +238 -52
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +23 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +257 -148
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +3 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +126 -77
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +2 -3
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +3 -13
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +4 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +55 -45
  67. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +6 -3
  68. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
  69. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +13 -7
  70. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +130 -47
  71. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-dark.svg +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-light.svg +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +5 -3
  74. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatus.css +6 -6
  75. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +9 -9
  76. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +4 -4
  77. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +39 -35
  78. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +9 -9
  79. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +18 -18
  80. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +12 -12
  81. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  82. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  83. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  84. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  85. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +2 -2
  86. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +14 -14
  87. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  88. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +5 -4
  89. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +7 -4
  90. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +4 -8
  91. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +153 -168
  92. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +127 -1
  93. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +111 -1
  94. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +3 -3
  95. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +2 -1
  96. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +6 -3
  97. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.d.ts +20 -0
  98. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +66 -0
  99. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +38 -0
  100. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +143 -0
  101. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +3 -1
  102. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +12 -3
  103. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.d.ts +8 -3
  104. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.js +41 -8
  105. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.d.ts +4 -1
  106. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.js +55 -22
  107. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.js +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/basePromptParser.js +1 -1
  109. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.js +4 -4
  110. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.js +2 -2
  111. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.d.ts +2 -0
  112. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.js +5 -2
  113. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.d.ts +3 -3
  114. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.js +3 -4
  115. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.js +4 -4
  116. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.d.ts +0 -5
  117. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.js +8 -23
  118. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.js +9 -9
  119. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +4 -5
  120. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +11 -5
  121. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +28 -28
  122. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  123. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +12 -0
  124. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +54 -0
  125. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
  126. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +33 -31
  127. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +9 -9
  128. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.d.ts +1 -3
  129. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +9 -13
  130. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  131. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -18
  132. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +2 -1
  133. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +11 -4
  134. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  135. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +1 -2
  136. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +1 -6
  137. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.d.ts +16 -1
  138. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +84 -25
  139. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +10 -0
  140. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +55 -0
  141. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +8 -2
  142. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +15 -7
  143. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +23 -0
  144. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +72 -1
  145. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +8 -2
  146. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +19 -9
  147. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +5 -0
  148. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +7 -5
  149. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +12 -8
  150. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +6 -0
  151. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +85 -1
  152. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +35 -0
  153. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +448 -0
  154. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -1
  155. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +30 -77
  156. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +62 -0
  157. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +174 -0
  158. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +75 -10
  159. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +15 -2
  160. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +81 -38
  161. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.d.ts +11 -0
  162. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +106 -0
  163. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.js → tools/getTerminalOutputTool.js} +5 -3
  164. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.d.ts +11 -0
  165. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +59 -0
  166. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +57 -0
  167. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +452 -0
  168. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +45 -0
  169. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
  170. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +2 -0
  171. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +31 -0
  172. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.d.ts → tools/runInTerminalTool.d.ts} +11 -13
  173. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.js → tools/runInTerminalTool.js} +282 -133
  174. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.d.ts +5 -5
  175. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.js +51 -50
  176. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/getTaskOutputTool.d.ts +6 -1
  177. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +117 -0
  178. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.d.ts +3 -5
  179. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.js +54 -50
  180. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +19 -0
  181. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +36 -0
  182. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.d.ts +3 -0
  183. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.js +8 -0
  184. package/vscode/src/vs/base/common/policy.d.ts +0 -41
  185. package/vscode/src/vs/base/common/policy.js +0 -11
  186. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.d.ts +0 -12
  187. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.js +0 -738
  188. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +0 -42
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.d.ts +0 -67
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.js +0 -167
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.d.ts +0 -23
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.js +0 -63
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.d.ts +0 -55
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.js +0 -163
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.js +0 -88
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.d.ts +0 -35
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.js +0 -80
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.d.ts +0 -1
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.js +0 -40
  200. /package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.d.ts → tools/getTerminalOutputTool.d.ts} +0 -0
@@ -1,10 +1,35 @@
1
1
 
2
2
  import { isPowerShell } from './runInTerminalHelpers.js';
3
3
 
4
+ function createNumberRange(start, end) {
5
+ return Array.from({ length: end - start + 1 }, (_, i) => ( (start + i).toString()));
6
+ }
7
+ function sortByStringLengthDesc(arr) {
8
+ return [...arr].sort((a, b) => b.length - a.length);
9
+ }
4
10
  const shellTypeResetChars = ( new Map([
5
- ['sh', ['&>>', '2>>', '>>', '2>', '&>', '||', '&&', '|&', '<<', '&', ';', '{', '>', '<', '|']],
6
- ['zsh', ['<<<', '2>>', '&>>', '>>', '2>', '&>', '<(', '<>', '||', '&&', '|&', '&', ';', '{', '<<', '<(', '>', '<', '|']],
7
- ['pwsh', ['*>>', '2>>', '>>', '2>', '&&', '*>', '>', '<', '|', ';', '!', '&']],
11
+ ['sh', sortByStringLengthDesc([
12
+ ...( createNumberRange(1, 9).concat('').map(n => `${n}<<<`)),
13
+ ...createNumberRange(1, 9).concat('').flatMap(n => ( createNumberRange(1, 9).map(m => `${n}>&${m}`))),
14
+ ...( createNumberRange(1, 9).concat('').map(n => `${n}<>`)),
15
+ ...( createNumberRange(1, 9).concat('&', '').map(n => `${n}>>`)),
16
+ ...( createNumberRange(1, 9).concat('&', '').map(n => `${n}>`)),
17
+ '0<', '||', '&&', '|&', '<<', '&', ';', '{', '>', '<', '|'
18
+ ])],
19
+ ['zsh', sortByStringLengthDesc([
20
+ ...( createNumberRange(1, 9).concat('').map(n => `${n}<<<`)),
21
+ ...createNumberRange(1, 9).concat('').flatMap(n => ( createNumberRange(1, 9).map(m => `${n}>&${m}`))),
22
+ ...( createNumberRange(1, 9).concat('').map(n => `${n}<>`)),
23
+ ...( createNumberRange(1, 9).concat('&', '').map(n => `${n}>>`)),
24
+ ...( createNumberRange(1, 9).concat('&', '').map(n => `${n}>`)),
25
+ '<(', '||', '>|', '>!', '&&', '|&', '&', ';', '{', '<(', '<', '|'
26
+ ])],
27
+ ['pwsh', sortByStringLengthDesc([
28
+ ...createNumberRange(1, 6).concat('*', '').flatMap(n => ( createNumberRange(1, 6).map(m => `${n}>&${m}`))),
29
+ ...( createNumberRange(1, 6).concat('*', '').map(n => `${n}>>`)),
30
+ ...( createNumberRange(1, 6).concat('*', '').map(n => `${n}>`)),
31
+ '&&', '<', '|', ';', '!', '&'
32
+ ])],
8
33
  ]));
9
34
  function splitCommandLineIntoSubCommands(commandLine, envShell, envOS) {
10
35
  let shellType;
@@ -35,79 +60,7 @@ function splitCommandLineIntoSubCommands(commandLine, envShell, envOS) {
35
60
  }
36
61
  }
37
62
  }
38
- return subCommands;
39
- }
40
- function extractInlineSubCommands(commandLine, envShell, envOS) {
41
- const inlineCommands = [];
42
- const shellType = isPowerShell(envShell, envOS) ? 'pwsh' : 'sh';
43
- function extractWithPrefix(text, prefix) {
44
- const results = [];
45
- let i = 0;
46
- while (i < text.length) {
47
- const startIndex = text.indexOf(prefix, i);
48
- if (startIndex === -1) {
49
- break;
50
- }
51
- const contentStart = startIndex + prefix.length;
52
- if (contentStart >= text.length || text[contentStart] !== '(') {
53
- i = startIndex + 1;
54
- continue;
55
- }
56
- let parenCount = 1;
57
- let j = contentStart + 1;
58
- while (j < text.length && parenCount > 0) {
59
- if (text[j] === '(') {
60
- parenCount++;
61
- }
62
- else if (text[j] === ')') {
63
- parenCount--;
64
- }
65
- j++;
66
- }
67
- if (parenCount === 0) {
68
- const innerCommand = text.substring(contentStart + 1, j - 1).trim();
69
- if (innerCommand) {
70
- results.push(innerCommand);
71
- results.push(...extractInlineSubCommands(innerCommand, envShell, envOS));
72
- }
73
- }
74
- i = startIndex + 1;
75
- }
76
- return results;
77
- }
78
- function extractBackticks(text) {
79
- const results = [];
80
- let i = 0;
81
- while (i < text.length) {
82
- const startIndex = text.indexOf('`', i);
83
- if (startIndex === -1) {
84
- break;
85
- }
86
- const endIndex = text.indexOf('`', startIndex + 1);
87
- if (endIndex === -1) {
88
- break;
89
- }
90
- const innerCommand = text.substring(startIndex + 1, endIndex).trim();
91
- if (innerCommand) {
92
- results.push(innerCommand);
93
- results.push(...extractInlineSubCommands(innerCommand, envShell, envOS));
94
- }
95
- i = endIndex + 1;
96
- }
97
- return results;
98
- }
99
- if (shellType === 'pwsh') {
100
- inlineCommands.push(...extractWithPrefix(commandLine, '$'));
101
- inlineCommands.push(...extractWithPrefix(commandLine, '@'));
102
- inlineCommands.push(...extractWithPrefix(commandLine, '&'));
103
- }
104
- else {
105
- inlineCommands.push(...extractWithPrefix(commandLine, '$'));
106
- inlineCommands.push(...extractWithPrefix(commandLine, '<'));
107
- inlineCommands.push(...extractWithPrefix(commandLine, '>'));
108
- inlineCommands.push(...extractBackticks(commandLine));
109
- }
110
- return ( new Set(inlineCommands));
63
+ return subCommands.filter(e => e.length > 0);
111
64
  }
112
65
 
113
- export { extractInlineSubCommands, splitCommandLineIntoSubCommands };
66
+ export { splitCommandLineIntoSubCommands };
@@ -0,0 +1,62 @@
1
+ import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
+ import { DisposableStore } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
+ import { Range } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range";
5
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
6
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
7
+ import { IToolInvocationContext, ToolProgress } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
8
+ import { Task } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/tasks";
9
+ import { ITaskService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService.service";
10
+ import { ITerminalInstance } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
11
+ import { IExecution, IPollingResult, OutputMonitorState } from "./tools/monitoring/types.js";
12
+ export declare function getTaskDefinition(id: string): {
13
+ taskLabel: string;
14
+ taskType: string;
15
+ };
16
+ export declare function getTaskRepresentation(task: IConfiguredTask | Task): string;
17
+ export declare function getTaskForTool(id: string | undefined, taskDefinition: {
18
+ taskLabel?: string;
19
+ taskType?: string;
20
+ }, workspaceFolder: string, configurationService: IConfigurationService, taskService: ITaskService, allowParentTask?: boolean): Promise<Task | undefined>;
21
+ /**
22
+ * Represents a configured task in the system.
23
+ *
24
+ * This interface is used to define tasks that can be executed within the workspace.
25
+ * It includes optional properties for identifying and describing the task.
26
+ *
27
+ * Properties:
28
+ * - `type`: (optional) The type of the task, which categorizes it (e.g., "build", "test").
29
+ * - `label`: (optional) A user-facing label for the task, typically used for display purposes.
30
+ * - `script`: (optional) A script associated with the task, if applicable.
31
+ * - `command`: (optional) A command associated with the task, if applicable.
32
+ *
33
+ */
34
+ export interface IConfiguredTask {
35
+ label?: string;
36
+ type?: string;
37
+ script?: string;
38
+ command?: string;
39
+ args?: string[];
40
+ isBackground?: boolean;
41
+ problemMatcher?: string[];
42
+ group?: string;
43
+ }
44
+ export declare function resolveDependencyTasks(parentTask: Task, workspaceFolder: string, configurationService: IConfigurationService, taskService: ITaskService): Promise<Task[] | undefined>;
45
+ /**
46
+ * Collects output, polling duration, and idle status for all terminals.
47
+ */
48
+ export declare function collectTerminalResults(terminals: ITerminalInstance[], task: Task, instantiationService: IInstantiationService, invocationContext: IToolInvocationContext, progress: ToolProgress, token: CancellationToken, disposableStore: DisposableStore, isActive?: () => Promise<boolean>, dependencyTasks?: Task[]): Promise<Array<{
49
+ name: string;
50
+ output: string;
51
+ resources?: ILinkLocation[];
52
+ pollDurationMs: number;
53
+ state: OutputMonitorState;
54
+ inputToolManualAcceptCount: number;
55
+ inputToolManualRejectCount: number;
56
+ inputToolManualChars: number;
57
+ }>>;
58
+ export declare function taskProblemPollFn(execution: IExecution, token: CancellationToken, taskService: ITaskService): Promise<IPollingResult | undefined>;
59
+ export interface ILinkLocation {
60
+ uri: URI;
61
+ range?: Range;
62
+ }
@@ -0,0 +1,174 @@
1
+
2
+ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
3
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
4
+ import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
5
+ import { getOutput } from './outputHelpers.js';
6
+ import { OutputMonitor } from './tools/monitoring/outputMonitor.js';
7
+ import { OutputMonitorState } from './tools/monitoring/types.js';
8
+ import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
9
+
10
+ function getTaskDefinition(id) {
11
+ const idx = id.indexOf(': ');
12
+ const taskType = id.substring(0, idx);
13
+ let taskLabel = idx > 0 ? id.substring(idx + 2) : id;
14
+ if (/^\d+$/.test(taskLabel)) {
15
+ taskLabel = id;
16
+ }
17
+ return { taskLabel, taskType };
18
+ }
19
+ function getTaskRepresentation(task) {
20
+ if ('label' in task && task.label) {
21
+ return task.label;
22
+ }
23
+ else if ('script' in task && task.script) {
24
+ return task.script;
25
+ }
26
+ else if ('command' in task && task.command) {
27
+ return typeof task.command === 'string' ? task.command : task.command.name?.toString() || '';
28
+ }
29
+ return '';
30
+ }
31
+ async function getTaskForTool(id, taskDefinition, workspaceFolder, configurationService, taskService, allowParentTask) {
32
+ let index = 0;
33
+ let task;
34
+ const workspaceFolderToTaskMap = await taskService.getWorkspaceTasks();
35
+ let configTasks = [];
36
+ for (const folder of ( workspaceFolderToTaskMap.keys())) {
37
+ const tasksConfig = configurationService.getValue('tasks', { resource: ( URI.parse(folder)) });
38
+ if (tasksConfig?.tasks) {
39
+ configTasks = configTasks.concat(tasksConfig.tasks);
40
+ }
41
+ }
42
+ for (const configTask of configTasks) {
43
+ if ((!allowParentTask && !configTask.type) || ('hide' in configTask && configTask.hide)) {
44
+ continue;
45
+ }
46
+ if ((configTask.type && taskDefinition.taskType ? configTask.type === taskDefinition.taskType : true) &&
47
+ ((getTaskRepresentation(configTask) === taskDefinition?.taskLabel) || (id === configTask.label))) {
48
+ task = configTask;
49
+ break;
50
+ }
51
+ else if (!configTask.label && id === `${configTask.type}: ${index}`) {
52
+ task = configTask;
53
+ break;
54
+ }
55
+ index++;
56
+ }
57
+ if (!task) {
58
+ return;
59
+ }
60
+ let tasksForWorkspace;
61
+ const workspaceFolderPath = URI.file(workspaceFolder).path;
62
+ for (const [folder, tasks] of workspaceFolderToTaskMap) {
63
+ if (( URI.parse(folder)).path === workspaceFolderPath) {
64
+ tasksForWorkspace = tasks;
65
+ break;
66
+ }
67
+ }
68
+ if (!tasksForWorkspace) {
69
+ return;
70
+ }
71
+ const configuringTasks = tasksForWorkspace.configurations?.byIdentifier;
72
+ const configuredTask = ( Object.values(configuringTasks ?? {})).find(t => {
73
+ return t.type === task.type && (t._label === task.label || t._label === `${task.type}: ${getTaskRepresentation(task)}` || t._label === getTaskRepresentation(task));
74
+ });
75
+ let resolvedTask;
76
+ if (configuredTask) {
77
+ resolvedTask = await taskService.tryResolveTask(configuredTask);
78
+ }
79
+ if (!resolvedTask) {
80
+ const customTasks = tasksForWorkspace.set?.tasks;
81
+ resolvedTask = customTasks?.find(t => task.label === t._label || task.label === t._label);
82
+ }
83
+ return resolvedTask;
84
+ }
85
+ async function resolveDependencyTasks(parentTask, workspaceFolder, configurationService, taskService) {
86
+ if (!parentTask.configurationProperties?.dependsOn) {
87
+ return undefined;
88
+ }
89
+ const dependencyTasks = await Promise.all(( parentTask.configurationProperties.dependsOn.map(async (dep) => {
90
+ const depId = typeof dep.task === 'string' ? dep.task : dep.task?._key;
91
+ if (!depId) {
92
+ return undefined;
93
+ }
94
+ return await getTaskForTool(depId, { taskLabel: depId }, workspaceFolder, configurationService, taskService);
95
+ })));
96
+ return dependencyTasks.filter((t) => t !== undefined);
97
+ }
98
+ async function collectTerminalResults(terminals, task, instantiationService, invocationContext, progress, token, disposableStore, isActive, dependencyTasks) {
99
+ const results = [];
100
+ if (token.isCancellationRequested) {
101
+ return results;
102
+ }
103
+ for (const instance of terminals) {
104
+ progress.report({ message: ( new MarkdownString(`Checking output for \`${instance.shellLaunchConfig.name ?? 'unknown'}\``)) });
105
+ const execution = {
106
+ getOutput: () => getOutput(instance) ?? '',
107
+ isActive,
108
+ task,
109
+ instance,
110
+ dependencyTasks,
111
+ sessionId: invocationContext.sessionId
112
+ };
113
+ const outputMonitor = disposableStore.add(instantiationService.createInstance(OutputMonitor, execution, taskProblemPollFn, invocationContext, token, task._label));
114
+ await Event.toPromise(outputMonitor.onDidFinishCommand);
115
+ const pollingResult = outputMonitor.pollingResult;
116
+ results.push({
117
+ name: instance.shellLaunchConfig.name ?? 'unknown',
118
+ output: pollingResult?.output ?? '',
119
+ pollDurationMs: pollingResult?.pollDurationMs ?? 0,
120
+ resources: pollingResult?.resources,
121
+ state: pollingResult?.state || OutputMonitorState.Idle,
122
+ inputToolManualAcceptCount: outputMonitor.outputMonitorTelemetryCounters.inputToolManualAcceptCount ?? 0,
123
+ inputToolManualRejectCount: outputMonitor.outputMonitorTelemetryCounters.inputToolManualRejectCount ?? 0,
124
+ inputToolManualChars: outputMonitor.outputMonitorTelemetryCounters.inputToolManualChars ?? 0,
125
+ });
126
+ }
127
+ return results;
128
+ }
129
+ async function taskProblemPollFn(execution, token, taskService) {
130
+ if (token.isCancellationRequested) {
131
+ return;
132
+ }
133
+ if (execution.task) {
134
+ const data = taskService.getTaskProblems(execution.instance.instanceId);
135
+ if (data) {
136
+ const problemList = [];
137
+ const resultResources = [];
138
+ for (const [owner, { resources, markers }] of data.entries()) {
139
+ for (let i = 0; i < markers.length; i++) {
140
+ const uri = resources[i];
141
+ const marker = markers[i];
142
+ resultResources.push({
143
+ uri,
144
+ range: marker.startLineNumber !== undefined && marker.startColumn !== undefined && marker.endLineNumber !== undefined && marker.endColumn !== undefined
145
+ ? ( new Range(
146
+ marker.startLineNumber,
147
+ marker.startColumn,
148
+ marker.endLineNumber,
149
+ marker.endColumn
150
+ ))
151
+ : undefined
152
+ });
153
+ const label = uri ? uri.path.split('/').pop() ?? ( uri.toString()) : '';
154
+ const message = marker.message ?? '';
155
+ problemList.push(`Problem: ${message} in ${label} coming from ${owner}`);
156
+ }
157
+ }
158
+ if (problemList.length === 0) {
159
+ return {
160
+ state: OutputMonitorState.Idle,
161
+ output: 'The task succeeded with no problems.',
162
+ };
163
+ }
164
+ return {
165
+ state: OutputMonitorState.Idle,
166
+ output: problemList.join('\n'),
167
+ resources: resultResources,
168
+ };
169
+ }
170
+ }
171
+ throw ( new Error('Polling failed'));
172
+ }
173
+
174
+ export { collectTerminalResults, getTaskDefinition, getTaskForTool, getTaskRepresentation, resolveDependencyTasks, taskProblemPollFn };
@@ -4,29 +4,60 @@ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codi
4
4
  import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
5
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
6
6
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
+ import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
8
+ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
7
9
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
8
10
  import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
11
+ import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
12
+ import { showChatView } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
13
+ import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
14
+ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
9
15
  import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
10
16
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
11
- import { GetTerminalOutputTool, GetTerminalOutputToolData } from './getTerminalOutputTool.js';
12
- import { RunInTerminalTool, RunInTerminalToolData } from './runInTerminalTool.js';
17
+ import { registerActiveInstanceAction, sharedWhenClause } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminal/browser/terminalActions';
18
+ import { TerminalContextMenuGroup } from '@codingame/monaco-vscode-05a2a821-e4de-5941-b7f9-bbf01c09f229-common/vscode/vs/workbench/contrib/terminal/browser/terminalMenus';
19
+ import { TerminalContextKeys } from '@codingame/monaco-vscode-b6d52a6d-8c8e-51f5-bcd2-1722295e31d9-common/vscode/vs/workbench/contrib/terminal/common/terminalContextKey';
20
+ import { TerminalChatAgentToolsCommandId } from '../common/terminal.chatAgentTools.js';
21
+ import { GetTerminalLastCommandTool, GetTerminalLastCommandToolData } from './tools/getTerminalLastCommandTool.js';
22
+ import { GetTerminalOutputTool, GetTerminalOutputToolData } from './tools/getTerminalOutputTool.js';
23
+ import { GetTerminalSelectionTool, GetTerminalSelectionToolData } from './tools/getTerminalSelectionTool.js';
24
+ import { RunInTerminalTool, RunInTerminalToolData } from './tools/runInTerminalTool.js';
25
+ import { CreateAndRunTaskTool, CreateAndRunTaskToolData } from './tools/task/createAndRunTaskTool.js';
26
+ import { GetTaskOutputTool, GetTaskOutputToolData } from './tools/task/getTaskOutputTool.js';
27
+ import { RunTaskTool, RunTaskToolData } from './tools/task/runTaskTool.js';
13
28
 
14
29
  let ChatAgentToolsContribution = class ChatAgentToolsContribution extends Disposable {
15
30
  static { this.ID = 'terminal.chatAgentTools'; }
16
31
  constructor(instantiationService, toolsService) {
17
32
  super();
18
33
  const runInTerminalTool = instantiationService.createInstance(RunInTerminalTool);
19
- this._register(toolsService.registerToolData(RunInTerminalToolData));
20
- this._register(toolsService.registerToolImplementation(RunInTerminalToolData.id, runInTerminalTool));
34
+ this._register(toolsService.registerTool(RunInTerminalToolData, runInTerminalTool));
21
35
  const getTerminalOutputTool = instantiationService.createInstance(GetTerminalOutputTool);
22
- this._register(toolsService.registerToolData(GetTerminalOutputToolData));
23
- this._register(toolsService.registerToolImplementation(GetTerminalOutputToolData.id, getTerminalOutputTool));
24
- const toolSet = this._register(toolsService.createToolSet(ToolDataSource.Internal, 'runCommands', 'runCommands', {
36
+ this._register(toolsService.registerTool(GetTerminalOutputToolData, getTerminalOutputTool));
37
+ const runCommandsToolSet = this._register(toolsService.createToolSet(ToolDataSource.Internal, 'runCommands', 'runCommands', {
25
38
  icon: ThemeIcon.fromId(Codicon.terminal.id),
26
- description: ( localize(11304, 'Runs commands in the terminal'))
39
+ description: ( localize(11430, 'Runs commands in the terminal'))
27
40
  }));
28
- toolSet.addTool(RunInTerminalToolData);
29
- toolSet.addTool(GetTerminalOutputToolData);
41
+ runCommandsToolSet.addTool(RunInTerminalToolData);
42
+ runCommandsToolSet.addTool(GetTerminalOutputToolData);
43
+ const getTerminalSelectionTool = instantiationService.createInstance(GetTerminalSelectionTool);
44
+ this._register(toolsService.registerTool(GetTerminalSelectionToolData, getTerminalSelectionTool));
45
+ const getTerminalLastCommandTool = instantiationService.createInstance(GetTerminalLastCommandTool);
46
+ this._register(toolsService.registerTool(GetTerminalLastCommandToolData, getTerminalLastCommandTool));
47
+ runCommandsToolSet.addTool(GetTerminalSelectionToolData);
48
+ runCommandsToolSet.addTool(GetTerminalLastCommandToolData);
49
+ const runTaskTool = instantiationService.createInstance(RunTaskTool);
50
+ this._register(toolsService.registerTool(RunTaskToolData, runTaskTool));
51
+ const getTaskOutputTool = instantiationService.createInstance(GetTaskOutputTool);
52
+ this._register(toolsService.registerTool(GetTaskOutputToolData, getTaskOutputTool));
53
+ const createAndRunTaskTool = instantiationService.createInstance(CreateAndRunTaskTool);
54
+ this._register(toolsService.registerTool(CreateAndRunTaskToolData, createAndRunTaskTool));
55
+ const runTasksToolSet = this._register(toolsService.createToolSet(ToolDataSource.Internal, 'runTasks', 'runTasks', {
56
+ description: ( localize(11431, 'Runs tasks and gets their output for your workspace')),
57
+ }));
58
+ runTasksToolSet.addTool(RunTaskToolData);
59
+ runTasksToolSet.addTool(GetTaskOutputToolData);
60
+ runTasksToolSet.addTool(CreateAndRunTaskToolData);
30
61
  }
31
62
  };
32
63
  ChatAgentToolsContribution = ( __decorate([
@@ -34,3 +65,37 @@ ChatAgentToolsContribution = ( __decorate([
34
65
  ( __param(1, ILanguageModelToolsService))
35
66
  ], ChatAgentToolsContribution));
36
67
  registerWorkbenchContribution2(ChatAgentToolsContribution.ID, ChatAgentToolsContribution, WorkbenchPhase.AfterRestored);
68
+ registerActiveInstanceAction({
69
+ id: TerminalChatAgentToolsCommandId.ChatAddTerminalSelection,
70
+ title: ( localize(11432, 'Add Terminal Selection to Chat')),
71
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, sharedWhenClause.terminalAvailable)),
72
+ menu: [
73
+ {
74
+ id: MenuId.TerminalInstanceContext,
75
+ group: TerminalContextMenuGroup.Chat,
76
+ order: 1,
77
+ when: ( ContextKeyExpr.and(ChatContextKeys.enabled, TerminalContextKeys.textSelected))
78
+ },
79
+ ],
80
+ run: async (activeInstance, _c, accessor) => {
81
+ const viewsService = accessor.get(IViewsService);
82
+ const chatWidgetService = accessor.get(IChatWidgetService);
83
+ const selection = activeInstance.selection;
84
+ if (!selection) {
85
+ return;
86
+ }
87
+ const chatView = chatWidgetService.lastFocusedWidget || (await showChatView(viewsService));
88
+ if (!chatView) {
89
+ return;
90
+ }
91
+ chatView.attachmentModel.addContext({
92
+ id: `terminal-selection-${Date.now()}`,
93
+ kind: 'generic',
94
+ name: ( localize(11433, 'Terminal Selection')),
95
+ fullName: ( localize(11433, 'Terminal Selection')),
96
+ value: selection,
97
+ icon: Codicon.terminal
98
+ });
99
+ chatView.focusInput();
100
+ }
101
+ });
@@ -1,4 +1,6 @@
1
1
  import type { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
3
+ import { ITerminalLogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service";
2
4
  import { type ITerminalInstance } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
3
5
  import { ITerminalService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service";
4
6
  export declare enum ShellIntegrationQuality {
@@ -9,16 +11,27 @@ export declare enum ShellIntegrationQuality {
9
11
  export interface IToolTerminal {
10
12
  instance: ITerminalInstance;
11
13
  shellIntegrationQuality: ShellIntegrationQuality;
14
+ receivedUserInput?: boolean;
12
15
  }
13
16
  export declare class ToolTerminalCreator {
17
+ private readonly _configurationService;
18
+ private readonly _logService;
14
19
  private readonly _terminalService;
15
20
  /**
16
21
  * The shell preference cached for the lifetime of the window. This allows skipping previous
17
22
  * shell approaches that failed in previous runs to save time.
18
23
  */
19
24
  private static _lastSuccessfulShell;
20
- constructor(_terminalService: ITerminalService);
21
- createTerminal(token: CancellationToken): Promise<IToolTerminal>;
25
+ constructor(_configurationService: IConfigurationService, _logService: ITerminalLogService, _terminalService: ITerminalService);
26
+ createTerminal(shell: string, token: CancellationToken): Promise<IToolTerminal>;
27
+ /**
28
+ * Synchronously update shell integration quality based on the terminal instance's current
29
+ * capabilities. This is a defensive change to avoid no shell integration being sticky
30
+ * https://github.com/microsoft/vscode/issues/260880
31
+ *
32
+ * Only upgrade quality just in case.
33
+ */
34
+ refreshShellIntegrationQuality(toolTerminal: IToolTerminal): void;
22
35
  private _createCopilotTerminal;
23
36
  private _waitForShellIntegration;
24
37
  }