@codingame/monaco-vscode-chat-service-override 20.5.0 → 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
@@ -4,6 +4,7 @@ import { getWindow, $ } from '@codingame/monaco-vscode-api/vscode/vs/base/browse
4
4
  import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
5
5
  import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
6
  import { MarshalledId } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshallingIds';
7
+ import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
7
8
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
8
9
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
9
10
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
@@ -29,8 +30,8 @@ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/misc
29
30
  import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quickpickColors';
30
31
  import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
31
32
  import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
32
- import { ViewPane } from '@codingame/monaco-vscode-501b06ab-3f58-516b-8a1a-c29d375d3da4-common/vscode/vs/workbench/browser/parts/views/viewPane';
33
- import { Memento } from '@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common/vscode/vs/workbench/common/memento';
33
+ import { ViewPane } from '@codingame/monaco-vscode-4fad3647-b95d-5c19-bab1-bb9de627a5ec-common/vscode/vs/workbench/browser/parts/views/viewPane';
34
+ import { Memento } from '@codingame/monaco-vscode-23b6fb38-5e58-5886-b34b-27abc4f5df02-common/vscode/vs/workbench/common/memento';
34
35
  import { SIDE_BAR_FOREGROUND } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/theme';
35
36
  import { ViewContainerLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views';
36
37
  import { IViewDescriptorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views.service';
@@ -38,14 +39,16 @@ import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
38
39
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
39
40
  import { CHAT_PROVIDER_ID } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatParticipantContribTypes';
40
41
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
42
+ import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
41
43
  import { ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
44
+ import { ChatSessionUri } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatUri';
42
45
  import { ChatWidget } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/browser/chatWidget';
43
46
  import { ChatViewWelcomeController } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController';
44
47
 
45
48
  const CHAT_SIDEBAR_PANEL_ID = 'workbench.panel.chat';
46
49
  let ChatViewPane = class ChatViewPane extends ViewPane {
47
50
  get widget() { return this._widget; }
48
- constructor(chatOptions, options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, hoverService, storageService, chatService, chatAgentService, logService, layoutService) {
51
+ constructor(chatOptions, options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, hoverService, storageService, chatService, chatAgentService, logService, layoutService, chatSessionsService) {
49
52
  super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, hoverService);
50
53
  this.chatOptions = chatOptions;
51
54
  this.storageService = storageService;
@@ -53,6 +56,7 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
53
56
  this.chatAgentService = chatAgentService;
54
57
  this.logService = logService;
55
58
  this.layoutService = layoutService;
59
+ this.chatSessionsService = chatSessionsService;
56
60
  this.modelDisposables = this._register(( new DisposableStore()));
57
61
  this.memento = ( new Memento('interactive-session-view-' + CHAT_PROVIDER_ID, this.storageService));
58
62
  this.viewState = this.memento.getMemento(StorageScope.WORKSPACE, StorageTarget.MACHINE);
@@ -146,48 +150,42 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
146
150
  }
147
151
  }
148
152
  async renderBody(parent) {
149
- try {
150
- super.renderBody(parent);
151
- this._register(this.instantiationService.createInstance(ChatViewWelcomeController, parent, this, this.chatOptions.location));
152
- const scopedInstantiationService = this._register(this.instantiationService.createChild(( new ServiceCollection([IContextKeyService, this.scopedContextKeyService]))));
153
- const locationBasedColors = this.getLocationBasedColors();
154
- const editorOverflowNode = this.layoutService.getContainer(getWindow(parent)).appendChild($('.chat-editor-overflow.monaco-editor'));
155
- this._register({ dispose: () => editorOverflowNode.remove() });
156
- this._widget = this._register(scopedInstantiationService.createInstance(ChatWidget, this.chatOptions.location, { viewId: this.id }, {
157
- autoScroll: mode => mode !== ChatModeKind.Ask,
158
- renderFollowups: this.chatOptions.location === ChatAgentLocation.Panel,
159
- supportsFileReferences: true,
160
- rendererOptions: {
161
- renderTextEditsAsSummary: (uri) => {
162
- return true;
163
- },
164
- referencesExpandedWhenEmptyResponse: false,
165
- progressMessageAtBottomOfResponse: mode => mode !== ChatModeKind.Ask,
153
+ super.renderBody(parent);
154
+ this._register(this.instantiationService.createInstance(ChatViewWelcomeController, parent, this, this.chatOptions.location));
155
+ const scopedInstantiationService = this._register(this.instantiationService.createChild(( new ServiceCollection([IContextKeyService, this.scopedContextKeyService]))));
156
+ const locationBasedColors = this.getLocationBasedColors();
157
+ const editorOverflowNode = this.layoutService.getContainer(getWindow(parent)).appendChild($('.chat-editor-overflow.monaco-editor'));
158
+ this._register({ dispose: () => editorOverflowNode.remove() });
159
+ this._widget = this._register(scopedInstantiationService.createInstance(ChatWidget, this.chatOptions.location, { viewId: this.id }, {
160
+ autoScroll: mode => mode !== ChatModeKind.Ask,
161
+ renderFollowups: this.chatOptions.location === ChatAgentLocation.Panel,
162
+ supportsFileReferences: true,
163
+ rendererOptions: {
164
+ renderTextEditsAsSummary: (uri) => {
165
+ return true;
166
166
  },
167
- editorOverflowWidgetsDomNode: editorOverflowNode,
168
- enableImplicitContext: this.chatOptions.location === ChatAgentLocation.Panel,
169
- enableWorkingSet: 'explicit',
170
- supportsChangingModes: true,
171
- }, {
172
- listForeground: SIDE_BAR_FOREGROUND,
173
- listBackground: locationBasedColors.background,
174
- overlayBackground: locationBasedColors.overlayBackground,
175
- inputEditorBackground: locationBasedColors.background,
176
- resultEditorBackground: editorBackground,
177
- }));
178
- this._register(this.onDidChangeBodyVisibility(visible => {
179
- this._widget.setVisible(visible);
180
- }));
181
- this._register(this._widget.onDidClear(() => this.clear()));
182
- this._widget.render(parent);
183
- const info = this.getTransferredOrPersistedSessionInfo();
184
- const model = info.sessionId ? await this.chatService.getOrRestoreSession(info.sessionId) : undefined;
185
- await this.updateModel(model, info.inputValue || info.mode ? { inputState: { chatMode: info.mode }, inputValue: info.inputValue } : undefined);
186
- }
187
- catch (e) {
188
- this.logService.error(e);
189
- throw e;
190
- }
167
+ referencesExpandedWhenEmptyResponse: false,
168
+ progressMessageAtBottomOfResponse: mode => mode !== ChatModeKind.Ask,
169
+ },
170
+ editorOverflowWidgetsDomNode: editorOverflowNode,
171
+ enableImplicitContext: this.chatOptions.location === ChatAgentLocation.Panel,
172
+ enableWorkingSet: 'explicit',
173
+ supportsChangingModes: true,
174
+ }, {
175
+ listForeground: SIDE_BAR_FOREGROUND,
176
+ listBackground: locationBasedColors.background,
177
+ overlayBackground: locationBasedColors.overlayBackground,
178
+ inputEditorBackground: locationBasedColors.background,
179
+ resultEditorBackground: editorBackground,
180
+ }));
181
+ this._register(this.onDidChangeBodyVisibility(visible => {
182
+ this._widget.setVisible(visible);
183
+ }));
184
+ this._register(this._widget.onDidClear(() => this.clear()));
185
+ this._widget.render(parent);
186
+ const info = this.getTransferredOrPersistedSessionInfo();
187
+ const model = info.sessionId ? await this.chatService.getOrRestoreSession(info.sessionId) : undefined;
188
+ await this.updateModel(model, info.inputValue || info.mode ? { inputState: { chatMode: info.mode }, inputValue: info.inputValue } : undefined);
191
189
  }
192
190
  acceptInput(query) {
193
191
  this._widget.acceptInput(query);
@@ -204,6 +202,17 @@ let ChatViewPane = class ChatViewPane extends ViewPane {
204
202
  if (this.widget.viewModel) {
205
203
  await this.chatService.clearSession(this.widget.viewModel.sessionId);
206
204
  }
205
+ if (URI.isUri(sessionId) && sessionId.scheme === Schemas.vscodeChatSession) {
206
+ const parsed = ChatSessionUri.parse(sessionId);
207
+ if (parsed?.chatSessionType) {
208
+ await this.chatSessionsService.canResolveContentProvider(parsed.chatSessionType);
209
+ const contributions = this.chatSessionsService.getAllChatSessionContributions();
210
+ const contribution = contributions.find((c) => c.type === parsed.chatSessionType);
211
+ if (contribution) {
212
+ this.widget.lockToCodingAgent(contribution.name, contribution.displayName, contribution.type);
213
+ }
214
+ }
215
+ }
207
216
  const newModel = await (URI.isUri(sessionId) ? this.chatService.loadSessionForResource(sessionId, ChatAgentLocation.Panel, CancellationToken.None) : this.chatService.getOrRestoreSession(sessionId));
208
217
  await this.updateModel(newModel, viewState);
209
218
  }
@@ -247,7 +256,8 @@ ChatViewPane = ( __decorate([
247
256
  ( __param(12, IChatService)),
248
257
  ( __param(13, IChatAgentService)),
249
258
  ( __param(14, ILogService)),
250
- ( __param(15, ILayoutService))
259
+ ( __param(15, ILayoutService)),
260
+ ( __param(16, IChatSessionsService))
251
261
  ], ChatViewPane));
252
262
 
253
263
  export { CHAT_SIDEBAR_PANEL_ID, ChatViewPane };
@@ -119,7 +119,7 @@ let InputEditorDecorations = class InputEditorDecorations extends Disposable {
119
119
  const mode = this.widget.input.currentModeObs.get();
120
120
  let description = mode.description.get();
121
121
  if (this.configurationService.getValue('chat.emptyChatState.enabled')) {
122
- description = ( localize(5231, "Add context (#), extensions (@), commands (/)"));
122
+ description = ( localize(5352, "Add context (#), extensions (@), commands (/)"));
123
123
  }
124
124
  const decoration = [
125
125
  {
@@ -227,8 +227,11 @@ let InputEditorDecorations = class InputEditorDecorations extends Disposable {
227
227
  varDecorations.push({ range: tool.editorRange });
228
228
  }
229
229
  const dynamicVariableParts = parsedRequest.filter((p) => p instanceof ChatRequestDynamicVariablePart);
230
- for (const variable of dynamicVariableParts) {
231
- varDecorations.push({ range: variable.editorRange, hoverMessage: URI.isUri(variable.data) ? ( new MarkdownString(this.labelService.getUriLabel(variable.data, { relative: true }))) : undefined });
230
+ const isEditingPreviousRequest = !!this.widget.viewModel?.editing;
231
+ if (isEditingPreviousRequest) {
232
+ for (const variable of dynamicVariableParts) {
233
+ varDecorations.push({ range: variable.editorRange, hoverMessage: URI.isUri(variable.data) ? ( new MarkdownString(this.labelService.getUriLabel(variable.data, { relative: true }))) : undefined });
234
+ }
232
235
  }
233
236
  this.widget.inputEditor.setDecorationsByType(decorationDescription, variableTextDecorationType, varDecorations);
234
237
  }
@@ -58,7 +58,7 @@ let ChatAgentHoverParticipant = class ChatAgentHoverParticipant {
58
58
  return ( new RenderedHoverParts([renderedHoverPart]));
59
59
  }
60
60
  getAccessibleContent(hoverPart) {
61
- return localize(5232, 'There is a chat agent hover part here.');
61
+ return localize(5353, 'There is a chat agent hover part here.');
62
62
  }
63
63
  };
64
64
  ChatAgentHoverParticipant = ( __decorate([
@@ -1,4 +1,5 @@
1
1
  import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
2
3
  import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
4
  import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
4
5
  import { ThemeIcon } from "@codingame/monaco-vscode-api/vscode/vs/base/common/themables";
@@ -9,11 +10,13 @@ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platf
9
10
  import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
10
11
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
11
12
  import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
13
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
12
14
  import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
13
15
  import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
14
16
  import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service";
15
- import { CountTokensCallback, IToolData, IToolImpl, IToolInvocation, IToolResult, ToolSet, ToolDataSource } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
17
+ import { CountTokensCallback, IToolData, IToolImpl, IToolInvocation, IToolResult, ToolDataSource, ToolSet, IToolAndToolSetEnablementMap } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
16
18
  import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service";
19
+ export declare const globalAutoApproveDescription: import("@codingame/monaco-vscode-api/vscode/vs/nls").ILocalizedString;
17
20
  export declare class LanguageModelToolsService extends Disposable implements ILanguageModelToolsService {
18
21
  private readonly _instantiationService;
19
22
  private readonly _extensionService;
@@ -25,9 +28,10 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
25
28
  private readonly _configurationService;
26
29
  private readonly _accessibilityService;
27
30
  private readonly _accessibilitySignalService;
31
+ private readonly _storageService;
28
32
  _serviceBrand: undefined;
29
33
  private _onDidChangeTools;
30
- readonly onDidChangeTools: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
34
+ readonly onDidChangeTools: Event<void>;
31
35
  /** Throttle tools updates because it sends all tools and runs on context key updates */
32
36
  private _onDidChangeToolsScheduler;
33
37
  private _tools;
@@ -37,17 +41,18 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
37
41
  private _workspaceToolConfirmStore;
38
42
  private _profileToolConfirmStore;
39
43
  private _memoryToolConfirmStore;
40
- constructor(_instantiationService: IInstantiationService, _extensionService: IExtensionService, _contextKeyService: IContextKeyService, _chatService: IChatService, _dialogService: IDialogService, _telemetryService: ITelemetryService, _logService: ILogService, _configurationService: IConfigurationService, _accessibilityService: IAccessibilityService, _accessibilitySignalService: IAccessibilitySignalService);
44
+ constructor(_instantiationService: IInstantiationService, _extensionService: IExtensionService, _contextKeyService: IContextKeyService, _chatService: IChatService, _dialogService: IDialogService, _telemetryService: ITelemetryService, _logService: ILogService, _configurationService: IConfigurationService, _accessibilityService: IAccessibilityService, _accessibilitySignalService: IAccessibilitySignalService, _storageService: IStorageService);
41
45
  dispose(): void;
42
46
  registerToolData(toolData: IToolData): IDisposable;
43
47
  private _refreshAllToolContextKeys;
44
- flushToolChanges(): void;
45
48
  registerToolImplementation(id: string, tool: IToolImpl): IDisposable;
49
+ registerTool(toolData: IToolData, tool: IToolImpl): IDisposable;
46
50
  getTools(includeDisabled?: boolean): Iterable<Readonly<IToolData>>;
47
51
  getTool(id: string): IToolData | undefined;
48
52
  private _getToolEntry;
49
53
  getToolByName(name: string, includeDisabled?: boolean): IToolData | undefined;
50
- setToolAutoConfirmation(toolId: string, scope: "workspace" | "profile" | "memory", autoConfirm?: boolean): void;
54
+ setToolAutoConfirmation(toolId: string, scope: "workspace" | "profile" | "session" | "never"): void;
55
+ getToolAutoConfirmation(toolId: string): "workspace" | "profile" | "session" | "never";
51
56
  resetToolAutoConfirmation(): void;
52
57
  invokeTool(dto: IToolInvocation, countTokens: CountTokensCallback, token: CancellationToken): Promise<IToolResult>;
53
58
  private prepareToolInvocation;
@@ -56,15 +61,16 @@ export declare class LanguageModelToolsService extends Disposable implements ILa
56
61
  private formatToolInput;
57
62
  private toolResultToIO;
58
63
  private shouldAutoConfirm;
64
+ private _checkGlobalAutoApprove;
59
65
  private cleanupCallDisposables;
60
66
  cancelToolCallsForRequest(requestId: string): void;
61
67
  toToolEnablementMap(toolOrToolsetNames: Set<string>): Record<string, boolean>;
62
68
  /**
63
69
  * Create a map that contains all tools and toolsets with their enablement state.
64
- * @param toolOrToolSetNames A list of tool or toolset names to check for enablement. If undefined, all tools and toolsets are enabled.
70
+ * @param toolOrToolSetNames A list of tool or toolset names that are enabled.
65
71
  * @returns A map of tool or toolset instances to their enablement state.
66
72
  */
67
- toToolAndToolSetEnablementMap(enabledToolOrToolSetNames: readonly string[] | undefined): Map<ToolSet | IToolData, boolean>;
73
+ toToolAndToolSetEnablementMap(enabledToolOrToolSetNames: readonly string[]): IToolAndToolSetEnablementMap;
68
74
  private readonly _toolSets;
69
75
  readonly toolSets: IObservable<Iterable<ToolSet>>;
70
76
  getToolSet(id: string): ToolSet | undefined;
@@ -8,12 +8,15 @@ import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/
8
8
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
9
9
  import { toErrorMessage } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errorMessage';
10
10
  import { CancellationError, isCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
11
- import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
11
+ import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
12
+ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
12
13
  import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
13
14
  import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
14
- import { Disposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
15
+ import { Disposable, DisposableStore, toDisposable, combinedDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
15
16
  import { LRUCache } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
16
17
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
18
+ import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
19
+ import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
17
20
  import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
18
21
  import { AccessibilitySignal } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService';
19
22
  import { IAccessibilitySignalService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service';
@@ -30,6 +33,7 @@ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platfo
30
33
  import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
31
34
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
32
35
  import { ChatToolInvocation } from '../common/chatProgressTypes/chatToolInvocation.js';
36
+ import { ToolConfirmKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService';
33
37
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
34
38
  import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
35
39
  import { createToolSchemaUri, stringifyPromptTsxPart, ToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
@@ -38,8 +42,16 @@ import { ObservableSet } from '@codingame/monaco-vscode-api/vscode/vs/base/commo
38
42
 
39
43
  var ToolConfirmStore_1;
40
44
  const jsonSchemaRegistry = ( Registry.as(Extensions.JSONContribution));
45
+ var AutoApproveStorageKeys;
46
+ (function (AutoApproveStorageKeys) {
47
+ AutoApproveStorageKeys["GlobalAutoApproveOptIn"] = "chat.tools.global.autoApprove.optIn";
48
+ })(AutoApproveStorageKeys || (AutoApproveStorageKeys = {}));
49
+ const globalAutoApproveDescription = ( localize2(
50
+ 5356,
51
+ 'Global auto approve also known as "YOLO mode" disables manual approval completely for _all tools in all workspaces_, allowing the agent to act fully autonomously. This is extremely dangerous and is *never* recommended, even containerized environments like [Codespaces](https://github.com/features/codespaces) and [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) have user keys forwarded into the container that could be compromised.\n\n**This feature disables [critical security protections](https://code.visualstudio.com/docs/copilot/security) and makes it much easier for an attacker to compromise the machine.**'
52
+ ));
41
53
  let LanguageModelToolsService = class LanguageModelToolsService extends Disposable {
42
- constructor(_instantiationService, _extensionService, _contextKeyService, _chatService, _dialogService, _telemetryService, _logService, _configurationService, _accessibilityService, _accessibilitySignalService) {
54
+ constructor(_instantiationService, _extensionService, _contextKeyService, _chatService, _dialogService, _telemetryService, _logService, _configurationService, _accessibilityService, _accessibilitySignalService, _storageService) {
43
55
  super();
44
56
  this._instantiationService = _instantiationService;
45
57
  this._extensionService = _extensionService;
@@ -51,6 +63,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
51
63
  this._configurationService = _configurationService;
52
64
  this._accessibilityService = _accessibilityService;
53
65
  this._accessibilitySignalService = _accessibilitySignalService;
66
+ this._storageService = _storageService;
54
67
  this._onDidChangeTools = ( new Emitter());
55
68
  this.onDidChangeTools = this._onDidChangeTools.event;
56
69
  this._onDidChangeToolsScheduler = ( new RunOnceScheduler(() => this._onDidChangeTools.fire(), 750));
@@ -76,6 +89,13 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
76
89
  this._onDidChangeToolsScheduler.schedule();
77
90
  }
78
91
  }));
92
+ this._register(Event.runAndSubscribe(this._configurationService.onDidChangeConfiguration, e => {
93
+ if (!e || e.affectsConfiguration(ChatConfiguration.GlobalAutoApprove)) {
94
+ if (this._configurationService.getValue(ChatConfiguration.GlobalAutoApprove) !== true) {
95
+ this._storageService.remove(AutoApproveStorageKeys.GlobalAutoApproveOptIn, StorageScope.APPLICATION);
96
+ }
97
+ }
98
+ }));
79
99
  this._ctxToolsCount = ChatContextKeys.Tools.toolsCount.bindTo(_contextKeyService);
80
100
  }
81
101
  dispose() {
@@ -112,10 +132,6 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
112
132
  tool.data.when?.keys().forEach(key => this._toolContextKeys.add(key));
113
133
  }
114
134
  }
115
- flushToolChanges() {
116
- this._onDidChangeToolsScheduler.cancel();
117
- this._onDidChangeTools.fire();
118
- }
119
135
  registerToolImplementation(id, tool) {
120
136
  const entry = this._tools.get(id);
121
137
  if (!entry) {
@@ -129,6 +145,9 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
129
145
  entry.impl = undefined;
130
146
  });
131
147
  }
148
+ registerTool(toolData, tool) {
149
+ return combinedDisposable(this.registerToolData(toolData), this.registerToolImplementation(toolData.id, tool));
150
+ }
132
151
  getTools(includeDisabled) {
133
152
  const toolDatas = ( Iterable.map(( this._tools.values()), i => i.data));
134
153
  const extensionToolsEnabled = this._configurationService.getValue(ChatConfiguration.ExtensionToolsEnabled);
@@ -158,17 +177,28 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
158
177
  }
159
178
  return undefined;
160
179
  }
161
- setToolAutoConfirmation(toolId, scope, autoConfirm = true) {
162
- if (scope === 'workspace') {
163
- this._workspaceToolConfirmStore.value.setAutoConfirm(toolId, autoConfirm);
164
- }
165
- else if (scope === 'profile') {
166
- this._profileToolConfirmStore.value.setAutoConfirm(toolId, autoConfirm);
180
+ setToolAutoConfirmation(toolId, scope) {
181
+ this._workspaceToolConfirmStore.value.setAutoConfirm(toolId, scope === 'workspace');
182
+ this._profileToolConfirmStore.value.setAutoConfirm(toolId, scope === 'profile');
183
+ if (scope === 'session') {
184
+ this._memoryToolConfirmStore.add(toolId);
167
185
  }
168
186
  else {
169
- this._memoryToolConfirmStore.add(toolId);
187
+ this._memoryToolConfirmStore.delete(toolId);
170
188
  }
171
189
  }
190
+ getToolAutoConfirmation(toolId) {
191
+ if (this._workspaceToolConfirmStore.value.getAutoConfirm(toolId)) {
192
+ return 'workspace';
193
+ }
194
+ if (this._profileToolConfirmStore.value.getAutoConfirm(toolId)) {
195
+ return 'profile';
196
+ }
197
+ if (( this._memoryToolConfirmStore.has(toolId))) {
198
+ return 'session';
199
+ }
200
+ return 'never';
201
+ }
172
202
  resetToolAutoConfirmation() {
173
203
  this._workspaceToolConfirmStore.value.reset();
174
204
  this._profileToolConfirmStore.value.reset();
@@ -211,30 +241,39 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
211
241
  source.dispose(true);
212
242
  }));
213
243
  store.add(token.onCancellationRequested(() => {
214
- toolInvocation?.confirmed.complete(false);
244
+ toolInvocation?.confirmed.complete({ type: ToolConfirmKind.Denied });
215
245
  source.cancel();
216
246
  }));
217
247
  store.add(source.token.onCancellationRequested(() => {
218
- toolInvocation?.confirmed.complete(false);
248
+ toolInvocation?.confirmed.complete({ type: ToolConfirmKind.Denied });
219
249
  }));
220
250
  token = source.token;
221
251
  const prepared = await this.prepareToolInvocation(tool, dto, token);
222
252
  toolInvocation = ( new ChatToolInvocation(prepared, tool.data, dto.callId));
223
253
  trackedCall.invocation = toolInvocation;
224
- const autoConfirmed = this.shouldAutoConfirm(tool.data.id, tool.data.runsInWorkspace);
254
+ const autoConfirmed = await this.shouldAutoConfirm(tool.data.id, tool.data.runsInWorkspace);
225
255
  if (autoConfirmed) {
226
- toolInvocation.confirmed.complete(true);
256
+ toolInvocation.confirmed.complete(autoConfirmed);
227
257
  }
228
258
  model.acceptResponseProgress(request, toolInvocation);
229
259
  dto.toolSpecificData = toolInvocation?.toolSpecificData;
230
260
  if (prepared?.confirmationMessages) {
231
- if (!toolInvocation.isConfirmed && !autoConfirmed) {
261
+ if (!toolInvocation.isConfirmed?.type && !autoConfirmed) {
232
262
  this.playAccessibilitySignal([toolInvocation]);
233
263
  }
234
264
  const userConfirmed = await toolInvocation.confirmed.p;
235
- if (!userConfirmed) {
265
+ if (userConfirmed.type === ToolConfirmKind.Denied) {
236
266
  throw ( new CancellationError());
237
267
  }
268
+ if (userConfirmed.type === ToolConfirmKind.Skipped) {
269
+ toolResult = {
270
+ content: [{
271
+ kind: 'text',
272
+ value: 'The user chose to skip the tool call, they want to proceed without running it'
273
+ }]
274
+ };
275
+ return toolResult;
276
+ }
238
277
  if (dto.toolSpecificData?.kind === 'input') {
239
278
  dto.parameters = dto.toolSpecificData.rawInput;
240
279
  dto.toolSpecificData = undefined;
@@ -243,7 +282,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
243
282
  }
244
283
  else {
245
284
  const prepared = await this.prepareToolInvocation(tool, dto, token);
246
- if (prepared?.confirmationMessages && !this.shouldAutoConfirm(tool.data.id, tool.data.runsInWorkspace)) {
285
+ if (prepared?.confirmationMessages && !(await this.shouldAutoConfirm(tool.data.id, tool.data.runsInWorkspace))) {
247
286
  const result = await this._dialogService.confirm({ message: renderAsPlaintext(prepared.confirmationMessages.title), detail: renderAsPlaintext(prepared.confirmationMessages.message) });
248
287
  if (!result.confirmed) {
249
288
  throw ( new CancellationError());
@@ -288,7 +327,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
288
327
  }
289
328
  finally {
290
329
  toolInvocation?.complete(toolResult);
291
- if (requestId && store) {
330
+ if (store) {
292
331
  this.cleanupCallDisposables(requestId, store);
293
332
  }
294
333
  }
@@ -316,7 +355,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
316
355
  return prepared;
317
356
  }
318
357
  playAccessibilitySignal(toolInvocations) {
319
- const autoApproved = this._configurationService.getValue('chat.tools.autoApprove');
358
+ const autoApproved = this._configurationService.getValue(ChatConfiguration.GlobalAutoApprove);
320
359
  if (autoApproved) {
321
360
  return;
322
361
  }
@@ -357,11 +396,17 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
357
396
  }
358
397
  }));
359
398
  }
360
- shouldAutoConfirm(toolId, runsInWorkspace) {
361
- if (this._workspaceToolConfirmStore.value.getAutoConfirm(toolId) || this._profileToolConfirmStore.value.getAutoConfirm(toolId) || ( this._memoryToolConfirmStore.has(toolId))) {
362
- return true;
399
+ async shouldAutoConfirm(toolId, runsInWorkspace) {
400
+ if (this._workspaceToolConfirmStore.value.getAutoConfirm(toolId)) {
401
+ return { type: ToolConfirmKind.LmServicePerTool, scope: 'workspace' };
402
+ }
403
+ if (this._profileToolConfirmStore.value.getAutoConfirm(toolId)) {
404
+ return { type: ToolConfirmKind.LmServicePerTool, scope: 'profile' };
405
+ }
406
+ if (( this._memoryToolConfirmStore.has(toolId))) {
407
+ return { type: ToolConfirmKind.LmServicePerTool, scope: 'session' };
363
408
  }
364
- const config = this._configurationService.inspect('chat.tools.autoApprove');
409
+ const config = this._configurationService.inspect(ChatConfiguration.GlobalAutoApprove);
365
410
  let value = config.value ?? config.defaultValue;
366
411
  if (typeof runsInWorkspace === 'boolean') {
367
412
  value = config.userLocalValue ?? config.applicationValue;
@@ -369,17 +414,58 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
369
414
  value = config.workspaceValue ?? config.workspaceFolderValue ?? config.userRemoteValue ?? value;
370
415
  }
371
416
  }
372
- return value === true || (typeof value === 'object' && value.hasOwnProperty(toolId) && value[toolId] === true);
417
+ const autoConfirm = value === true || (typeof value === 'object' && value.hasOwnProperty(toolId) && value[toolId] === true);
418
+ if (autoConfirm) {
419
+ if (await this._checkGlobalAutoApprove()) {
420
+ return { type: ToolConfirmKind.Setting, id: ChatConfiguration.GlobalAutoApprove };
421
+ }
422
+ }
423
+ return undefined;
373
424
  }
374
- cleanupCallDisposables(requestId, store) {
375
- const disposables = this._callsByRequestId.get(requestId);
376
- if (disposables) {
377
- const index = disposables.findIndex(d => d.store === store);
378
- if (index > -1) {
379
- disposables.splice(index, 1);
425
+ async _checkGlobalAutoApprove() {
426
+ const optedIn = this._storageService.getBoolean(AutoApproveStorageKeys.GlobalAutoApproveOptIn, StorageScope.APPLICATION, false);
427
+ if (optedIn) {
428
+ return true;
429
+ }
430
+ const promptResult = await this._dialogService.prompt({
431
+ type: Severity.Warning,
432
+ message: ( localize(5357, 'Enable global auto approve?')),
433
+ buttons: [
434
+ {
435
+ label: ( localize(5358, 'Enable')),
436
+ run: () => true
437
+ },
438
+ {
439
+ label: ( localize(5359, 'Disable')),
440
+ run: () => false
441
+ },
442
+ ],
443
+ custom: {
444
+ icon: Codicon.warning,
445
+ disableCloseAction: true,
446
+ markdownDetails: [{
447
+ markdown: ( new MarkdownString(globalAutoApproveDescription.value)),
448
+ }],
380
449
  }
381
- if (disposables.length === 0) {
382
- this._callsByRequestId.delete(requestId);
450
+ });
451
+ if (promptResult.result !== true) {
452
+ await this._configurationService.updateValue(ChatConfiguration.GlobalAutoApprove, false);
453
+ return false;
454
+ }
455
+ this._storageService.store(AutoApproveStorageKeys.GlobalAutoApproveOptIn, true, StorageScope.APPLICATION, StorageTarget.USER);
456
+ return true;
457
+ }
458
+ cleanupCallDisposables(requestId, store) {
459
+ if (requestId) {
460
+ const disposables = this._callsByRequestId.get(requestId);
461
+ if (disposables) {
462
+ const index = disposables.findIndex(d => d.store === store);
463
+ if (index > -1) {
464
+ disposables.splice(index, 1);
465
+ }
466
+ if (disposables.length === 0) {
467
+ this._callsByRequestId.delete(requestId);
468
+ }
383
469
  }
384
470
  }
385
471
  store.dispose();
@@ -411,22 +497,18 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
411
497
  return result;
412
498
  }
413
499
  toToolAndToolSetEnablementMap(enabledToolOrToolSetNames) {
414
- const toolOrToolSetNames = enabledToolOrToolSetNames ? ( new Set(enabledToolOrToolSetNames)) : undefined;
500
+ const toolOrToolSetNames = ( new Set(enabledToolOrToolSetNames));
415
501
  const result = ( new Map());
416
502
  for (const tool of this.getTools()) {
417
503
  if (tool.canBeReferencedInPrompt) {
418
- result.set(tool, toolOrToolSetNames === undefined || ( toolOrToolSetNames.has(tool.toolReferenceName ?? tool.displayName)));
504
+ result.set(tool, ( toolOrToolSetNames.has(tool.toolReferenceName ?? tool.displayName)));
419
505
  }
420
506
  }
421
507
  for (const toolSet of this._toolSets) {
422
- const enabled = toolOrToolSetNames === undefined || ( toolOrToolSetNames.has(toolSet.referenceName));
508
+ const enabled = ( toolOrToolSetNames.has(toolSet.referenceName));
423
509
  result.set(toolSet, enabled);
424
- if (enabled && toolSet.source.type === 'mcp') {
425
- for (const tool of toolSet.getTools()) {
426
- if (tool.canBeReferencedInPrompt) {
427
- result.set(tool, enabled);
428
- }
429
- }
510
+ for (const tool of toolSet.getTools()) {
511
+ result.set(tool, enabled || toolOrToolSetNames?.has(tool.toolReferenceName ?? tool.displayName));
430
512
  }
431
513
  }
432
514
  return result;
@@ -471,7 +553,8 @@ LanguageModelToolsService = ( __decorate([
471
553
  ( __param(6, ILogService)),
472
554
  ( __param(7, IConfigurationService)),
473
555
  ( __param(8, IAccessibilityService)),
474
- ( __param(9, IAccessibilitySignalService))
556
+ ( __param(9, IAccessibilitySignalService)),
557
+ ( __param(10, IStorageService))
475
558
  ], LanguageModelToolsService));
476
559
  let ToolConfirmStore = class ToolConfirmStore extends Disposable {
477
560
  static { ToolConfirmStore_1 = this; }
@@ -520,4 +603,4 @@ ToolConfirmStore = ToolConfirmStore_1 = ( __decorate([
520
603
  ( __param(1, IStorageService))
521
604
  ], ToolConfirmStore));
522
605
 
523
- export { LanguageModelToolsService };
606
+ export { LanguageModelToolsService, globalAutoApproveDescription };
@@ -1,3 +1,3 @@
1
1
  <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M8.15673 3C8.7435 3 9.47904 2.60331 9.91706 2.07438C10.3137 1.59504 10.603 0.92562 10.603 0.256199C10.603 0.165289 10.5947 0.0743802 10.5782 0C9.92532 0.0247934 9.1402 0.438017 8.66912 0.991736C8.29722 1.41322 7.95838 2.07438 7.95838 2.75207C7.95838 2.85124 7.97491 2.95041 7.98317 2.98347C8.0245 2.99174 8.09061 3 8.15673 3ZM6.09061 13C6.89226 13 7.24764 12.4628 8.24764 12.4628C9.26417 12.4628 9.48731 12.9835 10.3798 12.9835C11.2559 12.9835 11.8427 12.1736 12.3964 11.3802C13.0162 10.4711 13.2724 9.57851 13.2889 9.53719C13.2311 9.52066 11.5534 8.83471 11.5534 6.90909C11.5534 5.23967 12.8757 4.4876 12.9501 4.42975C12.0741 3.17355 10.7435 3.1405 10.3798 3.1405C9.3964 3.1405 8.59474 3.73554 8.09061 3.73554C7.54516 3.73554 6.82615 3.17355 5.97491 3.17355C4.35507 3.17355 2.71045 4.5124 2.71045 7.04132C2.71045 8.61157 3.32202 10.2727 4.07408 11.3471C4.71871 12.2562 5.28069 13 6.09061 13Z" fill="white"/>
2
+ <path d="M8.19299 3.69231C8.91408 3.69231 9.818 3.20407 10.3563 2.55308C10.8437 1.96313 11.1993 1.13922 11.1993 0.315322C11.1993 0.203433 11.1891 0.0915449 11.1688 0C10.3664 0.030515 9.40159 0.539098 8.82268 1.2206C8.36564 1.73935 7.94924 2.55308 7.94924 3.38716C7.94924 3.50922 7.96955 3.63127 7.9797 3.67196C8.0305 3.68214 8.11174 3.69231 8.19299 3.69231ZM5.65392 16C6.63907 16 7.0758 15.3388 8.30472 15.3388C9.55394 15.3388 9.82816 15.9797 10.925 15.9797C12.0016 15.9797 12.7227 14.9829 13.4032 14.0064C14.1649 12.8875 14.4797 11.7889 14.5 11.7381C14.429 11.7177 12.3672 10.8735 12.3672 8.5035C12.3672 6.44883 13.9922 5.5232 14.0836 5.452C13.0071 3.90591 11.3719 3.86523 10.925 3.86523C9.71644 3.86523 8.73127 4.59759 8.11174 4.59759C7.44143 4.59759 6.55783 3.90591 5.51173 3.90591C3.52109 3.90591 1.5 5.55372 1.5 8.66624C1.5 10.5989 2.25157 12.6433 3.17578 13.9657C3.96797 15.0846 4.6586 16 5.65392 16Z" fill="white"/>
3
3
  </svg>