@codingame/monaco-vscode-chat-service-override 19.1.4 → 20.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 (211) hide show
  1. package/index.js +20 -8
  2. package/package.json +36 -31
  3. package/vscode/src/vs/base/common/policy.d.ts +14 -0
  4. package/vscode/src/vs/base/common/policy.js +11 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +53 -43
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +54 -24
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +14 -14
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +15 -15
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +37 -25
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +4 -4
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +1 -1
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +6 -6
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +23 -11
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +9 -9
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +1 -1
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +11 -11
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +83 -14
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +421 -21
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +20 -20
  24. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +215 -104
  25. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +3 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +9 -3
  27. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +3 -1
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +18 -6
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +4 -4
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +20 -20
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +14 -14
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +1 -1
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +6 -3
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +4 -2
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +9 -6
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -1
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +11 -8
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +5 -3
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +16 -11
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +7 -23
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +58 -326
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +0 -1
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +33 -30
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +12 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +39 -17
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +55 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +380 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +3 -2
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +5 -5
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +4 -2
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +1 -1
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +22 -22
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +9 -4
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +44 -10
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +38 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +145 -0
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +34 -34
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +7 -7
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +3 -3
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +36 -11
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +49 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +407 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.d.ts +12 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.js +738 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +142 -151
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +1 -1
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +54 -54
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +20 -0
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +4 -3
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +5 -4
  78. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +23 -7
  80. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
  82. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +1 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +13 -8
  84. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-dark.svg +3 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-light.svg +3 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +28 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSetup.css +7 -7
  88. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.d.ts +2 -2
  89. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +14 -14
  90. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +8 -8
  91. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +10 -10
  92. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts +1 -1
  93. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +11 -11
  94. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.d.ts +1 -1
  95. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +19 -19
  96. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.d.ts +1 -1
  97. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +14 -14
  98. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
  99. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +3 -3
  100. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +4 -4
  101. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +10 -10
  102. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +11 -11
  103. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.d.ts +1 -7
  104. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +52 -90
  105. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +15 -15
  106. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +6 -6
  107. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +2 -2
  108. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +6 -2
  109. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +9 -6
  110. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +11 -6
  111. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +137 -30
  112. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +8 -0
  113. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +1 -1
  114. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +3 -3
  115. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +27 -0
  116. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +44 -0
  117. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/configMigration.js +1 -1
  118. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/filePromptContentsProvider.js +2 -2
  119. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/promptContentsProviderBase.d.ts +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/promptContentsProviderBase.js +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.js +3 -5
  123. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.js +14 -14
  124. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.js +1 -1
  125. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.js +1 -1
  126. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/providerInstanceManagerBase.js +2 -2
  127. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/basePromptParser.js +1 -1
  128. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.js +4 -4
  129. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/instructionsHeader.d.ts +1 -1
  130. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.js +3 -3
  131. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.js +1 -1
  132. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.js +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.js +4 -4
  134. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/modeHeader.d.ts +1 -1
  135. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.d.ts +1 -1
  136. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.js +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.js +9 -9
  138. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +1 -1
  139. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +8 -8
  140. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +1 -1
  141. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +2 -2
  142. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +27 -27
  143. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +1 -1
  144. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -2
  145. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +9 -9
  146. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
  147. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +4 -4
  148. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +104 -0
  149. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +667 -0
  150. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +14 -14
  151. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -1
  152. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  153. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
  154. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  155. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css +56 -0
  156. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.d.ts +1 -0
  157. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +14 -0
  158. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.d.ts +11 -0
  159. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +111 -0
  160. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.d.ts +10 -0
  161. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +52 -0
  162. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.d.ts +1 -0
  163. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +262 -0
  164. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +35 -0
  165. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +129 -0
  166. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatControllerHolder.d.ts +3 -0
  167. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatControllerHolder.js +8 -0
  168. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.d.ts +9 -0
  169. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +30 -0
  170. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +72 -0
  171. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +411 -0
  172. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +3 -0
  173. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +59 -0
  174. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.d.ts +51 -0
  175. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.js +163 -0
  176. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.d.ts +24 -0
  177. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +164 -0
  178. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +14 -0
  179. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +101 -0
  180. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +16 -0
  181. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +52 -0
  182. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +12 -0
  183. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +71 -0
  184. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +14 -0
  185. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +94 -0
  186. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/getTerminalOutputTool.d.ts +11 -0
  187. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/getTerminalOutputTool.js +44 -0
  188. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +3 -0
  189. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +18 -0
  190. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +3 -0
  191. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +13 -0
  192. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalTool.d.ts +55 -0
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalTool.js +603 -0
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +3 -0
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +113 -0
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/createAndRunTaskTool.d.ts +21 -0
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/createAndRunTaskTool.js +227 -0
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.d.ts +19 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.js +88 -0
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/runTaskTool.d.ts +21 -0
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/runTaskTool.js +140 -0
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.d.ts +22 -0
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.js +80 -0
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.d.ts +1 -0
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.js +40 -0
  206. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +1 -0
  207. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +36 -0
  208. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +20 -0
  209. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +114 -0
  210. package/vscode/src/vs/workbench/contrib/chat/browser/media/google-mono-dark.svg +0 -3
  211. package/vscode/src/vs/workbench/contrib/chat/browser/media/google-mono-light.svg +0 -3
@@ -13,8 +13,8 @@ import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/l
13
13
  import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
14
14
  import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
15
15
  import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
16
- import { getCleanPromptName } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
17
- import { PROMPT_DOCUMENTATION_URL, INSTRUCTIONS_DOCUMENTATION_URL, MODE_DOCUMENTATION_URL, PromptsType } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
16
+ import { getCleanPromptName } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
17
+ import { PROMPT_DOCUMENTATION_URL, INSTRUCTIONS_DOCUMENTATION_URL, MODE_DOCUMENTATION_URL, PromptsType } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
18
18
  import { NEW_PROMPT_COMMAND_ID, NEW_INSTRUCTIONS_COMMAND_ID, NEW_MODE_COMMAND_ID } from '../newPromptFileActions.js';
19
19
  import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
20
20
  import { askForPromptFileName } from './askForPromptName.js';
@@ -25,12 +25,12 @@ import { OS } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform'
25
25
  import { askForPromptSourceFolder } from './askForPromptSourceFolder.js';
26
26
 
27
27
  const HELP_BUTTON = ( Object.freeze({
28
- tooltip: ( localize(5178, "Help")),
28
+ tooltip: ( localize(5286, "Help")),
29
29
  iconClass: ThemeIcon.asClassName(Codicon.question),
30
30
  }));
31
31
  const NEW_PROMPT_FILE_OPTION = ( Object.freeze({
32
32
  type: 'item',
33
- label: `$(plus) ${( localize(5179, 'New prompt file...'))}`,
33
+ label: `$(plus) ${( localize(5287, 'New prompt file...'))}`,
34
34
  value: ( URI.parse(PROMPT_DOCUMENTATION_URL)),
35
35
  pickable: false,
36
36
  alwaysShow: true,
@@ -39,7 +39,7 @@ const NEW_PROMPT_FILE_OPTION = ( Object.freeze({
39
39
  }));
40
40
  const NEW_INSTRUCTIONS_FILE_OPTION = ( Object.freeze({
41
41
  type: 'item',
42
- label: `$(plus) ${( localize(5180, 'New instruction file...'))}`,
42
+ label: `$(plus) ${( localize(5288, 'New instruction file...'))}`,
43
43
  value: ( URI.parse(INSTRUCTIONS_DOCUMENTATION_URL)),
44
44
  pickable: false,
45
45
  alwaysShow: true,
@@ -48,7 +48,7 @@ const NEW_INSTRUCTIONS_FILE_OPTION = ( Object.freeze({
48
48
  }));
49
49
  const UPDATE_INSTRUCTIONS_OPTION = ( Object.freeze({
50
50
  type: 'item',
51
- label: `$(refresh) ${( localize(5181, 'Generate instructions...'))}`,
51
+ label: `$(refresh) ${( localize(5289, 'Generate instructions...'))}`,
52
52
  value: ( URI.parse(INSTRUCTIONS_DOCUMENTATION_URL)),
53
53
  pickable: false,
54
54
  alwaysShow: true,
@@ -57,7 +57,7 @@ const UPDATE_INSTRUCTIONS_OPTION = ( Object.freeze({
57
57
  }));
58
58
  const NEW_MODE_FILE_OPTION = ( Object.freeze({
59
59
  type: 'item',
60
- label: `$(plus) ${( localize(5182, 'Create new custom chat mode file...'))}`,
60
+ label: `$(plus) ${( localize(5290, 'Create new custom chat mode file...'))}`,
61
61
  value: ( URI.parse(MODE_DOCUMENTATION_URL)),
62
62
  pickable: false,
63
63
  alwaysShow: true,
@@ -65,20 +65,20 @@ const NEW_MODE_FILE_OPTION = ( Object.freeze({
65
65
  commandId: NEW_MODE_COMMAND_ID,
66
66
  }));
67
67
  const EDIT_BUTTON = ( Object.freeze({
68
- tooltip: ( localize(5183, "Open in Editor")),
68
+ tooltip: ( localize(5291, "Open in Editor")),
69
69
  iconClass: ThemeIcon.asClassName(Codicon.edit),
70
70
  }));
71
71
  const DELETE_BUTTON = ( Object.freeze({
72
- tooltip: ( localize(5184, "Delete")),
72
+ tooltip: ( localize(5292, "Delete")),
73
73
  iconClass: ThemeIcon.asClassName(Codicon.trash),
74
74
  }));
75
75
  const RENAME_BUTTON = ( Object.freeze({
76
- tooltip: ( localize(5185, "Rename")),
76
+ tooltip: ( localize(5293, "Rename")),
77
77
  iconClass: ThemeIcon.asClassName(Codicon.replace),
78
78
  }));
79
79
  const COPY_BUTTON = ( Object.freeze({
80
80
  tooltip: ( localize(
81
- 5186,
81
+ 5294,
82
82
  "Copy or Move (press {0})",
83
83
  UILabelProvider.modifierLabels[OS].ctrlKey
84
84
  )),
@@ -98,7 +98,7 @@ let PromptFilePickers = class PromptFilePickers {
98
98
  async selectPromptFile(options) {
99
99
  const quickPick = this._quickInputService.createQuickPick();
100
100
  quickPick.busy = true;
101
- quickPick.placeholder = ( localize(5187, 'Searching file system...'));
101
+ quickPick.placeholder = ( localize(5295, 'Searching file system...'));
102
102
  try {
103
103
  const fileOptions = await this._createPromptPickItems(options);
104
104
  const activeItem = options.resource && fileOptions.find(f => extUri.isEqual(f.value, options.resource));
@@ -208,7 +208,7 @@ let PromptFilePickers = class PromptFilePickers {
208
208
  const { uri, storage } = promptFile;
209
209
  const fileWithoutExtension = getCleanPromptName(uri);
210
210
  const description = (storage === 'user')
211
- ? ( localize(5188, 'User data folder'))
211
+ ? ( localize(5296, 'User data folder'))
212
212
  : this._labelService.getUriLabel(dirname(uri), { relative: true });
213
213
  const tooltip = (storage === 'user')
214
214
  ? description
@@ -279,7 +279,7 @@ let PromptFilePickers = class PromptFilePickers {
279
279
  await this.keepQuickPickOpen(quickPick, async () => {
280
280
  const filename = getCleanPromptName(value);
281
281
  const { confirmed } = await this._dialogService.confirm({
282
- message: ( localize(5189, "Are you sure you want to delete '{0}'?", filename)),
282
+ message: ( localize(5297, "Are you sure you want to delete '{0}'?", filename)),
283
283
  });
284
284
  if (!confirmed) {
285
285
  return;
@@ -3,7 +3,7 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
3
3
  import { Disposable, DisposableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
4
  import { registerEditorContribution, EditorContributionInstantiation } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorExtensions';
5
5
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
6
- import { PROMPT_LANGUAGE_ID } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
6
+ import { PROMPT_LANGUAGE_ID } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
7
7
  import { PromptCodingAgentActionOverlayWidget } from './promptCodingAgentActionOverlay.js';
8
8
 
9
9
  let PromptCodingAgentActionContribution = class PromptCodingAgentActionContribution extends Disposable {
@@ -9,7 +9,7 @@ import { IRemoteCodingAgentsService } from '@codingame/monaco-vscode-api/vscode/
9
9
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
10
10
  import { Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
11
11
  import { getPromptCommandName } from '../../common/promptSyntax/service/promptsServiceImpl.js';
12
- import { PROMPT_LANGUAGE_ID } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
12
+ import { PROMPT_LANGUAGE_ID } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
13
13
  import { $ } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
14
14
 
15
15
  var PromptCodingAgentActionOverlayWidget_1;
@@ -26,11 +26,11 @@ let PromptCodingAgentActionOverlayWidget = class PromptCodingAgentActionOverlayW
26
26
  this._domNode = $('.prompt-coding-agent-action-overlay');
27
27
  this._button = this._register(( new Button(this._domNode, {
28
28
  supportIcons: true,
29
- title: ( localize(5190, "Run prompt file in a remote coding agent"))
29
+ title: ( localize(5298, "Run prompt file in a remote coding agent"))
30
30
  })));
31
31
  this._button.element.style.background = 'var(--vscode-button-background)';
32
32
  this._button.element.style.color = 'var(--vscode-button-foreground)';
33
- this._button.label = ( localize(5191, "{0} Delegate to Copilot coding agent", '$(cloud-upload)'));
33
+ this._button.label = ( localize(5299, "{0} Delegate to Copilot coding agent", '$(cloud-upload)'));
34
34
  this._register(this._button.onDidClick(async () => {
35
35
  await this._execute();
36
36
  }));
@@ -9,11 +9,11 @@ import { CommandsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platfor
9
9
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
10
10
  import { showToolsPicker } from '../actions/chatToolPicker.js';
11
11
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
12
- import { ALL_PROMPTS_LANGUAGE_SELECTOR } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
12
+ import { ALL_PROMPTS_LANGUAGE_SELECTOR } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
13
13
  import { PromptToolsMetadata } from '../../common/promptSyntax/parsers/promptHeader/metadata/tools.js';
14
14
  import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service';
15
15
  import { registerEditorFeature } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/editorFeatures';
16
- import { PromptFileRewriter } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/browser/promptSyntax/promptFileRewriter';
16
+ import { PromptFileRewriter } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/browser/promptSyntax/promptFileRewriter';
17
17
 
18
18
  let PromptToolsCodeLensProvider = class PromptToolsCodeLensProvider extends Disposable {
19
19
  constructor(promptsService, languageService, languageModelToolsService, instantiationService) {
@@ -52,7 +52,7 @@ let PromptToolsCodeLensProvider = class PromptToolsCodeLensProvider extends Disp
52
52
  const codeLens = {
53
53
  range: tools.range.collapseToStart(),
54
54
  command: {
55
- title: ( localize(5192, "Configure Tools...")),
55
+ title: ( localize(5300, "Configure Tools...")),
56
56
  id: this.cmdId,
57
57
  arguments: [model, tools]
58
58
  }
@@ -61,7 +61,7 @@ let PromptToolsCodeLensProvider = class PromptToolsCodeLensProvider extends Disp
61
61
  }
62
62
  async updateTools(model, tools) {
63
63
  const selectedToolsNow = tools.value ? this.languageModelToolsService.toToolAndToolSetEnablementMap(tools.value) : ( new Map());
64
- const newSelectedAfter = await this.instantiationService.invokeFunction(showToolsPicker, ( localize(5193, "Select tools")), undefined, selectedToolsNow);
64
+ const newSelectedAfter = await this.instantiationService.invokeFunction(showToolsPicker, ( localize(5301, "Select tools")), undefined, selectedToolsNow);
65
65
  if (!newSelectedAfter) {
66
66
  return;
67
67
  }
@@ -12,8 +12,8 @@ import { IRequestService } from '@codingame/monaco-vscode-api/vscode/vs/platform
12
12
  import { IURLService } from '@codingame/monaco-vscode-api/vscode/vs/platform/url/common/url.service';
13
13
  import { askForPromptFileName } from './pickers/askForPromptName.js';
14
14
  import { askForPromptSourceFolder } from './pickers/askForPromptSourceFolder.js';
15
- import { getCleanPromptName } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
16
- import { PromptsType } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
15
+ import { getCleanPromptName } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
16
+ import { PromptsType } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
17
17
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
18
18
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
19
19
  import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
@@ -69,7 +69,7 @@ let PromptUrlHandler = class PromptUrlHandler extends Disposable {
69
69
  const result = await this.requestService.request({ type: 'GET', url: urlString }, CancellationToken.None);
70
70
  if (result.res.statusCode !== 200) {
71
71
  this.logService.error(`[PromptUrlHandler] Failed to fetch URL: ${urlString}`);
72
- this.notificationService.error(( localize(5194, 'Failed to fetch URL: {0}', urlString)));
72
+ this.notificationService.error(( localize(5302, 'Failed to fetch URL: {0}', urlString)));
73
73
  return true;
74
74
  }
75
75
  const responseData = ( (await streamToBuffer(result.stream)).toString());
@@ -98,36 +98,36 @@ let PromptUrlHandler = class PromptUrlHandler extends Disposable {
98
98
  uriLabel = `${uriLabel.substring(0, 35)}...${uriLabel.substring(uriLabel.length - 15)}`;
99
99
  }
100
100
  const detail = ( new MarkdownString('', { supportHtml: true }));
101
- detail.appendMarkdown(( localize(5195, "This will access {0}.\n\n", `[${uriLabel}](${( url.toString())})`)));
101
+ detail.appendMarkdown(( localize(5303, "This will access {0}.\n\n", `[${uriLabel}](${( url.toString())})`)));
102
102
  detail.appendMarkdown(( localize(
103
- 5196,
103
+ 5304,
104
104
  "If you did not initiate this request, it may represent an attempted attack on your system. Unless you took an explicit action to initiate this request, you should press 'No'"
105
105
  )));
106
106
  let message;
107
107
  switch (promptType) {
108
108
  case PromptsType.prompt:
109
109
  message = ( localize(
110
- 5197,
110
+ 5305,
111
111
  "An external application wants to create a prompt file with content from a URL. Do you want to continue by selecting a destination folder and name?"
112
112
  ));
113
113
  break;
114
114
  case PromptsType.instructions:
115
115
  message = ( localize(
116
- 5198,
116
+ 5306,
117
117
  "An external application wants to create an instructions file with content from a URL. Do you want to continue by selecting a destination folder and name?"
118
118
  ));
119
119
  break;
120
120
  default:
121
121
  message = ( localize(
122
- 5199,
122
+ 5307,
123
123
  "An external application wants to create a chat mode with content from a URL. Do you want to continue by selecting a destination folder and name?"
124
124
  ));
125
125
  break;
126
126
  }
127
127
  const { confirmed } = await this.dialogService.confirm({
128
128
  type: 'warning',
129
- primaryButton: ( localize(5200, "&&Yes")),
130
- cancelButton: ( localize(5201, "No")),
129
+ primaryButton: ( localize(5308, "&&Yes")),
130
+ cancelButton: ( localize(5309, "No")),
131
131
  message,
132
132
  custom: {
133
133
  markdownDetails: [{
@@ -1,16 +1,16 @@
1
1
 
2
- import { showChatView, ChatViewId } from '@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/browser/chat';
3
- import { CHAT_CATEGORY, ACTION_ID_NEW_CHAT, CHAT_CONFIG_MENU_ID } from '@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
2
+ import { showChatView, ChatViewId } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
3
+ import { CHAT_CATEGORY, ACTION_ID_NEW_CHAT, CHAT_CONFIG_MENU_ID } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
4
4
  import { OS } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
5
5
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
6
6
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
7
7
  import { assertDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
8
8
  import { ResourceContextKey } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
9
9
  import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
10
- import { PROMPT_LANGUAGE_ID, PromptsType } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
10
+ import { PROMPT_LANGUAGE_ID, PromptsType } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
11
11
  import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
12
12
  import { UILabelProvider } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keybindingLabels';
13
- import { PromptsConfig } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
13
+ import { PromptsConfig } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
14
14
  import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
15
15
  import { PromptFilePickers } from './pickers/promptFilePickers.js';
16
16
  import { EditorContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/editorContextKeys';
@@ -69,7 +69,7 @@ class RunPromptBaseAction extends Action2 {
69
69
  return widget;
70
70
  }
71
71
  }
72
- const RUN_CURRENT_PROMPT_ACTION_TITLE = ( localize2(5202, "Run Prompt in Current Chat"));
72
+ const RUN_CURRENT_PROMPT_ACTION_TITLE = ( localize2(5310, "Run Prompt in Current Chat"));
73
73
  const RUN_CURRENT_PROMPT_ACTION_ICON = Codicon.playCircle;
74
74
  class RunCurrentPromptAction extends RunPromptBaseAction {
75
75
  constructor() {
@@ -88,7 +88,7 @@ class RunSelectedPromptAction extends Action2 {
88
88
  constructor() {
89
89
  super({
90
90
  id: RUN_SELECTED_PROMPT_ACTION_ID,
91
- title: ( localize2(5203, "Run Prompt...")),
91
+ title: ( localize2(5311, "Run Prompt...")),
92
92
  icon: Codicon.bookmark,
93
93
  f1: true,
94
94
  precondition: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled)),
@@ -106,7 +106,7 @@ class RunSelectedPromptAction extends Action2 {
106
106
  const instaService = accessor.get(IInstantiationService);
107
107
  const pickers = instaService.createInstance(PromptFilePickers);
108
108
  const placeholder = ( localize(
109
- 5204,
109
+ 5312,
110
110
  'Select the prompt file to run (hold {0}-key to use in new chat)',
111
111
  UILabelProvider.modifierLabels[OS].ctrlKey
112
112
  ));
@@ -130,8 +130,8 @@ class ManagePromptFilesAction extends Action2 {
130
130
  constructor() {
131
131
  super({
132
132
  id: CONFIGURE_PROMPTS_ACTION_ID,
133
- title: ( localize2(5205, "Configure Prompt Files...")),
134
- shortTitle: ( localize2(5206, "Prompt Files")),
133
+ title: ( localize2(5313, "Configure Prompt Files...")),
134
+ shortTitle: ( localize2(5314, "Prompt Files")),
135
135
  icon: Codicon.bookmark,
136
136
  f1: true,
137
137
  precondition: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled)),
@@ -148,7 +148,7 @@ class ManagePromptFilesAction extends Action2 {
148
148
  const openerService = accessor.get(IOpenerService);
149
149
  const instaService = accessor.get(IInstantiationService);
150
150
  const pickers = instaService.createInstance(PromptFilePickers);
151
- const placeholder = ( localize(5207, 'Select the prompt file to open'));
151
+ const placeholder = ( localize(5315, 'Select the prompt file to open'));
152
152
  const result = await pickers.selectPromptFile({ placeholder, type: PromptsType.prompt, optionEdit: false });
153
153
  if (result !== undefined) {
154
154
  await openerService.open(result.promptFile);
@@ -164,7 +164,7 @@ function getActivePromptFileUri(accessor) {
164
164
  return undefined;
165
165
  }
166
166
  const RUN_CURRENT_PROMPT_IN_NEW_CHAT_ACTION_ID = 'workbench.action.chat.run-in-new-chat.prompt.current';
167
- const RUN_IN_NEW_CHAT_ACTION_TITLE = ( localize2(5208, "Run Prompt In New Chat"));
167
+ const RUN_IN_NEW_CHAT_ACTION_TITLE = ( localize2(5316, "Run Prompt In New Chat"));
168
168
  const RUN_IN_NEW_CHAT_ACTION_ICON = Codicon.play;
169
169
  class RunCurrentPromptInNewChatAction extends RunPromptBaseAction {
170
170
  constructor() {
@@ -1,9 +1,3 @@
1
- import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
2
- import { IChatWidget } from "@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/browser/chat";
1
+ export declare const SAVE_TO_PROMPT_ACTION_ID = "workbench.action.chat.save-to-prompt";
3
2
  export declare const SAVE_TO_PROMPT_SLASH_COMMAND_NAME = "save";
4
- interface ISaveToPromptActionOptions {
5
- chat: IChatWidget;
6
- }
7
- export declare function runSaveToPromptAction(options: ISaveToPromptActionOptions, commandService: ICommandService): Promise<any>;
8
3
  export declare function registerSaveToPromptActions(): void;
9
- export {};
@@ -1,16 +1,20 @@
1
1
 
2
- import { assertDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
3
2
  import { localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
4
3
  import { Action2, registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
5
4
  import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
5
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
6
6
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
7
- import { PromptsConfig } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
7
+ import { PromptsConfig } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
8
8
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
9
9
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
10
- import { chatSubcommandLeader } from '@codingame/monaco-vscode-9ebd6daf-8734-5a28-ad24-b238f5e5819d-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
11
- import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
12
- import { PROMPT_LANGUAGE_ID } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
13
- import { CHAT_CATEGORY } from '@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
10
+ import { chatSubcommandLeader } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
11
+ import { PROMPT_LANGUAGE_ID } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
12
+ import { CHAT_CATEGORY } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
13
+ import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
14
+ import { PromptFileRewriter } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/browser/promptSyntax/promptFileRewriter';
15
+ import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
16
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
17
+ import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
14
18
 
15
19
  const SAVE_TO_PROMPT_ACTION_ID = 'workbench.action.chat.save-to-prompt';
16
20
  const SAVE_TO_PROMPT_SLASH_COMMAND_NAME = 'save';
@@ -18,7 +22,7 @@ class SaveToPromptAction extends Action2 {
18
22
  constructor() {
19
23
  super({
20
24
  id: SAVE_TO_PROMPT_ACTION_ID,
21
- title: ( localize2(5209, "Save chat session to a prompt file")),
25
+ title: ( localize2(5317, "Save chat session to a prompt file")),
22
26
  f1: false,
23
27
  precondition: ( ContextKeyExpr.and(PromptsConfig.enabledCtx, ChatContextKeys.enabled)),
24
28
  category: CHAT_CATEGORY,
@@ -27,49 +31,54 @@ class SaveToPromptAction extends Action2 {
27
31
  async run(accessor, options) {
28
32
  const logService = accessor.get(ILogService);
29
33
  const editorService = accessor.get(IEditorService);
30
- const toolsService = accessor.get(ILanguageModelToolsService);
34
+ const rewriter = accessor.get(IInstantiationService).createInstance(PromptFileRewriter);
31
35
  const logPrefix = 'save to prompt';
32
- const { chat } = options;
33
- const { viewModel } = chat;
34
- assertDefined(viewModel, 'No view model found on currently the active chat widget.');
35
- const { model } = viewModel;
36
- const turns = [];
37
- for (const request of model.getRequests()) {
38
- const { message, response: responseModel } = request;
39
- if (isSaveToPromptSlashCommand(message)) {
40
- continue;
41
- }
42
- if (responseModel === undefined) {
43
- logService.warn(`[${logPrefix}]: skipping request '${request.id}' with no response`);
44
- continue;
45
- }
46
- const { response } = responseModel;
47
- const tools = ( new Set());
48
- for (const record of response.value) {
49
- if (('toolId' in record === false) || !record.toolId) {
36
+ const chatWidget = options.chat;
37
+ const mode = chatWidget.input.currentModeObs.get();
38
+ const model = chatWidget.input.selectedLanguageModel;
39
+ const toolAndToolsetMap = chatWidget.input.selectedToolsModel.entriesMap.get();
40
+ const output = [];
41
+ output.push('---');
42
+ output.push(`description: New prompt created from chat session`);
43
+ output.push(`mode: ${mode.kind}`);
44
+ if (mode.kind === ChatModeKind.Agent) {
45
+ output.push(`tools: ${rewriter.getNewValueString(toolAndToolsetMap)}`);
46
+ }
47
+ if (model) {
48
+ output.push(`model: ${ILanguageModelChatMetadata.asQualifiedName(model.metadata)}`);
49
+ }
50
+ output.push('---');
51
+ const viewModel = chatWidget.viewModel;
52
+ if (viewModel) {
53
+ for (const request of viewModel.model.getRequests()) {
54
+ const { message, response: responseModel } = request;
55
+ if (isSaveToPromptSlashCommand(message)) {
50
56
  continue;
51
57
  }
52
- const tool = toolsService.getTool(record.toolId);
53
- if ((tool === undefined) || (!tool.toolReferenceName)) {
58
+ if (responseModel === undefined) {
59
+ logService.warn(`[${logPrefix}]: skipping request '${request.id}' with no response`);
54
60
  continue;
55
61
  }
56
- tools.add(tool.toolReferenceName);
62
+ const { response } = responseModel;
63
+ output.push(`<user>`);
64
+ output.push(request.message.text);
65
+ output.push(`</user>`);
66
+ output.push();
67
+ output.push(`<assistant>`);
68
+ output.push(response.getMarkdown());
69
+ output.push(`</assistant>`);
70
+ output.push();
57
71
  }
58
- turns.push({
59
- request: message.text,
60
- response: response.getMarkdown(),
61
- tools,
72
+ const promptText = output.join('\n');
73
+ const untitledPath = 'new.prompt.md';
74
+ const untitledResource = ( URI.from({ scheme: Schemas.untitled, path: untitledPath }));
75
+ const editor = await editorService.openEditor({
76
+ resource: untitledResource,
77
+ contents: promptText,
78
+ languageId: PROMPT_LANGUAGE_ID,
62
79
  });
80
+ editor?.focus();
63
81
  }
64
- const promptText = renderPrompt(turns);
65
- const editor = await editorService.openEditor({
66
- resource: undefined,
67
- contents: promptText,
68
- languageId: PROMPT_LANGUAGE_ID,
69
- });
70
- assertDefined(editor, 'Failed to open untitled editor for the prompt.');
71
- editor.focus();
72
- return editor;
73
82
  }
74
83
  }
75
84
  function isSaveToPromptSlashCommand(message) {
@@ -86,55 +95,8 @@ function isSaveToPromptSlashCommand(message) {
86
95
  }
87
96
  return true;
88
97
  }
89
- function renderResponse(response) {
90
- const delimiter = (response.startsWith('```'))
91
- ? '\n>'
92
- : ' ';
93
- const quotedResponse = response.replaceAll('\n', '\n> ');
94
- return `> Copilot:${delimiter}${quotedResponse}`;
95
- }
96
- function renderTurn(turn) {
97
- const { request, response } = turn;
98
- return `\n${request}\n\n${renderResponse(response)}`;
99
- }
100
- function renderPrompt(turns) {
101
- const content = [];
102
- const allTools = ( new Set());
103
- for (const turn of turns) {
104
- content.push(renderTurn(turn));
105
- for (const tool of turn.tools) {
106
- allTools.add(tool);
107
- }
108
- }
109
- const result = [];
110
- if (allTools.size !== 0) {
111
- result.push(renderHeader(allTools));
112
- }
113
- result.push(content.join('\n'));
114
- result.push('');
115
- return result.join('\n');
116
- }
117
- function renderTools(tools) {
118
- const toolStrings = ( [...tools].map((tool) => {
119
- return `'${tool}'`;
120
- }));
121
- return `tools: [${toolStrings.join(', ')}]`;
122
- }
123
- function renderHeader(tools) {
124
- if (tools.size === 0) {
125
- return '';
126
- }
127
- return [
128
- '---',
129
- renderTools(tools),
130
- '---',
131
- ].join('\n');
132
- }
133
- function runSaveToPromptAction(options, commandService) {
134
- return commandService.executeCommand(SAVE_TO_PROMPT_ACTION_ID, options);
135
- }
136
98
  function registerSaveToPromptActions() {
137
99
  registerAction2(SaveToPromptAction);
138
100
  }
139
101
 
140
- export { SAVE_TO_PROMPT_SLASH_COMMAND_NAME, registerSaveToPromptActions, runSaveToPromptAction };
102
+ export { SAVE_TO_PROMPT_ACTION_ID, SAVE_TO_PROMPT_SLASH_COMMAND_NAME, registerSaveToPromptActions };
@@ -18,7 +18,7 @@ import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
18
18
  import { LifecyclePhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
19
19
  import { ILifecycleService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
20
20
  import { IUserDataProfileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
21
- import { CHAT_CONFIG_MENU_ID, CHAT_CATEGORY } from '@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
21
+ import { CHAT_CONFIG_MENU_ID, CHAT_CATEGORY } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
22
22
  import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
23
23
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
24
24
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
@@ -29,7 +29,7 @@ import { parse } from '@codingame/monaco-vscode-dc3fa21d-a483-5b99-a7ab-17323564
29
29
  import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/jsonschemas/common/jsonContributionRegistry';
30
30
  import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
31
31
  import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
32
- import { ChatViewId } from '@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/browser/chat';
32
+ import { ChatViewId } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
33
33
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
34
34
  import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
35
35
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
@@ -44,11 +44,11 @@ const toolSetsSchema = {
44
44
  allowComments: true,
45
45
  allowTrailingCommas: true,
46
46
  defaultSnippets: [{
47
- label: ( localize(5210, "Empty tool set")),
47
+ label: ( localize(5318, "Empty tool set")),
48
48
  body: { '${1:toolSetName}': { 'tools': ['${2:someTool}', '${3:anotherTool}'], 'description': '${4:description}', 'icon': '${5:tools}' } }
49
49
  }],
50
50
  type: 'object',
51
- description: ( localize(5211, 'User tool sets configuration')),
51
+ description: ( localize(5319, 'User tool sets configuration')),
52
52
  additionalProperties: {
53
53
  type: 'object',
54
54
  required: ['tools'],
@@ -56,7 +56,7 @@ const toolSetsSchema = {
56
56
  properties: {
57
57
  tools: {
58
58
  description: ( localize(
59
- 5212,
59
+ 5320,
60
60
  "A list of tools or tool sets to include in this tool set. Cannot be empty and must reference tools the way they are referenced in prompts."
61
61
  )),
62
62
  type: 'array',
@@ -69,7 +69,7 @@ const toolSetsSchema = {
69
69
  },
70
70
  icon: {
71
71
  description: ( localize(
72
- 5213,
72
+ 5321,
73
73
  "Icon to use for this tool set in the UI. Uses the `\\$(name)`-syntax, like `\\$(zap)`"
74
74
  )),
75
75
  type: 'string',
@@ -77,7 +77,7 @@ const toolSetsSchema = {
77
77
  markdownEnumDescriptions: Array.from(getAllCodicons(), icon => `$(${icon.id})`),
78
78
  },
79
79
  description: {
80
- description: ( localize(5214, "A short description of this tool set.")),
80
+ description: ( localize(5322, "A short description of this tool set.")),
81
81
  type: 'string'
82
82
  },
83
83
  },
@@ -164,7 +164,7 @@ let UserToolSetsContributions = class UserToolSetsContributions extends Disposab
164
164
  });
165
165
  for (const item of data) {
166
166
  toolEnumValues.push(item.name);
167
- toolEnumDescriptions.push(( localize(5215, "{1} ({0})\n\n{2}", item.sourceLabel, item.name, item.description)));
167
+ toolEnumDescriptions.push(( localize(5323, "{1} ({0})\n\n{2}", item.sourceLabel, item.name, item.description)));
168
168
  }
169
169
  store.clear();
170
170
  reg.registerSchema(toolSetSchemaId, toolSetsSchema, store);
@@ -257,8 +257,8 @@ class ConfigureToolSets extends Action2 {
257
257
  constructor() {
258
258
  super({
259
259
  id: ConfigureToolSets.ID,
260
- title: ( localize2(5216, 'Configure Tool Sets...')),
261
- shortTitle: ( localize(5217, "Tool Sets")),
260
+ title: ( localize2(5324, 'Configure Tool Sets...')),
261
+ shortTitle: ( localize(5325, "Tool Sets")),
262
262
  category: CHAT_CATEGORY,
263
263
  f1: true,
264
264
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ChatContextKeys.Tools.toolsCount.greater(0))),
@@ -279,7 +279,7 @@ class ConfigureToolSets extends Action2 {
279
279
  const textFileService = accessor.get(ITextFileService);
280
280
  const picks = [];
281
281
  picks.push({
282
- label: ( localize(5218, 'Create new tool sets file...')),
282
+ label: ( localize(5326, 'Create new tool sets file...')),
283
283
  alwaysShow: true,
284
284
  iconClass: ThemeIcon.asClassName(Codicon.plus)
285
285
  });
@@ -296,7 +296,7 @@ class ConfigureToolSets extends Action2 {
296
296
  }
297
297
  const pick = await quickInputService.pick(picks, {
298
298
  canPickMany: false,
299
- placeHolder: ( localize(5219, 'Select a tool set to configure')),
299
+ placeHolder: ( localize(5327, 'Select a tool set to configure')),
300
300
  });
301
301
  if (!pick) {
302
302
  return;
@@ -304,13 +304,13 @@ class ConfigureToolSets extends Action2 {
304
304
  let resource;
305
305
  if (!pick.toolset) {
306
306
  const name = await quickInputService.input({
307
- placeHolder: ( localize(5220, "Type tool sets file name")),
307
+ placeHolder: ( localize(5328, "Type tool sets file name")),
308
308
  validateInput: async (input) => {
309
309
  if (!input) {
310
- return localize(5221, "Invalid file name");
310
+ return localize(5329, "Invalid file name");
311
311
  }
312
312
  if (!isValidBasename(input)) {
313
- return localize(5222, "'{0}' is not a valid file name", input);
313
+ return localize(5330, "'{0}' is not a valid file name", input);
314
314
  }
315
315
  return undefined;
316
316
  }