@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
@@ -43,7 +43,7 @@ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platfo
43
43
  import { IWorkspaceTrustManagementService, IWorkspaceTrustRequestService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service';
44
44
  import { ViewContainerLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views';
45
45
  import { IViewDescriptorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views.service';
46
- import { ProgressBadge } from '@codingame/monaco-vscode-937ecbdf-94c7-5b16-aefa-ad78ae557a93-common/vscode/vs/workbench/services/activity/common/activity';
46
+ import { ProgressBadge } from '@codingame/monaco-vscode-d941ac7b-412f-57e3-b1bf-f6b0eb253b21-common/vscode/vs/workbench/services/activity/common/activity';
47
47
  import { IActivityService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/activity/common/activity.service';
48
48
  import { IAuthenticationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/common/authentication.service';
49
49
  import { ExtensionUrlHandlerOverrideRegistry } from '@codingame/monaco-vscode-8c844347-a703-5de1-9eeb-5e0c7f503a58-common/vscode/vs/workbench/services/extensions/browser/extensionUrlHandler';
@@ -58,19 +58,19 @@ import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/
58
58
  import { IExtensionsWorkbenchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions.service';
59
59
  import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
60
60
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
61
- import { ChatEntitlement, ChatEntitlementRequests, isProUser } from '@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/common/chatEntitlementService';
61
+ import { ChatEntitlement, ChatEntitlementRequests, isProUser } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatEntitlementService';
62
62
  import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEntitlementService.service';
63
- import { ChatRequestModel } from '@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/common/chatModel';
64
- import { ChatRequestToolPart, ChatRequestAgentPart } from '@codingame/monaco-vscode-9ebd6daf-8734-5a28-ad24-b238f5e5819d-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
63
+ import { ChatRequestModel } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel';
64
+ import { ChatRequestToolPart, ChatRequestAgentPart } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
65
65
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
66
66
  import { ChatConfiguration, ChatAgentLocation, ChatModeKind, validateChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
67
67
  import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
68
- import { CHAT_SETUP_ACTION_ID, CHAT_CATEGORY, CHAT_OPEN_ACTION_ID } from '@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
69
- import { showCopilotView, ChatViewId } from '@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/browser/chat';
68
+ import { CHAT_SETUP_ACTION_ID, CHAT_CATEGORY, CHAT_OPEN_ACTION_ID } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
69
+ import { showCopilotView, ChatViewId } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
70
70
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
71
71
  import { CHAT_SIDEBAR_PANEL_ID } from './chatViewPane.js';
72
72
  import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
73
- import { ChatMode } from '@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/common/chatModes';
73
+ import { ChatMode } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModes';
74
74
  import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
75
75
 
76
76
  var SetupAgent_1, ChatSetup_1;
@@ -83,13 +83,7 @@ const defaultChat = {
83
83
  publicCodeMatchesUrl: product.defaultChatAgent?.publicCodeMatchesUrl ?? '',
84
84
  manageOveragesUrl: product.defaultChatAgent?.manageOverageUrl ?? '',
85
85
  upgradePlanUrl: product.defaultChatAgent?.upgradePlanUrl ?? '',
86
- signUpUrl: product.defaultChatAgent?.signUpUrl ?? '',
87
- providerId: product.defaultChatAgent?.providerId ?? '',
88
- providerName: product.defaultChatAgent?.providerName ?? '',
89
- enterpriseProviderId: product.defaultChatAgent?.enterpriseProviderId ?? '',
90
- enterpriseProviderName: product.defaultChatAgent?.enterpriseProviderName ?? '',
91
- alternativeProviderId: product.defaultChatAgent?.alternativeProviderId ?? '',
92
- alternativeProviderName: product.defaultChatAgent?.alternativeProviderName ?? '',
86
+ provider: product.defaultChatAgent?.provider ?? { default: { id: '', name: '' }, enterprise: { id: '', name: '' }, apple: { id: '', name: '' }, google: { id: '', name: '' } },
93
87
  providerUriSetting: product.defaultChatAgent?.providerUriSetting ?? '',
94
88
  providerScopes: product.defaultChatAgent?.providerScopes ?? [[]],
95
89
  manageSettingsUrl: product.defaultChatAgent?.manageSettingsUrl ?? '',
@@ -131,22 +125,22 @@ let SetupAgent = class SetupAgent extends Disposable {
131
125
  id = 'setup.notebook';
132
126
  break;
133
127
  }
134
- return SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, id, `${defaultChat.providerName} Copilot`, true, description, location, mode, context, controller);
128
+ return SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, id, `${defaultChat.provider.default.name} Copilot`, true, description, location, mode, context, controller);
135
129
  });
136
130
  }
137
131
  static registerVSCodeAgent(instantiationService, context, controller) {
138
132
  return instantiationService.invokeFunction(accessor => {
139
133
  const chatAgentService = accessor.get(IChatAgentService);
140
134
  const disposables = ( new DisposableStore());
141
- const { agent, disposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.vscode', 'vscode', false, ( localize2(4990, "Ask questions about VS Code")).value, ChatAgentLocation.Panel, undefined, context, controller);
135
+ const { agent, disposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.vscode', 'vscode', false, ( localize2(5089, "Ask questions about VS Code")).value, ChatAgentLocation.Panel, undefined, context, controller);
142
136
  disposables.add(disposable);
143
137
  disposables.add(SetupTool.registerTool(instantiationService, {
144
138
  id: 'setup.tools.createNewWorkspace',
145
139
  source: ToolDataSource.Internal,
146
140
  icon: Codicon.newFolder,
147
- displayName: ( localize(4991, "New Workspace")),
148
- modelDescription: ( localize(4992, "Scaffold a new workspace in VS Code")),
149
- userDescription: ( localize(4992, "Scaffold a new workspace in VS Code")),
141
+ displayName: ( localize(5090, "New Workspace")),
142
+ modelDescription: ( localize(5091, "Scaffold a new workspace in VS Code")),
143
+ userDescription: ( localize(5091, "Scaffold a new workspace in VS Code")),
150
144
  canBeReferencedInPrompt: true,
151
145
  toolReferenceName: 'new',
152
146
  when: ContextKeyExpr.true(),
@@ -179,8 +173,8 @@ let SetupAgent = class SetupAgent extends Disposable {
179
173
  }
180
174
  return { agent, disposable: disposables };
181
175
  }
182
- static { this.SETUP_NEEDED_MESSAGE = ( new MarkdownString(( localize(4993, "You need to set up Copilot and be signed in to use Chat.")))); }
183
- static { this.TRUST_NEEDED_MESSAGE = ( new MarkdownString(( localize(4994, "You need to trust this workspace to use Chat.")))); }
176
+ static { this.SETUP_NEEDED_MESSAGE = ( new MarkdownString(( localize(5092, "You need to set up Copilot and be signed in to use Chat.")))); }
177
+ static { this.TRUST_NEEDED_MESSAGE = ( new MarkdownString(( localize(5093, "You need to trust this workspace to use Chat.")))); }
184
178
  constructor(context, controller, location, instantiationService, logService, configurationService, telemetryService, environmentService, workspaceTrustManagementService) {
185
179
  super();
186
180
  this.context = context;
@@ -220,7 +214,7 @@ let SetupAgent = class SetupAgent extends Disposable {
220
214
  }
221
215
  progress({
222
216
  kind: 'progressMessage',
223
- content: ( new MarkdownString(( localize(4995, "Getting Copilot ready")))),
217
+ content: ( new MarkdownString(( localize(5094, "Getting Copilot ready")))),
224
218
  });
225
219
  await this.forwardRequestToCopilot(requestModel, progress, chatService, languageModelsService, chatAgentService, chatWidgetService, languageModelToolsService);
226
220
  return {};
@@ -232,7 +226,7 @@ let SetupAgent = class SetupAgent extends Disposable {
232
226
  catch (error) {
233
227
  progress({
234
228
  kind: 'warning',
235
- content: ( new MarkdownString(( localize(4996, "Copilot failed to get a response. Please try again."))))
229
+ content: ( new MarkdownString(( localize(5095, "Copilot failed to get a response. Please try again."))))
236
230
  });
237
231
  }
238
232
  }
@@ -260,7 +254,7 @@ let SetupAgent = class SetupAgent extends Disposable {
260
254
  const timeoutHandle = setTimeout(() => {
261
255
  progress({
262
256
  kind: 'progressMessage',
263
- content: ( new MarkdownString(( localize(4997, "Copilot is almost ready")))),
257
+ content: ( new MarkdownString(( localize(5096, "Copilot is almost ready")))),
264
258
  });
265
259
  }, 10000);
266
260
  try {
@@ -273,17 +267,17 @@ let SetupAgent = class SetupAgent extends Disposable {
273
267
  let warningMessage;
274
268
  if (ready === 'timedout') {
275
269
  warningMessage = ( localize(
276
- 4998,
270
+ 5097,
277
271
  "Copilot took too long to get ready. Please ensure you are signed in to {0} and that the extension `{1}` is installed and enabled.",
278
- defaultChat.providerName,
272
+ defaultChat.provider.default.name,
279
273
  defaultChat.chatExtensionId
280
274
  ));
281
275
  }
282
276
  else {
283
277
  warningMessage = ( localize(
284
- 4999,
278
+ 5098,
285
279
  "Copilot failed to get ready. Please ensure you are signed in to {0} and that the extension `{1}` is installed and enabled.",
286
- defaultChat.providerName,
280
+ defaultChat.provider.default.name,
287
281
  defaultChat.chatExtensionId
288
282
  ));
289
283
  }
@@ -306,13 +300,19 @@ let SetupAgent = class SetupAgent extends Disposable {
306
300
  });
307
301
  }
308
302
  whenLanguageModelReady(languageModelsService) {
309
- for (const id of languageModelsService.getLanguageModelIds()) {
310
- const model = languageModelsService.lookupLanguageModel(id);
311
- if (model && model.isDefault) {
312
- return;
303
+ const hasDefaultModel = () => {
304
+ for (const id of languageModelsService.getLanguageModelIds()) {
305
+ const model = languageModelsService.lookupLanguageModel(id);
306
+ if (model && model.isDefault) {
307
+ return true;
308
+ }
313
309
  }
310
+ return false;
311
+ };
312
+ if (hasDefaultModel()) {
313
+ return;
314
314
  }
315
- return Event.toPromise(Event.filter(languageModelsService.onDidChangeLanguageModels, e => e.added?.some(added => added.metadata.isDefault) ?? false));
315
+ return Event.toPromise(Event.filter(languageModelsService.onDidChangeLanguageModels, () => hasDefaultModel() ?? false));
316
316
  }
317
317
  whenToolsModelReady(languageModelToolsService, requestModel) {
318
318
  const needsToolsModel = ( requestModel.message.parts.some(part => part instanceof ChatRequestToolPart));
@@ -358,16 +358,16 @@ let SetupAgent = class SetupAgent extends Disposable {
358
358
  progress({
359
359
  kind: 'progressMessage',
360
360
  content: ( new MarkdownString(( localize(
361
- 5000,
361
+ 5099,
362
362
  "Signing in to {0}.",
363
- ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.enterpriseProviderId ? defaultChat.enterpriseProviderName : defaultChat.providerName
363
+ ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.provider.enterprise.id ? defaultChat.provider.enterprise.name : defaultChat.provider.default.name
364
364
  )))),
365
365
  });
366
366
  break;
367
367
  case ChatSetupStep.Installing:
368
368
  progress({
369
369
  kind: 'progressMessage',
370
- content: ( new MarkdownString(( localize(5001, "Getting Copilot ready")))),
370
+ content: ( new MarkdownString(( localize(5100, "Getting Copilot ready")))),
371
371
  });
372
372
  break;
373
373
  }
@@ -396,7 +396,7 @@ let SetupAgent = class SetupAgent extends Disposable {
396
396
  else {
397
397
  progress({
398
398
  kind: 'warning',
399
- content: ( new MarkdownString(( localize(5002, "Copilot setup failed."))))
399
+ content: ( new MarkdownString(( localize(5101, "Copilot setup failed."))))
400
400
  });
401
401
  }
402
402
  }
@@ -524,8 +524,8 @@ var ChatSetupStrategy;
524
524
  ChatSetupStrategy[ChatSetupStrategy["DefaultSetup"] = 1] = "DefaultSetup";
525
525
  ChatSetupStrategy[ChatSetupStrategy["SetupWithoutEnterpriseProvider"] = 2] = "SetupWithoutEnterpriseProvider";
526
526
  ChatSetupStrategy[ChatSetupStrategy["SetupWithEnterpriseProvider"] = 3] = "SetupWithEnterpriseProvider";
527
- ChatSetupStrategy[ChatSetupStrategy["SetupWithAccountCreate"] = 4] = "SetupWithAccountCreate";
528
- ChatSetupStrategy[ChatSetupStrategy["SetupWithAlternateProvider"] = 5] = "SetupWithAlternateProvider";
527
+ ChatSetupStrategy[ChatSetupStrategy["SetupWithGoogleProvider"] = 4] = "SetupWithGoogleProvider";
528
+ ChatSetupStrategy[ChatSetupStrategy["SetupWithAppleProvider"] = 5] = "SetupWithAppleProvider";
529
529
  })(ChatSetupStrategy || (ChatSetupStrategy = {}));
530
530
  let ChatSetup = class ChatSetup {
531
531
  static { ChatSetup_1 = this; }
@@ -545,14 +545,13 @@ let ChatSetup = class ChatSetup {
545
545
  accessor.get(ILogService),
546
546
  accessor.get(IConfigurationService),
547
547
  accessor.get(IViewsService),
548
- accessor.get(IOpenerService),
549
548
  accessor.get(IWorkspaceTrustRequestService)
550
549
  ));
551
550
  });
552
551
  }
553
552
  return instance;
554
553
  }
555
- constructor(context, controller, instantiationService, telemetryService, layoutService, keybindingService, chatEntitlementService, logService, configurationService, viewsService, openerService, workspaceTrustRequestService) {
554
+ constructor(context, controller, instantiationService, telemetryService, layoutService, keybindingService, chatEntitlementService, logService, configurationService, viewsService, workspaceTrustRequestService) {
556
555
  this.context = context;
557
556
  this.controller = controller;
558
557
  this.instantiationService = instantiationService;
@@ -563,7 +562,6 @@ let ChatSetup = class ChatSetup {
563
562
  this.logService = logService;
564
563
  this.configurationService = configurationService;
565
564
  this.viewsService = viewsService;
566
- this.openerService = openerService;
567
565
  this.workspaceTrustRequestService = workspaceTrustRequestService;
568
566
  this.pendingRun = undefined;
569
567
  this.skipDialogOnce = false;
@@ -588,7 +586,7 @@ let ChatSetup = class ChatSetup {
588
586
  const dialogSkipped = this.skipDialogOnce;
589
587
  this.skipDialogOnce = false;
590
588
  const trusted = await this.workspaceTrustRequestService.requestWorkspaceTrust({
591
- message: ( localize(5003, "Copilot is currently only supported in trusted workspaces."))
589
+ message: ( localize(5102, "Copilot is currently only supported in trusted workspaces."))
592
590
  });
593
591
  if (!trusted) {
594
592
  this.context.update({ later: true });
@@ -596,13 +594,13 @@ let ChatSetup = class ChatSetup {
596
594
  return { dialogSkipped, success: undefined };
597
595
  }
598
596
  let setupStrategy;
599
- if (dialogSkipped || isProUser(this.chatEntitlementService.entitlement) || this.chatEntitlementService.entitlement === ChatEntitlement.Free) {
597
+ if (!options?.forceSignInDialog && (dialogSkipped || isProUser(this.chatEntitlementService.entitlement) || this.chatEntitlementService.entitlement === ChatEntitlement.Free)) {
600
598
  setupStrategy = ChatSetupStrategy.DefaultSetup;
601
599
  }
602
600
  else {
603
- setupStrategy = await this.showDialog();
601
+ setupStrategy = await this.showDialog(options);
604
602
  }
605
- if (setupStrategy === ChatSetupStrategy.DefaultSetup && ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.enterpriseProviderId) {
603
+ if (setupStrategy === ChatSetupStrategy.DefaultSetup && ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.provider.enterprise.id) {
606
604
  setupStrategy = ChatSetupStrategy.SetupWithEnterpriseProvider;
607
605
  }
608
606
  if (setupStrategy !== ChatSetupStrategy.Canceled && !options?.disableChatViewReveal) {
@@ -612,20 +610,20 @@ let ChatSetup = class ChatSetup {
612
610
  try {
613
611
  switch (setupStrategy) {
614
612
  case ChatSetupStrategy.SetupWithEnterpriseProvider:
615
- success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: true, useAlternateProvider: false });
613
+ success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: true, useSocialProvider: undefined });
616
614
  break;
617
615
  case ChatSetupStrategy.SetupWithoutEnterpriseProvider:
618
- success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: false, useAlternateProvider: false });
616
+ success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: false, useSocialProvider: undefined });
617
+ break;
618
+ case ChatSetupStrategy.SetupWithAppleProvider:
619
+ success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: false, useSocialProvider: 'apple' });
619
620
  break;
620
- case ChatSetupStrategy.SetupWithAlternateProvider:
621
- success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: false, useAlternateProvider: true });
621
+ case ChatSetupStrategy.SetupWithGoogleProvider:
622
+ success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: false, useSocialProvider: 'google' });
622
623
  break;
623
624
  case ChatSetupStrategy.DefaultSetup:
624
625
  success = await this.controller.value.setup();
625
626
  break;
626
- case ChatSetupStrategy.SetupWithAccountCreate:
627
- this.openerService.open(( URI.parse(defaultChat.signUpUrl)));
628
- return this.doRun(options);
629
627
  case ChatSetupStrategy.Canceled:
630
628
  this.context.update({ later: true });
631
629
  this.telemetryService.publicLog2('commandCenter.chatInstall', { installResult: 'failedMaybeLater', installDuration: 0, signUpErrorCode: undefined, provider: undefined });
@@ -638,94 +636,73 @@ let ChatSetup = class ChatSetup {
638
636
  }
639
637
  return { success, dialogSkipped };
640
638
  }
641
- async showDialog() {
639
+ async showDialog(options) {
642
640
  const disposables = ( new DisposableStore());
643
641
  const dialogVariant = this.configurationService.getValue('chat.setup.signInDialogVariant');
644
- const buttons = this.getButtons(dialogVariant);
645
- const dialog = disposables.add(( new Dialog(this.layoutService.activeContainer, this.getDialogTitle(), ( buttons.map(button => button[0])), createWorkbenchDialogOptions({
646
- type: 'none',
647
- extraClasses: ['chat-setup-dialog'],
648
- detail: ' ',
649
- icon: Codicon.copilotLarge,
650
- alignment: DialogContentsAlignment.Vertical,
651
- cancelId: buttons.length - 1,
652
- disableCloseButton: true,
653
- renderFooter: this.telemetryService.telemetryLevel !== TelemetryLevel.NONE ? footer => footer.appendChild(this.createDialogFooter(disposables)) : undefined,
654
- buttonOptions: ( buttons.map(button => button[2]))
655
- }, this.keybindingService, this.layoutService))));
642
+ const buttons = this.getButtons(dialogVariant, options);
643
+ const dialog = disposables.add(( new Dialog(
644
+ this.layoutService.activeContainer,
645
+ this.getDialogTitle(options),
646
+ ( buttons.map(button => button[0])),
647
+ createWorkbenchDialogOptions({
648
+ type: 'none',
649
+ extraClasses: ['chat-setup-dialog'],
650
+ detail: ' ',
651
+ icon: Codicon.copilotLarge,
652
+ alignment: DialogContentsAlignment.Vertical,
653
+ cancelId: buttons.length - 1,
654
+ disableCloseButton: true,
655
+ renderFooter: this.telemetryService.telemetryLevel !== TelemetryLevel.NONE ? footer => footer.appendChild(this.createDialogFooter(disposables)) : undefined,
656
+ buttonOptions: ( buttons.map(button => button[2]))
657
+ }, this.keybindingService, this.layoutService)
658
+ )));
656
659
  const { button } = await dialog.show();
657
660
  disposables.dispose();
658
661
  return buttons[button]?.[1] ?? ChatSetupStrategy.Canceled;
659
662
  }
660
- getButtons(variant) {
663
+ getButtons(variant, options) {
664
+ const styleButton = (...classes) => ({ styleButton: (button) => button.element.classList.add(...classes) });
661
665
  let buttons;
662
- if (this.context.state.entitlement === ChatEntitlement.Unknown) {
663
- let alternateProvider = 'off';
664
- if (defaultChat.alternativeProviderId) {
665
- if (this.configurationService.getValue('chat.setup.signInWithAlternateProvider')) {
666
- alternateProvider = 'colorful';
667
- }
668
- switch (variant) {
669
- case 'alternate-first':
670
- alternateProvider = 'first';
671
- break;
672
- case 'alternate-color':
673
- alternateProvider = 'colorful';
674
- break;
675
- case 'alternate-monochrome':
676
- alternateProvider = 'monochrome';
677
- break;
678
- }
679
- }
680
- if (ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.enterpriseProviderId) {
666
+ if (this.context.state.entitlement === ChatEntitlement.Unknown || options?.forceSignInDialog) {
667
+ const defaultProviderButton = [( localize(5103, "Continue with {0}", defaultChat.provider.default.name)), ChatSetupStrategy.SetupWithoutEnterpriseProvider, styleButton('continue-button', 'default')];
668
+ const defaultProviderLink = [defaultProviderButton[0], defaultProviderButton[1], styleButton('link-button')];
669
+ const enterpriseProviderButton = [( localize(5103, "Continue with {0}", defaultChat.provider.enterprise.name)), ChatSetupStrategy.SetupWithEnterpriseProvider, styleButton('continue-button', 'default')];
670
+ const enterpriseProviderLink = [enterpriseProviderButton[0], enterpriseProviderButton[1], styleButton('link-button')];
671
+ const googleProviderButton = [( localize(5103, "Continue with {0}", defaultChat.provider.google.name)), ChatSetupStrategy.SetupWithGoogleProvider, styleButton('continue-button', 'google')];
672
+ if (ChatEntitlementRequests.providerId(this.configurationService) !== defaultChat.provider.enterprise.id) {
681
673
  buttons = coalesce([
682
- [( localize(5004, "Continue with {0}", defaultChat.enterpriseProviderName)), ChatSetupStrategy.SetupWithEnterpriseProvider, {
683
- styleButton: button => button.element.classList.add('continue-button', 'default')
684
- }],
685
- alternateProvider !== 'off' ? [( localize(5004, "Continue with {0}", defaultChat.alternativeProviderName)), ChatSetupStrategy.SetupWithAlternateProvider, {
686
- styleButton: button => button.element.classList.add('continue-button', 'alternate', alternateProvider)
687
- }] : undefined,
688
- [( localize(5005, "Sign in with a {0} account", defaultChat.providerName)), ChatSetupStrategy.SetupWithoutEnterpriseProvider, {
689
- styleButton: button => button.element.classList.add('link-button')
690
- }]
674
+ defaultProviderButton,
675
+ variant === 'google' ? googleProviderButton : undefined,
676
+ enterpriseProviderLink
691
677
  ]);
692
678
  }
693
679
  else {
694
680
  buttons = coalesce([
695
- [( localize(5004, "Continue with {0}", defaultChat.providerName)), ChatSetupStrategy.SetupWithoutEnterpriseProvider, {
696
- styleButton: button => button.element.classList.add('continue-button', 'default')
697
- }],
698
- alternateProvider !== 'off' ? [( localize(5004, "Continue with {0}", defaultChat.alternativeProviderName)), ChatSetupStrategy.SetupWithAlternateProvider, {
699
- styleButton: button => button.element.classList.add('continue-button', 'alternate', alternateProvider)
700
- }] : undefined,
701
- [( localize(5005, "Sign in with a {0} account", defaultChat.enterpriseProviderName)), ChatSetupStrategy.SetupWithEnterpriseProvider, {
702
- styleButton: button => button.element.classList.add('link-button')
703
- }]
681
+ enterpriseProviderButton,
682
+ variant === 'google' ? googleProviderButton : undefined,
683
+ defaultProviderLink
704
684
  ]);
705
685
  }
706
- if (alternateProvider === 'first') {
707
- [buttons[0], buttons[1]] = [buttons[1], buttons[0]];
708
- }
709
686
  }
710
687
  else {
711
- buttons = [[( localize(5006, "Set up Copilot")), ChatSetupStrategy.DefaultSetup, undefined]];
688
+ buttons = [[( localize(5104, "Set up Copilot")), ChatSetupStrategy.DefaultSetup, undefined]];
712
689
  }
713
- buttons.push([( localize(5007, "Skip for now")), ChatSetupStrategy.Canceled, { styleButton: button => button.element.classList.add('link-button', 'skip-button') }]);
690
+ buttons.push([( localize(5105, "Skip for now")), ChatSetupStrategy.Canceled, styleButton('link-button', 'skip-button')]);
714
691
  return buttons;
715
692
  }
716
- getDialogTitle() {
717
- if (this.context.state.entitlement === ChatEntitlement.Unknown) {
718
- return localize(5008, "Sign in to use Copilot");
693
+ getDialogTitle(options) {
694
+ if (this.context.state.entitlement === ChatEntitlement.Unknown || options?.forceSignInDialog) {
695
+ return localize(5106, "Sign in to use Copilot");
719
696
  }
720
- return localize(5009, "Start using Copilot");
697
+ return localize(5107, "Start using Copilot");
721
698
  }
722
699
  createDialogFooter(disposables) {
723
700
  const element = $('.chat-setup-dialog-footer');
724
701
  const markdown = this.instantiationService.createInstance(MarkdownRenderer, {});
725
702
  const settings = ( localize(
726
- 5010,
703
+ 5108,
727
704
  "{0} Copilot Free, Pro and Pro+ may show [public code]({1}) suggestions and we may use your data for product improvement. You can change these [settings]({2}) at any time.",
728
- defaultChat.providerName,
705
+ defaultChat.provider.default.name,
729
706
  defaultChat.publicCodeMatchesUrl,
730
707
  defaultChat.manageSettingsUrl
731
708
  ));
@@ -742,8 +719,7 @@ ChatSetup = ChatSetup_1 = ( __decorate([
742
719
  ( __param(7, ILogService)),
743
720
  ( __param(8, IConfigurationService)),
744
721
  ( __param(9, IViewsService)),
745
- ( __param(10, IOpenerService)),
746
- ( __param(11, IWorkspaceTrustRequestService))
722
+ ( __param(10, IWorkspaceTrustRequestService))
747
723
  ], ChatSetup));
748
724
  let ChatSetupContribution = class ChatSetupContribution extends Disposable {
749
725
  static { this.ID = 'workbench.contrib.chatSetup'; }
@@ -803,7 +779,7 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
803
779
  }
804
780
  registerActions(context, requests, controller) {
805
781
  const chatSetupTriggerContext = ( ContextKeyExpr.or(( ChatContextKeys.Setup.installed.negate()), ChatContextKeys.Entitlement.canSignUp));
806
- const CHAT_SETUP_ACTION_LABEL = ( localize2(5011, "Use AI Features with Copilot for free..."));
782
+ const CHAT_SETUP_ACTION_LABEL = ( localize2(5109, "Use AI Features with Copilot for free..."));
807
783
  class ChatSetupTriggerAction extends Action2 {
808
784
  constructor() {
809
785
  super({
@@ -814,7 +790,7 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
814
790
  precondition: chatSetupTriggerContext
815
791
  });
816
792
  }
817
- async run(accessor, mode) {
793
+ async run(accessor, mode, options) {
818
794
  const viewsService = accessor.get(IViewsService);
819
795
  const layoutService = accessor.get(IWorkbenchLayoutService);
820
796
  const instantiationService = accessor.get(IInstantiationService);
@@ -827,20 +803,34 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
827
803
  chatWidget?.input.setChatMode(mode);
828
804
  }
829
805
  const setup = ChatSetup.getInstance(instantiationService, context, controller);
830
- const { success } = await setup.run();
806
+ const { success } = await setup.run(options);
831
807
  if (success === false && !lifecycleService.willShutdown) {
832
808
  const { confirmed } = await dialogService.confirm({
833
809
  type: Severity.Error,
834
- message: ( localize(5012, "Copilot setup failed. Would you like to try again?")),
835
- primaryButton: ( localize(5013, "Retry")),
810
+ message: ( localize(5110, "Copilot setup failed. Would you like to try again?")),
811
+ primaryButton: ( localize(5111, "Retry")),
836
812
  });
837
813
  if (confirmed) {
838
- return Boolean(await commandService.executeCommand(CHAT_SETUP_ACTION_ID));
814
+ return Boolean(await commandService.executeCommand(CHAT_SETUP_ACTION_ID, mode, options));
839
815
  }
840
816
  }
841
817
  return Boolean(success);
842
818
  }
843
819
  }
820
+ class ChatSetupTriggerForceSignInDialogAction extends Action2 {
821
+ constructor() {
822
+ super({
823
+ id: 'workbench.action.chat.triggerSetupForceSignIn',
824
+ title: ( localize2(5112, "Sign in to use Copilot"))
825
+ });
826
+ }
827
+ async run(accessor) {
828
+ const commandService = accessor.get(ICommandService);
829
+ const telemetryService = accessor.get(ITelemetryService);
830
+ telemetryService.publicLog2('workbenchActionExecuted', { id: CHAT_SETUP_ACTION_ID, from: 'api' });
831
+ return commandService.executeCommand(CHAT_SETUP_ACTION_ID, undefined, { forceSignInDialog: true });
832
+ }
833
+ }
844
834
  class ChatSetupTriggerWithoutDialogAction extends Action2 {
845
835
  constructor() {
846
836
  super({
@@ -856,14 +846,14 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
856
846
  await context.update({ hidden: false });
857
847
  const chatWidget = await showCopilotView(viewsService, layoutService);
858
848
  ChatSetup.getInstance(instantiationService, context, controller).skipDialog();
859
- chatWidget?.acceptInput(( localize(5014, "Set up Copilot.")));
849
+ chatWidget?.acceptInput(( localize(5113, "Set up Copilot.")));
860
850
  }
861
851
  }
862
852
  class ChatSetupFromAccountsAction extends Action2 {
863
853
  constructor() {
864
854
  super({
865
855
  id: 'workbench.action.chat.triggerSetupFromAccounts',
866
- title: ( localize2(5015, "Sign in to use Copilot...")),
856
+ title: ( localize2(5114, "Sign in to use Copilot...")),
867
857
  menu: {
868
858
  id: MenuId.AccountsContext,
869
859
  group: '2_copilot',
@@ -880,7 +870,7 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
880
870
  }
881
871
  class ChatSetupHideAction extends Action2 {
882
872
  static { this.ID = 'workbench.action.chat.hideSetup'; }
883
- static { this.TITLE = ( localize2(5016, "Hide Copilot")); }
873
+ static { this.TITLE = ( localize2(5115, "Hide AI Features")); }
884
874
  constructor() {
885
875
  super({
886
876
  id: ChatSetupHideAction.ID,
@@ -901,13 +891,13 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
901
891
  const layoutService = accessor.get(IWorkbenchLayoutService);
902
892
  const dialogService = accessor.get(IDialogService);
903
893
  const { confirmed } = await dialogService.confirm({
904
- message: ( localize(5017, "Are you sure you want to hide Copilot?")),
894
+ message: ( localize(5116, "Are you sure you want to hide AI features?")),
905
895
  detail: ( localize(
906
- 5018,
907
- "You can restore Copilot by running the '{0}' command.",
896
+ 5117,
897
+ "You can restore AI features by running the '{0}' command.",
908
898
  CHAT_SETUP_ACTION_LABEL.value
909
899
  )),
910
- primaryButton: ( localize(5019, "Hide Copilot"))
900
+ primaryButton: ( localize(5118, "Hide AI Features"))
911
901
  });
912
902
  if (!confirmed) {
913
903
  return;
@@ -927,8 +917,8 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
927
917
  constructor() {
928
918
  super({
929
919
  id: 'workbench.action.chat.upgradePlan',
930
- title: ( localize2(5020, "Upgrade to Copilot Pro")),
931
- category: ( localize2(5021, 'Chat')),
920
+ title: ( localize2(5119, "Upgrade to Copilot Pro")),
921
+ category: ( localize2(5120, 'Chat')),
932
922
  f1: true,
933
923
  precondition: ( ContextKeyExpr.or(ChatContextKeys.Entitlement.canSignUp, ChatContextKeys.Entitlement.free)),
934
924
  menu: {
@@ -966,8 +956,8 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
966
956
  constructor() {
967
957
  super({
968
958
  id: 'workbench.action.chat.manageOverages',
969
- title: ( localize2(5022, "Manage Copilot Overages")),
970
- category: ( localize2(5021, 'Chat')),
959
+ title: ( localize2(5121, "Manage Copilot Overages")),
960
+ category: ( localize2(5120, 'Chat')),
971
961
  f1: true,
972
962
  precondition: ( ContextKeyExpr.or(ChatContextKeys.Entitlement.pro, ChatContextKeys.Entitlement.proPlus)),
973
963
  menu: {
@@ -987,6 +977,7 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
987
977
  }
988
978
  }
989
979
  registerAction2(ChatSetupTriggerAction);
980
+ registerAction2(ChatSetupTriggerForceSignInDialogAction);
990
981
  registerAction2(ChatSetupFromAccountsAction);
991
982
  registerAction2(ChatSetupTriggerWithoutDialogAction);
992
983
  registerAction2(ChatSetupHideAction);
@@ -1056,7 +1047,7 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1056
1047
  }
1057
1048
  async setup(options) {
1058
1049
  const watch = ( new StopWatch(false));
1059
- const title = ( localize(5023, "Getting Copilot ready..."));
1050
+ const title = ( localize(5122, "Getting Copilot ready..."));
1060
1051
  const badge = this.activityService.showViewContainerActivity(CHAT_SIDEBAR_PANEL_ID, {
1061
1052
  badge: ( new ProgressBadge(() => title)),
1062
1053
  });
@@ -1080,10 +1071,10 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1080
1071
  let entitlement;
1081
1072
  if (this.context.state.entitlement === ChatEntitlement.Unknown || options.forceSignIn) {
1082
1073
  this.setStep(ChatSetupStep.SigningIn);
1083
- const result = await this.signIn({ useAlternateProvider: options.useAlternateProvider });
1074
+ const result = await this.signIn(options);
1084
1075
  if (!result.session) {
1085
1076
  this.doInstall();
1086
- const provider = options.useAlternateProvider ? defaultChat.alternativeProviderId : options.useEnterpriseProvider ? defaultChat.enterpriseProviderId : defaultChat.providerName;
1077
+ const provider = options.useSocialProvider ?? options.useEnterpriseProvider ? defaultChat.provider.enterprise.id : defaultChat.provider.default.id;
1087
1078
  this.telemetryService.publicLog2('commandCenter.chatInstall', { installResult: 'failedNotSignedIn', installDuration: watch.elapsed(), signUpErrorCode: undefined, provider });
1088
1079
  return undefined;
1089
1080
  }
@@ -1112,12 +1103,12 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1112
1103
  const { confirmed } = await this.dialogService.confirm({
1113
1104
  type: Severity.Error,
1114
1105
  message: ( localize(
1115
- 5024,
1106
+ 5123,
1116
1107
  "Failed to sign in to {0}. Would you like to try again?",
1117
- options?.useAlternateProvider ? defaultChat.alternativeProviderName : ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.enterpriseProviderId ? defaultChat.enterpriseProviderName : defaultChat.providerName
1108
+ ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.provider.enterprise.id ? defaultChat.provider.enterprise.name : defaultChat.provider.default.name
1118
1109
  )),
1119
- detail: ( localize(5025, "You must be signed in to use Copilot.")),
1120
- primaryButton: ( localize(5013, "Retry"))
1110
+ detail: ( localize(5124, "You must be signed in to use Copilot.")),
1111
+ primaryButton: ( localize(5111, "Retry"))
1121
1112
  });
1122
1113
  if (confirmed) {
1123
1114
  return this.signIn(options);
@@ -1128,7 +1119,7 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1128
1119
  async install(session, entitlement, providerId, watch, options) {
1129
1120
  const wasRunning = this.context.state.installed && !this.context.state.disabled;
1130
1121
  let signUpResult = undefined;
1131
- const provider = options.useAlternateProvider ? defaultChat.alternativeProviderId : options.useEnterpriseProvider ? defaultChat.enterpriseProviderId : defaultChat.providerName;
1122
+ const provider = options.useSocialProvider ?? options.useEnterpriseProvider ? defaultChat.provider.enterprise.id : defaultChat.provider.default.id;
1132
1123
  try {
1133
1124
  if (entitlement !== ChatEntitlement.Free &&
1134
1125
  !isProUser(entitlement) &&
@@ -1160,7 +1151,7 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1160
1151
  if (typeof signUpResult === 'boolean') {
1161
1152
  this.telemetryService.publicLog2('commandCenter.chatInstall', { installResult: wasRunning && !signUpResult ? 'alreadyInstalled' : 'installed', installDuration: watch.elapsed(), signUpErrorCode: undefined, provider });
1162
1153
  }
1163
- if (wasRunning && signUpResult === true) {
1154
+ if (wasRunning) {
1164
1155
  refreshTokens(this.commandService);
1165
1156
  }
1166
1157
  return true;
@@ -1179,11 +1170,11 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1179
1170
  const { confirmed } = await this.dialogService.confirm({
1180
1171
  type: Severity.Error,
1181
1172
  message: ( localize(
1182
- 5026,
1173
+ 5125,
1183
1174
  "An error occurred while setting up Copilot. Would you like to try again?"
1184
1175
  )),
1185
1176
  detail: error && !isCancellationError(error) ? toErrorMessage(error) : undefined,
1186
- primaryButton: ( localize(5013, "Retry"))
1177
+ primaryButton: ( localize(5111, "Retry"))
1187
1178
  });
1188
1179
  if (confirmed) {
1189
1180
  return this.doInstallWithRetry();
@@ -1233,7 +1224,7 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1233
1224
  if (options.useEnterpriseProvider) {
1234
1225
  await this.configurationService.updateValue(`${defaultChat.completionsAdvancedSetting}`, {
1235
1226
  ...existingAdvancedSetting,
1236
- 'authProvider': defaultChat.enterpriseProviderId
1227
+ 'authProvider': defaultChat.provider.enterprise.id
1237
1228
  }, ConfigurationTarget.USER);
1238
1229
  }
1239
1230
  else {
@@ -1253,8 +1244,8 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1253
1244
  }
1254
1245
  let isSingleWord = false;
1255
1246
  const result = await this.quickInputService.input({
1256
- prompt: ( localize(5027, "What is your {0} instance?", defaultChat.enterpriseProviderName)),
1257
- placeHolder: ( localize(5028, 'i.e. "octocat" or "https://octocat.ghe.com"...')),
1247
+ prompt: ( localize(5126, "What is your {0} instance?", defaultChat.provider.enterprise.name)),
1248
+ placeHolder: ( localize(5127, 'i.e. "octocat" or "https://octocat.ghe.com"...')),
1258
1249
  ignoreFocusLost: true,
1259
1250
  value: uri,
1260
1251
  validateInput: async (value) => {
@@ -1265,16 +1256,16 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1265
1256
  if (domainRegEx.test(value)) {
1266
1257
  isSingleWord = true;
1267
1258
  return {
1268
- content: ( localize(5029, "Will resolve to {0}", `https://${value}.ghe.com`)),
1259
+ content: ( localize(5128, "Will resolve to {0}", `https://${value}.ghe.com`)),
1269
1260
  severity: Severity.Info
1270
1261
  };
1271
1262
  }
1272
1263
  if (!fullUriRegEx.test(value)) {
1273
1264
  return {
1274
1265
  content: ( localize(
1275
- 5030,
1266
+ 5129,
1276
1267
  'You must enter a valid {0} instance (i.e. "octocat" or "https://octocat.ghe.com")',
1277
- defaultChat.enterpriseProviderName
1268
+ defaultChat.provider.enterprise.name
1278
1269
  )),
1279
1270
  severity: Severity.Error
1280
1271
  };