@codingame/monaco-vscode-chat-service-override 23.3.0 → 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
@@ -6,15 +6,17 @@ import { RunOnceScheduler, timeout } from '@codingame/monaco-vscode-api/vscode/v
6
6
  import { encodeBase64 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
7
7
  import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
8
8
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
9
+ import { itemsEquals } from '@codingame/monaco-vscode-api/vscode/vs/base/common/equals';
9
10
  import { toErrorMessage } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errorMessage';
10
11
  import { CancellationError, isCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
11
12
  import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
12
- import { MarkdownString, markdownCommandLink } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
13
+ import { MarkdownString, createMarkdownCommandLink } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
13
14
  import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
14
15
  import { Disposable, DisposableStore, toDisposable, combinedDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
15
16
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
16
17
  import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
17
18
  import { StopWatch } from '@codingame/monaco-vscode-api/vscode/vs/base/common/stopwatch';
19
+ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
18
20
  import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
19
21
  import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
20
22
  import { AccessibilitySignal } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService';
@@ -25,6 +27,7 @@ import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/
25
27
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
26
28
  import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/jsonschemas/common/jsonContributionRegistry';
27
29
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
30
+ import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
28
31
  import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
29
32
  import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
30
33
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
@@ -37,11 +40,13 @@ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/c
37
40
  import { toToolSetVariableEntry, toToolVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatVariableEntries';
38
41
  import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
39
42
  import { ILanguageModelToolsConfirmationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsConfirmationService.service';
40
- import { VSCodeToolReference, GithubCopilotToolReference, createToolSchemaUri, stringifyPromptTsxPart, ToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
41
- import { Target } from '@codingame/monaco-vscode-8d4ef243-d8c1-540d-9f11-38df46f54c9f-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
42
- import { getToolConfirmationAlert } from '@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common/vscode/vs/workbench/contrib/chat/browser/chatAccessibilityProvider';
43
+ import { ToolDataSource, VSCodeToolReference, SpecedToolAliases, ToolSet, createToolSchemaUri, stringifyPromptTsxPart } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
44
+ import { getToolConfirmationAlert } from '@codingame/monaco-vscode-katex-common/vscode/vs/workbench/contrib/chat/browser/chatAccessibilityProvider';
45
+ import { observableFromEventOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
43
46
  import { ObservableSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/set';
47
+ import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
44
48
 
49
+ var LanguageModelToolsService_1;
45
50
  const jsonSchemaRegistry = ( Registry.as(Extensions.JSONContribution));
46
51
  var AutoApproveStorageKeys;
47
52
  (function (AutoApproveStorageKeys) {
@@ -49,10 +54,11 @@ var AutoApproveStorageKeys;
49
54
  })(AutoApproveStorageKeys || (AutoApproveStorageKeys = {}));
50
55
  const SkipAutoApproveConfirmationKey = 'vscode.chat.tools.global.autoApprove.testMode';
51
56
  const globalAutoApproveDescription = ( localize2(
52
- 5623,
57
+ 5729,
53
58
  'Global auto approve also known as "YOLO mode" disables manual approval completely for _all tools in all workspaces_, allowing the agent to act fully autonomously. This is extremely dangerous and is *never* recommended, even containerized environments like [Codespaces](https://github.com/features/codespaces) and [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) have user keys forwarded into the container that could be compromised.\n\n**This feature disables [critical security protections](https://code.visualstudio.com/docs/copilot/security) and makes it much easier for an attacker to compromise the machine.**'
54
59
  ));
55
60
  let LanguageModelToolsService = class LanguageModelToolsService extends Disposable {
61
+ static { LanguageModelToolsService_1 = this; }
56
62
  constructor(_instantiationService, _extensionService, _contextKeyService, _chatService, _dialogService, _telemetryService, _logService, _configurationService, _accessibilityService, _accessibilitySignalService, _storageService, _confirmationService) {
57
63
  super();
58
64
  this._instantiationService = _instantiationService;
@@ -75,22 +81,39 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
75
81
  this._tools = ( new Map());
76
82
  this._toolContextKeys = ( new Set());
77
83
  this._callsByRequestId = ( new Map());
78
- this._githubToVSCodeToolMap = {
79
- [GithubCopilotToolReference.shell]: VSCodeToolReference.runCommands,
80
- [GithubCopilotToolReference.customAgent]: VSCodeToolReference.runSubagent,
81
- 'github/*': 'github/github-mcp-server/*',
82
- 'playwright/*': 'microsoft/playwright-mcp/*',
83
- };
84
- this._githubPrefixToVSCodePrefix = [['github', 'github/github-mcp-server'], ['playwright', 'microsoft/playwright-mcp']];
84
+ this.toolsObservable = observableFromEventOpts({ equalsFn: itemsEquals() }, this.onDidChangeTools, () => Array.from(this.getTools()));
85
85
  this._toolSets = ( new ObservableSet());
86
- this.toolSets = this._toolSets.observable;
86
+ this.toolSets = derived(this, reader => {
87
+ const allToolSets = Array.from(this._toolSets.observable.read(reader));
88
+ return allToolSets.filter(toolSet => this.isPermitted(toolSet, reader));
89
+ });
90
+ this.toolsWithFullReferenceName = derived(reader => {
91
+ const result = [];
92
+ const coveredByToolSets = ( new Set());
93
+ for (const toolSet of this.toolSets.read(reader)) {
94
+ if (toolSet.source.type !== 'user') {
95
+ result.push([toolSet, getToolSetFullReferenceName(toolSet)]);
96
+ for (const tool of toolSet.getTools()) {
97
+ result.push([tool, getToolFullReferenceName(tool, toolSet)]);
98
+ coveredByToolSets.add(tool);
99
+ }
100
+ }
101
+ }
102
+ for (const tool of this.toolsObservable.read(reader)) {
103
+ if (tool.canBeReferencedInPrompt && !( coveredByToolSets.has(tool)) && this.isPermitted(tool, reader)) {
104
+ result.push([tool, getToolFullReferenceName(tool)]);
105
+ }
106
+ }
107
+ return result;
108
+ });
109
+ this._isAgentModeEnabled = observableConfigValue(ChatConfiguration.AgentEnabled, true, this._configurationService);
87
110
  this._register(this._contextKeyService.onDidChangeContext(e => {
88
111
  if (e.affectsSome(this._toolContextKeys)) {
89
112
  this._onDidChangeToolsScheduler.schedule();
90
113
  }
91
114
  }));
92
115
  this._register(this._configurationService.onDidChangeConfiguration(e => {
93
- if (e.affectsConfiguration(ChatConfiguration.ExtensionToolsEnabled)) {
116
+ if (e.affectsConfiguration(ChatConfiguration.ExtensionToolsEnabled) || e.affectsConfiguration(ChatConfiguration.AgentEnabled)) {
94
117
  this._onDidChangeToolsScheduler.schedule();
95
118
  }
96
119
  }));
@@ -102,6 +125,32 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
102
125
  }
103
126
  }));
104
127
  this._ctxToolsCount = ChatContextKeys.Tools.toolsCount.bindTo(_contextKeyService);
128
+ this.vscodeToolSet = this._register(this.createToolSet(ToolDataSource.Internal, 'vscode', VSCodeToolReference.vscode, {
129
+ icon: ThemeIcon.fromId(Codicon.vscode.id),
130
+ description: ( localize(5730, 'Use VS Code features')),
131
+ }));
132
+ this.executeToolSet = this._register(this.createToolSet(ToolDataSource.Internal, 'execute', SpecedToolAliases.execute, {
133
+ icon: ThemeIcon.fromId(Codicon.terminal.id),
134
+ description: ( localize(5731, 'Execute code and applications on your machine')),
135
+ }));
136
+ this.readToolSet = this._register(this.createToolSet(ToolDataSource.Internal, 'read', SpecedToolAliases.read, {
137
+ icon: ThemeIcon.fromId(Codicon.eye.id),
138
+ description: ( localize(5732, 'Read files in your workspace')),
139
+ }));
140
+ }
141
+ isPermitted(toolOrToolSet, reader) {
142
+ const agentModeEnabled = this._isAgentModeEnabled.read(reader);
143
+ if (agentModeEnabled !== false) {
144
+ return true;
145
+ }
146
+ const permittedInternalToolSetIds = [SpecedToolAliases.read, SpecedToolAliases.search, SpecedToolAliases.web];
147
+ if (toolOrToolSet instanceof ToolSet) {
148
+ const permitted = toolOrToolSet.source.type === 'internal' && permittedInternalToolSetIds.includes(toolOrToolSet.referenceName);
149
+ this._logService.trace(`LanguageModelToolsService#isPermitted: ToolSet ${toolOrToolSet.id} (${toolOrToolSet.referenceName}) permitted=${permitted}`);
150
+ return permitted;
151
+ }
152
+ this._logService.trace(`LanguageModelToolsService#isPermitted: Tool ${toolOrToolSet.id} (${toolOrToolSet.toolReferenceName}) permitted=false`);
153
+ return false;
105
154
  }
106
155
  dispose() {
107
156
  super.dispose();
@@ -162,7 +211,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
162
211
  return Iterable.filter(toolDatas, toolData => {
163
212
  const satisfiesWhenClause = includeDisabled || !toolData.when || this._contextKeyService.contextMatchesRules(toolData.when);
164
213
  const satisfiesExternalToolCheck = toolData.source.type !== 'extension' || !!extensionToolsEnabled;
165
- return satisfiesWhenClause && satisfiesExternalToolCheck;
214
+ const satisfiesPermittedCheck = includeDisabled || this.isPermitted(toolData);
215
+ return satisfiesWhenClause && satisfiesExternalToolCheck && satisfiesPermittedCheck;
166
216
  });
167
217
  }
168
218
  getTool(id) {
@@ -208,14 +258,14 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
208
258
  try {
209
259
  if (dto.context) {
210
260
  store = ( new DisposableStore());
211
- const model = this._chatService.getSessionByLegacyId(dto.context.sessionId);
261
+ const model = this._chatService.getSession(dto.context.sessionResource);
212
262
  if (!model) {
213
263
  throw ( new Error(`Tool called for unknown chat session`));
214
264
  }
215
265
  const request = model.getRequests().at(-1);
216
266
  requestId = request.id;
217
267
  dto.modelId = request.modelId;
218
- dto.userSelectedTools = request.userSelectedTools;
268
+ dto.userSelectedTools = request.userSelectedTools && { ...request.userSelectedTools };
219
269
  if (!( this._callsByRequestId.has(requestId))) {
220
270
  this._callsByRequestId.set(requestId, []);
221
271
  }
@@ -248,7 +298,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
248
298
  if (autoConfirmed) {
249
299
  IChatToolInvocation.confirmWith(toolInvocation, autoConfirmed);
250
300
  }
251
- model.acceptResponseProgress(request, toolInvocation);
301
+ this._chatService.appendProgress(request, toolInvocation);
252
302
  dto.toolSpecificData = toolInvocation?.toolSpecificData;
253
303
  if (preparedInvocation?.confirmationMessages?.title) {
254
304
  if (!IChatToolInvocation.executionConfirmedOrDenied(toolInvocation) && !autoConfirmed) {
@@ -377,26 +427,26 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
377
427
  if (!prepared) {
378
428
  prepared = {};
379
429
  }
380
- const toolReferenceName = getToolReferenceName(tool.data);
430
+ const fullReferenceName = getToolFullReferenceName(tool.data);
381
431
  prepared.confirmationMessages = {
382
432
  ...prepared.confirmationMessages,
383
- title: ( localize(5624, 'Allow tool to execute?')),
384
- message: ( localize(5625, 'Run the \'{0}\' tool?', toolReferenceName)),
433
+ title: ( localize(5733, 'Allow tool to execute?')),
434
+ message: ( localize(5734, 'Run the \'{0}\' tool?', fullReferenceName)),
385
435
  disclaimer: ( new MarkdownString(( localize(
386
- 5626,
436
+ 5735,
387
437
  'Auto approval for \'{0}\' is restricted via {1}.',
388
- getToolReferenceName(tool.data),
389
- markdownCommandLink({ title: '`' + ChatConfiguration.EligibleForAutoApproval + '`', id: 'workbench.action.openSettings', arguments: [ChatConfiguration.EligibleForAutoApproval] }, false)
438
+ getToolFullReferenceName(tool.data),
439
+ createMarkdownCommandLink({ title: '`' + ChatConfiguration.EligibleForAutoApproval + '`', id: 'workbench.action.openSettings', arguments: [ChatConfiguration.EligibleForAutoApproval] }, false)
390
440
  )), { isTrusted: true })),
391
441
  allowAutoConfirm: false,
392
442
  };
393
443
  }
394
444
  if (!isEligibleForAutoApproval && prepared?.confirmationMessages?.title) {
395
445
  prepared.confirmationMessages.disclaimer = ( new MarkdownString(( localize(
396
- 5626,
446
+ 5735,
397
447
  'Auto approval for \'{0}\' is restricted via {1}.',
398
- getToolReferenceName(tool.data),
399
- markdownCommandLink({ title: '`' + ChatConfiguration.EligibleForAutoApproval + '`', id: 'workbench.action.openSettings', arguments: [ChatConfiguration.EligibleForAutoApproval] }, false)
448
+ getToolFullReferenceName(tool.data),
449
+ createMarkdownCommandLink({ title: '`' + ChatConfiguration.EligibleForAutoApproval + '`', id: 'workbench.action.openSettings', arguments: [ChatConfiguration.EligibleForAutoApproval] }, false)
400
450
  )), { isTrusted: true }));
401
451
  }
402
452
  if (prepared?.confirmationMessages?.title) {
@@ -454,21 +504,37 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
454
504
  }
455
505
  }));
456
506
  }
457
- getEligbleForAutoApprovalSpecialCase(toolData) {
507
+ getEligibleForAutoApprovalSpecialCase(toolData) {
458
508
  if (toolData.id === 'vscode_fetchWebPage_internal') {
459
509
  return 'fetch';
460
510
  }
461
511
  return undefined;
462
512
  }
463
513
  isToolEligibleForAutoApproval(toolData) {
464
- const toolReferenceName = this.getEligbleForAutoApprovalSpecialCase(toolData) ?? getToolReferenceName(toolData);
514
+ const fullReferenceName = this.getEligibleForAutoApprovalSpecialCase(toolData) ?? getToolFullReferenceName(toolData);
465
515
  if (toolData.id === 'copilot_fetchWebPage') {
466
516
  return true;
467
517
  }
468
518
  const eligibilityConfig = this._configurationService.getValue(ChatConfiguration.EligibleForAutoApproval);
469
- return eligibilityConfig && typeof eligibilityConfig === 'object' && toolReferenceName
470
- ? (eligibilityConfig[toolReferenceName] ?? true)
471
- : true;
519
+ if (eligibilityConfig && typeof eligibilityConfig === 'object' && fullReferenceName) {
520
+ if (Object.prototype.hasOwnProperty.call(eligibilityConfig, fullReferenceName)) {
521
+ return eligibilityConfig[fullReferenceName];
522
+ }
523
+ if (toolData.legacyToolReferenceFullNames) {
524
+ for (const legacyName of toolData.legacyToolReferenceFullNames) {
525
+ if (Object.prototype.hasOwnProperty.call(eligibilityConfig, legacyName)) {
526
+ return eligibilityConfig[legacyName];
527
+ }
528
+ if (legacyName.includes('/')) {
529
+ const trimmedLegacyName = legacyName.split('/').pop();
530
+ if (trimmedLegacyName && Object.prototype.hasOwnProperty.call(eligibilityConfig, trimmedLegacyName)) {
531
+ return eligibilityConfig[trimmedLegacyName];
532
+ }
533
+ }
534
+ }
535
+ }
536
+ }
537
+ return true;
472
538
  }
473
539
  async shouldAutoConfirm(toolId, runsInWorkspace, source, parameters) {
474
540
  const tool = this._tools.get(toolId);
@@ -514,14 +580,14 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
514
580
  }
515
581
  const promptResult = await this._dialogService.prompt({
516
582
  type: Severity.Warning,
517
- message: ( localize(5627, 'Enable global auto approve?')),
583
+ message: ( localize(5736, 'Enable global auto approve?')),
518
584
  buttons: [
519
585
  {
520
- label: ( localize(5628, 'Enable')),
586
+ label: ( localize(5737, 'Enable')),
521
587
  run: () => true
522
588
  },
523
589
  {
524
- label: ( localize(5629, 'Disable')),
590
+ label: ( localize(5738, 'Disable')),
525
591
  run: () => false
526
592
  },
527
593
  ],
@@ -562,29 +628,71 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
562
628
  this._callsByRequestId.delete(requestId);
563
629
  }
564
630
  }
565
- mapGithubToolName(name) {
566
- const mapped = this._githubToVSCodeToolMap[name];
567
- if (mapped) {
568
- return mapped;
631
+ static { this.githubMCPServerAliases = ['github/github-mcp-server', 'io.github.github/github-mcp-server', 'github-mcp-server']; }
632
+ static { this.playwrightMCPServerAliases = ['microsoft/playwright-mcp', 'com.microsoft/playwright-mcp']; }
633
+ *getToolSetAliases(toolSet, fullReferenceName) {
634
+ if (fullReferenceName !== toolSet.referenceName) {
635
+ yield toolSet.referenceName;
636
+ }
637
+ if (toolSet.legacyFullNames) {
638
+ yield* toolSet.legacyFullNames;
569
639
  }
570
- for (const [fromPrefix, toPrefix] of this._githubPrefixToVSCodePrefix) {
571
- const regexp = ( new RegExp(`^${fromPrefix}(/[^/]+)$`));
572
- const m = name.match(regexp);
573
- if (m) {
574
- return toPrefix + m[1];
640
+ switch (toolSet.referenceName) {
641
+ case 'github':
642
+ for (const alias of LanguageModelToolsService_1.githubMCPServerAliases) {
643
+ yield alias + '/*';
644
+ }
645
+ break;
646
+ case 'playwright':
647
+ for (const alias of LanguageModelToolsService_1.playwrightMCPServerAliases) {
648
+ yield alias + '/*';
649
+ }
650
+ break;
651
+ case SpecedToolAliases.execute:
652
+ yield 'shell';
653
+ break;
654
+ case SpecedToolAliases.agent:
655
+ yield VSCodeToolReference.runSubagent;
656
+ yield 'custom-agent';
657
+ break;
658
+ }
659
+ }
660
+ *getToolAliases(toolSet, fullReferenceName) {
661
+ const referenceName = toolSet.toolReferenceName ?? toolSet.displayName;
662
+ if (fullReferenceName !== referenceName && referenceName !== VSCodeToolReference.runSubagent) {
663
+ yield referenceName;
664
+ }
665
+ if (toolSet.legacyToolReferenceFullNames) {
666
+ for (const legacyName of toolSet.legacyToolReferenceFullNames) {
667
+ yield legacyName;
668
+ const lastSlashIndex = legacyName.lastIndexOf('/');
669
+ if (lastSlashIndex !== -1) {
670
+ yield legacyName.substring(lastSlashIndex + 1);
671
+ }
575
672
  }
576
673
  }
577
- return name;
578
- }
579
- toToolAndToolSetEnablementMap(enabledQualifiedToolOrToolSetNames, target) {
580
- if (target === undefined || target === Target.GitHubCopilot) {
581
- enabledQualifiedToolOrToolSetNames = ( enabledQualifiedToolOrToolSetNames.map(name => this.mapGithubToolName(name)));
674
+ const slashIndex = fullReferenceName.lastIndexOf('/');
675
+ if (slashIndex !== -1) {
676
+ switch (fullReferenceName.substring(0, slashIndex)) {
677
+ case 'github':
678
+ for (const alias of LanguageModelToolsService_1.githubMCPServerAliases) {
679
+ yield alias + fullReferenceName.substring(slashIndex);
680
+ }
681
+ break;
682
+ case 'playwright':
683
+ for (const alias of LanguageModelToolsService_1.playwrightMCPServerAliases) {
684
+ yield alias + fullReferenceName.substring(slashIndex);
685
+ }
686
+ break;
687
+ }
582
688
  }
583
- const toolOrToolSetNames = ( new Set(enabledQualifiedToolOrToolSetNames));
689
+ }
690
+ toToolAndToolSetEnablementMap(fullReferenceNames, _target) {
691
+ const toolOrToolSetNames = ( new Set(fullReferenceNames));
584
692
  const result = ( new Map());
585
- for (const [tool, toolReferenceName] of this.getPromptReferencableTools()) {
693
+ for (const [tool, fullReferenceName] of this.toolsWithFullReferenceName.get()) {
586
694
  if (tool instanceof ToolSet) {
587
- const enabled = ( toolOrToolSetNames.has(toolReferenceName)) || ( toolOrToolSetNames.has(tool.referenceName));
695
+ const enabled = ( toolOrToolSetNames.has(fullReferenceName)) || ( Iterable.some(this.getToolSetAliases(tool, fullReferenceName), name => ( toolOrToolSetNames.has(name))));
588
696
  result.set(tool, enabled);
589
697
  if (enabled) {
590
698
  for (const memberTool of tool.getTools()) {
@@ -594,7 +702,12 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
594
702
  }
595
703
  else {
596
704
  if (!( result.has(tool))) {
597
- const enabled = ( toolOrToolSetNames.has(toolReferenceName)) || ( toolOrToolSetNames.has(tool.toolReferenceName ?? tool.displayName));
705
+ const enabled = ( toolOrToolSetNames.has(fullReferenceName))
706
+ || ( Iterable.some(this.getToolAliases(tool, fullReferenceName), name => ( toolOrToolSetNames.has(name))))
707
+ || !!tool.legacyToolReferenceFullNames?.some(toolFullName => {
708
+ const index = toolFullName.lastIndexOf('/');
709
+ return index !== -1 && ( toolOrToolSetNames.has(toolFullName.substring(0, index)));
710
+ });
598
711
  result.set(tool, enabled);
599
712
  }
600
713
  }
@@ -607,13 +720,13 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
607
720
  }
608
721
  return result;
609
722
  }
610
- toQualifiedToolNames(map) {
723
+ toFullReferenceNames(map) {
611
724
  const result = [];
612
725
  const toolsCoveredByEnabledToolSet = ( new Set());
613
- for (const [tool, toolReferenceName] of this.getPromptReferencableTools()) {
726
+ for (const [tool, fullReferenceName] of this.toolsWithFullReferenceName.get()) {
614
727
  if (tool instanceof ToolSet) {
615
728
  if (map.get(tool)) {
616
- result.push(toolReferenceName);
729
+ result.push(fullReferenceName);
617
730
  for (const memberTool of tool.getTools()) {
618
731
  toolsCoveredByEnabledToolSet.add(memberTool);
619
732
  }
@@ -621,7 +734,7 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
621
734
  }
622
735
  else {
623
736
  if (map.get(tool) && !( toolsCoveredByEnabledToolSet.has(tool))) {
624
- result.push(toolReferenceName);
737
+ result.push(fullReferenceName);
625
738
  }
626
739
  }
627
740
  }
@@ -629,8 +742,8 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
629
742
  }
630
743
  toToolReferences(variableReferences) {
631
744
  const toolsOrToolSetByName = ( new Map());
632
- for (const [tool, toolReferenceName] of this.getPromptReferencableTools()) {
633
- toolsOrToolSetByName.set(toolReferenceName, tool);
745
+ for (const [tool, fullReferenceName] of this.toolsWithFullReferenceName.get()) {
746
+ toolsOrToolSetByName.set(fullReferenceName, tool);
634
747
  }
635
748
  const result = [];
636
749
  for (const ref of variableReferences) {
@@ -662,8 +775,18 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
662
775
  }
663
776
  return undefined;
664
777
  }
778
+ getSpecedToolSetName(referenceName) {
779
+ if (LanguageModelToolsService_1.githubMCPServerAliases.includes(referenceName)) {
780
+ return 'github';
781
+ }
782
+ if (LanguageModelToolsService_1.playwrightMCPServerAliases.includes(referenceName)) {
783
+ return 'playwright';
784
+ }
785
+ return referenceName;
786
+ }
665
787
  createToolSet(source, id, referenceName, options) {
666
788
  const that = this;
789
+ referenceName = this.getSpecedToolSetName(referenceName);
667
790
  const result = new (class extends ToolSet {
668
791
  dispose() {
669
792
  if (( that._toolSets.has(result))) {
@@ -671,68 +794,80 @@ let LanguageModelToolsService = class LanguageModelToolsService extends Disposab
671
794
  that._toolSets.delete(result);
672
795
  }
673
796
  }
674
- })(id, referenceName, options?.icon ?? Codicon.tools, source, options?.description);
797
+ })(id, referenceName, options?.icon ?? Codicon.tools, source, options?.description, options?.legacyFullNames);
675
798
  this._toolSets.add(result);
676
799
  return result;
677
800
  }
678
- *getPromptReferencableTools() {
679
- const coveredByToolSets = ( new Set());
680
- for (const toolSet of this.toolSets.get()) {
681
- if (toolSet.source.type !== 'user') {
682
- yield [toolSet, getToolSetReferenceName(toolSet)];
683
- for (const tool of toolSet.getTools()) {
684
- yield [tool, getToolReferenceName(tool, toolSet)];
685
- coveredByToolSets.add(tool);
686
- }
687
- }
688
- }
689
- for (const tool of this.getTools()) {
690
- if (tool.canBeReferencedInPrompt && !( coveredByToolSets.has(tool))) {
691
- yield [tool, getToolReferenceName(tool)];
692
- }
693
- }
694
- }
695
- *getQualifiedToolNames() {
696
- for (const [, toolReferenceName] of this.getPromptReferencableTools()) {
697
- yield toolReferenceName;
801
+ *getFullReferenceNames() {
802
+ for (const [, fullReferenceName] of this.toolsWithFullReferenceName.get()) {
803
+ yield fullReferenceName;
698
804
  }
699
805
  }
700
- getDeprecatedQualifiedToolNames() {
806
+ getDeprecatedFullReferenceNames() {
701
807
  const result = ( new Map());
702
- const add = (name, toolReferenceName) => {
703
- if (name !== toolReferenceName) {
704
- result.set(name, toolReferenceName);
808
+ const knownToolSetNames = ( new Set());
809
+ const add = (name, fullReferenceName) => {
810
+ if (name !== fullReferenceName) {
811
+ if (!( result.has(name))) {
812
+ result.set(name, ( new Set()));
813
+ }
814
+ result.get(name).add(fullReferenceName);
705
815
  }
706
816
  };
707
- for (const [tool, toolReferenceName] of this.getPromptReferencableTools()) {
817
+ for (const [tool, _] of this.toolsWithFullReferenceName.get()) {
818
+ if (tool instanceof ToolSet) {
819
+ knownToolSetNames.add(tool.referenceName);
820
+ if (tool.legacyFullNames) {
821
+ for (const legacyName of tool.legacyFullNames) {
822
+ knownToolSetNames.add(legacyName);
823
+ }
824
+ }
825
+ }
826
+ }
827
+ for (const [tool, fullReferenceName] of this.toolsWithFullReferenceName.get()) {
708
828
  if (tool instanceof ToolSet) {
709
- add(tool.referenceName, toolReferenceName);
829
+ for (const alias of this.getToolSetAliases(tool, fullReferenceName)) {
830
+ add(alias, fullReferenceName);
831
+ }
710
832
  }
711
833
  else {
712
- add(tool.toolReferenceName ?? tool.displayName, toolReferenceName);
834
+ for (const alias of this.getToolAliases(tool, fullReferenceName)) {
835
+ add(alias, fullReferenceName);
836
+ }
837
+ if (tool.legacyToolReferenceFullNames) {
838
+ for (const legacyName of tool.legacyToolReferenceFullNames) {
839
+ if (legacyName.includes('/')) {
840
+ const toolSetFullName = legacyName.substring(0, legacyName.lastIndexOf('/'));
841
+ if (!( knownToolSetNames.has(toolSetFullName))) {
842
+ add(toolSetFullName, fullReferenceName);
843
+ }
844
+ }
845
+ }
846
+ }
713
847
  }
714
848
  }
715
849
  return result;
716
850
  }
717
- getToolByQualifiedName(qualifiedName) {
718
- for (const [tool, toolReferenceName] of this.getPromptReferencableTools()) {
719
- if (qualifiedName === toolReferenceName) {
851
+ getToolByFullReferenceName(fullReferenceName) {
852
+ for (const [tool, toolFullReferenceName] of this.toolsWithFullReferenceName.get()) {
853
+ if (fullReferenceName === toolFullReferenceName) {
720
854
  return tool;
721
855
  }
722
- if (qualifiedName === (tool instanceof ToolSet ? tool.referenceName : tool.toolReferenceName ?? tool.displayName)) {
856
+ const aliases = tool instanceof ToolSet ? this.getToolSetAliases(tool, toolFullReferenceName) : this.getToolAliases(tool, toolFullReferenceName);
857
+ if (( Iterable.some(aliases, alias => fullReferenceName === alias))) {
723
858
  return tool;
724
859
  }
725
860
  }
726
861
  return undefined;
727
862
  }
728
- getQualifiedToolName(tool, toolSet) {
863
+ getFullReferenceName(tool, toolSet) {
729
864
  if (tool instanceof ToolSet) {
730
- return getToolSetReferenceName(tool);
865
+ return getToolSetFullReferenceName(tool);
731
866
  }
732
- return getToolReferenceName(tool, toolSet);
867
+ return getToolFullReferenceName(tool, toolSet);
733
868
  }
734
869
  };
735
- LanguageModelToolsService = ( __decorate([
870
+ LanguageModelToolsService = LanguageModelToolsService_1 = ( __decorate([
736
871
  ( __param(0, IInstantiationService)),
737
872
  ( __param(1, IExtensionService)),
738
873
  ( __param(2, IContextKeyService)),
@@ -746,7 +881,7 @@ LanguageModelToolsService = ( __decorate([
746
881
  ( __param(10, IStorageService)),
747
882
  ( __param(11, ILanguageModelToolsConfirmationService))
748
883
  ], LanguageModelToolsService));
749
- function getToolReferenceName(tool, toolSet) {
884
+ function getToolFullReferenceName(tool, toolSet) {
750
885
  const toolName = tool.toolReferenceName ?? tool.displayName;
751
886
  if (toolSet) {
752
887
  return `${toolSet.referenceName}/${toolName}`;
@@ -756,7 +891,7 @@ function getToolReferenceName(tool, toolSet) {
756
891
  }
757
892
  return toolName;
758
893
  }
759
- function getToolSetReferenceName(toolSet) {
894
+ function getToolSetFullReferenceName(toolSet) {
760
895
  if (toolSet.source.type === 'mcp') {
761
896
  return `${toolSet.referenceName}/*`;
762
897
  }
@@ -0,0 +1,57 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+
6
+ .interactive-session .interactive-input-part > .chat-input-widgets-container .chat-status-widget {
7
+ padding: 6px 3px 6px 3px;
8
+ box-sizing: border-box;
9
+ border: 1px solid var(--vscode-input-border, transparent);
10
+ background-color: var(--vscode-editor-background);
11
+ border-bottom: none;
12
+ border-top-left-radius: 4px;
13
+ border-top-right-radius: 4px;
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: space-between;
17
+ gap: 8px;
18
+ }
19
+
20
+ .interactive-session .interactive-input-part > .chat-input-widgets-container .chat-status-widget .chat-status-content {
21
+ display: flex;
22
+ align-items: center;
23
+ flex: 1;
24
+ min-width: 0;
25
+ padding-left: 8px;
26
+ }
27
+
28
+ .interactive-session .interactive-input-part > .chat-input-widgets-container .chat-status-widget .chat-status-message {
29
+ font-size: 11px;
30
+ line-height: 16px;
31
+ color: var(--vscode-foreground);
32
+ overflow: hidden;
33
+ text-overflow: ellipsis;
34
+ white-space: nowrap;
35
+ }
36
+
37
+ .interactive-session .interactive-input-part > .chat-input-widgets-container .chat-status-widget .chat-status-action {
38
+ flex-shrink: 0;
39
+ padding-right: 4px;
40
+ }
41
+
42
+ .interactive-session .interactive-input-part > .chat-input-widgets-container .chat-status-widget .chat-status-button {
43
+ font-size: 11px;
44
+ padding: 2px 8px;
45
+ min-width: unset;
46
+ height: 22px;
47
+ }
48
+
49
+ .interactive-session .interactive-input-part > .chat-input-widgets-container:has(.chat-status-widget:not([style*="display: none"])) + .chat-todo-list-widget-container .chat-todo-list-widget {
50
+ border-top-left-radius: 0;
51
+ border-top-right-radius: 0;
52
+ }
53
+
54
+ .interactive-session .interactive-input-part > .chat-input-widgets-container:has(.chat-status-widget:not([style*="display: none"])) + .chat-todo-list-widget-container:not(:has(.chat-todo-list-widget.has-todos)) + .chat-editing-session .chat-editing-session-container {
55
+ border-top-left-radius: 0;
56
+ border-top-right-radius: 0;
57
+ }