@codingame/monaco-vscode-chat-service-override 23.2.2 → 24.1.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 (273) hide show
  1. package/index.js +13 -10
  2. package/package.json +5 -41
  3. package/vscode/src/vs/platform/domWidget/browser/domWidget.d.ts +52 -0
  4. package/vscode/src/vs/platform/domWidget/browser/domWidget.js +53 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +10 -10
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +61 -50
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.d.ts +18 -0
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +152 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +14 -14
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +37 -28
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +9 -9
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -5
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +7 -11
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +10 -10
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +12 -14
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +21 -18
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +27 -18
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +4 -4
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +11 -11
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +6 -27
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +44 -208
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -17
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +17 -17
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +1 -1
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +23 -24
  30. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +140 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +85 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +358 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +55 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +222 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +37 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +241 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.d.ts +13 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +27 -0
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.d.ts +11 -19
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.js +67 -230
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +65 -33
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +186 -62
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +23 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +140 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsview.css +2 -7
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +115 -29
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +389 -166
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +9 -6
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +22 -16
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +8 -8
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.d.ts +10 -3
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.js +63 -3
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimeline.d.ts +7 -3
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +14 -5
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +173 -32
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +1 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +66 -17
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +32 -29
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +12 -12
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -2
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +9 -6
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +2 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +6 -4
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +4 -4
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +8 -18
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.d.ts +1 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +12 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +5 -6
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +15 -24
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +13 -11
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +66 -50
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +3 -2
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +6 -5
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +3 -1
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +7 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +2 -2
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +6 -7
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.d.ts +3 -3
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +4 -4
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +2 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +1 -1
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +15 -4
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +3 -4
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +30 -37
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +13 -10
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +23 -32
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -9
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +20 -19
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +47 -15
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +270 -143
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +3 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +310 -170
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +10 -10
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +12 -2
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +1 -1
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +42 -42
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +3 -1
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +35 -25
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +4 -4
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.d.ts +1 -4
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +22 -26
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.d.ts +18 -14
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +80 -72
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.d.ts +2 -8
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +48 -77
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +16 -17
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +257 -77
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +55 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +34 -0
  119. package/vscode/src/vs/workbench/contrib/chat/browser/{chatSetup.d.ts → chatSetup/chatSetupContributions.d.ts} +4 -11
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +622 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +53 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +359 -0
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +89 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +667 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +37 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +260 -0
  127. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/chatSetup.css +4 -6
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +4 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +21 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +55 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatus.js → chatStatus/chatStatusDashboard.js} +193 -325
  132. package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatus.d.ts → chatStatus/chatStatusEntry.d.ts} +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +190 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusItemService.d.ts → chatStatus/chatStatusItemService.d.ts} +1 -1
  135. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatStatus/media}/chatStatus.css +22 -1
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusWidget.d.ts +25 -0
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusWidget.js +108 -0
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatTerminalOutputAccessibleView.d.ts +10 -0
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatTerminalOutputAccessibleView.js +34 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +57 -18
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +478 -146
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewTitleControl.d.ts +43 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewTitleControl.js +204 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidgetService.d.ts +44 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidgetService.js +187 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
  148. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +108 -62
  149. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
  150. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
  151. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.d.ts +1 -1
  152. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +37 -32
  153. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +37 -20
  154. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +232 -97
  155. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatusWidget.css +57 -0
  156. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewPane.css +142 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewTitleControl.css +39 -0
  158. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +51 -35
  159. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
  160. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +5 -4
  161. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +5 -5
  163. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +12 -12
  164. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +19 -21
  165. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.d.ts +1 -1
  166. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +8 -8
  167. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +16 -16
  168. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +6 -6
  169. package/vscode/src/vs/workbench/contrib/chat/common/chatCodeMapperService.d.ts +1 -1
  170. package/vscode/src/vs/workbench/contrib/chat/common/chatModelStore.d.ts +49 -0
  171. package/vscode/src/vs/workbench/contrib/chat/common/chatModelStore.js +100 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +1 -0
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +2 -1
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +3 -4
  175. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +41 -15
  176. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +208 -162
  177. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +3 -3
  178. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +15 -7
  179. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +61 -7
  180. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.d.ts +3 -2
  181. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +2 -2
  182. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +1 -1
  183. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +10 -10
  184. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +2 -2
  185. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +3 -3
  186. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +5 -1
  187. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +60 -43
  188. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +27 -4
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +37 -47
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -3
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +120 -87
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +49 -42
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +293 -187
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +17 -5
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +43 -9
  198. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +2 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +48 -29
  200. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +1 -1
  201. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -2
  202. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +8 -13
  203. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
  204. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +2 -2
  205. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +3 -3
  206. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +36 -41
  207. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +3 -3
  208. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +2 -2
  209. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
  210. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  211. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +1 -1
  212. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +18 -18
  213. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
  214. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +142 -38
  215. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +1 -1
  216. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +3 -7
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +19 -2
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +78 -6
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +7 -11
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +26 -44
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +3 -3
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +1 -1
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +9 -0
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +0 -1
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +23 -17
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +1 -1
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +4 -2
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +2 -0
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +26 -5
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +3 -1
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +32 -4
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +15 -29
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +10 -7
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +12 -0
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +3 -1
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +38 -19
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +1 -0
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +32 -7
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +5 -4
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +4 -3
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +4 -3
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +1 -0
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +128 -62
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +2 -2
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +12 -2
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +5 -2
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +68 -22
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +20 -22
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +13 -12
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +20 -19
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +12 -0
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +72 -0
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +1 -2
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +5 -17
  258. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.d.ts +0 -53
  259. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.js +0 -154
  260. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +0 -7
  261. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +0 -13
  262. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.d.ts +0 -25
  263. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.js +0 -135
  264. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.d.ts +0 -35
  265. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +0 -216
  266. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +0 -1617
  267. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +0 -44
  268. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +0 -313
  269. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/apple-dark.svg +0 -0
  270. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/apple-light.svg +0 -0
  271. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/github.svg +0 -0
  272. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatSetup/media}/google.svg +0 -0
  273. /package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusItemService.js → chatStatus/chatStatusItemService.js} +0 -0
@@ -0,0 +1,622 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
4
+ import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
5
+ import { Disposable, markAsSingleton, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
+ import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
7
+ import { equalsIgnoreCase } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
8
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
9
+ import { ICodeEditorService } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/codeEditorService.service';
10
+ import { EditorContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/editorContextKeys';
11
+ import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
12
+ import { Action2, MenuId, registerAction2, MenuRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
13
+ import { CommandsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands';
14
+ import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
15
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
16
+ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
17
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
18
+ import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
19
+ import { IEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service';
20
+ import { ExtensionIdentifier } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
21
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
22
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
23
+ import { IMarkerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markers/common/markers.service';
24
+ import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
25
+ import product from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/product';
26
+ import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
27
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
28
+ import { ViewContainerLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views';
29
+ import { IViewDescriptorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views.service';
30
+ import { ChatEntitlement, isProUser } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService';
31
+ import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
32
+ import { EnablementState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement';
33
+ import { IWorkbenchExtensionEnablementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.service';
34
+ import { ExtensionUrlHandlerOverrideRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/browser/extensionUrlHandler';
35
+ import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
36
+ import { IHostService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service';
37
+ import { Parts } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService';
38
+ import { IWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service';
39
+ import { ILifecycleService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
40
+ import { IPreferencesService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/preferences/common/preferences.service';
41
+ import { IExtensionsWorkbenchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions.service';
42
+ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
43
+ import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
44
+ import { ChatModeKind, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
45
+ import { CHAT_CATEGORY, CHAT_SETUP_ACTION_ID, CHAT_SETUP_SUPPORT_ANONYMOUS_ACTION_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
46
+ import { AGENT_SESSIONS_VIEW_CONTAINER_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
47
+ import { ChatViewContainerId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
48
+ import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
49
+ import { chatViewsWelcomeRegistry } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcome';
50
+ import { ChatSetupAnonymous } from './chatSetup.js';
51
+ import { ChatSetupController } from './chatSetupController.js';
52
+ import { SetupAgent, AINewSymbolNamesProvider, ChatCodeActionsProvider, AICodeActionsHelper } from './chatSetupProviders.js';
53
+ import { ChatSetup } from './chatSetupRunner.js';
54
+
55
+ var ChatTeardownContribution_1;
56
+ const defaultChat = {
57
+ chatExtensionId: product.defaultChatAgent?.chatExtensionId ?? '',
58
+ manageOveragesUrl: product.defaultChatAgent?.manageOverageUrl ?? '',
59
+ upgradePlanUrl: product.defaultChatAgent?.upgradePlanUrl ?? '',
60
+ completionsRefreshTokenCommand: product.defaultChatAgent?.completionsRefreshTokenCommand ?? '',
61
+ chatRefreshTokenCommand: product.defaultChatAgent?.chatRefreshTokenCommand ?? '',
62
+ };
63
+ let ChatSetupContribution = class ChatSetupContribution extends Disposable {
64
+ static { this.ID = 'workbench.contrib.chatSetup'; }
65
+ constructor(instantiationService, chatEntitlementService, logService, contextKeyService, extensionEnablementService, extensionsWorkbenchService, extensionService, environmentService) {
66
+ super();
67
+ this.instantiationService = instantiationService;
68
+ this.logService = logService;
69
+ this.contextKeyService = contextKeyService;
70
+ this.extensionEnablementService = extensionEnablementService;
71
+ this.extensionsWorkbenchService = extensionsWorkbenchService;
72
+ this.extensionService = extensionService;
73
+ this.environmentService = environmentService;
74
+ const context = chatEntitlementService.context?.value;
75
+ const requests = chatEntitlementService.requests?.value;
76
+ if (!context || !requests) {
77
+ return;
78
+ }
79
+ const controller = ( new Lazy(
80
+ () => this._register(this.instantiationService.createInstance(ChatSetupController, context, requests))
81
+ ));
82
+ this.registerSetupAgents(context, controller);
83
+ this.registerActions(context, requests, controller);
84
+ this.registerUrlLinkHandler();
85
+ this.checkExtensionInstallation(context);
86
+ }
87
+ registerSetupAgents(context, controller) {
88
+ const defaultAgentDisposables = markAsSingleton(( new MutableDisposable()));
89
+ const vscodeAgentDisposables = markAsSingleton(( new MutableDisposable()));
90
+ const renameProviderDisposables = markAsSingleton(( new MutableDisposable()));
91
+ const codeActionsProviderDisposables = markAsSingleton(( new MutableDisposable()));
92
+ const updateRegistration = () => {
93
+ {
94
+ if (!context.state.hidden && !context.state.disabled) {
95
+ if (!defaultAgentDisposables.value) {
96
+ const disposables = defaultAgentDisposables.value = ( new DisposableStore());
97
+ const panelAgentDisposables = disposables.add(( new DisposableStore()));
98
+ for (const mode of [ChatModeKind.Ask, ChatModeKind.Edit, ChatModeKind.Agent]) {
99
+ const { agent, disposable } = SetupAgent.registerDefaultAgents(this.instantiationService, ChatAgentLocation.Chat, mode, context, controller);
100
+ panelAgentDisposables.add(disposable);
101
+ panelAgentDisposables.add(agent.onUnresolvableError(() => {
102
+ const panelAgentHasGuidance = ( chatViewsWelcomeRegistry.get().some(descriptor => this.contextKeyService.contextMatchesRules(descriptor.when)));
103
+ if (panelAgentHasGuidance) {
104
+ this.logService.error('[chat setup] Unresolvable error from Chat agent registration, clearing registration.');
105
+ panelAgentDisposables.dispose();
106
+ }
107
+ }));
108
+ }
109
+ disposables.add(SetupAgent.registerDefaultAgents(this.instantiationService, ChatAgentLocation.Terminal, undefined, context, controller).disposable);
110
+ disposables.add(SetupAgent.registerDefaultAgents(this.instantiationService, ChatAgentLocation.Notebook, undefined, context, controller).disposable);
111
+ disposables.add(SetupAgent.registerDefaultAgents(this.instantiationService, ChatAgentLocation.EditorInline, undefined, context, controller).disposable);
112
+ }
113
+ if ((!context.state.installed || context.state.entitlement === ChatEntitlement.Unknown || context.state.entitlement === ChatEntitlement.Unresolved) && !vscodeAgentDisposables.value) {
114
+ const disposables = vscodeAgentDisposables.value = ( new DisposableStore());
115
+ disposables.add(SetupAgent.registerBuiltInAgents(this.instantiationService, context, controller));
116
+ }
117
+ }
118
+ else {
119
+ defaultAgentDisposables.clear();
120
+ vscodeAgentDisposables.clear();
121
+ }
122
+ if (context.state.installed && !context.state.disabled) {
123
+ vscodeAgentDisposables.clear();
124
+ }
125
+ }
126
+ {
127
+ if (!context.state.installed && !context.state.hidden && !context.state.disabled) {
128
+ if (!renameProviderDisposables.value) {
129
+ renameProviderDisposables.value = AINewSymbolNamesProvider.registerProvider(this.instantiationService, context, controller);
130
+ }
131
+ }
132
+ else {
133
+ renameProviderDisposables.clear();
134
+ }
135
+ }
136
+ {
137
+ if (!context.state.installed && !context.state.hidden && !context.state.disabled) {
138
+ if (!codeActionsProviderDisposables.value) {
139
+ codeActionsProviderDisposables.value = ChatCodeActionsProvider.registerProvider(this.instantiationService);
140
+ }
141
+ }
142
+ else {
143
+ codeActionsProviderDisposables.clear();
144
+ }
145
+ }
146
+ };
147
+ this._register(Event.runAndSubscribe(context.onDidChange, () => updateRegistration()));
148
+ }
149
+ registerActions(context, requests, controller) {
150
+ class ChatSetupTriggerAction extends Action2 {
151
+ static { this.CHAT_SETUP_ACTION_LABEL = ( localize2(5520, "Use AI Features with Copilot for free...")); }
152
+ constructor() {
153
+ super({
154
+ id: CHAT_SETUP_ACTION_ID,
155
+ title: ChatSetupTriggerAction.CHAT_SETUP_ACTION_LABEL,
156
+ category: CHAT_CATEGORY,
157
+ f1: true,
158
+ precondition: ( ContextKeyExpr.or(
159
+ ChatContextKeys.Setup.hidden,
160
+ ChatContextKeys.Setup.disabled,
161
+ ChatContextKeys.Setup.untrusted,
162
+ ( ChatContextKeys.Setup.installed.negate()),
163
+ ChatContextKeys.Entitlement.canSignUp
164
+ ))
165
+ });
166
+ }
167
+ async run(accessor, mode, options) {
168
+ const widgetService = accessor.get(IChatWidgetService);
169
+ const instantiationService = accessor.get(IInstantiationService);
170
+ const dialogService = accessor.get(IDialogService);
171
+ const commandService = accessor.get(ICommandService);
172
+ const lifecycleService = accessor.get(ILifecycleService);
173
+ const configurationService = accessor.get(IConfigurationService);
174
+ await context.update({ hidden: false });
175
+ configurationService.updateValue(ChatTeardownContribution.CHAT_DISABLED_CONFIGURATION_KEY, false);
176
+ if (mode) {
177
+ const chatWidget = await widgetService.revealWidget();
178
+ chatWidget?.input.setChatMode(mode);
179
+ }
180
+ if (options?.inputValue) {
181
+ const chatWidget = await widgetService.revealWidget();
182
+ chatWidget?.setInput(options.inputValue);
183
+ }
184
+ const setup = ChatSetup.getInstance(instantiationService, context, controller);
185
+ const { success } = await setup.run(options);
186
+ if (success === false && !lifecycleService.willShutdown) {
187
+ const { confirmed } = await dialogService.confirm({
188
+ type: Severity.Error,
189
+ message: ( localize(5521, "Chat setup failed. Would you like to try again?")),
190
+ primaryButton: ( localize(5522, "Retry")),
191
+ });
192
+ if (confirmed) {
193
+ return Boolean(await commandService.executeCommand(CHAT_SETUP_ACTION_ID, mode, options));
194
+ }
195
+ }
196
+ return Boolean(success);
197
+ }
198
+ }
199
+ class ChatSetupTriggerSupportAnonymousAction extends Action2 {
200
+ constructor() {
201
+ super({
202
+ id: CHAT_SETUP_SUPPORT_ANONYMOUS_ACTION_ID,
203
+ title: ChatSetupTriggerAction.CHAT_SETUP_ACTION_LABEL
204
+ });
205
+ }
206
+ async run(accessor) {
207
+ const commandService = accessor.get(ICommandService);
208
+ const telemetryService = accessor.get(ITelemetryService);
209
+ const chatEntitlementService = accessor.get(IChatEntitlementService);
210
+ telemetryService.publicLog2('workbenchActionExecuted', { id: CHAT_SETUP_ACTION_ID, from: 'api' });
211
+ return commandService.executeCommand(CHAT_SETUP_ACTION_ID, undefined, {
212
+ forceAnonymous: chatEntitlementService.anonymous ? ChatSetupAnonymous.EnabledWithDialog : undefined
213
+ });
214
+ }
215
+ }
216
+ class ChatSetupTriggerForceSignInDialogAction extends Action2 {
217
+ constructor() {
218
+ super({
219
+ id: 'workbench.action.chat.triggerSetupForceSignIn',
220
+ title: ( localize2(5523, "Sign in to use AI features"))
221
+ });
222
+ }
223
+ async run(accessor) {
224
+ const commandService = accessor.get(ICommandService);
225
+ const telemetryService = accessor.get(ITelemetryService);
226
+ telemetryService.publicLog2('workbenchActionExecuted', { id: CHAT_SETUP_ACTION_ID, from: 'api' });
227
+ return commandService.executeCommand(CHAT_SETUP_ACTION_ID, undefined, { forceSignInDialog: true });
228
+ }
229
+ }
230
+ class ChatSetupTriggerAnonymousWithoutDialogAction extends Action2 {
231
+ constructor() {
232
+ super({
233
+ id: 'workbench.action.chat.triggerSetupAnonymousWithoutDialog',
234
+ title: ChatSetupTriggerAction.CHAT_SETUP_ACTION_LABEL
235
+ });
236
+ }
237
+ async run(accessor) {
238
+ const commandService = accessor.get(ICommandService);
239
+ const telemetryService = accessor.get(ITelemetryService);
240
+ telemetryService.publicLog2('workbenchActionExecuted', { id: CHAT_SETUP_ACTION_ID, from: 'api' });
241
+ return commandService.executeCommand(CHAT_SETUP_ACTION_ID, undefined, { forceAnonymous: ChatSetupAnonymous.EnabledWithoutDialog });
242
+ }
243
+ }
244
+ class ChatSetupFromAccountsAction extends Action2 {
245
+ constructor() {
246
+ super({
247
+ id: 'workbench.action.chat.triggerSetupFromAccounts',
248
+ title: ( localize2(5524, "Sign in to use AI features...")),
249
+ menu: {
250
+ id: MenuId.AccountsContext,
251
+ group: '2_copilot',
252
+ when: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.installed.negate()), ChatContextKeys.Entitlement.signedOut))
253
+ }
254
+ });
255
+ }
256
+ async run(accessor) {
257
+ const commandService = accessor.get(ICommandService);
258
+ const telemetryService = accessor.get(ITelemetryService);
259
+ telemetryService.publicLog2('workbenchActionExecuted', { id: CHAT_SETUP_ACTION_ID, from: 'accounts' });
260
+ return commandService.executeCommand(CHAT_SETUP_ACTION_ID);
261
+ }
262
+ }
263
+ const windowFocusListener = this._register(( new MutableDisposable()));
264
+ class UpgradePlanAction extends Action2 {
265
+ constructor() {
266
+ super({
267
+ id: 'workbench.action.chat.upgradePlan',
268
+ title: ( localize2(5525, "Upgrade to GitHub Copilot Pro")),
269
+ category: ( localize2(5526, 'Chat')),
270
+ f1: true,
271
+ precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ContextKeyExpr.or(
272
+ ChatContextKeys.Entitlement.canSignUp,
273
+ ChatContextKeys.Entitlement.planFree
274
+ )))),
275
+ menu: {
276
+ id: MenuId.ChatTitleBarMenu,
277
+ group: 'a_first',
278
+ order: 1,
279
+ when: ( ContextKeyExpr.and(ChatContextKeys.Entitlement.planFree, ( ContextKeyExpr.or(
280
+ ChatContextKeys.chatQuotaExceeded,
281
+ ChatContextKeys.completionsQuotaExceeded
282
+ ))))
283
+ }
284
+ });
285
+ }
286
+ async run(accessor) {
287
+ const openerService = accessor.get(IOpenerService);
288
+ const hostService = accessor.get(IHostService);
289
+ const commandService = accessor.get(ICommandService);
290
+ openerService.open(( URI.parse(defaultChat.upgradePlanUrl)));
291
+ const entitlement = context.state.entitlement;
292
+ if (!isProUser(entitlement)) {
293
+ windowFocusListener.value = hostService.onDidChangeFocus(focus => this.onWindowFocus(focus, commandService));
294
+ }
295
+ }
296
+ async onWindowFocus(focus, commandService) {
297
+ if (focus) {
298
+ windowFocusListener.clear();
299
+ const entitlements = await requests.forceResolveEntitlement(undefined);
300
+ if (entitlements?.entitlement && isProUser(entitlements?.entitlement)) {
301
+ refreshTokens(commandService);
302
+ }
303
+ }
304
+ }
305
+ }
306
+ class EnableOveragesAction extends Action2 {
307
+ constructor() {
308
+ super({
309
+ id: 'workbench.action.chat.manageOverages',
310
+ title: ( localize2(5527, "Manage GitHub Copilot Overages")),
311
+ category: ( localize2(5526, 'Chat')),
312
+ f1: true,
313
+ precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ContextKeyExpr.or(
314
+ ChatContextKeys.Entitlement.planPro,
315
+ ChatContextKeys.Entitlement.planProPlus
316
+ )))),
317
+ menu: {
318
+ id: MenuId.ChatTitleBarMenu,
319
+ group: 'a_first',
320
+ order: 1,
321
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.or(
322
+ ChatContextKeys.Entitlement.planPro,
323
+ ChatContextKeys.Entitlement.planProPlus
324
+ )), ( ContextKeyExpr.or(
325
+ ChatContextKeys.chatQuotaExceeded,
326
+ ChatContextKeys.completionsQuotaExceeded
327
+ ))))
328
+ }
329
+ });
330
+ }
331
+ async run(accessor) {
332
+ const openerService = accessor.get(IOpenerService);
333
+ openerService.open(( URI.parse(defaultChat.manageOveragesUrl)));
334
+ }
335
+ }
336
+ registerAction2(ChatSetupTriggerAction);
337
+ registerAction2(ChatSetupTriggerForceSignInDialogAction);
338
+ registerAction2(ChatSetupFromAccountsAction);
339
+ registerAction2(ChatSetupTriggerAnonymousWithoutDialogAction);
340
+ registerAction2(ChatSetupTriggerSupportAnonymousAction);
341
+ registerAction2(UpgradePlanAction);
342
+ registerAction2(EnableOveragesAction);
343
+ function registerGenerateCodeCommand(coreCommand, actualCommand) {
344
+ CommandsRegistry.registerCommand(coreCommand, async (accessor) => {
345
+ const commandService = accessor.get(ICommandService);
346
+ const codeEditorService = accessor.get(ICodeEditorService);
347
+ const markerService = accessor.get(IMarkerService);
348
+ switch (coreCommand) {
349
+ case 'chat.internal.explain':
350
+ case 'chat.internal.fix': {
351
+ const textEditor = codeEditorService.getActiveCodeEditor();
352
+ const uri = textEditor?.getModel()?.uri;
353
+ const range = textEditor?.getSelection();
354
+ if (!uri || !range) {
355
+ return;
356
+ }
357
+ const markers = AICodeActionsHelper.warningOrErrorMarkersAtRange(markerService, uri, range);
358
+ const actualCommand = coreCommand === 'chat.internal.explain'
359
+ ? AICodeActionsHelper.explainMarkers(markers)
360
+ : AICodeActionsHelper.fixMarkers(markers, range);
361
+ await commandService.executeCommand(actualCommand.id, ...(actualCommand.arguments ?? []));
362
+ break;
363
+ }
364
+ case 'chat.internal.review':
365
+ case 'chat.internal.generateDocs':
366
+ case 'chat.internal.generateTests': {
367
+ const result = await commandService.executeCommand(CHAT_SETUP_SUPPORT_ANONYMOUS_ACTION_ID);
368
+ if (result) {
369
+ await commandService.executeCommand(actualCommand);
370
+ }
371
+ }
372
+ }
373
+ });
374
+ }
375
+ registerGenerateCodeCommand('chat.internal.explain', 'github.copilot.chat.explain');
376
+ registerGenerateCodeCommand('chat.internal.fix', 'github.copilot.chat.fix');
377
+ registerGenerateCodeCommand('chat.internal.review', 'github.copilot.chat.review');
378
+ registerGenerateCodeCommand('chat.internal.generateDocs', 'github.copilot.chat.generateDocs');
379
+ registerGenerateCodeCommand('chat.internal.generateTests', 'github.copilot.chat.generateTests');
380
+ const internalGenerateCodeContext = ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( ChatContextKeys.Setup.disabled.negate()), ( ChatContextKeys.Setup.installed.negate())));
381
+ MenuRegistry.appendMenuItem(MenuId.EditorContext, {
382
+ command: {
383
+ id: 'chat.internal.explain',
384
+ title: ( localize(5528, "Explain")),
385
+ },
386
+ group: '1_chat',
387
+ order: 4,
388
+ when: internalGenerateCodeContext
389
+ });
390
+ MenuRegistry.appendMenuItem(MenuId.ChatTextEditorMenu, {
391
+ command: {
392
+ id: 'chat.internal.fix',
393
+ title: ( localize(5529, "Fix")),
394
+ },
395
+ group: '1_action',
396
+ order: 1,
397
+ when: ( ContextKeyExpr.and(internalGenerateCodeContext, ( EditorContextKeys.readOnly.negate())))
398
+ });
399
+ MenuRegistry.appendMenuItem(MenuId.ChatTextEditorMenu, {
400
+ command: {
401
+ id: 'chat.internal.review',
402
+ title: ( localize(5530, "Code Review")),
403
+ },
404
+ group: '1_action',
405
+ order: 2,
406
+ when: internalGenerateCodeContext
407
+ });
408
+ MenuRegistry.appendMenuItem(MenuId.ChatTextEditorMenu, {
409
+ command: {
410
+ id: 'chat.internal.generateDocs',
411
+ title: ( localize(5531, "Generate Docs")),
412
+ },
413
+ group: '2_generate',
414
+ order: 1,
415
+ when: ( ContextKeyExpr.and(internalGenerateCodeContext, ( EditorContextKeys.readOnly.negate())))
416
+ });
417
+ MenuRegistry.appendMenuItem(MenuId.ChatTextEditorMenu, {
418
+ command: {
419
+ id: 'chat.internal.generateTests',
420
+ title: ( localize(5532, "Generate Tests")),
421
+ },
422
+ group: '2_generate',
423
+ order: 2,
424
+ when: ( ContextKeyExpr.and(internalGenerateCodeContext, ( EditorContextKeys.readOnly.negate())))
425
+ });
426
+ }
427
+ registerUrlLinkHandler() {
428
+ this._register(ExtensionUrlHandlerOverrideRegistry.registerHandler(this.instantiationService.createInstance(ChatSetupExtensionUrlHandler)));
429
+ }
430
+ async checkExtensionInstallation(context) {
431
+ if (this.environmentService.isExtensionDevelopment) {
432
+ await this.extensionService.whenInstalledExtensionsRegistered();
433
+ if (this.extensionService.extensions.find(ext => ExtensionIdentifier.equals(ext.identifier, defaultChat.chatExtensionId))) {
434
+ context.update({ installed: true, disabled: false, untrusted: false });
435
+ return;
436
+ }
437
+ }
438
+ await this.extensionsWorkbenchService.queryLocal();
439
+ this._register(Event.runAndSubscribe(this.extensionsWorkbenchService.onChange, e => {
440
+ if (e && !ExtensionIdentifier.equals(e.identifier.id, defaultChat.chatExtensionId)) {
441
+ return;
442
+ }
443
+ const defaultChatExtension = this.extensionsWorkbenchService.local.find(value => ExtensionIdentifier.equals(value.identifier.id, defaultChat.chatExtensionId));
444
+ const installed = !!defaultChatExtension?.local;
445
+ let disabled;
446
+ let untrusted = false;
447
+ if (installed) {
448
+ disabled = !this.extensionEnablementService.isEnabled(defaultChatExtension.local);
449
+ if (disabled) {
450
+ const state = this.extensionEnablementService.getEnablementState(defaultChatExtension.local);
451
+ if (state === EnablementState.DisabledByTrustRequirement) {
452
+ disabled = false;
453
+ untrusted = true;
454
+ }
455
+ }
456
+ }
457
+ else {
458
+ disabled = false;
459
+ }
460
+ context.update({ installed, disabled, untrusted });
461
+ }));
462
+ }
463
+ };
464
+ ChatSetupContribution = ( __decorate([
465
+ ( __param(0, IInstantiationService)),
466
+ ( __param(1, IChatEntitlementService)),
467
+ ( __param(2, ILogService)),
468
+ ( __param(3, IContextKeyService)),
469
+ ( __param(4, IWorkbenchExtensionEnablementService)),
470
+ ( __param(5, IExtensionsWorkbenchService)),
471
+ ( __param(6, IExtensionService)),
472
+ ( __param(7, IEnvironmentService))
473
+ ], ChatSetupContribution));
474
+ let ChatSetupExtensionUrlHandler = class ChatSetupExtensionUrlHandler {
475
+ constructor(productService, commandService, telemetryService, chatModeService) {
476
+ this.productService = productService;
477
+ this.commandService = commandService;
478
+ this.telemetryService = telemetryService;
479
+ this.chatModeService = chatModeService;
480
+ }
481
+ canHandleURL(url) {
482
+ return url.scheme === this.productService.urlProtocol && equalsIgnoreCase(url.authority, defaultChat.chatExtensionId);
483
+ }
484
+ async handleURL(url) {
485
+ const params = ( new URLSearchParams(url.query));
486
+ this.telemetryService.publicLog2('workbenchActionExecuted', { id: CHAT_SETUP_ACTION_ID, from: 'url', detail: params.get('referrer') ?? undefined });
487
+ const agentParam = params.get('agent') ?? params.get('mode');
488
+ const inputParam = params.get('prompt');
489
+ if (!agentParam && !inputParam) {
490
+ return false;
491
+ }
492
+ const agentId = agentParam ? this.resolveAgentId(agentParam) : undefined;
493
+ await this.commandService.executeCommand(CHAT_SETUP_ACTION_ID, agentId, inputParam ? { inputValue: inputParam } : undefined);
494
+ return true;
495
+ }
496
+ resolveAgentId(agentParam) {
497
+ const agents = this.chatModeService.getModes();
498
+ const allAgents = [...agents.builtin, ...agents.custom];
499
+ const foundAgent = allAgents.find(agent => agent.id === agentParam);
500
+ if (foundAgent) {
501
+ return foundAgent.id;
502
+ }
503
+ const nameLower = agentParam.toLowerCase();
504
+ const agentByName = allAgents.find(agent => agent.name.get().toLowerCase() === nameLower);
505
+ return agentByName?.id;
506
+ }
507
+ };
508
+ ChatSetupExtensionUrlHandler = ( __decorate([
509
+ ( __param(0, IProductService)),
510
+ ( __param(1, ICommandService)),
511
+ ( __param(2, ITelemetryService)),
512
+ ( __param(3, IChatModeService))
513
+ ], ChatSetupExtensionUrlHandler));
514
+ let ChatTeardownContribution = class ChatTeardownContribution extends Disposable {
515
+ static { ChatTeardownContribution_1 = this; }
516
+ static { this.ID = 'workbench.contrib.chatTeardown'; }
517
+ static { this.CHAT_DISABLED_CONFIGURATION_KEY = 'chat.disableAIFeatures'; }
518
+ constructor(chatEntitlementService, configurationService, extensionsWorkbenchService, extensionEnablementService, viewDescriptorService, layoutService) {
519
+ super();
520
+ this.configurationService = configurationService;
521
+ this.extensionsWorkbenchService = extensionsWorkbenchService;
522
+ this.extensionEnablementService = extensionEnablementService;
523
+ this.viewDescriptorService = viewDescriptorService;
524
+ this.layoutService = layoutService;
525
+ const context = chatEntitlementService.context?.value;
526
+ if (!context) {
527
+ return;
528
+ }
529
+ this.registerListeners();
530
+ this.registerActions();
531
+ this.handleChatDisabled(false);
532
+ }
533
+ handleChatDisabled(fromEvent) {
534
+ const chatDisabled = this.configurationService.inspect(ChatTeardownContribution_1.CHAT_DISABLED_CONFIGURATION_KEY);
535
+ if (chatDisabled.value === true) {
536
+ this.maybeEnableOrDisableExtension(typeof chatDisabled.workspaceValue === 'boolean' ? EnablementState.DisabledWorkspace : EnablementState.DisabledGlobally);
537
+ if (fromEvent) {
538
+ this.maybeHideAuxiliaryBar();
539
+ }
540
+ }
541
+ else if (chatDisabled.value === false && fromEvent ) {
542
+ this.maybeEnableOrDisableExtension(typeof chatDisabled.workspaceValue === 'boolean' ? EnablementState.EnabledWorkspace : EnablementState.EnabledGlobally);
543
+ }
544
+ }
545
+ async registerListeners() {
546
+ this._register(this.configurationService.onDidChangeConfiguration(e => {
547
+ if (!e.affectsConfiguration(ChatTeardownContribution_1.CHAT_DISABLED_CONFIGURATION_KEY)) {
548
+ return;
549
+ }
550
+ this.handleChatDisabled(true);
551
+ }));
552
+ await this.extensionsWorkbenchService.queryLocal();
553
+ this._register(this.extensionsWorkbenchService.onChange(e => {
554
+ if (e && !ExtensionIdentifier.equals(e.identifier.id, defaultChat.chatExtensionId)) {
555
+ return;
556
+ }
557
+ const defaultChatExtension = this.extensionsWorkbenchService.local.find(value => ExtensionIdentifier.equals(value.identifier.id, defaultChat.chatExtensionId));
558
+ if (defaultChatExtension?.local && this.extensionEnablementService.isEnabled(defaultChatExtension.local)) {
559
+ this.configurationService.updateValue(ChatTeardownContribution_1.CHAT_DISABLED_CONFIGURATION_KEY, false);
560
+ }
561
+ }));
562
+ }
563
+ async maybeEnableOrDisableExtension(state) {
564
+ const defaultChatExtension = this.extensionsWorkbenchService.local.find(value => ExtensionIdentifier.equals(value.identifier.id, defaultChat.chatExtensionId));
565
+ if (!defaultChatExtension) {
566
+ return;
567
+ }
568
+ await this.extensionsWorkbenchService.setEnablement([defaultChatExtension], state);
569
+ await this.extensionsWorkbenchService.updateRunningExtensions(state === EnablementState.EnabledGlobally || state === EnablementState.EnabledWorkspace ? ( localize(5533, "Enabling AI features")) : ( localize(5534, "Disabling AI features")));
570
+ }
571
+ maybeHideAuxiliaryBar() {
572
+ const activeContainers = this.viewDescriptorService.getViewContainersByLocation(ViewContainerLocation.AuxiliaryBar).filter(container => this.viewDescriptorService.getViewContainerModel(container).activeViewDescriptors.length > 0);
573
+ const hasChatView = ( activeContainers.some(container => container.id === ChatViewContainerId));
574
+ const hasAgentSessionsView = ( activeContainers.some(container => container.id === AGENT_SESSIONS_VIEW_CONTAINER_ID));
575
+ if ((activeContainers.length === 0) ||
576
+ (activeContainers.length === 1 && (hasChatView || hasAgentSessionsView)) ||
577
+ (activeContainers.length === 2 && hasChatView && hasAgentSessionsView)
578
+ ) {
579
+ this.layoutService.setPartHidden(true, Parts.AUXILIARYBAR_PART);
580
+ }
581
+ }
582
+ registerActions() {
583
+ class ChatSetupHideAction extends Action2 {
584
+ static { this.ID = 'workbench.action.chat.hideSetup'; }
585
+ static { this.TITLE = ( localize2(5535, "Learn How to Hide AI Features")); }
586
+ constructor() {
587
+ super({
588
+ id: ChatSetupHideAction.ID,
589
+ title: ChatSetupHideAction.TITLE,
590
+ f1: true,
591
+ category: CHAT_CATEGORY,
592
+ precondition: ( ChatContextKeys.Setup.hidden.negate()),
593
+ menu: {
594
+ id: MenuId.ChatTitleBarMenu,
595
+ group: 'z_hide',
596
+ order: 1,
597
+ when: ( ChatContextKeys.Setup.installed.negate())
598
+ }
599
+ });
600
+ }
601
+ async run(accessor) {
602
+ const preferencesService = accessor.get(IPreferencesService);
603
+ preferencesService.openSettings({ jsonEditor: false, query: `@id:${ChatTeardownContribution_1.CHAT_DISABLED_CONFIGURATION_KEY}` });
604
+ }
605
+ }
606
+ registerAction2(ChatSetupHideAction);
607
+ }
608
+ };
609
+ ChatTeardownContribution = ChatTeardownContribution_1 = ( __decorate([
610
+ ( __param(0, IChatEntitlementService)),
611
+ ( __param(1, IConfigurationService)),
612
+ ( __param(2, IExtensionsWorkbenchService)),
613
+ ( __param(3, IWorkbenchExtensionEnablementService)),
614
+ ( __param(4, IViewDescriptorService)),
615
+ ( __param(5, IWorkbenchLayoutService))
616
+ ], ChatTeardownContribution));
617
+ function refreshTokens(commandService) {
618
+ commandService.executeCommand(defaultChat.completionsRefreshTokenCommand);
619
+ commandService.executeCommand(defaultChat.chatRefreshTokenCommand);
620
+ }
621
+
622
+ export { ChatSetupContribution, ChatTeardownContribution, refreshTokens };