@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,667 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { timeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
4
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
5
+ import { toErrorMessage } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errorMessage';
6
+ import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
7
+ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
8
+ import { Disposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
9
+ import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
10
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
11
+ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
12
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
13
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
14
+ import product from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/product';
15
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
16
+ import { IWorkspaceTrustManagementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service';
17
+ import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
18
+ import { nullExtensionDescription } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions';
19
+ import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
20
+ import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
21
+ import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
22
+ import { ChatEntitlement, ChatEntitlementRequests } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService';
23
+ import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
24
+ import { ChatRequestModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModel';
25
+ import { ChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes';
26
+ import { ChatRequestToolPart, ChatRequestAgentPart } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
27
+ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
28
+ import { ChatConfiguration, ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
29
+ import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
30
+ import { CHAT_SETUP_ACTION_ID, CHAT_OPEN_ACTION_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
31
+ import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
32
+ import { ILanguageFeaturesService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service';
33
+ import { Selection } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/selection';
34
+ import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
35
+ import { CodeActionKind } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/codeAction/common/types';
36
+ import { ACTION_START } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
37
+ import { MarkerSeverity } from '@codingame/monaco-vscode-api/vscode/vs/platform/markers/common/markers';
38
+ import { IMarkerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markers/common/markers.service';
39
+ import { ChatSetupStep, ChatSetupAnonymous } from './chatSetup.js';
40
+ import { ChatSetup } from './chatSetupRunner.js';
41
+
42
+ var SetupAgent_1, AINewSymbolNamesProvider_1, ChatCodeActionsProvider_1;
43
+ const defaultChat = {
44
+ extensionId: product.defaultChatAgent?.extensionId ?? '',
45
+ chatExtensionId: product.defaultChatAgent?.chatExtensionId ?? '',
46
+ provider: product.defaultChatAgent?.provider ?? { default: { id: '', name: '' }, enterprise: { id: '', name: '' }, apple: { id: '', name: '' }, google: { id: '', name: '' } },
47
+ };
48
+ const ToolsAgentContextKey = ( ContextKeyExpr.and(( ContextKeyExpr.equals(`config.${ChatConfiguration.AgentEnabled}`, true)),
49
+ ContextKeyExpr.not(`previewFeaturesDisabled`)));
50
+ let SetupAgent = class SetupAgent extends Disposable {
51
+ static { SetupAgent_1 = this; }
52
+ static registerDefaultAgents(instantiationService, location, mode, context, controller) {
53
+ return instantiationService.invokeFunction(accessor => {
54
+ const chatAgentService = accessor.get(IChatAgentService);
55
+ let id;
56
+ let description = ChatMode.Ask.description.get();
57
+ switch (location) {
58
+ case ChatAgentLocation.Chat:
59
+ if (mode === ChatModeKind.Ask) {
60
+ id = 'setup.chat';
61
+ }
62
+ else if (mode === ChatModeKind.Edit) {
63
+ id = 'setup.edits';
64
+ description = ChatMode.Edit.description.get();
65
+ }
66
+ else {
67
+ id = 'setup.agent';
68
+ description = ChatMode.Agent.description.get();
69
+ }
70
+ break;
71
+ case ChatAgentLocation.Terminal:
72
+ id = 'setup.terminal';
73
+ break;
74
+ case ChatAgentLocation.EditorInline:
75
+ id = 'setup.editor';
76
+ break;
77
+ case ChatAgentLocation.Notebook:
78
+ id = 'setup.notebook';
79
+ break;
80
+ }
81
+ return SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, id, `${defaultChat.provider.default.name} Copilot` , true, description, location, mode, context, controller);
82
+ });
83
+ }
84
+ static registerBuiltInAgents(instantiationService, context, controller) {
85
+ return instantiationService.invokeFunction(accessor => {
86
+ const chatAgentService = accessor.get(IChatAgentService);
87
+ const disposables = ( new DisposableStore());
88
+ const { disposable: vscodeDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.vscode', 'vscode', false, ( localize2(5545, "Ask questions about VS Code")).value, ChatAgentLocation.Chat, undefined, context, controller);
89
+ disposables.add(vscodeDisposable);
90
+ const { disposable: workspaceDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.workspace', 'workspace', false, ( localize2(5546, "Ask about your workspace")).value, ChatAgentLocation.Chat, undefined, context, controller);
91
+ disposables.add(workspaceDisposable);
92
+ const { disposable: terminalDisposable } = SetupAgent_1.doRegisterAgent(instantiationService, chatAgentService, 'setup.terminal.agent', 'terminal', false, ( localize2(5547, "Ask how to do something in the terminal")).value, ChatAgentLocation.Chat, undefined, context, controller);
93
+ disposables.add(terminalDisposable);
94
+ disposables.add(SetupTool.registerTool(instantiationService, {
95
+ id: 'setup_tools_createNewWorkspace',
96
+ source: ToolDataSource.Internal,
97
+ icon: Codicon.newFolder,
98
+ displayName: ( localize(5548, "New Workspace")),
99
+ modelDescription: 'Scaffold a new workspace in VS Code',
100
+ userDescription: ( localize(5549, "Scaffold a new workspace in VS Code")),
101
+ canBeReferencedInPrompt: true,
102
+ toolReferenceName: 'new',
103
+ when: ContextKeyExpr.true(),
104
+ }));
105
+ return disposables;
106
+ });
107
+ }
108
+ static doRegisterAgent(instantiationService, chatAgentService, id, name, isDefault, description, location, mode, context, controller) {
109
+ const disposables = ( new DisposableStore());
110
+ disposables.add(chatAgentService.registerAgent(id, {
111
+ id,
112
+ name,
113
+ isDefault,
114
+ isCore: true,
115
+ modes: mode ? [mode] : [ChatModeKind.Ask],
116
+ when: mode === ChatModeKind.Agent ? ToolsAgentContextKey?.serialize() : undefined,
117
+ slashCommands: [],
118
+ disambiguation: [],
119
+ locations: [location],
120
+ metadata: { helpTextPrefix: SetupAgent_1.SETUP_NEEDED_MESSAGE },
121
+ description,
122
+ extensionId: nullExtensionDescription.identifier,
123
+ extensionVersion: undefined,
124
+ extensionDisplayName: nullExtensionDescription.name,
125
+ extensionPublisherId: nullExtensionDescription.publisher
126
+ }));
127
+ const agent = disposables.add(instantiationService.createInstance(SetupAgent_1, context, controller, location));
128
+ disposables.add(chatAgentService.registerAgentImplementation(id, agent));
129
+ if (mode === ChatModeKind.Agent) {
130
+ chatAgentService.updateAgent(id, { themeIcon: Codicon.tools });
131
+ }
132
+ return { agent, disposable: disposables };
133
+ }
134
+ static { this.SETUP_NEEDED_MESSAGE = ( new MarkdownString(( localize(5550, "You need to set up GitHub Copilot and be signed in to use Chat.")))); }
135
+ static { this.TRUST_NEEDED_MESSAGE = ( new MarkdownString(( localize(5551, "You need to trust this workspace to use Chat.")))); }
136
+ constructor(context, controller, location, instantiationService, logService, configurationService, telemetryService, environmentService, workspaceTrustManagementService, chatEntitlementService) {
137
+ super();
138
+ this.context = context;
139
+ this.controller = controller;
140
+ this.location = location;
141
+ this.instantiationService = instantiationService;
142
+ this.logService = logService;
143
+ this.configurationService = configurationService;
144
+ this.telemetryService = telemetryService;
145
+ this.environmentService = environmentService;
146
+ this.workspaceTrustManagementService = workspaceTrustManagementService;
147
+ this.chatEntitlementService = chatEntitlementService;
148
+ this._onUnresolvableError = this._register(( new Emitter()));
149
+ this.onUnresolvableError = this._onUnresolvableError.event;
150
+ this.pendingForwardedRequests = ( new ResourceMap());
151
+ }
152
+ async invoke(request, progress) {
153
+ return this.instantiationService.invokeFunction(async (accessor ) => {
154
+ const chatService = accessor.get(IChatService);
155
+ const languageModelsService = accessor.get(ILanguageModelsService);
156
+ const chatWidgetService = accessor.get(IChatWidgetService);
157
+ const chatAgentService = accessor.get(IChatAgentService);
158
+ const languageModelToolsService = accessor.get(ILanguageModelToolsService);
159
+ return this.doInvoke(request, part => progress([part]), chatService, languageModelsService, chatWidgetService, chatAgentService, languageModelToolsService);
160
+ });
161
+ }
162
+ async doInvoke(request, progress, chatService, languageModelsService, chatWidgetService, chatAgentService, languageModelToolsService) {
163
+ if (!this.context.state.installed ||
164
+ this.context.state.disabled ||
165
+ this.context.state.untrusted ||
166
+ this.context.state.entitlement === ChatEntitlement.Available ||
167
+ ((
168
+ this.context.state.entitlement === ChatEntitlement.Unknown && !this.chatEntitlementService.anonymous)
169
+ )) {
170
+ return this.doInvokeWithSetup(request, progress, chatService, languageModelsService, chatWidgetService, chatAgentService, languageModelToolsService);
171
+ }
172
+ return this.doInvokeWithoutSetup(request, progress, chatService, languageModelsService, chatWidgetService, chatAgentService, languageModelToolsService);
173
+ }
174
+ async doInvokeWithoutSetup(request, progress, chatService, languageModelsService, chatWidgetService, chatAgentService, languageModelToolsService) {
175
+ const requestModel = chatWidgetService.getWidgetBySessionResource(request.sessionResource)?.viewModel?.model.getRequests().at(-1);
176
+ if (!requestModel) {
177
+ this.logService.error('[chat setup] Request model not found, cannot redispatch request.');
178
+ return {};
179
+ }
180
+ progress({
181
+ kind: 'progressMessage',
182
+ content: ( new MarkdownString(( localize(5552, "Getting chat ready...")))),
183
+ });
184
+ await this.forwardRequestToChat(requestModel, progress, chatService, languageModelsService, chatAgentService, chatWidgetService, languageModelToolsService);
185
+ return {};
186
+ }
187
+ async forwardRequestToChat(requestModel, progress, chatService, languageModelsService, chatAgentService, chatWidgetService, languageModelToolsService) {
188
+ try {
189
+ await this.doForwardRequestToChat(requestModel, progress, chatService, languageModelsService, chatAgentService, chatWidgetService, languageModelToolsService);
190
+ }
191
+ catch (error) {
192
+ this.logService.error('[chat setup] Failed to forward request to chat', error);
193
+ progress({
194
+ kind: 'warning',
195
+ content: ( new MarkdownString(( localize(5553, "Failed to get a response. Please try again."))))
196
+ });
197
+ }
198
+ }
199
+ async doForwardRequestToChat(requestModel, progress, chatService, languageModelsService, chatAgentService, chatWidgetService, languageModelToolsService) {
200
+ if (( this.pendingForwardedRequests.has(requestModel.session.sessionResource))) {
201
+ throw ( new Error('Request already in progress'));
202
+ }
203
+ const forwardRequest = this.doForwardRequestToChatWhenReady(requestModel, progress, chatService, languageModelsService, chatAgentService, chatWidgetService, languageModelToolsService);
204
+ this.pendingForwardedRequests.set(requestModel.session.sessionResource, forwardRequest);
205
+ try {
206
+ await forwardRequest;
207
+ }
208
+ finally {
209
+ this.pendingForwardedRequests.delete(requestModel.session.sessionResource);
210
+ }
211
+ }
212
+ async doForwardRequestToChatWhenReady(requestModel, progress, chatService, languageModelsService, chatAgentService, chatWidgetService, languageModelToolsService) {
213
+ const widget = chatWidgetService.getWidgetBySessionResource(requestModel.session.sessionResource);
214
+ const modeInfo = widget?.input.currentModeInfo;
215
+ let agentActivated = false;
216
+ let agentReady = false;
217
+ let languageModelReady = false;
218
+ let toolsModelReady = false;
219
+ const whenAgentActivated = this.whenAgentActivated(chatService).then(() => agentActivated = true);
220
+ const whenAgentReady = this.whenAgentReady(chatAgentService, modeInfo?.kind)?.then(() => agentReady = true);
221
+ const whenLanguageModelReady = this.whenLanguageModelReady(languageModelsService, requestModel.modelId)?.then(() => languageModelReady = true);
222
+ const whenToolsModelReady = this.whenToolsModelReady(languageModelToolsService, requestModel)?.then(() => toolsModelReady = true);
223
+ if (whenLanguageModelReady instanceof Promise || whenAgentReady instanceof Promise || whenToolsModelReady instanceof Promise) {
224
+ const timeoutHandle = setTimeout(() => {
225
+ progress({
226
+ kind: 'progressMessage',
227
+ content: ( new MarkdownString(( localize(5554, "Chat is almost ready...")))),
228
+ });
229
+ }, 10000);
230
+ try {
231
+ const ready = await Promise.race([
232
+ timeout(this.environmentService.remoteAuthority ? 60000 : 20000).then(() => 'timedout'),
233
+ Promise.allSettled([
234
+ whenAgentActivated,
235
+ whenAgentReady,
236
+ whenLanguageModelReady,
237
+ whenToolsModelReady
238
+ ])
239
+ ]);
240
+ if (ready === 'timedout') {
241
+ let warningMessage;
242
+ if (this.chatEntitlementService.anonymous) {
243
+ warningMessage = ( localize(
244
+ 5555,
245
+ "Chat took too long to get ready. Please ensure that the extension `{0}` is installed and enabled.",
246
+ defaultChat.chatExtensionId
247
+ ));
248
+ }
249
+ else {
250
+ warningMessage = ( localize(
251
+ 5556,
252
+ "Chat took too long to get ready. Please ensure you are signed in to {0} and that the extension `{1}` is installed and enabled.",
253
+ defaultChat.provider.default.name,
254
+ defaultChat.chatExtensionId
255
+ ));
256
+ }
257
+ this.logService.warn(warningMessage, {
258
+ agentActivated,
259
+ agentReady,
260
+ languageModelReady,
261
+ toolsModelReady
262
+ });
263
+ progress({
264
+ kind: 'warning',
265
+ content: ( new MarkdownString(warningMessage))
266
+ });
267
+ this._onUnresolvableError.fire();
268
+ return;
269
+ }
270
+ }
271
+ finally {
272
+ clearTimeout(timeoutHandle);
273
+ }
274
+ }
275
+ await chatService.resendRequest(requestModel, {
276
+ ...widget?.getModeRequestOptions(),
277
+ modeInfo,
278
+ userSelectedModelId: widget?.input.currentLanguageModel
279
+ });
280
+ }
281
+ whenLanguageModelReady(languageModelsService, modelId) {
282
+ const hasModelForRequest = () => {
283
+ if (modelId) {
284
+ return !!languageModelsService.lookupLanguageModel(modelId);
285
+ }
286
+ for (const id of languageModelsService.getLanguageModelIds()) {
287
+ const model = languageModelsService.lookupLanguageModel(id);
288
+ if (model?.isDefault) {
289
+ return true;
290
+ }
291
+ }
292
+ return false;
293
+ };
294
+ if (hasModelForRequest()) {
295
+ return;
296
+ }
297
+ return Event.toPromise(Event.filter(languageModelsService.onDidChangeLanguageModels, () => hasModelForRequest()));
298
+ }
299
+ whenToolsModelReady(languageModelToolsService, requestModel) {
300
+ const needsToolsModel = ( requestModel.message.parts.some(part => part instanceof ChatRequestToolPart));
301
+ if (!needsToolsModel) {
302
+ return;
303
+ }
304
+ for (const tool of languageModelToolsService.getTools()) {
305
+ if (tool.id.startsWith('copilot_')) {
306
+ return;
307
+ }
308
+ }
309
+ return Event.toPromise(Event.filter(languageModelToolsService.onDidChangeTools, () => {
310
+ for (const tool of languageModelToolsService.getTools()) {
311
+ if (tool.id.startsWith('copilot_')) {
312
+ return true;
313
+ }
314
+ }
315
+ return false;
316
+ }));
317
+ }
318
+ whenAgentReady(chatAgentService, mode) {
319
+ const defaultAgent = chatAgentService.getDefaultAgent(this.location, mode);
320
+ if (defaultAgent && !defaultAgent.isCore) {
321
+ return;
322
+ }
323
+ return Event.toPromise(Event.filter(chatAgentService.onDidChangeAgents, () => {
324
+ const defaultAgent = chatAgentService.getDefaultAgent(this.location, mode);
325
+ return Boolean(defaultAgent && !defaultAgent.isCore);
326
+ }));
327
+ }
328
+ async whenAgentActivated(chatService) {
329
+ try {
330
+ await chatService.activateDefaultAgent(this.location);
331
+ }
332
+ catch (error) {
333
+ this.logService.error(error);
334
+ }
335
+ }
336
+ async doInvokeWithSetup(request, progress, chatService, languageModelsService, chatWidgetService, chatAgentService, languageModelToolsService) {
337
+ this.telemetryService.publicLog2('workbenchActionExecuted', { id: CHAT_SETUP_ACTION_ID, from: 'chat' });
338
+ const widget = chatWidgetService.getWidgetBySessionResource(request.sessionResource);
339
+ const requestModel = widget?.viewModel?.model.getRequests().at(-1);
340
+ const setupListener = Event.runAndSubscribe(this.controller.value.onDidChange, (() => {
341
+ switch (this.controller.value.step) {
342
+ case ChatSetupStep.SigningIn:
343
+ progress({
344
+ kind: 'progressMessage',
345
+ content: ( new MarkdownString(( localize(
346
+ 5557,
347
+ "Signing in to {0}...",
348
+ ChatEntitlementRequests.providerId(this.configurationService) === defaultChat.provider.enterprise.id ? defaultChat.provider.enterprise.name : defaultChat.provider.default.name
349
+ )))),
350
+ });
351
+ break;
352
+ case ChatSetupStep.Installing:
353
+ progress({
354
+ kind: 'progressMessage',
355
+ content: ( new MarkdownString(( localize(5558, "Getting chat ready...")))),
356
+ });
357
+ break;
358
+ }
359
+ }));
360
+ let result = undefined;
361
+ try {
362
+ result = await ChatSetup.getInstance(this.instantiationService, this.context, this.controller).run({
363
+ disableChatViewReveal: true,
364
+ forceAnonymous: this.chatEntitlementService.anonymous ? ChatSetupAnonymous.EnabledWithoutDialog : undefined
365
+ });
366
+ }
367
+ catch (error) {
368
+ this.logService.error(`[chat setup] Error during setup: ${toErrorMessage(error)}`);
369
+ }
370
+ finally {
371
+ setupListener.dispose();
372
+ }
373
+ if (typeof result?.success === 'boolean') {
374
+ if (result.success) {
375
+ if (result.dialogSkipped) {
376
+ await widget?.clear();
377
+ }
378
+ else if (requestModel) {
379
+ let newRequest = this.replaceAgentInRequestModel(requestModel, chatAgentService);
380
+ newRequest = this.replaceToolInRequestModel(newRequest);
381
+ await this.forwardRequestToChat(newRequest, progress, chatService, languageModelsService, chatAgentService, chatWidgetService, languageModelToolsService);
382
+ }
383
+ }
384
+ else {
385
+ progress({
386
+ kind: 'warning',
387
+ content: ( new MarkdownString(( localize(5559, "Chat setup failed."))))
388
+ });
389
+ }
390
+ }
391
+ else {
392
+ progress({
393
+ kind: 'markdownContent',
394
+ content: this.workspaceTrustManagementService.isWorkspaceTrusted() ? SetupAgent_1.SETUP_NEEDED_MESSAGE : SetupAgent_1.TRUST_NEEDED_MESSAGE
395
+ });
396
+ }
397
+ return {};
398
+ }
399
+ replaceAgentInRequestModel(requestModel, chatAgentService) {
400
+ const agentPart = requestModel.message.parts.find((r) => r instanceof ChatRequestAgentPart);
401
+ if (!agentPart) {
402
+ return requestModel;
403
+ }
404
+ const agentId = agentPart.agent.id.replace(/setup\./, `${defaultChat.extensionId}.`.toLowerCase());
405
+ const githubAgent = chatAgentService.getAgent(agentId);
406
+ if (!githubAgent) {
407
+ return requestModel;
408
+ }
409
+ const newAgentPart = ( new ChatRequestAgentPart(agentPart.range, agentPart.editorRange, githubAgent));
410
+ return ( new ChatRequestModel({
411
+ session: requestModel.session,
412
+ message: {
413
+ parts: ( requestModel.message.parts.map(part => {
414
+ if (part instanceof ChatRequestAgentPart) {
415
+ return newAgentPart;
416
+ }
417
+ return part;
418
+ })),
419
+ text: requestModel.message.text
420
+ },
421
+ variableData: requestModel.variableData,
422
+ timestamp: Date.now(),
423
+ attempt: requestModel.attempt,
424
+ modeInfo: requestModel.modeInfo,
425
+ confirmation: requestModel.confirmation,
426
+ locationData: requestModel.locationData,
427
+ attachedContext: requestModel.attachedContext,
428
+ isCompleteAddedRequest: requestModel.isCompleteAddedRequest,
429
+ }));
430
+ }
431
+ replaceToolInRequestModel(requestModel) {
432
+ const toolPart = requestModel.message.parts.find((r) => r instanceof ChatRequestToolPart);
433
+ if (!toolPart) {
434
+ return requestModel;
435
+ }
436
+ const toolId = toolPart.toolId.replace(/setup.tools\./, `copilot_`.toLowerCase());
437
+ const newToolPart = ( new ChatRequestToolPart(
438
+ toolPart.range,
439
+ toolPart.editorRange,
440
+ toolPart.toolName,
441
+ toolId,
442
+ toolPart.displayName,
443
+ toolPart.icon
444
+ ));
445
+ const chatRequestToolEntry = {
446
+ id: toolId,
447
+ name: 'new',
448
+ range: toolPart.range,
449
+ kind: 'tool',
450
+ value: undefined
451
+ };
452
+ const variableData = {
453
+ variables: [chatRequestToolEntry]
454
+ };
455
+ return ( new ChatRequestModel({
456
+ session: requestModel.session,
457
+ message: {
458
+ parts: ( requestModel.message.parts.map(part => {
459
+ if (part instanceof ChatRequestToolPart) {
460
+ return newToolPart;
461
+ }
462
+ return part;
463
+ })),
464
+ text: requestModel.message.text
465
+ },
466
+ variableData: variableData,
467
+ timestamp: Date.now(),
468
+ attempt: requestModel.attempt,
469
+ modeInfo: requestModel.modeInfo,
470
+ confirmation: requestModel.confirmation,
471
+ locationData: requestModel.locationData,
472
+ attachedContext: [chatRequestToolEntry],
473
+ isCompleteAddedRequest: requestModel.isCompleteAddedRequest,
474
+ }));
475
+ }
476
+ };
477
+ SetupAgent = SetupAgent_1 = ( __decorate([
478
+ ( __param(3, IInstantiationService)),
479
+ ( __param(4, ILogService)),
480
+ ( __param(5, IConfigurationService)),
481
+ ( __param(6, ITelemetryService)),
482
+ ( __param(7, IWorkbenchEnvironmentService)),
483
+ ( __param(8, IWorkspaceTrustManagementService)),
484
+ ( __param(9, IChatEntitlementService))
485
+ ], SetupAgent));
486
+ class SetupTool {
487
+ static registerTool(instantiationService, toolData) {
488
+ return instantiationService.invokeFunction(accessor => {
489
+ const toolService = accessor.get(ILanguageModelToolsService);
490
+ const tool = instantiationService.createInstance(SetupTool);
491
+ return toolService.registerTool(toolData, tool);
492
+ });
493
+ }
494
+ async invoke(invocation, countTokens, progress, token) {
495
+ const result = {
496
+ content: [
497
+ {
498
+ kind: 'text',
499
+ value: ''
500
+ }
501
+ ]
502
+ };
503
+ return result;
504
+ }
505
+ async prepareToolInvocation(parameters, token) {
506
+ return undefined;
507
+ }
508
+ }
509
+ let AINewSymbolNamesProvider = AINewSymbolNamesProvider_1 = class AINewSymbolNamesProvider {
510
+ static registerProvider(instantiationService, context, controller) {
511
+ return instantiationService.invokeFunction(accessor => {
512
+ const languageFeaturesService = accessor.get(ILanguageFeaturesService);
513
+ const provider = instantiationService.createInstance(AINewSymbolNamesProvider_1, context, controller);
514
+ return languageFeaturesService.newSymbolNamesProvider.register('*', provider);
515
+ });
516
+ }
517
+ constructor(context, controller, instantiationService, chatEntitlementService) {
518
+ this.context = context;
519
+ this.controller = controller;
520
+ this.instantiationService = instantiationService;
521
+ this.chatEntitlementService = chatEntitlementService;
522
+ }
523
+ async provideNewSymbolNames(model, range, triggerKind, token) {
524
+ await this.instantiationService.invokeFunction(accessor => {
525
+ return ChatSetup.getInstance(this.instantiationService, this.context, this.controller).run({
526
+ forceAnonymous: this.chatEntitlementService.anonymous ? ChatSetupAnonymous.EnabledWithDialog : undefined
527
+ });
528
+ });
529
+ return [];
530
+ }
531
+ };
532
+ AINewSymbolNamesProvider = AINewSymbolNamesProvider_1 = ( __decorate([
533
+ ( __param(2, IInstantiationService)),
534
+ ( __param(3, IChatEntitlementService))
535
+ ], AINewSymbolNamesProvider));
536
+ let ChatCodeActionsProvider = ChatCodeActionsProvider_1 = class ChatCodeActionsProvider {
537
+ static registerProvider(instantiationService) {
538
+ return instantiationService.invokeFunction(accessor => {
539
+ const languageFeaturesService = accessor.get(ILanguageFeaturesService);
540
+ const provider = instantiationService.createInstance(ChatCodeActionsProvider_1);
541
+ return languageFeaturesService.codeActionProvider.register('*', provider);
542
+ });
543
+ }
544
+ constructor(markerService) {
545
+ this.markerService = markerService;
546
+ }
547
+ async provideCodeActions(model, range) {
548
+ const actions = [];
549
+ let generateOrModifyTitle;
550
+ let generateOrModifyCommand;
551
+ if (range.isEmpty()) {
552
+ const textAtLine = model.getLineContent(range.startLineNumber);
553
+ if (/^\s*$/.test(textAtLine)) {
554
+ generateOrModifyTitle = ( localize(5560, "Generate"));
555
+ generateOrModifyCommand = AICodeActionsHelper.generate(range);
556
+ }
557
+ }
558
+ else {
559
+ const textInSelection = model.getValueInRange(range);
560
+ if (!/^\s*$/.test(textInSelection)) {
561
+ generateOrModifyTitle = ( localize(5561, "Modify"));
562
+ generateOrModifyCommand = AICodeActionsHelper.modify(range);
563
+ }
564
+ }
565
+ if (generateOrModifyTitle && generateOrModifyCommand) {
566
+ actions.push({
567
+ kind: CodeActionKind.RefactorRewrite.append('copilot').value,
568
+ isAI: true,
569
+ title: generateOrModifyTitle,
570
+ command: generateOrModifyCommand,
571
+ });
572
+ }
573
+ const markers = AICodeActionsHelper.warningOrErrorMarkersAtRange(this.markerService, model.uri, range);
574
+ if (markers.length > 0) {
575
+ actions.push({
576
+ kind: CodeActionKind.QuickFix.append('copilot').value,
577
+ isAI: true,
578
+ diagnostics: markers,
579
+ title: ( localize(5562, "Fix")),
580
+ command: AICodeActionsHelper.fixMarkers(markers, range)
581
+ });
582
+ actions.push({
583
+ kind: CodeActionKind.QuickFix.append('explain').append('copilot').value,
584
+ isAI: true,
585
+ diagnostics: markers,
586
+ title: ( localize(5563, "Explain")),
587
+ command: AICodeActionsHelper.explainMarkers(markers)
588
+ });
589
+ }
590
+ return {
591
+ actions,
592
+ dispose() { }
593
+ };
594
+ }
595
+ };
596
+ ChatCodeActionsProvider = ChatCodeActionsProvider_1 = ( __decorate([
597
+ ( __param(0, IMarkerService))
598
+ ], ChatCodeActionsProvider));
599
+ class AICodeActionsHelper {
600
+ static warningOrErrorMarkersAtRange(markerService, resource, range) {
601
+ return markerService
602
+ .read({ resource, severities: MarkerSeverity.Error | MarkerSeverity.Warning })
603
+ .filter(marker => range.startLineNumber <= marker.endLineNumber && range.endLineNumber >= marker.startLineNumber);
604
+ }
605
+ static modify(range) {
606
+ return {
607
+ id: ACTION_START,
608
+ title: ( localize(5561, "Modify")),
609
+ arguments: [
610
+ {
611
+ initialSelection: this.rangeToSelection(range),
612
+ initialRange: range,
613
+ position: range.getStartPosition()
614
+ }
615
+ ]
616
+ };
617
+ }
618
+ static generate(range) {
619
+ return {
620
+ id: ACTION_START,
621
+ title: ( localize(5560, "Generate")),
622
+ arguments: [
623
+ {
624
+ initialSelection: this.rangeToSelection(range),
625
+ initialRange: range,
626
+ position: range.getStartPosition()
627
+ }
628
+ ]
629
+ };
630
+ }
631
+ static rangeToSelection(range) {
632
+ return ( new Selection(
633
+ range.startLineNumber,
634
+ range.startColumn,
635
+ range.endLineNumber,
636
+ range.endColumn
637
+ ));
638
+ }
639
+ static explainMarkers(markers) {
640
+ return {
641
+ id: CHAT_OPEN_ACTION_ID,
642
+ title: ( localize(5563, "Explain")),
643
+ arguments: [
644
+ {
645
+ query: `@workspace /explain ${( markers.map(marker => marker.message)).join(', ')}`,
646
+ isPartialQuery: true
647
+ }
648
+ ]
649
+ };
650
+ }
651
+ static fixMarkers(markers, range) {
652
+ return {
653
+ id: ACTION_START,
654
+ title: ( localize(5562, "Fix")),
655
+ arguments: [
656
+ {
657
+ message: `/fix ${( markers.map(marker => marker.message)).join(', ')}`,
658
+ initialSelection: this.rangeToSelection(range),
659
+ initialRange: range,
660
+ position: range.getStartPosition()
661
+ }
662
+ ]
663
+ };
664
+ }
665
+ }
666
+
667
+ export { AICodeActionsHelper, AINewSymbolNamesProvider, ChatCodeActionsProvider, SetupAgent, SetupTool };