@codingame/monaco-vscode-chat-service-override 25.1.2 → 26.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/index.js +24 -3
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +23 -3
  4. package/vscode/src/vs/platform/browserElements/common/browserElements.js +13 -6
  5. package/vscode/src/vs/platform/domWidget/browser/domWidget.js +4 -4
  6. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +42 -27
  8. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +14 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +218 -74
  10. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatTerminalOutputAccessibleView.js +6 -8
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +14 -9
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +165 -168
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +27 -25
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +141 -140
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +189 -121
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +14 -15
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +60 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +435 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +28 -12
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +10 -12
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +37 -16
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.d.ts +11 -0
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +54 -24
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +73 -34
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +71 -30
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +151 -89
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +12 -15
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +39 -40
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +90 -125
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +5 -2
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +263 -143
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.js +4 -4
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +188 -126
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -1
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +37 -28
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +21 -9
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +392 -226
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +31 -27
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +25 -23
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +1 -3
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.d.ts +2 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +13 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +20 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +83 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +68 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +319 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.d.ts +1 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +215 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +179 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +951 -0
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agentsessionprojection.css +20 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +388 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/unifiedQuickAccess.css +195 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +120 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +394 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.d.ts +38 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +95 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +3 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +31 -29
  61. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +49 -47
  62. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +4 -6
  63. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/media/simpleBrowserOverlay.css +0 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +188 -151
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +1012 -639
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +256 -151
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +8 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +182 -101
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +79 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +193 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +9 -7
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.d.ts +68 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +253 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +69 -50
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -4
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +52 -33
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +5 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +274 -155
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +2 -10
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +130 -104
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +12 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +385 -160
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +53 -36
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +112 -75
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +19 -10
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +31 -11
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +39 -17
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNewNotebookContentEdits.js +10 -14
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +0 -2
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +25 -16
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +265 -203
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +29 -26
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.js +114 -60
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +16 -19
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +44 -30
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +119 -45
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +152 -136
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +12 -8
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +51 -31
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +323 -217
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -3
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +653 -401
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +52 -40
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +5 -2
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +43 -28
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +182 -136
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +33 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +548 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +222 -138
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +3 -3
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +151 -113
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +6 -4
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +453 -217
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +162 -88
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/media/chatSetup.css +2 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +0 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +1 -13
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +309 -233
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +55 -53
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.js +3 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +37 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +109 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +35 -23
  132. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.d.ts +9 -4
  133. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +73 -33
  134. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +47 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +333 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +39 -25
  137. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +9 -5
  138. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +23 -20
  139. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +20 -16
  141. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +65 -57
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +48 -36
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +20 -12
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +52 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +155 -159
  147. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +24 -14
  148. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +521 -246
  149. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +107 -76
  150. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +28 -24
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.js +10 -6
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.d.ts +16 -0
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.js +57 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatLayoutService.js +4 -6
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +56 -44
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +0 -3
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +37 -47
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatEditorInputContentProvider.js +5 -7
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +10 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +1284 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +179 -125
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +9 -11
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/editorHoverWrapper.js +7 -6
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +96 -78
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +58 -53
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +25 -11
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +484 -292
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.d.ts +1 -6
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +65 -92
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +16 -19
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +1 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +9 -1
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +331 -189
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +81 -93
  175. package/vscode/src/vs/workbench/contrib/chat/common/ignoredFiles.js +1 -3
  176. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -3
  177. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +6 -7
  178. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +36 -8
  179. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +169 -31
  180. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.d.ts +6 -0
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +141 -0
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -4
  183. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +218 -144
  184. package/vscode/src/vs/workbench/contrib/chat/common/model/chatTransferService.js +20 -10
  185. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +109 -0
  186. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +349 -0
  187. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +9 -8
  188. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +9 -0
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +139 -36
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +3 -6
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +64 -51
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +49 -34
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +21 -13
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +125 -97
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +91 -131
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +8 -5
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +488 -222
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +32 -12
  201. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +58 -13
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +717 -200
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +79 -18
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +371 -130
  205. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +0 -1
  206. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +3 -7
  207. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +79 -61
  208. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +27 -21
  209. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +7 -10
  210. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -1
  211. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +26 -32
  212. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +2 -2
  213. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -60
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +115 -426
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +15 -0
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +127 -0
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -37
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +16 -0
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +21 -0
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +51 -0
  221. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +334 -0
  222. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.d.ts +41 -0
  223. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +424 -0
  224. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.d.ts +4 -0
  225. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +58 -0
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.d.ts +7 -0
  227. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +195 -0
  228. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.d.ts +8 -0
  229. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +368 -0
  230. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.d.ts +2 -0
  231. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +7 -0
  232. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +1 -1
  234. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +23 -25
  235. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/common/remoteCodingAgentsService.js +7 -8
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +34 -38
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +8 -12
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +103 -95
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +28 -16
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +4 -5
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +12 -8
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +65 -54
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +86 -60
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +13 -26
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -1
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +56 -46
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +2 -2
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +63 -31
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +2 -1
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +35 -30
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -1
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +44 -37
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +3 -4
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +3 -3
  258. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -0
  259. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +70 -50
  260. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +26 -394
  261. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +85 -49
  262. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +68 -27
  263. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +1 -0
  264. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +67 -45
  265. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.d.ts +12 -0
  266. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +106 -0
  267. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +2 -2
  268. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +177 -97
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +136 -49
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +2 -1
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +128 -112
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +51 -49
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +8 -0
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +25 -0
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +12 -0
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +21 -0
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +5 -14
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +2 -4
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +1 -0
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -0
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +29 -0
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +30 -31
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +16 -17
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +19 -20
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.d.ts +11 -0
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +58 -0
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +31 -3
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +325 -199
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -1
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +1 -1
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +33 -38
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +45 -5
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +746 -456
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +145 -98
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +88 -37
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +120 -51
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +25 -28
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +5 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +58 -12
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +12 -0
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.js +17 -0
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +8 -1
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +47 -28
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +37 -0
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +171 -0
  313. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +0 -58
  314. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +0 -213
  315. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +0 -39
  316. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +0 -243
  317. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.d.ts +0 -7
  318. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +0 -41
  319. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +0 -166
  320. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +0 -607
  321. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +0 -255
  322. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
  323. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -396
  324. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -9
  325. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -379
  326. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -117
  327. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +0 -141
  328. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +0 -961
  329. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +0 -36
  330. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +0 -447
  331. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.d.ts +0 -6
  332. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.js +0 -251
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.d.ts +0 -10
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +0 -42
@@ -2,16 +2,13 @@
2
2
  import { assertNever } from '@codingame/monaco-vscode-api/vscode/vs/base/common/assert';
3
3
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
4
4
  import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
5
- import { createMarkdownCommandLink } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
6
5
  import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
7
- import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
8
6
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
9
7
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
10
- import { CommandsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands';
11
8
  import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
12
- import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
13
9
  import { ExtensionIdentifier } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
14
10
  import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
11
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
15
12
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
16
13
  import { ExtensionEditorTab } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions';
17
14
  import { IExtensionsWorkbenchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions.service';
@@ -20,48 +17,52 @@ import { IMcpRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/c
20
17
  import { McpServerEditorTab, McpConnectionState, McpServerCacheState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes';
21
18
  import { IMcpService, IMcpWorkbenchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
22
19
  import { startServerAndWaitForLiveTools } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypesUtils';
23
- import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
24
20
  import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
25
21
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
26
22
  import { ConfigureToolSets } from '../tools/toolSetsContribution.js';
27
23
 
28
24
  var BucketOrdinal;
29
- (function (BucketOrdinal) {
25
+ (function(BucketOrdinal) {
30
26
  BucketOrdinal[BucketOrdinal["User"] = 0] = "User";
31
27
  BucketOrdinal[BucketOrdinal["BuiltIn"] = 1] = "BuiltIn";
32
28
  BucketOrdinal[BucketOrdinal["Mcp"] = 2] = "Mcp";
33
29
  BucketOrdinal[BucketOrdinal["Extension"] = 3] = "Extension";
34
30
  })(BucketOrdinal || (BucketOrdinal = {}));
35
31
  function isBucketTreeItem(item) {
36
- return item.itemType === 'bucket';
32
+ return item.itemType === "bucket";
37
33
  }
38
34
  function isToolSetTreeItem(item) {
39
- return item.itemType === 'toolset';
35
+ return item.itemType === "toolset";
40
36
  }
41
37
  function isToolTreeItem(item) {
42
- return item.itemType === 'tool';
38
+ return item.itemType === "tool";
43
39
  }
44
40
  function isCallbackTreeItem(item) {
45
- return item.itemType === 'callback';
41
+ return item.itemType === "callback";
46
42
  }
47
43
  function mapIconToTreeItem(icon, useDefaultToolIcon = false) {
48
44
  if (!icon) {
49
45
  if (useDefaultToolIcon) {
50
- return { iconClass: ThemeIcon.asClassName(Codicon.tools) };
46
+ return {
47
+ iconClass: ThemeIcon.asClassName(Codicon.tools)
48
+ };
51
49
  }
52
50
  return {};
53
51
  }
54
52
  if (ThemeIcon.isThemeIcon(icon)) {
55
- return { iconClass: ThemeIcon.asClassName(icon) };
56
- }
57
- else {
58
- return { iconPath: icon };
53
+ return {
54
+ iconClass: ThemeIcon.asClassName(icon)
55
+ };
56
+ } else {
57
+ return {
58
+ iconPath: icon
59
+ };
59
60
  }
60
61
  }
61
62
  function createToolTreeItemFromData(tool, checked) {
62
63
  const iconProps = mapIconToTreeItem(tool.icon, true);
63
64
  return {
64
- itemType: 'tool',
65
+ itemType: "tool",
65
66
  tool,
66
67
  id: tool.id,
67
68
  label: tool.toolReferenceName ?? tool.displayName,
@@ -73,16 +74,18 @@ function createToolTreeItemFromData(tool, checked) {
73
74
  function createToolSetTreeItem(toolset, checked, editorService) {
74
75
  const iconProps = mapIconToTreeItem(toolset.icon);
75
76
  const buttons = [];
76
- if (toolset.source.type === 'user') {
77
+ if (toolset.source.type === "user") {
77
78
  const resource = toolset.source.file;
78
79
  buttons.push({
79
80
  iconClass: ThemeIcon.asClassName(Codicon.edit),
80
- tooltip: ( localize(4819, "Edit Tool Set")),
81
- action: () => editorService.openEditor({ resource })
81
+ tooltip: ( localize(4862, "Edit Tool Set")),
82
+ action: () => editorService.openEditor({
83
+ resource
84
+ })
82
85
  });
83
86
  }
84
87
  return {
85
- itemType: 'toolset',
88
+ itemType: "toolset",
86
89
  toolset,
87
90
  buttons,
88
91
  id: toolset.id,
@@ -94,7 +97,7 @@ function createToolSetTreeItem(toolset, checked, editorService) {
94
97
  ...iconProps
95
98
  };
96
99
  }
97
- async function showToolsPicker(accessor, placeHolder, description, getToolsEntries, token) {
100
+ async function showToolsPicker(accessor, placeHolder, source, description, getToolsEntries, model, token) {
98
101
  const quickPickService = accessor.get(IQuickInputService);
99
102
  const mcpService = accessor.get(IMcpService);
100
103
  const mcpRegistry = accessor.get(IMcpRegistry);
@@ -103,7 +106,7 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
103
106
  const editorService = accessor.get(IEditorService);
104
107
  const mcpWorkbenchService = accessor.get(IMcpWorkbenchService);
105
108
  const toolsService = accessor.get(ILanguageModelToolsService);
106
- const toolLimit = accessor.get(IContextKeyService).getContextKeyValue(ChatContextKeys.chatToolGroupingThreshold.key);
109
+ const telemetryService = accessor.get(ITelemetryService);
107
110
  const mcpServerByTool = ( new Map());
108
111
  for (const server of mcpService.servers.get()) {
109
112
  for (const tool of server.tools.get()) {
@@ -111,42 +114,45 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
111
114
  }
112
115
  }
113
116
  function computeItems(previousToolsEntries) {
114
- let toolsEntries = getToolsEntries ? ( new Map(getToolsEntries())) : undefined;
117
+ let toolsEntries = getToolsEntries ? ( new Map(( [...getToolsEntries()].map(([k, enabled]) => [k.id, enabled])))) : undefined;
115
118
  if (!toolsEntries) {
116
119
  const defaultEntries = ( new Map());
117
- for (const tool of toolsService.getTools()) {
120
+ for (const tool of toolsService.getTools(model)) {
118
121
  if (tool.canBeReferencedInPrompt) {
119
122
  defaultEntries.set(tool, false);
120
123
  }
121
124
  }
122
- for (const toolSet of toolsService.toolSets.get()) {
125
+ for (const toolSet of toolsService.getToolSetsForModel(model)) {
123
126
  defaultEntries.set(toolSet, false);
124
127
  }
125
128
  toolsEntries = defaultEntries;
126
129
  }
127
130
  previousToolsEntries?.forEach((value, key) => {
128
- toolsEntries.set(key, value);
131
+ toolsEntries.set(key.id, value);
129
132
  });
130
133
  const treeItems = [];
131
134
  const bucketMap = ( new Map());
132
- const getKey = (source) => {
135
+ const getKey = source => {
133
136
  switch (source.type) {
134
- case 'mcp':
135
- case 'extension':
136
- return ToolDataSource.toKey(source);
137
- case 'internal':
138
- return ( BucketOrdinal.BuiltIn.toString());
139
- case 'user':
140
- return ( BucketOrdinal.User.toString());
141
- case 'external':
142
- throw ( new Error('should not be reachable'));
143
- default:
144
- assertNever();
137
+ case "mcp":
138
+ case "extension":
139
+ return ToolDataSource.toKey(source);
140
+ case "internal":
141
+ return ( BucketOrdinal.BuiltIn.toString());
142
+ case "user":
143
+ return ( BucketOrdinal.User.toString());
144
+ case "external":
145
+ throw ( new Error("should not be reachable"));
146
+ default:
147
+ assertNever();
145
148
  }
146
149
  };
147
- const mcpServers = ( new Map(( mcpService.servers.get().map(s => [s.definition.id, { server: s, seen: false }]))));
150
+ const mcpServers = ( new Map(( mcpService.servers.get().map(s => [s.definition.id, {
151
+ server: s,
152
+ seen: false
153
+ }]))));
148
154
  const createBucket = (source, key) => {
149
- if (source.type === 'mcp') {
155
+ if (source.type === "mcp") {
150
156
  const mcpServerEntry = mcpServers.get(source.definitionId);
151
157
  if (!mcpServerEntry) {
152
158
  return undefined;
@@ -158,24 +164,28 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
158
164
  if (collection?.source) {
159
165
  buttons.push({
160
166
  iconClass: ThemeIcon.asClassName(Codicon.settingsGear),
161
- tooltip: ( localize(4820, "Configure {0}", collection.label)),
162
- action: () => collection.source ? collection.source instanceof ExtensionIdentifier ? extensionsWorkbenchService.open(collection.source.value, { tab: ExtensionEditorTab.Features, feature: 'mcp' }) : mcpWorkbenchService.open(collection.source, { tab: McpServerEditorTab.Configuration }) : undefined
167
+ tooltip: ( localize(4863, "Configure {0}", collection.label)),
168
+ action: () => collection.source ? collection.source instanceof ExtensionIdentifier ? extensionsWorkbenchService.open(collection.source.value, {
169
+ tab: ExtensionEditorTab.Features,
170
+ feature: "mcp"
171
+ }) : mcpWorkbenchService.open(collection.source, {
172
+ tab: McpServerEditorTab.Configuration
173
+ }) : undefined
163
174
  });
164
- }
165
- else if (collection?.presentation?.origin) {
175
+ } else if (collection?.presentation?.origin) {
166
176
  buttons.push({
167
177
  iconClass: ThemeIcon.asClassName(Codicon.settingsGear),
168
- tooltip: ( localize(4820, "Configure {0}", collection.label)),
178
+ tooltip: ( localize(4863, "Configure {0}", collection.label)),
169
179
  action: () => editorService.openEditor({
170
- resource: collection.presentation.origin,
180
+ resource: collection.presentation.origin
171
181
  })
172
182
  });
173
183
  }
174
184
  if (mcpServer.connectionState.get().state === McpConnectionState.Kind.Error) {
175
185
  buttons.push({
176
186
  iconClass: ThemeIcon.asClassName(Codicon.warning),
177
- tooltip: ( localize(4821, "Show Output")),
178
- action: () => mcpServer.showOutput(),
187
+ tooltip: ( localize(4864, "Show Output")),
188
+ action: () => mcpServer.showOutput()
179
189
  });
180
190
  }
181
191
  const cacheState = mcpServer.cacheState.get();
@@ -184,14 +194,16 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
184
194
  if (cacheState === McpServerCacheState.Unknown || cacheState === McpServerCacheState.Outdated) {
185
195
  collapsed = false;
186
196
  children.push({
187
- itemType: 'callback',
197
+ itemType: "callback",
188
198
  iconClass: ThemeIcon.asClassName(Codicon.sync),
189
- label: ( localize(4822, "Update Tools")),
199
+ label: ( localize(4865, "Update Tools")),
190
200
  pickable: false,
191
201
  run: () => {
192
202
  treePicker.busy = true;
193
203
  (async () => {
194
- const ok = await startServerAndWaitForLiveTools(mcpServer, { promptType: 'all-untrusted' });
204
+ const ok = await startServerAndWaitForLiveTools(mcpServer, {
205
+ promptType: "all-untrusted"
206
+ });
195
207
  if (!ok) {
196
208
  mcpServer.showOutput();
197
209
  treePicker.hide();
@@ -201,11 +213,11 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
201
213
  computeItems(collectResults());
202
214
  })();
203
215
  return false;
204
- },
216
+ }
205
217
  });
206
218
  }
207
219
  const bucket = {
208
- itemType: 'bucket',
220
+ itemType: "bucket",
209
221
  ordinal: BucketOrdinal.Mcp,
210
222
  id: key,
211
223
  label: source.label,
@@ -213,20 +225,18 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
213
225
  collapsed,
214
226
  children,
215
227
  buttons,
216
- sortOrder: 2,
228
+ sortOrder: 2
217
229
  };
218
230
  const iconPath = mcpServer.serverMetadata.get()?.icons.getUrl(22);
219
231
  if (iconPath) {
220
232
  bucket.iconPath = iconPath;
221
- }
222
- else {
233
+ } else {
223
234
  bucket.iconClass = ThemeIcon.asClassName(Codicon.mcp);
224
235
  }
225
236
  return bucket;
226
- }
227
- else if (source.type === 'extension') {
237
+ } else if (source.type === "extension") {
228
238
  return {
229
- itemType: 'bucket',
239
+ itemType: "bucket",
230
240
  ordinal: BucketOrdinal.Extension,
231
241
  id: key,
232
242
  label: source.label,
@@ -235,37 +245,35 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
235
245
  buttons: [],
236
246
  collapsed: true,
237
247
  iconClass: ThemeIcon.asClassName(Codicon.extensions),
238
- sortOrder: 3,
248
+ sortOrder: 3
239
249
  };
240
- }
241
- else if (source.type === 'internal') {
250
+ } else if (source.type === "internal") {
242
251
  return {
243
- itemType: 'bucket',
252
+ itemType: "bucket",
244
253
  ordinal: BucketOrdinal.BuiltIn,
245
254
  id: key,
246
- label: ( localize(4823, "Built-In")),
255
+ label: ( localize(4866, "Built-In")),
247
256
  checked: undefined,
248
257
  children: [],
249
258
  buttons: [],
250
259
  collapsed: false,
251
- sortOrder: 1,
260
+ sortOrder: 1
252
261
  };
253
- }
254
- else {
262
+ } else {
255
263
  return {
256
- itemType: 'bucket',
264
+ itemType: "bucket",
257
265
  ordinal: BucketOrdinal.User,
258
266
  id: key,
259
- label: ( localize(4824, "User Defined Tool Sets")),
267
+ label: ( localize(4867, "User Defined Tool Sets")),
260
268
  checked: undefined,
261
269
  children: [],
262
270
  buttons: [],
263
271
  collapsed: true,
264
- sortOrder: 4,
272
+ sortOrder: 4
265
273
  };
266
274
  }
267
275
  };
268
- const getBucket = (source) => {
276
+ const getBucket = source => {
269
277
  const key = getKey(source);
270
278
  let bucket = bucketMap.get(key);
271
279
  if (!bucket) {
@@ -276,27 +284,26 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
276
284
  }
277
285
  return bucket;
278
286
  };
279
- for (const toolSet of toolsService.toolSets.get()) {
280
- if (!( toolsEntries.has(toolSet))) {
287
+ for (const toolSet of toolsService.getToolSetsForModel(model)) {
288
+ if (!( toolsEntries.has(toolSet.id))) {
281
289
  continue;
282
290
  }
283
291
  const bucket = getBucket(toolSet.source);
284
292
  if (!bucket) {
285
293
  continue;
286
294
  }
287
- const toolSetChecked = toolsEntries.get(toolSet) === true;
288
- if (toolSet.source.type === 'mcp') {
295
+ const toolSetChecked = toolsEntries.get(toolSet.id) === true;
296
+ if (toolSet.source.type === "mcp") {
289
297
  bucket.toolset = toolSet;
290
298
  if (toolSetChecked) {
291
299
  bucket.checked = toolSetChecked;
292
300
  }
293
- }
294
- else {
301
+ } else {
295
302
  const treeItem = createToolSetTreeItem(toolSet, toolSetChecked, editorService);
296
303
  bucket.children.push(treeItem);
297
304
  const children = [];
298
305
  for (const tool of toolSet.getTools()) {
299
- const toolChecked = toolSetChecked || toolsEntries.get(tool) === true;
306
+ const toolChecked = toolSetChecked || toolsEntries.get(tool.id) === true;
300
307
  const toolTreeItem = createToolTreeItemFromData(tool, toolChecked);
301
308
  children.push(toolTreeItem);
302
309
  }
@@ -305,22 +312,32 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
305
312
  }
306
313
  }
307
314
  }
308
- for (const tool of toolsService.getTools()) {
309
- if (!tool.canBeReferencedInPrompt || !( toolsEntries.has(tool))) {
315
+ for (const tool of toolsService.getAllToolsIncludingDisabled()) {
316
+ if (!tool.canBeReferencedInPrompt || !( toolsEntries.has(tool.id))) {
310
317
  continue;
311
318
  }
312
319
  const bucket = getBucket(tool.source);
313
320
  if (!bucket) {
314
321
  continue;
315
322
  }
316
- const toolChecked = bucket.checked === true || toolsEntries.get(tool) === true;
323
+ const toolChecked = bucket.checked === true || toolsEntries.get(tool.id) === true;
317
324
  const toolTreeItem = createToolTreeItemFromData(tool, toolChecked);
318
325
  bucket.children.push(toolTreeItem);
319
326
  }
320
- for (const { server, seen } of ( mcpServers.values())) {
327
+ for (const {
328
+ server,
329
+ seen
330
+ } of ( mcpServers.values())) {
321
331
  const cacheState = server.cacheState.get();
322
332
  if (!seen && (cacheState === McpServerCacheState.Unknown || cacheState === McpServerCacheState.Outdated)) {
323
- getBucket({ type: 'mcp', definitionId: server.definition.id, label: server.definition.label, instructions: '', serverLabel: '', collectionId: server.collection.id });
333
+ getBucket({
334
+ type: "mcp",
335
+ definitionId: server.definition.id,
336
+ label: server.definition.label,
337
+ instructions: "",
338
+ serverLabel: "",
339
+ collectionId: server.collection.id
340
+ });
324
341
  }
325
342
  }
326
343
  const sortedBuckets = Array.from(( bucketMap.values())).sort((a, b) => {
@@ -339,9 +356,8 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
339
356
  }
340
357
  }
341
358
  if (treeItems.length === 0) {
342
- treePicker.placeholder = ( localize(4825, "Add tools to chat"));
343
- }
344
- else {
359
+ treePicker.placeholder = ( localize(4868, "Add tools to chat"));
360
+ } else {
345
361
  treePicker.placeholder = placeHolder;
346
362
  }
347
363
  treePicker.setItemTree(treeItems);
@@ -349,53 +365,20 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
349
365
  const store = ( new DisposableStore());
350
366
  const treePicker = store.add(quickPickService.createQuickTree());
351
367
  treePicker.placeholder = placeHolder;
352
- treePicker.ignoreFocusOut = true;
353
368
  treePicker.description = description;
354
369
  treePicker.matchOnDescription = true;
355
370
  treePicker.matchOnLabel = true;
356
371
  treePicker.sortByLabel = false;
357
372
  computeItems();
358
373
  store.add(treePicker.onDidTriggerItemButton(e => {
359
- if (e.button && typeof e.button.action === 'function') {
374
+ if (e.button && typeof e.button.action === "function") {
360
375
  e.button.action();
361
376
  store.dispose();
362
377
  }
363
378
  }));
364
- const updateToolLimitMessage = () => {
365
- if (toolLimit) {
366
- let count = 0;
367
- const traverse = (items) => {
368
- for (const item of items) {
369
- if (isBucketTreeItem(item) || isToolSetTreeItem(item)) {
370
- if (item.children) {
371
- traverse(item.children);
372
- }
373
- }
374
- else if (isToolTreeItem(item) && item.checked) {
375
- count++;
376
- }
377
- }
378
- };
379
- traverse(treePicker.itemTree);
380
- if (count > toolLimit) {
381
- treePicker.severity = Severity.Warning;
382
- treePicker.validationMessage = ( localize(
383
- 4826,
384
- "{0} tools are enabled. You may experience degraded tool calling above {1} tools.",
385
- count,
386
- createMarkdownCommandLink({ title: String(toolLimit), id: '_chat.toolPicker.closeAndOpenVirtualThreshold' })
387
- ));
388
- }
389
- else {
390
- treePicker.severity = Severity.Ignore;
391
- treePicker.validationMessage = undefined;
392
- }
393
- }
394
- };
395
- updateToolLimitMessage();
396
379
  const collectResults = () => {
397
380
  const result = ( new Map());
398
- const traverse = (items) => {
381
+ const traverse = items => {
399
382
  for (const item of items) {
400
383
  if (isBucketTreeItem(item)) {
401
384
  if (item.toolset) {
@@ -403,14 +386,12 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
403
386
  result.set(item.toolset, allChecked);
404
387
  }
405
388
  traverse(item.children);
406
- }
407
- else if (isToolSetTreeItem(item)) {
389
+ } else if (isToolSetTreeItem(item)) {
408
390
  result.set(item.toolset, item.checked === true);
409
391
  if (item.children) {
410
392
  traverse(item.children);
411
393
  }
412
- }
413
- else if (isToolTreeItem(item)) {
394
+ } else if (isToolTreeItem(item)) {
414
395
  result.set(item.tool, item.checked || result.get(item.tool) === true);
415
396
  }
416
397
  }
@@ -418,14 +399,6 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
418
399
  traverse(treePicker.itemTree);
419
400
  return result;
420
401
  };
421
- store.add(CommandsRegistry.registerCommand({
422
- id: '_chat.toolPicker.closeAndOpenVirtualThreshold',
423
- handler: () => {
424
- treePicker.hide();
425
- commandService.executeCommand('workbench.action.openSettings', 'github.copilot.chat.virtualTools.threshold');
426
- }
427
- }));
428
- store.add(treePicker.onDidChangeCheckedLeafItems(() => updateToolLimitMessage()));
429
402
  let didAccept = false;
430
403
  const didAcceptFinalItem = store.add(( new Emitter()));
431
404
  store.add(treePicker.onDidAccept(() => {
@@ -443,26 +416,24 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
443
416
  }));
444
417
  const addMcpServerButton = {
445
418
  iconClass: ThemeIcon.asClassName(Codicon.mcp),
446
- tooltip: ( localize(4827, 'Add MCP Server...'))
419
+ tooltip: ( localize(4869, "Add MCP Server..."))
447
420
  };
448
421
  const installExtension = {
449
422
  iconClass: ThemeIcon.asClassName(Codicon.extensions),
450
- tooltip: ( localize(4828, 'Install Extension...'))
423
+ tooltip: ( localize(4870, "Install Extension..."))
451
424
  };
452
425
  const configureToolSets = {
453
426
  iconClass: ThemeIcon.asClassName(Codicon.gear),
454
- tooltip: ( localize(4829, 'Configure Tool Sets...'))
427
+ tooltip: ( localize(4871, "Configure Tool Sets..."))
455
428
  };
456
- treePicker.title = ( localize(4830, "Configure Tools"));
429
+ treePicker.title = ( localize(4872, "Configure Tools"));
457
430
  treePicker.buttons = [addMcpServerButton, installExtension, configureToolSets];
458
431
  store.add(treePicker.onDidTriggerButton(button => {
459
432
  if (button === addMcpServerButton) {
460
433
  commandService.executeCommand(McpCommandIds.AddConfiguration);
461
- }
462
- else if (button === installExtension) {
463
- extensionsWorkbenchService.openSearch('@tag:language-model-tools');
464
- }
465
- else if (button === configureToolSets) {
434
+ } else if (button === installExtension) {
435
+ extensionsWorkbenchService.openSearch("@tag:language-model-tools");
436
+ } else if (button === configureToolSets) {
466
437
  commandService.executeCommand(ConfigureToolSets.ID);
467
438
  }
468
439
  treePicker.hide();
@@ -472,10 +443,159 @@ async function showToolsPicker(accessor, placeHolder, description, getToolsEntri
472
443
  treePicker.hide();
473
444
  }));
474
445
  }
446
+ const initialState = collectResults();
475
447
  treePicker.show();
476
- await Promise.race([Event.toPromise(Event.any(treePicker.onDidHide, didAcceptFinalItem.event), store)]);
448
+ await Promise.race([
449
+ Event.toPromise(Event.any(treePicker.onDidHide, didAcceptFinalItem.event), store)
450
+ ]);
451
+ sendDidChangeEvent(source, telemetryService, initialState, collectResults(), mcpRegistry);
477
452
  store.dispose();
478
453
  return didAccept ? collectResults() : undefined;
479
454
  }
455
+ function categorizeTool(item, mcpRegistry) {
456
+ const source = item.source;
457
+ switch (source.type) {
458
+ case "internal":
459
+ return {
460
+ category: "builtin",
461
+ name: item.id
462
+ };
463
+ case "extension":
464
+ return {
465
+ category: "extension",
466
+ name: item.id,
467
+ extensionId: source.extensionId.value
468
+ };
469
+ case "mcp":
470
+ {
471
+ const collection = mcpRegistry.collections.get().find(c => c.id === source.collectionId);
472
+ if (collection?.source instanceof ExtensionIdentifier) {
473
+ return {
474
+ category: "extension-mcp",
475
+ extensionId: collection.source.value
476
+ };
477
+ }
478
+ return {
479
+ category: "user-mcp"
480
+ };
481
+ }
482
+ case "user":
483
+ return {
484
+ category: "user-toolset"
485
+ };
486
+ case "external":
487
+ return {
488
+ category: "user-toolset"
489
+ };
490
+ default:
491
+ assertNever();
492
+ }
493
+ }
494
+ function computeToolToggleSummary(initialState, finalState, mcpRegistry) {
495
+ const summary = {
496
+ builtinEnabled: 0,
497
+ builtinDisabled: 0,
498
+ extensionEnabled: 0,
499
+ extensionDisabled: 0,
500
+ extensionMcpEnabled: 0,
501
+ extensionMcpDisabled: 0,
502
+ userMcpEnabled: 0,
503
+ userMcpDisabled: 0,
504
+ userToolsetEnabled: 0,
505
+ userToolsetDisabled: 0,
506
+ details: ""
507
+ };
508
+ const detailItems = [];
509
+ for (const [item, finalEnabled] of finalState) {
510
+ const initialEnabled = initialState.get(item) ?? false;
511
+ if (initialEnabled === finalEnabled) {
512
+ continue;
513
+ }
514
+ const categorized = categorizeTool(item, mcpRegistry);
515
+ const enabled = finalEnabled;
516
+ switch (categorized.category) {
517
+ case "builtin":
518
+ if (enabled) {
519
+ summary.builtinEnabled++;
520
+ } else {
521
+ summary.builtinDisabled++;
522
+ }
523
+ detailItems.push({
524
+ category: "builtin",
525
+ name: categorized.name,
526
+ enabled
527
+ });
528
+ break;
529
+ case "extension":
530
+ if (enabled) {
531
+ summary.extensionEnabled++;
532
+ } else {
533
+ summary.extensionDisabled++;
534
+ }
535
+ detailItems.push({
536
+ category: "extension",
537
+ name: categorized.name,
538
+ extensionId: categorized.extensionId,
539
+ enabled
540
+ });
541
+ break;
542
+ case "extension-mcp":
543
+ if (enabled) {
544
+ summary.extensionMcpEnabled++;
545
+ } else {
546
+ summary.extensionMcpDisabled++;
547
+ }
548
+ detailItems.push({
549
+ category: "extension-mcp",
550
+ extensionId: categorized.extensionId,
551
+ enabled
552
+ });
553
+ break;
554
+ case "user-mcp":
555
+ if (enabled) {
556
+ summary.userMcpEnabled++;
557
+ } else {
558
+ summary.userMcpDisabled++;
559
+ }
560
+ detailItems.push({
561
+ category: "user-mcp",
562
+ enabled
563
+ });
564
+ break;
565
+ case "user-toolset":
566
+ if (enabled) {
567
+ summary.userToolsetEnabled++;
568
+ } else {
569
+ summary.userToolsetDisabled++;
570
+ }
571
+ detailItems.push({
572
+ category: "user-toolset",
573
+ enabled
574
+ });
575
+ break;
576
+ }
577
+ }
578
+ summary.details = JSON.stringify(detailItems);
579
+ return summary;
580
+ }
581
+ function sendDidChangeEvent(source, telemetryService, initialState, finalState, mcpRegistry) {
582
+ const summary = computeToolToggleSummary(initialState, finalState, mcpRegistry);
583
+ const changed = summary.builtinEnabled > 0 || summary.builtinDisabled > 0 || summary.extensionEnabled > 0 || summary.extensionDisabled > 0 || summary.extensionMcpEnabled > 0 || summary.extensionMcpDisabled > 0 || summary.userMcpEnabled > 0 || summary.userMcpDisabled > 0 || summary.userToolsetEnabled > 0 || summary.userToolsetDisabled > 0;
584
+ telemetryService.publicLog2("chatToolPickerClosed", {
585
+ source,
586
+ changed,
587
+ builtinEnabled: summary.builtinEnabled,
588
+ builtinDisabled: summary.builtinDisabled,
589
+ extensionEnabled: summary.extensionEnabled,
590
+ extensionDisabled: summary.extensionDisabled,
591
+ extensionMcpEnabled: summary.extensionMcpEnabled,
592
+ extensionMcpDisabled: summary.extensionMcpDisabled,
593
+ userMcpEnabled: summary.userMcpEnabled,
594
+ userMcpDisabled: summary.userMcpDisabled,
595
+ userToolsetEnabled: summary.userToolsetEnabled,
596
+ userToolsetDisabled: summary.userToolsetDisabled,
597
+ details: summary.details
598
+ });
599
+ }
480
600
 
481
601
  export { showToolsPicker };