@codingame/monaco-vscode-chat-service-override 20.4.1 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/index.js +15 -7
  2. package/package.json +38 -36
  3. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +2 -0
  4. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +60 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +56 -46
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +18 -16
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +52 -11
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +28 -26
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +19 -13
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +2 -2
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +15 -12
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +11 -11
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +10 -10
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +68 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +433 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -18
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +7 -3
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +205 -551
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +7 -5
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +52 -29
  24. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -163
  25. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +1 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +20 -5
  27. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +17 -17
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +11 -14
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +32 -6
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +22 -3
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +2 -1
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +22 -9
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +6 -8
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +1 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +47 -15
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +12 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +8 -2
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +33 -8
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +3 -3
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +3 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +74 -19
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +1 -1
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +2 -2
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +19 -19
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +3 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +23 -19
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.d.ts +12 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.js +36 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +36 -35
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +6 -6
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +2 -2
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +1 -1
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +37 -9
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +238 -52
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +23 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +257 -148
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +3 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +126 -77
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +2 -3
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +3 -13
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +4 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +55 -45
  67. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +6 -3
  68. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
  69. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +13 -7
  70. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +130 -47
  71. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-dark.svg +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-light.svg +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +5 -3
  74. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatus.css +6 -6
  75. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +9 -9
  76. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +4 -4
  77. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +39 -35
  78. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +9 -9
  79. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +18 -18
  80. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +12 -12
  81. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  82. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  83. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  84. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  85. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +2 -2
  86. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +14 -14
  87. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  88. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +5 -4
  89. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +7 -4
  90. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +4 -8
  91. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +153 -168
  92. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +127 -1
  93. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +111 -1
  94. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +3 -3
  95. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +2 -1
  96. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +6 -3
  97. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.d.ts +20 -0
  98. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +66 -0
  99. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +38 -0
  100. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +143 -0
  101. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +3 -1
  102. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +12 -3
  103. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.d.ts +8 -3
  104. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.js +41 -8
  105. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.d.ts +4 -1
  106. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.js +55 -22
  107. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.js +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/basePromptParser.js +1 -1
  109. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.js +4 -4
  110. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.js +2 -2
  111. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.d.ts +2 -0
  112. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.js +5 -2
  113. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.d.ts +3 -3
  114. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.js +3 -4
  115. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.js +4 -4
  116. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.d.ts +0 -5
  117. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.js +8 -23
  118. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.js +9 -9
  119. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +4 -5
  120. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +11 -5
  121. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +28 -28
  122. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  123. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +12 -0
  124. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +54 -0
  125. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
  126. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +33 -31
  127. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +9 -9
  128. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.d.ts +1 -3
  129. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +9 -13
  130. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  131. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -18
  132. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +2 -1
  133. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +11 -4
  134. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  135. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +1 -2
  136. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +1 -6
  137. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.d.ts +16 -1
  138. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +84 -25
  139. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +10 -0
  140. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +55 -0
  141. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +8 -2
  142. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +15 -7
  143. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +23 -0
  144. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +72 -1
  145. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +8 -2
  146. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +19 -9
  147. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +5 -0
  148. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +7 -5
  149. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +12 -8
  150. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +6 -0
  151. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +85 -1
  152. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +35 -0
  153. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +448 -0
  154. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -1
  155. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +30 -77
  156. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +62 -0
  157. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +174 -0
  158. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +75 -10
  159. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +15 -2
  160. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +81 -38
  161. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.d.ts +11 -0
  162. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +106 -0
  163. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.js → tools/getTerminalOutputTool.js} +5 -3
  164. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.d.ts +11 -0
  165. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +59 -0
  166. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +57 -0
  167. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +452 -0
  168. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +45 -0
  169. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
  170. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +2 -0
  171. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +31 -0
  172. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.d.ts → tools/runInTerminalTool.d.ts} +11 -13
  173. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.js → tools/runInTerminalTool.js} +282 -133
  174. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.d.ts +5 -5
  175. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.js +51 -50
  176. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/getTaskOutputTool.d.ts +6 -1
  177. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +117 -0
  178. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.d.ts +3 -5
  179. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.js +54 -50
  180. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +19 -0
  181. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +36 -0
  182. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.d.ts +3 -0
  183. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.js +8 -0
  184. package/vscode/src/vs/base/common/policy.d.ts +0 -41
  185. package/vscode/src/vs/base/common/policy.js +0 -11
  186. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.d.ts +0 -12
  187. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.js +0 -738
  188. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +0 -42
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.d.ts +0 -67
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.js +0 -167
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.d.ts +0 -23
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.js +0 -63
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.d.ts +0 -55
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.js +0 -163
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.js +0 -88
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.d.ts +0 -35
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.js +0 -80
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.d.ts +0 -1
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.js +0 -40
  200. /package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.d.ts → tools/getTerminalOutputTool.d.ts} +0 -0
@@ -4,6 +4,7 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
4
4
  import * as chatSetup from './media/chatSetup.css';
5
5
  import { $ } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
6
  import { Dialog, DialogContentsAlignment } from '@codingame/monaco-vscode-f1bbc6d3-6129-583c-a2ba-c80b832993d2-common/vscode/vs/base/browser/ui/dialog/dialog';
7
+ import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
7
8
  import { timeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
8
9
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
9
10
  import { toErrorMessage } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errorMessage';
@@ -25,8 +26,10 @@ import { ConfigurationTarget } from '@codingame/monaco-vscode-api/vscode/vs/plat
25
26
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
26
27
  import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
27
28
  import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
29
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
28
30
  import { createWorkbenchDialogOptions } from '@codingame/monaco-vscode-f1bbc6d3-6129-583c-a2ba-c80b832993d2-common/vscode/vs/platform/dialogs/browser/dialog';
29
31
  import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
32
+ import { ExtensionIdentifier } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
30
33
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
31
34
  import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
32
35
  import { ILayoutService } from '@codingame/monaco-vscode-api/vscode/vs/platform/layout/browser/layoutService.service';
@@ -43,9 +46,12 @@ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platfo
43
46
  import { IWorkspaceTrustManagementService, IWorkspaceTrustRequestService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service';
44
47
  import { ViewContainerLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views';
45
48
  import { IViewDescriptorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views.service';
46
- import { ProgressBadge } from '@codingame/monaco-vscode-d941ac7b-412f-57e3-b1bf-f6b0eb253b21-common/vscode/vs/workbench/services/activity/common/activity';
49
+ import { ProgressBadge } from '@codingame/monaco-vscode-9a5ab9e7-d838-5831-9eb4-e79ea3764dcb-common/vscode/vs/workbench/services/activity/common/activity';
47
50
  import { IActivityService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/activity/common/activity.service';
48
51
  import { IAuthenticationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/common/authentication.service';
52
+ import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
53
+ import { EnablementState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement';
54
+ import { IWorkbenchExtensionEnablementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service';
49
55
  import { ExtensionUrlHandlerOverrideRegistry } from '@codingame/monaco-vscode-8c844347-a703-5de1-9eeb-5e0c7f503a58-common/vscode/vs/workbench/services/extensions/browser/extensionUrlHandler';
50
56
  import { nullExtensionDescription } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions';
51
57
  import { IHostService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service';
@@ -61,6 +67,7 @@ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbenc
61
67
  import { ChatEntitlement, ChatEntitlementRequests, isProUser } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatEntitlementService';
62
68
  import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEntitlementService.service';
63
69
  import { ChatRequestModel } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel';
70
+ import { ChatMode } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModes';
64
71
  import { ChatRequestToolPart, ChatRequestAgentPart } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
65
72
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
66
73
  import { ChatConfiguration, ChatAgentLocation, ChatModeKind, validateChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
@@ -69,11 +76,10 @@ import { CHAT_SETUP_ACTION_ID, CHAT_CATEGORY, CHAT_OPEN_ACTION_ID } from '@codin
69
76
  import { showCopilotView, ChatViewId } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
70
77
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
71
78
  import { CHAT_SIDEBAR_PANEL_ID } from './chatViewPane.js';
72
- import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
73
- import { ChatMode } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModes';
74
- import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
79
+ import { chatViewsWelcomeRegistry } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcome';
80
+ import { IPreferencesService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/preferences/common/preferences.service';
75
81
 
76
- var SetupAgent_1, ChatSetup_1;
82
+ var SetupAgent_1, ChatSetup_1, ChatTeardownContribution_1;
77
83
  registerCss(chatSetup);
78
84
  const defaultChat = {
79
85
  extensionId: product.defaultChatAgent?.extensionId ?? '',
@@ -91,6 +97,8 @@ const defaultChat = {
91
97
  walkthroughCommand: product.defaultChatAgent?.walkthroughCommand ?? '',
92
98
  completionsRefreshTokenCommand: product.defaultChatAgent?.completionsRefreshTokenCommand ?? '',
93
99
  chatRefreshTokenCommand: product.defaultChatAgent?.chatRefreshTokenCommand ?? '',
100
+ termsStatementUrl: product.defaultChatAgent?.termsStatementUrl ?? '',
101
+ privacyStatementUrl: product.defaultChatAgent?.privacyStatementUrl ?? ''
94
102
  };
95
103
  const ToolsAgentContextKey = ( ContextKeyExpr.and(( ContextKeyExpr.equals(`config.${ChatConfiguration.AgentEnabled}`, true)),
96
104
  ContextKeyExpr.not(`previewFeaturesDisabled`)));
@@ -128,24 +136,28 @@ let SetupAgent = class SetupAgent extends Disposable {
128
136
  return SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, id, `${defaultChat.provider.default.name} Copilot`, true, description, location, mode, context, controller);
129
137
  });
130
138
  }
131
- static registerVSCodeAgent(instantiationService, context, controller) {
139
+ static registerBuiltInAgents(instantiationService, context, controller) {
132
140
  return instantiationService.invokeFunction(accessor => {
133
141
  const chatAgentService = accessor.get(IChatAgentService);
134
142
  const disposables = ( new DisposableStore());
135
- const { agent, disposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.vscode', 'vscode', false, ( localize2(5092, "Ask questions about VS Code")).value, ChatAgentLocation.Panel, undefined, context, controller);
136
- disposables.add(disposable);
143
+ const { disposable: vscodeDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.vscode', 'vscode', false, ( localize2(5202, "Ask questions about VS Code")).value, ChatAgentLocation.Panel, undefined, context, controller);
144
+ disposables.add(vscodeDisposable);
145
+ const { disposable: workspaceDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.workspace', 'workspace', false, ( localize2(5203, "Ask about your workspace")).value, ChatAgentLocation.Panel, undefined, context, controller);
146
+ disposables.add(workspaceDisposable);
147
+ const { disposable: terminalDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.terminal.agent', 'terminal', false, ( localize2(5204, "Ask how to do something in the terminal")).value, ChatAgentLocation.Panel, undefined, context, controller);
148
+ disposables.add(terminalDisposable);
137
149
  disposables.add(SetupTool.registerTool(instantiationService, {
138
- id: 'setup.tools.createNewWorkspace',
150
+ id: 'setup_tools_createNewWorkspace',
139
151
  source: ToolDataSource.Internal,
140
152
  icon: Codicon.newFolder,
141
- displayName: ( localize(5093, "New Workspace")),
142
- modelDescription: ( localize(5094, "Scaffold a new workspace in VS Code")),
143
- userDescription: ( localize(5094, "Scaffold a new workspace in VS Code")),
153
+ displayName: ( localize(5205, "New Workspace")),
154
+ modelDescription: ( localize(5206, "Scaffold a new workspace in VS Code")),
155
+ userDescription: ( localize(5206, "Scaffold a new workspace in VS Code")),
144
156
  canBeReferencedInPrompt: true,
145
157
  toolReferenceName: 'new',
146
158
  when: ContextKeyExpr.true(),
147
159
  }).disposable);
148
- return { agent, disposable: disposables };
160
+ return { disposable: disposables };
149
161
  });
150
162
  }
151
163
  static doRegisterAgent(instantiationService, chatAgentService, id, name, isDefault, description, location, mode, context, controller) {
@@ -163,6 +175,7 @@ let SetupAgent = class SetupAgent extends Disposable {
163
175
  metadata: { helpTextPrefix: SetupAgent_1.SETUP_NEEDED_MESSAGE },
164
176
  description,
165
177
  extensionId: nullExtensionDescription.identifier,
178
+ extensionVersion: undefined,
166
179
  extensionDisplayName: nullExtensionDescription.name,
167
180
  extensionPublisherId: nullExtensionDescription.publisher
168
181
  }));
@@ -173,8 +186,8 @@ let SetupAgent = class SetupAgent extends Disposable {
173
186
  }
174
187
  return { agent, disposable: disposables };
175
188
  }
176
- static { this.SETUP_NEEDED_MESSAGE = ( new MarkdownString(( localize(5095, "You need to set up Copilot and be signed in to use Chat.")))); }
177
- static { this.TRUST_NEEDED_MESSAGE = ( new MarkdownString(( localize(5096, "You need to trust this workspace to use Chat.")))); }
189
+ static { this.SETUP_NEEDED_MESSAGE = ( new MarkdownString(( localize(5207, "You need to set up GitHub Copilot and be signed in to use Chat.")))); }
190
+ static { this.TRUST_NEEDED_MESSAGE = ( new MarkdownString(( localize(5208, "You need to trust this workspace to use Chat.")))); }
178
191
  constructor(context, controller, location, instantiationService, logService, configurationService, telemetryService, environmentService, workspaceTrustManagementService) {
179
192
  super();
180
193
  this.context = context;
@@ -214,7 +227,7 @@ let SetupAgent = class SetupAgent extends Disposable {
214
227
  }
215
228
  progress({
216
229
  kind: 'progressMessage',
217
- content: ( new MarkdownString(( localize(5097, "Getting Copilot ready")))),
230
+ content: ( new MarkdownString(( localize(5209, "Getting chat ready...")))),
218
231
  });
219
232
  await this.forwardRequestToCopilot(requestModel, progress, chatService, languageModelsService, chatAgentService, chatWidgetService, languageModelToolsService);
220
233
  return {};
@@ -226,7 +239,7 @@ let SetupAgent = class SetupAgent extends Disposable {
226
239
  catch (error) {
227
240
  progress({
228
241
  kind: 'warning',
229
- content: ( new MarkdownString(( localize(5098, "Copilot failed to get a response. Please try again."))))
242
+ content: ( new MarkdownString(( localize(5210, "Failed to get a response. Please try again."))))
230
243
  });
231
244
  }
232
245
  }
@@ -245,16 +258,19 @@ let SetupAgent = class SetupAgent extends Disposable {
245
258
  }
246
259
  async doForwardRequestToCopilotWhenReady(requestModel, progress, chatService, languageModelsService, chatAgentService, chatWidgetService, languageModelToolsService) {
247
260
  const widget = chatWidgetService.getWidgetBySessionId(requestModel.session.sessionId);
248
- const mode = widget?.input.currentModeKind;
261
+ const modeInfo = widget?.input.currentModeInfo;
249
262
  const languageModel = widget?.input.currentLanguageModel;
250
- const whenAgentReady = this.whenAgentReady(chatAgentService, mode);
251
- const whenLanguageModelReady = this.whenLanguageModelReady(languageModelsService);
252
- const whenToolsModelReady = this.whenToolsModelReady(languageModelToolsService, requestModel);
263
+ let agentReady = false;
264
+ let languageModelReady = false;
265
+ let toolsModelReady = false;
266
+ const whenAgentReady = this.whenAgentReady(chatAgentService, modeInfo?.kind)?.then(() => agentReady = true);
267
+ const whenLanguageModelReady = this.whenLanguageModelReady(languageModelsService)?.then(() => languageModelReady = true);
268
+ const whenToolsModelReady = this.whenToolsModelReady(languageModelToolsService, requestModel)?.then(() => toolsModelReady = true);
253
269
  if (whenLanguageModelReady instanceof Promise || whenAgentReady instanceof Promise || whenToolsModelReady instanceof Promise) {
254
270
  const timeoutHandle = setTimeout(() => {
255
271
  progress({
256
272
  kind: 'progressMessage',
257
- content: ( new MarkdownString(( localize(5099, "Copilot is almost ready")))),
273
+ content: ( new MarkdownString(( localize(5211, "Chat is almost ready...")))),
258
274
  });
259
275
  }, 10000);
260
276
  try {
@@ -267,20 +283,25 @@ let SetupAgent = class SetupAgent extends Disposable {
267
283
  let warningMessage;
268
284
  if (ready === 'timedout') {
269
285
  warningMessage = ( localize(
270
- 5100,
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.",
286
+ 5212,
287
+ "Chat took too long to get ready. Please ensure you are signed in to {0} and that the extension `{1}` is installed and enabled.",
272
288
  defaultChat.provider.default.name,
273
289
  defaultChat.chatExtensionId
274
290
  ));
275
291
  }
276
292
  else {
277
293
  warningMessage = ( localize(
278
- 5101,
279
- "Copilot failed to get ready. Please ensure you are signed in to {0} and that the extension `{1}` is installed and enabled.",
294
+ 5213,
295
+ "Chat failed to get ready. Please ensure you are signed in to {0} and that the extension `{1}` is installed and enabled.",
280
296
  defaultChat.provider.default.name,
281
297
  defaultChat.chatExtensionId
282
298
  ));
283
299
  }
300
+ this.logService.warn(warningMessage, {
301
+ agentReady: whenAgentReady ? agentReady : undefined,
302
+ languageModelReady: whenLanguageModelReady ? languageModelReady : undefined,
303
+ toolsModelReady: whenToolsModelReady ? toolsModelReady : undefined
304
+ });
284
305
  progress({
285
306
  kind: 'warning',
286
307
  content: ( new MarkdownString(warningMessage))
@@ -295,7 +316,7 @@ let SetupAgent = class SetupAgent extends Disposable {
295
316
  }
296
317
  await chatService.resendRequest(requestModel, {
297
318
  ...widget?.getModeRequestOptions(),
298
- mode,
319
+ modeInfo,
299
320
  userSelectedModelId: languageModel,
300
321
  });
301
322
  }
@@ -358,8 +379,8 @@ let SetupAgent = class SetupAgent extends Disposable {
358
379
  progress({
359
380
  kind: 'progressMessage',
360
381
  content: ( new MarkdownString(( localize(
361
- 5102,
362
- "Signing in to {0}.",
382
+ 5214,
383
+ "Signing in to {0}...",
363
384
  ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.provider.enterprise.id ? defaultChat.provider.enterprise.name : defaultChat.provider.default.name
364
385
  )))),
365
386
  });
@@ -367,7 +388,7 @@ let SetupAgent = class SetupAgent extends Disposable {
367
388
  case ChatSetupStep.Installing:
368
389
  progress({
369
390
  kind: 'progressMessage',
370
- content: ( new MarkdownString(( localize(5103, "Getting Copilot ready")))),
391
+ content: ( new MarkdownString(( localize(5215, "Getting chat ready...")))),
371
392
  });
372
393
  break;
373
394
  }
@@ -396,7 +417,7 @@ let SetupAgent = class SetupAgent extends Disposable {
396
417
  else {
397
418
  progress({
398
419
  kind: 'warning',
399
- content: ( new MarkdownString(( localize(5104, "Copilot setup failed."))))
420
+ content: ( new MarkdownString(( localize(5216, "Chat setup failed."))))
400
421
  });
401
422
  }
402
423
  }
@@ -433,6 +454,7 @@ let SetupAgent = class SetupAgent extends Disposable {
433
454
  variableData: requestModel.variableData,
434
455
  timestamp: Date.now(),
435
456
  attempt: requestModel.attempt,
457
+ modeInfo: requestModel.modeInfo,
436
458
  confirmation: requestModel.confirmation,
437
459
  locationData: requestModel.locationData,
438
460
  attachedContext: requestModel.attachedContext,
@@ -477,6 +499,7 @@ let SetupAgent = class SetupAgent extends Disposable {
477
499
  variableData: variableData,
478
500
  timestamp: Date.now(),
479
501
  attempt: requestModel.attempt,
502
+ modeInfo: requestModel.modeInfo,
480
503
  confirmation: requestModel.confirmation,
481
504
  locationData: requestModel.locationData,
482
505
  attachedContext: [chatRequestToolEntry],
@@ -497,9 +520,8 @@ class SetupTool extends Disposable {
497
520
  return instantiationService.invokeFunction(accessor => {
498
521
  const toolService = accessor.get(ILanguageModelToolsService);
499
522
  const disposables = ( new DisposableStore());
500
- disposables.add(toolService.registerToolData(toolData));
501
523
  const tool = instantiationService.createInstance(SetupTool);
502
- disposables.add(toolService.registerToolImplementation(toolData.id, tool));
524
+ disposables.add(toolService.registerTool(toolData, tool));
503
525
  return { tool, disposable: disposables };
504
526
  });
505
527
  }
@@ -586,7 +608,7 @@ let ChatSetup = class ChatSetup {
586
608
  const dialogSkipped = this.skipDialogOnce;
587
609
  this.skipDialogOnce = false;
588
610
  const trusted = await this.workspaceTrustRequestService.requestWorkspaceTrust({
589
- message: ( localize(5105, "Copilot is currently only supported in trusted workspaces."))
611
+ message: ( localize(5217, "AI features are currently only supported in trusted workspaces."))
590
612
  });
591
613
  if (!trusted) {
592
614
  this.context.update({ later: true });
@@ -610,19 +632,19 @@ let ChatSetup = class ChatSetup {
610
632
  try {
611
633
  switch (setupStrategy) {
612
634
  case ChatSetupStrategy.SetupWithEnterpriseProvider:
613
- success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: true, useSocialProvider: undefined });
635
+ success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: true, useSocialProvider: undefined, additionalScopes: options?.additionalScopes });
614
636
  break;
615
637
  case ChatSetupStrategy.SetupWithoutEnterpriseProvider:
616
- success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: false, useSocialProvider: undefined });
638
+ success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: false, useSocialProvider: undefined, additionalScopes: options?.additionalScopes });
617
639
  break;
618
640
  case ChatSetupStrategy.SetupWithAppleProvider:
619
- success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: false, useSocialProvider: 'apple' });
641
+ success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: false, useSocialProvider: 'apple', additionalScopes: options?.additionalScopes });
620
642
  break;
621
643
  case ChatSetupStrategy.SetupWithGoogleProvider:
622
- success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: false, useSocialProvider: 'google' });
644
+ success = await this.controller.value.setupWithProvider({ useEnterpriseProvider: false, useSocialProvider: 'google', additionalScopes: options?.additionalScopes });
623
645
  break;
624
646
  case ChatSetupStrategy.DefaultSetup:
625
- success = await this.controller.value.setup();
647
+ success = await this.controller.value.setup(options);
626
648
  break;
627
649
  case ChatSetupStrategy.Canceled:
628
650
  this.context.update({ later: true });
@@ -664,49 +686,55 @@ let ChatSetup = class ChatSetup {
664
686
  const styleButton = (...classes) => ({ styleButton: (button) => button.element.classList.add(...classes) });
665
687
  let buttons;
666
688
  if (this.context.state.entitlement === ChatEntitlement.Unknown || options?.forceSignInDialog) {
667
- const defaultProviderButton = [( localize(5106, "Continue with {0}", defaultChat.provider.default.name)), ChatSetupStrategy.SetupWithoutEnterpriseProvider, styleButton('continue-button', 'default')];
689
+ const defaultProviderButton = [( localize(5218, "Continue with {0}", defaultChat.provider.default.name)), ChatSetupStrategy.SetupWithoutEnterpriseProvider, styleButton('continue-button', 'default')];
668
690
  const defaultProviderLink = [defaultProviderButton[0], defaultProviderButton[1], styleButton('link-button')];
669
- const enterpriseProviderButton = [( localize(5106, "Continue with {0}", defaultChat.provider.enterprise.name)), ChatSetupStrategy.SetupWithEnterpriseProvider, styleButton('continue-button', 'default')];
691
+ const enterpriseProviderButton = [( localize(5218, "Continue with {0}", defaultChat.provider.enterprise.name)), ChatSetupStrategy.SetupWithEnterpriseProvider, styleButton('continue-button', 'default')];
670
692
  const enterpriseProviderLink = [enterpriseProviderButton[0], enterpriseProviderButton[1], styleButton('link-button')];
671
- const googleProviderButton = [( localize(5106, "Continue with {0}", defaultChat.provider.google.name)), ChatSetupStrategy.SetupWithGoogleProvider, styleButton('continue-button', 'google')];
693
+ const googleProviderButton = [( localize(5218, "Continue with {0}", defaultChat.provider.google.name)), ChatSetupStrategy.SetupWithGoogleProvider, styleButton('continue-button', 'google')];
694
+ const appleProviderButton = [( localize(5218, "Continue with {0}", defaultChat.provider.apple.name)), ChatSetupStrategy.SetupWithAppleProvider, styleButton('continue-button', 'apple')];
672
695
  if (ChatEntitlementRequests.providerId(this.configurationService) !== defaultChat.provider.enterprise.id) {
673
696
  buttons = coalesce([
674
697
  defaultProviderButton,
675
- variant === 'google' ? googleProviderButton : undefined,
698
+ googleProviderButton,
699
+ variant === 'apple' ? appleProviderButton : undefined,
676
700
  enterpriseProviderLink
677
701
  ]);
678
702
  }
679
703
  else {
680
704
  buttons = coalesce([
681
705
  enterpriseProviderButton,
682
- variant === 'google' ? googleProviderButton : undefined,
706
+ googleProviderButton,
707
+ variant === 'apple' ? appleProviderButton : undefined,
683
708
  defaultProviderLink
684
709
  ]);
685
710
  }
686
711
  }
687
712
  else {
688
- buttons = [[( localize(5107, "Set up Copilot")), ChatSetupStrategy.DefaultSetup, undefined]];
713
+ buttons = [[( localize(5219, "Set up Copilot")), ChatSetupStrategy.DefaultSetup, undefined]];
689
714
  }
690
- buttons.push([( localize(5108, "Skip for now")), ChatSetupStrategy.Canceled, styleButton('link-button', 'skip-button')]);
715
+ buttons.push([( localize(5220, "Skip for now")), ChatSetupStrategy.Canceled, styleButton('link-button', 'skip-button')]);
691
716
  return buttons;
692
717
  }
693
718
  getDialogTitle(options) {
694
719
  if (this.context.state.entitlement === ChatEntitlement.Unknown || options?.forceSignInDialog) {
695
- return localize(5109, "Sign in to use Copilot");
720
+ return localize(5221, "Sign in to use GitHub Copilot");
696
721
  }
697
- return localize(5110, "Start using Copilot");
722
+ return localize(5222, "Start using GitHub Copilot");
698
723
  }
699
724
  createDialogFooter(disposables) {
700
725
  const element = $('.chat-setup-dialog-footer');
701
726
  const markdown = this.instantiationService.createInstance(MarkdownRenderer, {});
702
- const settings = ( localize(
703
- 5111,
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.",
727
+ const footer = ( localize(
728
+ 5223,
729
+ "By continuing, you agree to {0}'s [Terms]({1}) and [Privacy Statement]({2}). {3} Copilot may show [public code]({4}) suggestions and use your data to improve the product. You can change these [settings]({5}) anytime.",
730
+ defaultChat.provider.default.name,
731
+ defaultChat.termsStatementUrl,
732
+ defaultChat.privacyStatementUrl,
705
733
  defaultChat.provider.default.name,
706
734
  defaultChat.publicCodeMatchesUrl,
707
735
  defaultChat.manageSettingsUrl
708
736
  ));
709
- element.appendChild($('p', undefined, disposables.add(markdown.render(( new MarkdownString(settings, { isTrusted: true })))).element));
737
+ element.appendChild($('p', undefined, disposables.add(markdown.render(( new MarkdownString(footer, { isTrusted: true })))).element));
710
738
  return element;
711
739
  }
712
740
  };
@@ -723,13 +751,14 @@ ChatSetup = ChatSetup_1 = ( __decorate([
723
751
  ], ChatSetup));
724
752
  let ChatSetupContribution = class ChatSetupContribution extends Disposable {
725
753
  static { this.ID = 'workbench.contrib.chatSetup'; }
726
- constructor(productService, instantiationService, commandService, telemetryService, chatEntitlementService, logService) {
754
+ constructor(productService, instantiationService, commandService, telemetryService, chatEntitlementService, logService, contextKeyService) {
727
755
  super();
728
756
  this.productService = productService;
729
757
  this.instantiationService = instantiationService;
730
758
  this.commandService = commandService;
731
759
  this.telemetryService = telemetryService;
732
760
  this.logService = logService;
761
+ this.contextKeyService = contextKeyService;
733
762
  const context = chatEntitlementService.context?.value;
734
763
  const requests = chatEntitlementService.requests?.value;
735
764
  if (!context || !requests) {
@@ -754,40 +783,48 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
754
783
  const { agent, disposable } = SetupAgent.registerDefaultAgents(this.instantiationService, ChatAgentLocation.Panel, mode, context, controller);
755
784
  panelAgentDisposables.add(disposable);
756
785
  panelAgentDisposables.add(agent.onUnresolvableError(() => {
757
- this.logService.error('[chat setup] Unresolvable error from Copilot agent registration, clearing registration.');
758
- panelAgentDisposables.dispose();
786
+ const panelAgentHasGuidance = ( chatViewsWelcomeRegistry.get().some(descriptor => this.contextKeyService.contextMatchesRules(descriptor.when)));
787
+ if (panelAgentHasGuidance) {
788
+ this.logService.error('[chat setup] Unresolvable error from Copilot agent registration, clearing registration.');
789
+ panelAgentDisposables.dispose();
790
+ }
759
791
  }));
760
792
  }
761
793
  disposables.add(SetupAgent.registerDefaultAgents(this.instantiationService, ChatAgentLocation.Terminal, undefined, context, controller).disposable);
762
794
  disposables.add(SetupAgent.registerDefaultAgents(this.instantiationService, ChatAgentLocation.Notebook, undefined, context, controller).disposable);
763
795
  disposables.add(SetupAgent.registerDefaultAgents(this.instantiationService, ChatAgentLocation.Editor, undefined, context, controller).disposable);
764
796
  }
765
- if (!(context.state.installed && !context.state.disabled) && !vscodeAgentDisposables.value) {
797
+ if ((!context.state.installed || context.state.entitlement === ChatEntitlement.Unknown || context.state.entitlement === ChatEntitlement.Unresolved) && !vscodeAgentDisposables.value) {
766
798
  const disposables = vscodeAgentDisposables.value = ( new DisposableStore());
767
- disposables.add(SetupAgent.registerVSCodeAgent(this.instantiationService, context, controller).disposable);
799
+ disposables.add(SetupAgent.registerBuiltInAgents(this.instantiationService, context, controller).disposable);
768
800
  }
769
801
  }
770
802
  else {
771
803
  defaultAgentDisposables.clear();
772
804
  vscodeAgentDisposables.clear();
773
805
  }
774
- if (context.state.installed && !context.state.disabled) {
806
+ if ((context.state.installed && context.state.entitlement !== ChatEntitlement.Unknown && context.state.entitlement !== ChatEntitlement.Unresolved) && !context.state.disabled) {
775
807
  vscodeAgentDisposables.clear();
776
808
  }
777
809
  };
778
810
  this._register(Event.runAndSubscribe(context.onDidChange, () => updateRegistration()));
779
811
  }
780
812
  registerActions(context, requests, controller) {
781
- const chatSetupTriggerContext = ( ContextKeyExpr.or(( ChatContextKeys.Setup.installed.negate()), ChatContextKeys.Entitlement.canSignUp));
782
- const CHAT_SETUP_ACTION_LABEL = ( localize2(5112, "Use AI Features with Copilot for free..."));
783
813
  class ChatSetupTriggerAction extends Action2 {
814
+ static { this.CHAT_SETUP_ACTION_LABEL = ( localize2(5224, "Use AI Features with Copilot for free...")); }
784
815
  constructor() {
785
816
  super({
786
817
  id: CHAT_SETUP_ACTION_ID,
787
- title: CHAT_SETUP_ACTION_LABEL,
818
+ title: ChatSetupTriggerAction.CHAT_SETUP_ACTION_LABEL,
788
819
  category: CHAT_CATEGORY,
789
820
  f1: true,
790
- precondition: chatSetupTriggerContext
821
+ precondition: ( ContextKeyExpr.or(
822
+ ChatContextKeys.Setup.hidden,
823
+ ChatContextKeys.Setup.disabled,
824
+ ChatContextKeys.Setup.untrusted,
825
+ ( ChatContextKeys.Setup.installed.negate()),
826
+ ChatContextKeys.Entitlement.canSignUp
827
+ ))
791
828
  });
792
829
  }
793
830
  async run(accessor, mode, options) {
@@ -797,18 +834,26 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
797
834
  const dialogService = accessor.get(IDialogService);
798
835
  const commandService = accessor.get(ICommandService);
799
836
  const lifecycleService = accessor.get(ILifecycleService);
837
+ const configurationService = accessor.get(IConfigurationService);
800
838
  await context.update({ hidden: false });
839
+ configurationService.updateValue(ChatTeardownContribution.CHAT_DISABLED_CONFIGURATION_KEY, false);
801
840
  if (mode) {
802
841
  const chatWidget = await showCopilotView(viewsService, layoutService);
803
842
  chatWidget?.input.setChatMode(mode);
804
843
  }
844
+ if (options?.forceNoDialog) {
845
+ const chatWidget = await showCopilotView(viewsService, layoutService);
846
+ ChatSetup.getInstance(instantiationService, context, controller).skipDialog();
847
+ chatWidget?.acceptInput(( localize(5225, "Set up chat.")));
848
+ return true;
849
+ }
805
850
  const setup = ChatSetup.getInstance(instantiationService, context, controller);
806
851
  const { success } = await setup.run(options);
807
852
  if (success === false && !lifecycleService.willShutdown) {
808
853
  const { confirmed } = await dialogService.confirm({
809
854
  type: Severity.Error,
810
- message: ( localize(5113, "Copilot setup failed. Would you like to try again?")),
811
- primaryButton: ( localize(5114, "Retry")),
855
+ message: ( localize(5226, "Chat setup failed. Would you like to try again?")),
856
+ primaryButton: ( localize(5227, "Retry")),
812
857
  });
813
858
  if (confirmed) {
814
859
  return Boolean(await commandService.executeCommand(CHAT_SETUP_ACTION_ID, mode, options));
@@ -821,7 +866,7 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
821
866
  constructor() {
822
867
  super({
823
868
  id: 'workbench.action.chat.triggerSetupForceSignIn',
824
- title: ( localize2(5115, "Sign in to use Copilot"))
869
+ title: ( localize2(5228, "Sign in to use AI features"))
825
870
  });
826
871
  }
827
872
  async run(accessor) {
@@ -835,25 +880,21 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
835
880
  constructor() {
836
881
  super({
837
882
  id: 'workbench.action.chat.triggerSetupWithoutDialog',
838
- title: CHAT_SETUP_ACTION_LABEL,
839
- precondition: chatSetupTriggerContext
883
+ title: ChatSetupTriggerAction.CHAT_SETUP_ACTION_LABEL
840
884
  });
841
885
  }
842
886
  async run(accessor) {
843
- const viewsService = accessor.get(IViewsService);
844
- const layoutService = accessor.get(IWorkbenchLayoutService);
845
- const instantiationService = accessor.get(IInstantiationService);
846
- await context.update({ hidden: false });
847
- const chatWidget = await showCopilotView(viewsService, layoutService);
848
- ChatSetup.getInstance(instantiationService, context, controller).skipDialog();
849
- chatWidget?.acceptInput(( localize(5116, "Set up Copilot.")));
887
+ const commandService = accessor.get(ICommandService);
888
+ const telemetryService = accessor.get(ITelemetryService);
889
+ telemetryService.publicLog2('workbenchActionExecuted', { id: CHAT_SETUP_ACTION_ID, from: 'api' });
890
+ return commandService.executeCommand(CHAT_SETUP_ACTION_ID, undefined, { forceNoDialog: true });
850
891
  }
851
892
  }
852
893
  class ChatSetupFromAccountsAction extends Action2 {
853
894
  constructor() {
854
895
  super({
855
896
  id: 'workbench.action.chat.triggerSetupFromAccounts',
856
- title: ( localize2(5117, "Sign in to use Copilot...")),
897
+ title: ( localize2(5229, "Sign in to use AI features...")),
857
898
  menu: {
858
899
  id: MenuId.AccountsContext,
859
900
  group: '2_copilot',
@@ -868,71 +909,30 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
868
909
  return commandService.executeCommand(CHAT_SETUP_ACTION_ID);
869
910
  }
870
911
  }
871
- class ChatSetupHideAction extends Action2 {
872
- static { this.ID = 'workbench.action.chat.hideSetup'; }
873
- static { this.TITLE = ( localize2(5118, "Hide AI Features")); }
874
- constructor() {
875
- super({
876
- id: ChatSetupHideAction.ID,
877
- title: ChatSetupHideAction.TITLE,
878
- f1: true,
879
- category: CHAT_CATEGORY,
880
- precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.installed.negate()), ( ChatContextKeys.Setup.hidden.negate()))),
881
- menu: {
882
- id: MenuId.ChatTitleBarMenu,
883
- group: 'z_hide',
884
- order: 1,
885
- when: ( ChatContextKeys.Setup.installed.negate())
886
- }
887
- });
888
- }
889
- async run(accessor) {
890
- const viewsDescriptorService = accessor.get(IViewDescriptorService);
891
- const layoutService = accessor.get(IWorkbenchLayoutService);
892
- const dialogService = accessor.get(IDialogService);
893
- const { confirmed } = await dialogService.confirm({
894
- message: ( localize(5119, "Are you sure you want to hide AI features?")),
895
- detail: ( localize(
896
- 5120,
897
- "You can restore AI features by running the '{0}' command.",
898
- CHAT_SETUP_ACTION_LABEL.value
899
- )),
900
- primaryButton: ( localize(5121, "Hide AI Features"))
901
- });
902
- if (!confirmed) {
903
- return;
904
- }
905
- const location = viewsDescriptorService.getViewLocationById(ChatViewId);
906
- await context.update({ hidden: true });
907
- if (location === ViewContainerLocation.AuxiliaryBar) {
908
- const activeContainers = viewsDescriptorService.getViewContainersByLocation(location).filter(container => viewsDescriptorService.getViewContainerModel(container).activeViewDescriptors.length > 0);
909
- if (activeContainers.length === 0) {
910
- layoutService.setPartHidden(true, Parts.AUXILIARYBAR_PART);
911
- }
912
- }
913
- }
914
- }
915
912
  const windowFocusListener = this._register(( new MutableDisposable()));
916
913
  class UpgradePlanAction extends Action2 {
917
914
  constructor() {
918
915
  super({
919
916
  id: 'workbench.action.chat.upgradePlan',
920
- title: ( localize2(5122, "Upgrade to Copilot Pro")),
921
- category: ( localize2(5123, 'Chat')),
917
+ title: ( localize2(5230, "Upgrade to GitHub Copilot Pro")),
918
+ category: ( localize2(5231, 'Chat')),
922
919
  f1: true,
923
- precondition: ( ContextKeyExpr.or(ChatContextKeys.Entitlement.canSignUp, ChatContextKeys.Entitlement.free)),
920
+ precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ContextKeyExpr.or(
921
+ ChatContextKeys.Entitlement.canSignUp,
922
+ ChatContextKeys.Entitlement.planFree
923
+ )))),
924
924
  menu: {
925
925
  id: MenuId.ChatTitleBarMenu,
926
926
  group: 'a_first',
927
927
  order: 1,
928
- when: ( ContextKeyExpr.and(ChatContextKeys.Entitlement.free, ( ContextKeyExpr.or(
928
+ when: ( ContextKeyExpr.and(ChatContextKeys.Entitlement.planFree, ( ContextKeyExpr.or(
929
929
  ChatContextKeys.chatQuotaExceeded,
930
930
  ChatContextKeys.completionsQuotaExceeded
931
931
  ))))
932
932
  }
933
933
  });
934
934
  }
935
- async run(accessor, from) {
935
+ async run(accessor) {
936
936
  const openerService = accessor.get(IOpenerService);
937
937
  const hostService = accessor.get(IHostService);
938
938
  const commandService = accessor.get(ICommandService);
@@ -956,22 +956,28 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
956
956
  constructor() {
957
957
  super({
958
958
  id: 'workbench.action.chat.manageOverages',
959
- title: ( localize2(5124, "Manage Copilot Overages")),
960
- category: ( localize2(5123, 'Chat')),
959
+ title: ( localize2(5232, "Manage GitHub Copilot Overages")),
960
+ category: ( localize2(5231, 'Chat')),
961
961
  f1: true,
962
- precondition: ( ContextKeyExpr.or(ChatContextKeys.Entitlement.pro, ChatContextKeys.Entitlement.proPlus)),
962
+ precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ContextKeyExpr.or(
963
+ ChatContextKeys.Entitlement.planPro,
964
+ ChatContextKeys.Entitlement.planProPlus
965
+ )))),
963
966
  menu: {
964
967
  id: MenuId.ChatTitleBarMenu,
965
968
  group: 'a_first',
966
969
  order: 1,
967
- when: ( ContextKeyExpr.and(( ContextKeyExpr.or(ChatContextKeys.Entitlement.pro, ChatContextKeys.Entitlement.proPlus)), ( ContextKeyExpr.or(
970
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.or(
971
+ ChatContextKeys.Entitlement.planPro,
972
+ ChatContextKeys.Entitlement.planProPlus
973
+ )), ( ContextKeyExpr.or(
968
974
  ChatContextKeys.chatQuotaExceeded,
969
975
  ChatContextKeys.completionsQuotaExceeded
970
976
  ))))
971
977
  }
972
978
  });
973
979
  }
974
- async run(accessor, from) {
980
+ async run(accessor) {
975
981
  const openerService = accessor.get(IOpenerService);
976
982
  openerService.open(( URI.parse(defaultChat.manageOveragesUrl)));
977
983
  }
@@ -980,7 +986,6 @@ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
980
986
  registerAction2(ChatSetupTriggerForceSignInDialogAction);
981
987
  registerAction2(ChatSetupFromAccountsAction);
982
988
  registerAction2(ChatSetupTriggerWithoutDialogAction);
983
- registerAction2(ChatSetupHideAction);
984
989
  registerAction2(UpgradePlanAction);
985
990
  registerAction2(EnableOveragesAction);
986
991
  }
@@ -1004,8 +1009,109 @@ ChatSetupContribution = ( __decorate([
1004
1009
  ( __param(2, ICommandService)),
1005
1010
  ( __param(3, ITelemetryService)),
1006
1011
  ( __param(4, IChatEntitlementService)),
1007
- ( __param(5, ILogService))
1012
+ ( __param(5, ILogService)),
1013
+ ( __param(6, IContextKeyService))
1008
1014
  ], ChatSetupContribution));
1015
+ let ChatTeardownContribution = class ChatTeardownContribution extends Disposable {
1016
+ static { ChatTeardownContribution_1 = this; }
1017
+ static { this.ID = 'workbench.contrib.chatTeardown'; }
1018
+ static { this.CHAT_DISABLED_CONFIGURATION_KEY = 'chat.disableAIFeatures'; }
1019
+ constructor(chatEntitlementService, configurationService, extensionsWorkbenchService, extensionEnablementService, viewDescriptorService, layoutService) {
1020
+ super();
1021
+ this.configurationService = configurationService;
1022
+ this.extensionsWorkbenchService = extensionsWorkbenchService;
1023
+ this.extensionEnablementService = extensionEnablementService;
1024
+ this.viewDescriptorService = viewDescriptorService;
1025
+ this.layoutService = layoutService;
1026
+ const context = chatEntitlementService.context?.value;
1027
+ if (!context) {
1028
+ return;
1029
+ }
1030
+ this.registerListeners();
1031
+ this.registerActions();
1032
+ this.handleChatDisabled(false);
1033
+ }
1034
+ handleChatDisabled(fromEvent) {
1035
+ const chatDisabled = this.configurationService.inspect(ChatTeardownContribution_1.CHAT_DISABLED_CONFIGURATION_KEY);
1036
+ if (chatDisabled.value === true) {
1037
+ this.maybeEnableOrDisableExtension(typeof chatDisabled.workspaceValue === 'boolean' ? EnablementState.DisabledWorkspace : EnablementState.DisabledGlobally);
1038
+ if (fromEvent) {
1039
+ this.maybeHideAuxiliaryBar();
1040
+ }
1041
+ }
1042
+ else if (chatDisabled.value === false && fromEvent ) {
1043
+ this.maybeEnableOrDisableExtension(typeof chatDisabled.workspaceValue === 'boolean' ? EnablementState.EnabledWorkspace : EnablementState.EnabledGlobally);
1044
+ }
1045
+ }
1046
+ async registerListeners() {
1047
+ this._register(this.configurationService.onDidChangeConfiguration(e => {
1048
+ if (!e.affectsConfiguration(ChatTeardownContribution_1.CHAT_DISABLED_CONFIGURATION_KEY)) {
1049
+ return;
1050
+ }
1051
+ this.handleChatDisabled(true);
1052
+ }));
1053
+ await this.extensionsWorkbenchService.queryLocal();
1054
+ this._register(this.extensionsWorkbenchService.onChange(e => {
1055
+ if (e && !ExtensionIdentifier.equals(e.identifier.id, defaultChat.chatExtensionId)) {
1056
+ return;
1057
+ }
1058
+ const defaultChatExtension = this.extensionsWorkbenchService.local.find(value => ExtensionIdentifier.equals(value.identifier.id, defaultChat.chatExtensionId));
1059
+ if (defaultChatExtension?.local && this.extensionEnablementService.isEnabled(defaultChatExtension.local)) {
1060
+ this.configurationService.updateValue(ChatTeardownContribution_1.CHAT_DISABLED_CONFIGURATION_KEY, false);
1061
+ }
1062
+ }));
1063
+ }
1064
+ async maybeEnableOrDisableExtension(state) {
1065
+ const defaultChatExtension = this.extensionsWorkbenchService.local.find(value => ExtensionIdentifier.equals(value.identifier.id, defaultChat.chatExtensionId));
1066
+ if (!defaultChatExtension) {
1067
+ return;
1068
+ }
1069
+ await this.extensionsWorkbenchService.setEnablement([defaultChatExtension], state);
1070
+ await this.extensionsWorkbenchService.updateRunningExtensions(state === EnablementState.EnabledGlobally || state === EnablementState.EnabledWorkspace ? ( localize(5233, "Enabling AI features")) : ( localize(5234, "Disabling AI features")));
1071
+ }
1072
+ maybeHideAuxiliaryBar() {
1073
+ const activeContainers = this.viewDescriptorService.getViewContainersByLocation(ViewContainerLocation.AuxiliaryBar).filter(container => this.viewDescriptorService.getViewContainerModel(container).activeViewDescriptors.length > 0);
1074
+ if ((activeContainers.length === 0) ||
1075
+ (activeContainers.length === 1 && activeContainers.at(0)?.id === CHAT_SIDEBAR_PANEL_ID)
1076
+ ) {
1077
+ this.layoutService.setPartHidden(true, Parts.AUXILIARYBAR_PART);
1078
+ }
1079
+ }
1080
+ registerActions() {
1081
+ class ChatSetupHideAction extends Action2 {
1082
+ static { this.ID = 'workbench.action.chat.hideSetup'; }
1083
+ static { this.TITLE = ( localize2(5235, "Learn How to Hide AI Features")); }
1084
+ constructor() {
1085
+ super({
1086
+ id: ChatSetupHideAction.ID,
1087
+ title: ChatSetupHideAction.TITLE,
1088
+ f1: true,
1089
+ category: CHAT_CATEGORY,
1090
+ precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.installed.negate()))),
1091
+ menu: {
1092
+ id: MenuId.ChatTitleBarMenu,
1093
+ group: 'z_hide',
1094
+ order: 1,
1095
+ when: ( ChatContextKeys.Setup.installed.negate())
1096
+ }
1097
+ });
1098
+ }
1099
+ async run(accessor) {
1100
+ const preferencesService = accessor.get(IPreferencesService);
1101
+ preferencesService.openSettings({ jsonEditor: false, query: `@id:${ChatTeardownContribution_1.CHAT_DISABLED_CONFIGURATION_KEY}` });
1102
+ }
1103
+ }
1104
+ registerAction2(ChatSetupHideAction);
1105
+ }
1106
+ };
1107
+ ChatTeardownContribution = ChatTeardownContribution_1 = ( __decorate([
1108
+ ( __param(0, IChatEntitlementService)),
1109
+ ( __param(1, IConfigurationService)),
1110
+ ( __param(2, IExtensionsWorkbenchService)),
1111
+ ( __param(3, IWorkbenchExtensionEnablementService)),
1112
+ ( __param(4, IViewDescriptorService)),
1113
+ ( __param(5, IWorkbenchLayoutService))
1114
+ ], ChatTeardownContribution));
1009
1115
  var ChatSetupStep;
1010
1116
  (function (ChatSetupStep) {
1011
1117
  ChatSetupStep[ChatSetupStep["Initial"] = 1] = "Initial";
@@ -1047,7 +1153,7 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1047
1153
  }
1048
1154
  async setup(options) {
1049
1155
  const watch = ( new StopWatch(false));
1050
- const title = ( localize(5125, "Getting Copilot ready..."));
1156
+ const title = ( localize(5236, "Getting chat ready..."));
1051
1157
  const badge = this.activityService.showViewContainerActivity(CHAT_SIDEBAR_PANEL_ID, {
1052
1158
  badge: ( new ProgressBadge(() => title)),
1053
1159
  });
@@ -1103,12 +1209,12 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1103
1209
  const { confirmed } = await this.dialogService.confirm({
1104
1210
  type: Severity.Error,
1105
1211
  message: ( localize(
1106
- 5126,
1212
+ 5237,
1107
1213
  "Failed to sign in to {0}. Would you like to try again?",
1108
1214
  ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.provider.enterprise.id ? defaultChat.provider.enterprise.name : defaultChat.provider.default.name
1109
1215
  )),
1110
- detail: ( localize(5127, "You must be signed in to use Copilot.")),
1111
- primaryButton: ( localize(5114, "Retry"))
1216
+ detail: ( localize(5238, "You must be signed in to use AI features.")),
1217
+ primaryButton: ( localize(5227, "Retry"))
1112
1218
  });
1113
1219
  if (confirmed) {
1114
1220
  return this.signIn(options);
@@ -1120,23 +1226,25 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1120
1226
  const wasRunning = this.context.state.installed && !this.context.state.disabled;
1121
1227
  let signUpResult = undefined;
1122
1228
  const provider = options.useSocialProvider ?? options.useEnterpriseProvider ? defaultChat.provider.enterprise.id : defaultChat.provider.default.id;
1229
+ let sessions = session ? [session] : undefined;
1123
1230
  try {
1124
1231
  if (entitlement !== ChatEntitlement.Free &&
1125
1232
  !isProUser(entitlement) &&
1126
1233
  entitlement !== ChatEntitlement.Unavailable
1127
1234
  ) {
1128
- if (!session) {
1235
+ if (!sessions) {
1129
1236
  try {
1130
- session = (await this.authenticationService.getSessions(providerId)).at(0);
1237
+ const existingSessions = await this.authenticationService.getSessions(providerId);
1238
+ sessions = existingSessions.length > 0 ? [...existingSessions] : undefined;
1131
1239
  }
1132
1240
  catch (error) {
1133
1241
  }
1134
- if (!session) {
1242
+ if (!sessions || sessions.length === 0) {
1135
1243
  this.telemetryService.publicLog2('commandCenter.chatInstall', { installResult: 'failedNoSession', installDuration: watch.elapsed(), signUpErrorCode: undefined, provider });
1136
1244
  return false;
1137
1245
  }
1138
1246
  }
1139
- signUpResult = await this.requests.signUpFree(session);
1247
+ signUpResult = await this.requests.signUpFree(sessions);
1140
1248
  if (typeof signUpResult !== 'boolean' ) {
1141
1249
  this.telemetryService.publicLog2('commandCenter.chatInstall', { installResult: 'failedSignUp', installDuration: watch.elapsed(), signUpErrorCode: signUpResult.errorCode, provider });
1142
1250
  }
@@ -1170,11 +1278,11 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1170
1278
  const { confirmed } = await this.dialogService.confirm({
1171
1279
  type: Severity.Error,
1172
1280
  message: ( localize(
1173
- 5128,
1174
- "An error occurred while setting up Copilot. Would you like to try again?"
1281
+ 5239,
1282
+ "An error occurred while setting up chat. Would you like to try again?"
1175
1283
  )),
1176
1284
  detail: error && !isCancellationError(error) ? toErrorMessage(error) : undefined,
1177
- primaryButton: ( localize(5114, "Retry"))
1285
+ primaryButton: ( localize(5227, "Retry"))
1178
1286
  });
1179
1287
  if (confirmed) {
1180
1288
  return this.doInstallWithRetry();
@@ -1184,7 +1292,7 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1184
1292
  }
1185
1293
  }
1186
1294
  async doInstall() {
1187
- await this.extensionsWorkbenchService.install(defaultChat.extensionId, {
1295
+ await this.extensionsWorkbenchService.install(defaultChat.chatExtensionId, {
1188
1296
  enable: true,
1189
1297
  isApplicationScoped: true,
1190
1298
  isMachineScoped: false,
@@ -1214,6 +1322,7 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1214
1322
  if (options.useEnterpriseProvider) {
1215
1323
  const success = await this.handleEnterpriseInstance();
1216
1324
  if (!success) {
1325
+ this.telemetryService.publicLog2('commandCenter.chatInstall', { installResult: 'failedEnterpriseSetup', installDuration: 0, signUpErrorCode: undefined, provider: undefined });
1217
1326
  return success;
1218
1327
  }
1219
1328
  }
@@ -1244,8 +1353,8 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1244
1353
  }
1245
1354
  let isSingleWord = false;
1246
1355
  const result = await this.quickInputService.input({
1247
- prompt: ( localize(5129, "What is your {0} instance?", defaultChat.provider.enterprise.name)),
1248
- placeHolder: ( localize(5130, 'i.e. "octocat" or "https://octocat.ghe.com"...')),
1356
+ prompt: ( localize(5240, "What is your {0} instance?", defaultChat.provider.enterprise.name)),
1357
+ placeHolder: ( localize(5241, 'i.e. "octocat" or "https://octocat.ghe.com"...')),
1249
1358
  ignoreFocusLost: true,
1250
1359
  value: uri,
1251
1360
  validateInput: async (value) => {
@@ -1256,14 +1365,14 @@ let ChatSetupController = class ChatSetupController extends Disposable {
1256
1365
  if (domainRegEx.test(value)) {
1257
1366
  isSingleWord = true;
1258
1367
  return {
1259
- content: ( localize(5131, "Will resolve to {0}", `https://${value}.ghe.com`)),
1368
+ content: ( localize(5242, "Will resolve to {0}", `https://${value}.ghe.com`)),
1260
1369
  severity: Severity.Info
1261
1370
  };
1262
1371
  }
1263
1372
  if (!fullUriRegEx.test(value)) {
1264
1373
  return {
1265
1374
  content: ( localize(
1266
- 5132,
1375
+ 5243,
1267
1376
  'You must enter a valid {0} instance (i.e. "octocat" or "https://octocat.ghe.com")',
1268
1377
  defaultChat.provider.enterprise.name
1269
1378
  )),
@@ -1310,4 +1419,4 @@ function refreshTokens(commandService) {
1310
1419
  commandService.executeCommand(defaultChat.chatRefreshTokenCommand);
1311
1420
  }
1312
1421
 
1313
- export { ChatSetupContribution };
1422
+ export { ChatSetupContribution, ChatTeardownContribution };