@codingame/monaco-vscode-chat-service-override 28.4.0 → 29.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 (339) hide show
  1. package/index.js +18 -12
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +300 -0
  4. package/vscode/src/vs/platform/agentHost/common/agentService.js +31 -0
  5. package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +84 -0
  6. package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +16 -0
  7. package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +488 -0
  8. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +424 -0
  9. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +50 -0
  10. package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +202 -0
  11. package/vscode/src/vs/platform/agentHost/common/state/protocol/notifications.d.ts +114 -0
  12. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +723 -0
  13. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +33 -0
  14. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +40 -0
  15. package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +22 -0
  16. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +13 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  18. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +2 -2
  19. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +29 -15
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +3 -3
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +76 -10
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +11 -11
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +1 -1
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +162 -4
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +167 -4
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.d.ts +1 -1
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +52 -20
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +82 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +195 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +5 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +97 -88
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +3 -3
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +4 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +5 -3
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +78 -35
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +7 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +174 -170
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +7 -4
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +12 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +118 -52
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +7 -7
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.d.ts +5 -1
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +13 -2
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +0 -3
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -10
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +9 -10
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +23 -25
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +341 -196
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +79 -7
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.d.ts +5 -4
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +22 -10
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +2 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +4 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -14
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +85 -5
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +668 -214
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +10 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +18 -0
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +306 -39
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +84 -4
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +651 -81
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +2 -1
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +6 -2
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +31 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +9 -20
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +11 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +7 -142
  89. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.d.ts +43 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +63 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +11 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +44 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +25 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +297 -123
  95. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +153 -31
  96. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +17 -1
  97. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +111 -171
  98. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +1 -3
  99. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +5 -30
  100. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -186
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +4 -2
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +31 -23
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +3 -7
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +4 -16
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +18 -2
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +112 -17
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +3 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +16 -27
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +1 -1
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +41 -19
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +7 -1
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +35 -23
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +1 -8
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +8 -51
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +1 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +13 -8
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +29 -36
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +14 -7
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +5 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +79 -26
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.d.ts +19 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +125 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +11 -4
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +113 -82
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +18 -7
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +54 -15
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +8 -3
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +103 -28
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +2 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +48 -37
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +28 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +62 -20
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +21 -37
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +2 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +4 -3
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +17 -4
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +5 -5
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +4 -1
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +43 -5
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.d.ts +59 -0
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +194 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +9 -10
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +2 -1
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +8 -4
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +11 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +81 -50
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +32 -32
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -18
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +2 -2
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +9 -7
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -26
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +0 -2
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +19 -27
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +2 -4
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +105 -172
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +80 -65
  174. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  175. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +56 -27
  176. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +1 -1
  177. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  178. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.d.ts +16 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +70 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  181. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.d.ts +20 -0
  182. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +40 -0
  183. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.d.ts +31 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +53 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +33 -2
  186. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +21 -2
  187. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +362 -18
  188. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +15 -4
  189. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +90 -43
  190. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +35 -0
  191. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +146 -0
  192. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  193. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
  194. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  195. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  196. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  197. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +10 -9
  198. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  199. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  200. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  201. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +1 -1
  202. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +33 -5
  203. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +3 -0
  204. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +200 -55
  205. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +7 -0
  206. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +90 -45
  207. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +4 -2
  208. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +21 -10
  209. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +22 -16
  210. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +4 -2
  211. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +28 -13
  212. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  214. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
  215. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +20 -16
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +68 -5
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  218. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  219. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  220. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +1 -0
  221. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +57 -20
  222. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  223. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +21 -5
  224. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +171 -57
  225. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +7 -5
  226. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +206 -35
  227. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +4 -3
  228. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +7 -7
  229. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +7 -1
  230. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +11 -3
  231. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +44 -22
  232. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +450 -301
  233. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +23 -0
  234. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +165 -0
  235. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +34 -20
  236. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +209 -144
  237. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.d.ts +20 -0
  238. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +205 -0
  239. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
  240. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.d.ts +33 -0
  241. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.js +47 -0
  242. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalSkill.d.ts +30 -0
  243. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  244. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  245. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  246. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +1 -1
  247. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +191 -159
  248. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +6 -7
  249. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +210 -233
  250. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +19 -26
  251. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +183 -193
  252. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +24 -0
  253. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +75 -0
  254. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  255. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +8 -5
  256. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -0
  257. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +97 -35
  258. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  259. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +16 -0
  260. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +67 -0
  261. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +2 -2
  262. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +62 -23
  263. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  264. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  265. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  266. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  267. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  268. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +8 -8
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +3 -1
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +23 -9
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +1 -1
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +2 -2
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +3 -1
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +50 -9
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +3 -1
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +21 -7
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +20 -1
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +124 -1
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +20 -5
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +5 -0
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +10 -7
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +2 -1
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +46 -31
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +18 -1
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +74 -37
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +1 -0
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +24 -14
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +1 -1
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +3 -2
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +1 -1
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +2 -0
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +5 -1
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +1 -2
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +66 -64
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +1 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +1 -0
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +5 -2
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +32 -2
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +390 -114
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +14 -0
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +21 -11
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +70 -51
  313. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +61 -51
  314. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +94 -76
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +19 -1
  317. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +112 -21
  318. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +0 -53
  319. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.js +0 -219
  320. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +0 -89
  321. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +0 -251
  322. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +0 -123
  323. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +0 -278
  324. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +0 -76
  325. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +0 -299
  326. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +0 -67
  327. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +0 -263
  328. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +0 -85
  329. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +0 -397
  330. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -56
  331. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +0 -26
  332. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +0 -5
  333. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +0 -30
  334. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +0 -40
  335. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +0 -28
  336. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +0 -190
  337. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +0 -11
  338. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +0 -16
  339. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +0 -20
@@ -17,29 +17,36 @@ import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/
17
17
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
18
18
  import { InputBox } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/inputbox/inputBox';
19
19
  import { IContextViewService, IContextMenuService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service';
20
+ import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
20
21
  import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
21
22
  import { Delayer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
22
- import { Action, Separator } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
23
- import { dirname, basename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
23
+ import { Separator } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
24
+ import { basename, dirname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
25
+ import { getDefaultHoverDelegate } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
24
26
  import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
25
- import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
26
27
  import { IAgentPluginService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService.service';
28
+ import { isContributionEnabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
29
+ import { getInstalledPluginContextMenuActions } from '../agentPluginActions.js';
27
30
  import { IPluginMarketplaceService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.service';
28
31
  import { IPluginInstallService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginInstallService.service';
29
32
  import { AgentPluginItemKind } from '../agentPluginEditor/agentPluginItems.js';
30
33
  import { pluginIcon } from './aiCustomizationIcons.js';
34
+ import { formatDisplayName } from './aiCustomizationListWidget.js';
31
35
  import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
36
+ import { CUSTOMIZATION_GROUP_HEADER_HEIGHT, CUSTOMIZATION_GROUP_HEADER_HEIGHT_WITH_SEPARATOR, CustomizationGroupHeaderRenderer } from './customizationGroupHeaderRenderer.js';
32
37
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
38
+ import { truncateToFirstLine } from './aiCustomizationListWidgetUtils.js';
33
39
 
34
40
  registerCss(aiCustomizationManagement);
35
41
  const $ = $$1;
36
42
  const PLUGIN_ITEM_HEIGHT = 36;
37
- const PLUGIN_GROUP_HEADER_HEIGHT = 36;
38
- const PLUGIN_GROUP_HEADER_HEIGHT_WITH_SEPARATOR = 40;
39
43
  class PluginItemDelegate {
40
44
  getHeight(element) {
41
45
  if (element.type === "group-header") {
42
- return element.isFirst ? PLUGIN_GROUP_HEADER_HEIGHT : PLUGIN_GROUP_HEADER_HEIGHT_WITH_SEPARATOR;
46
+ return element.isFirst ? CUSTOMIZATION_GROUP_HEADER_HEIGHT : CUSTOMIZATION_GROUP_HEADER_HEIGHT_WITH_SEPARATOR;
47
+ }
48
+ if (element.type === "marketplace-item") {
49
+ return 62;
43
50
  }
44
51
  return PLUGIN_ITEM_HEIGHT;
45
52
  }
@@ -53,70 +60,21 @@ class PluginItemDelegate {
53
60
  return "pluginInstalledItem";
54
61
  }
55
62
  }
56
- class PluginGroupHeaderRenderer {
57
- constructor(hoverService) {
58
- this.hoverService = hoverService;
59
- this.templateId = "pluginGroupHeader";
60
- }
61
- renderTemplate(container) {
62
- const disposables = ( new DisposableStore());
63
- const elementDisposables = ( new DisposableStore());
64
- container.classList.add("ai-customization-group-header");
65
- const chevron = append(container, $(".group-chevron"));
66
- const icon = append(container, $(".group-icon"));
67
- const labelGroup = append(container, $(".group-label-group"));
68
- const label = append(labelGroup, $(".group-label"));
69
- const infoIcon = append(labelGroup, $(".group-info"));
70
- infoIcon.classList.add(...ThemeIcon.asClassNameArray(Codicon.info));
71
- const count = append(container, $(".group-count"));
72
- return {
73
- container,
74
- chevron,
75
- icon,
76
- label,
77
- count,
78
- infoIcon,
79
- disposables,
80
- elementDisposables
81
- };
82
- }
83
- renderElement(element, _index, templateData) {
84
- templateData.elementDisposables.clear();
85
- templateData.chevron.className = "group-chevron";
86
- templateData.chevron.classList.add(
87
- ...ThemeIcon.asClassNameArray(element.collapsed ? Codicon.chevronRight : Codicon.chevronDown)
88
- );
89
- templateData.icon.className = "group-icon";
90
- templateData.icon.classList.add(...ThemeIcon.asClassNameArray(element.icon));
91
- templateData.label.textContent = element.label;
92
- templateData.count.textContent = `${element.count}`;
93
- templateData.elementDisposables.add(this.hoverService.setupDelayedHover(templateData.infoIcon, () => ({
94
- content: element.description,
95
- appearance: {
96
- compact: true,
97
- skipFadeInAnimation: true
98
- }
99
- })));
100
- templateData.container.classList.toggle("collapsed", element.collapsed);
101
- templateData.container.classList.toggle("has-previous-group", !element.isFirst);
102
- }
103
- disposeTemplate(templateData) {
104
- templateData.elementDisposables.dispose();
105
- templateData.disposables.dispose();
106
- }
107
- }
108
63
  class PluginInstalledItemRenderer {
109
64
  constructor() {
110
65
  this.templateId = "pluginInstalledItem";
111
66
  }
112
67
  renderTemplate(container) {
113
68
  container.classList.add("mcp-server-item");
69
+ const typeIcon = append(container, $(".mcp-server-icon"));
70
+ typeIcon.classList.add(...ThemeIcon.asClassNameArray(pluginIcon));
114
71
  const details = append(container, $(".mcp-server-details"));
115
72
  const name = append(details, $(".mcp-server-name"));
116
73
  const description = append(details, $(".mcp-server-description"));
117
74
  const status = append(container, $(".mcp-server-status"));
118
75
  return {
119
76
  container,
77
+ typeIcon,
120
78
  name,
121
79
  description,
122
80
  status,
@@ -125,22 +83,23 @@ class PluginInstalledItemRenderer {
125
83
  }
126
84
  renderElement(element, _index, templateData) {
127
85
  templateData.disposables.clear();
128
- templateData.name.textContent = element.item.name;
86
+ templateData.name.textContent = formatDisplayName(element.item.name);
129
87
  if (element.item.description) {
130
- templateData.description.textContent = element.item.description;
88
+ templateData.description.textContent = truncateToFirstLine(element.item.description);
131
89
  templateData.description.style.display = "";
132
90
  } else {
133
91
  templateData.description.style.display = "none";
134
92
  }
135
93
  templateData.disposables.add(autorun(reader => {
136
- const enabled = element.item.plugin.enabled.read(reader);
94
+ const enabled = isContributionEnabled(element.item.plugin.enablement.read(reader));
95
+ templateData.container.classList.toggle("disabled", !enabled);
137
96
  templateData.status.className = "mcp-server-status";
138
97
  if (enabled) {
139
- templateData.status.textContent = ( localize(5354, "Enabled"));
98
+ templateData.status.textContent = ( localize(5442, "Enabled"));
140
99
  templateData.status.classList.add("running");
141
100
  } else {
142
- templateData.status.textContent = ( localize(5355, "Disabled"));
143
- templateData.status.classList.add("stopped");
101
+ templateData.status.textContent = ( localize(5443, "Disabled"));
102
+ templateData.status.classList.add("disabled");
144
103
  }
145
104
  }));
146
105
  }
@@ -154,13 +113,16 @@ class PluginMarketplaceItemRenderer {
154
113
  this.templateId = "pluginMarketplaceItem";
155
114
  }
156
115
  renderTemplate(container) {
157
- container.classList.add("mcp-server-item", "mcp-gallery-item");
158
- const details = append(container, $(".mcp-server-details"));
159
- const nameRow = append(details, $(".mcp-gallery-name-row"));
160
- const name = append(nameRow, $(".mcp-server-name"));
161
- const publisher = append(nameRow, $(".mcp-gallery-publisher"));
162
- const description = append(details, $(".mcp-server-description"));
163
- const actionContainer = append(container, $(".mcp-gallery-action"));
116
+ container.classList.add("mcp-server-item", "mcp-gallery-item", "extension-list-item");
117
+ const details = append(container, $(".details"));
118
+ const headerContainer = append(details, $(".header-container"));
119
+ const header = append(headerContainer, $(".header"));
120
+ const name = append(header, $("span.name"));
121
+ const description = append(details, $(".description.ellipsis"));
122
+ const footer = append(details, $(".footer"));
123
+ const publisherContainer = append(footer, $(".publisher-container"));
124
+ const publisher = append(publisherContainer, $("span.publisher-name"));
125
+ const actionContainer = append(footer, $(".mcp-gallery-action"));
164
126
  const installButton = ( new Button(actionContainer, {
165
127
  ...defaultButtonStyles,
166
128
  supportIcons: true
@@ -181,12 +143,12 @@ class PluginMarketplaceItemRenderer {
181
143
  renderElement(element, _index, templateData) {
182
144
  templateData.elementDisposables.clear();
183
145
  templateData.name.textContent = element.item.name;
184
- templateData.publisher.textContent = element.item.marketplace ? ( localize(5356, "by {0}", element.item.marketplace)) : "";
146
+ templateData.publisher.textContent = element.item.marketplace ? ( localize(5444, "by {0}", element.item.marketplace)) : "";
185
147
  templateData.description.textContent = element.item.description || "";
186
- templateData.installButton.label = ( localize(5357, "Install"));
148
+ templateData.installButton.label = ( localize(5445, "Install"));
187
149
  templateData.installButton.enabled = true;
188
150
  templateData.elementDisposables.add(templateData.installButton.onDidClick(async () => {
189
- templateData.installButton.label = ( localize(5358, "Installing..."));
151
+ templateData.installButton.label = ( localize(5446, "Installing..."));
190
152
  templateData.installButton.enabled = false;
191
153
  try {
192
154
  await this.pluginInstallService.installPlugin({
@@ -200,9 +162,9 @@ class PluginMarketplaceItemRenderer {
200
162
  marketplaceType: element.item.marketplaceType,
201
163
  readmeUri: element.item.readmeUri
202
164
  });
203
- templateData.installButton.label = ( localize(5359, "Installed"));
165
+ templateData.installButton.label = ( localize(5447, "Installed"));
204
166
  } catch (_e) {
205
- templateData.installButton.label = ( localize(5357, "Install"));
167
+ templateData.installButton.label = ( localize(5445, "Install"));
206
168
  templateData.installButton.enabled = true;
207
169
  }
208
170
  }));
@@ -212,66 +174,6 @@ class PluginMarketplaceItemRenderer {
212
174
  templateData.templateDisposables.dispose();
213
175
  }
214
176
  }
215
- function getInstalledPluginContextMenuActions(plugin, instantiationService) {
216
- const groups = [];
217
- if (plugin.enabled.get()) {
218
- groups.push([instantiationService.createInstance(DisablePluginAction, plugin)]);
219
- } else {
220
- groups.push([instantiationService.createInstance(EnablePluginAction, plugin)]);
221
- }
222
- groups.push([instantiationService.createInstance(OpenPluginFolderAction, plugin)]);
223
- if (plugin.fromMarketplace) {
224
- groups.push([( new UninstallPluginAction(plugin))]);
225
- }
226
- return groups;
227
- }
228
- let EnablePluginAction = class EnablePluginAction extends Action {
229
- constructor(plugin, agentPluginService) {
230
- super("pluginListWidget.enable", ( localize(5360, "Enable")));
231
- this.plugin = plugin;
232
- this.agentPluginService = agentPluginService;
233
- }
234
- async run() {
235
- this.agentPluginService.setPluginEnabled(this.plugin.uri, true);
236
- }
237
- };
238
- EnablePluginAction = ( __decorate([( __param(1, IAgentPluginService))], EnablePluginAction));
239
- let DisablePluginAction = class DisablePluginAction extends Action {
240
- constructor(plugin, agentPluginService) {
241
- super("pluginListWidget.disable", ( localize(5361, "Disable")));
242
- this.plugin = plugin;
243
- this.agentPluginService = agentPluginService;
244
- }
245
- async run() {
246
- this.agentPluginService.setPluginEnabled(this.plugin.uri, false);
247
- }
248
- };
249
- DisablePluginAction = ( __decorate([( __param(1, IAgentPluginService))], DisablePluginAction));
250
- let OpenPluginFolderAction = class OpenPluginFolderAction extends Action {
251
- constructor(plugin, commandService, openerService) {
252
- super("pluginListWidget.openFolder", ( localize(5362, "Open Plugin Folder")));
253
- this.plugin = plugin;
254
- this.commandService = commandService;
255
- this.openerService = openerService;
256
- }
257
- async run() {
258
- try {
259
- await this.commandService.executeCommand("revealFileInOS", this.plugin.uri);
260
- } catch {
261
- await this.openerService.open(dirname(this.plugin.uri));
262
- }
263
- }
264
- };
265
- OpenPluginFolderAction = ( __decorate([( __param(1, ICommandService)), ( __param(2, IOpenerService))], OpenPluginFolderAction));
266
- class UninstallPluginAction extends Action {
267
- constructor(plugin) {
268
- super("pluginListWidget.uninstall", ( localize(5363, "Uninstall")));
269
- this.plugin = plugin;
270
- }
271
- async run() {
272
- this.plugin.remove();
273
- }
274
- }
275
177
  function installedPluginToItem(plugin, labelService) {
276
178
  const name = plugin.label ?? basename(plugin.uri);
277
179
  const description = plugin.fromMarketplace?.description ?? labelService.getUriLabel(dirname(plugin.uri), {
@@ -309,7 +211,8 @@ let PluginListWidget = class PluginListWidget extends Disposable {
309
211
  contextViewService,
310
212
  contextMenuService,
311
213
  hoverService,
312
- labelService
214
+ labelService,
215
+ commandService
313
216
  ) {
314
217
  super();
315
218
  this.instantiationService = instantiationService;
@@ -321,13 +224,18 @@ let PluginListWidget = class PluginListWidget extends Disposable {
321
224
  this.contextMenuService = contextMenuService;
322
225
  this.hoverService = hoverService;
323
226
  this.labelService = labelService;
227
+ this.commandService = commandService;
324
228
  this._onDidSelectPlugin = this._register(( new Emitter()));
325
229
  this.onDidSelectPlugin = this._onDidSelectPlugin.event;
230
+ this._onDidChangeItemCount = this._register(( new Emitter()));
231
+ this.onDidChangeItemCount = this._onDidChangeItemCount.event;
326
232
  this.installedItems = [];
327
233
  this.displayEntries = [];
328
234
  this.marketplaceItems = [];
329
235
  this.searchQuery = "";
330
236
  this.browseMode = false;
237
+ this.lastHeight = 0;
238
+ this.lastWidth = 0;
331
239
  this.collapsedGroups = ( new Set());
332
240
  this.delayedFilter = ( new Delayer(200));
333
241
  this.delayedMarketplaceSearch = ( new Delayer(400));
@@ -343,7 +251,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
343
251
  this.searchAndButtonContainer = append(this.element, $(".list-search-and-button-container"));
344
252
  const searchContainer = append(this.searchAndButtonContainer, $(".list-search-container"));
345
253
  this.searchInput = this._register(( new InputBox(searchContainer, this.contextViewService, {
346
- placeholder: ( localize(5364, "Type to search...")),
254
+ placeholder: ( localize(5448, "Type to search...")),
347
255
  inputBoxStyles: defaultInputBoxStyles
348
256
  })));
349
257
  this._register(this.searchInput.onDidChange(() => {
@@ -361,19 +269,35 @@ let PluginListWidget = class PluginListWidget extends Disposable {
361
269
  secondary: true,
362
270
  supportIcons: true
363
271
  })));
364
- this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5365, "Browse Marketplace"))}`;
272
+ this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5449, "Browse Marketplace"))}`;
365
273
  this.browseButton.element.classList.add("list-add-button");
366
274
  this._register(this.browseButton.onDidClick(() => {
367
275
  this.toggleBrowseMode(!this.browseMode);
368
276
  }));
277
+ const installFromSourceButton = this._register(( new Button(buttonContainer, {
278
+ ...defaultButtonStyles,
279
+ secondary: true,
280
+ supportIcons: true
281
+ })));
282
+ installFromSourceButton.label = `$(${Codicon.add.id})`;
283
+ installFromSourceButton.setTitle(( localize(5450, "Install Plugin from Source")));
284
+ installFromSourceButton.element.classList.add("list-icon-button");
285
+ this._register(this.hoverService.setupManagedHover(
286
+ getDefaultHoverDelegate("element"),
287
+ installFromSourceButton.element,
288
+ ( localize(5451, "Install Plugin from Source"))
289
+ ));
290
+ this._register(installFromSourceButton.onDidClick(() => {
291
+ this.commandService.executeCommand("workbench.action.chat.installPluginFromSource");
292
+ }));
369
293
  this.backLink = append(this.element, $(".mcp-back-link"));
370
294
  this.backLink.setAttribute("role", "button");
371
295
  this.backLink.tabIndex = 0;
372
- this.backLink.setAttribute("aria-label", ( localize(5366, "Back to installed plugins")));
296
+ this.backLink.setAttribute("aria-label", ( localize(5452, "Back to installed plugins")));
373
297
  const backIcon = append(this.backLink, $("span"));
374
298
  backIcon.classList.add(...ThemeIcon.asClassNameArray(Codicon.arrowLeft));
375
299
  const backText = append(this.backLink, $("span"));
376
- backText.textContent = ( localize(5367, "Back to installed plugins"));
300
+ backText.textContent = ( localize(5453, "Back to installed plugins"));
377
301
  this._register(addDisposableListener(this.backLink, "click", () => {
378
302
  this.toggleBrowseMode(false);
379
303
  }));
@@ -385,20 +309,21 @@ let PluginListWidget = class PluginListWidget extends Disposable {
385
309
  }));
386
310
  this.backLink.style.display = "none";
387
311
  this.emptyContainer = append(this.element, $(".mcp-empty-state"));
388
- const emptyIcon = append(this.emptyContainer, $(".empty-icon"));
312
+ const emptyHeader = append(this.emptyContainer, $(".empty-state-header"));
313
+ const emptyIcon = append(emptyHeader, $(".empty-icon"));
389
314
  emptyIcon.classList.add(...ThemeIcon.asClassNameArray(pluginIcon));
390
- this.emptyText = append(this.emptyContainer, $(".empty-text"));
315
+ this.emptyText = append(emptyHeader, $(".empty-text"));
391
316
  this.emptySubtext = append(this.emptyContainer, $(".empty-subtext"));
392
317
  this.listContainer = append(this.element, $(".mcp-list-container"));
393
318
  this.sectionHeader = append(this.element, $(".section-footer"));
394
319
  this.sectionDescription = append(this.sectionHeader, $("p.section-footer-description"));
395
320
  this.sectionDescription.textContent = ( localize(
396
- 5368,
321
+ 5454,
397
322
  "Extend your AI agent with plugins that add commands, skills, agents, hooks, and MCP servers from reusable packages."
398
323
  ));
399
324
  this.sectionLink = append(this.sectionHeader, $("a.section-footer-link"));
400
- this.sectionLink.textContent = ( localize(5369, "Learn more about agent plugins"));
401
- this.sectionLink.href = "https://code.visualstudio.com/docs/copilot/chat/agent-plugins";
325
+ this.sectionLink.textContent = ( localize(5455, "Learn more about agent plugins"));
326
+ this.sectionLink.href = "https://code.visualstudio.com/docs/copilot/customization/agent-plugins";
402
327
  this._register(addDisposableListener(this.sectionLink, "click", e => {
403
328
  e.preventDefault();
404
329
  const href = this.sectionLink.href;
@@ -407,7 +332,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
407
332
  }
408
333
  }));
409
334
  const delegate = ( new PluginItemDelegate());
410
- const groupHeaderRenderer = ( new PluginGroupHeaderRenderer(this.hoverService));
335
+ const groupHeaderRenderer = ( new CustomizationGroupHeaderRenderer("pluginGroupHeader", this.hoverService));
411
336
  const installedRenderer = ( new PluginInstalledItemRenderer());
412
337
  const marketplaceRenderer = ( new PluginMarketplaceItemRenderer(this.pluginInstallService));
413
338
  this.list = this._register(this.instantiationService.createInstance(
@@ -424,11 +349,11 @@ let PluginListWidget = class PluginListWidget extends Disposable {
424
349
  getAriaLabel(element) {
425
350
  if (element.type === "group-header") {
426
351
  return localize(
427
- 5370,
352
+ 5456,
428
353
  "{0}, {1} items, {2}",
429
354
  element.label,
430
355
  element.count,
431
- element.collapsed ? ( localize(5371, "collapsed")) : ( localize(5372, "expanded"))
356
+ element.collapsed ? ( localize(5457, "collapsed")) : ( localize(5458, "expanded"))
432
357
  );
433
358
  }
434
359
  if (element.type === "marketplace-item") {
@@ -437,7 +362,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
437
362
  return element.item.name;
438
363
  },
439
364
  getWidgetAriaLabel() {
440
- return localize(5373, "Plugins");
365
+ return localize(5459, "Plugins");
441
366
  }
442
367
  },
443
368
  openOnSingleClick: true,
@@ -467,7 +392,10 @@ let PluginListWidget = class PluginListWidget extends Disposable {
467
392
  }));
468
393
  this._register(this.list.onContextMenu(e => this.onContextMenu(e)));
469
394
  this._register(autorun(reader => {
470
- this.agentPluginService.allPlugins.read(reader);
395
+ const plugins = this.agentPluginService.plugins.read(reader);
396
+ for (const plugin of plugins) {
397
+ plugin.enablement.read(reader);
398
+ }
471
399
  if (!this.browseMode) {
472
400
  this.refresh();
473
401
  }
@@ -492,7 +420,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
492
420
  this.searchQuery = "";
493
421
  this.backLink.style.display = browse ? "" : "none";
494
422
  this.browseButton.element.parentElement.style.display = browse ? "none" : "";
495
- this.searchInput.setPlaceHolder(browse ? ( localize(5374, "Search plugin marketplace...")) : ( localize(5364, "Type to search...")));
423
+ this.searchInput.setPlaceHolder(browse ? ( localize(5460, "Search plugin marketplace...")) : ( localize(5448, "Type to search...")));
496
424
  if (browse) {
497
425
  void this.queryMarketplace();
498
426
  } else {
@@ -500,13 +428,16 @@ let PluginListWidget = class PluginListWidget extends Disposable {
500
428
  this.marketplaceItems = [];
501
429
  this.filterPlugins();
502
430
  }
431
+ if (this.lastHeight > 0) {
432
+ this.layout(this.lastHeight, this.lastWidth);
433
+ }
503
434
  }
504
435
  async queryMarketplace() {
505
436
  this.marketplaceCts?.dispose(true);
506
437
  const cts = this.marketplaceCts = ( new CancellationTokenSource());
507
438
  this.emptyContainer.style.display = "flex";
508
439
  this.listContainer.style.display = "none";
509
- this.emptyText.textContent = ( localize(5375, "Loading marketplace..."));
440
+ this.emptyText.textContent = ( localize(5461, "Loading marketplace..."));
510
441
  this.emptySubtext.textContent = "";
511
442
  try {
512
443
  const plugins = await this.pluginMarketplaceService.fetchMarketplacePlugins(cts.token);
@@ -517,7 +448,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
517
448
  const filtered = query ? plugins.filter(
518
449
  p => p.name.toLowerCase().includes(query) || p.description.toLowerCase().includes(query)
519
450
  ) : plugins;
520
- const installedUris = ( new Set(( this.agentPluginService.allPlugins.get().map(p => ( p.uri.toString())))));
451
+ const installedUris = ( new Set(( this.agentPluginService.plugins.get().map(p => ( p.uri.toString())))));
521
452
  this.marketplaceItems = ( filtered.filter(p => {
522
453
  const expectedUri = this.pluginInstallService.getPluginInstallUri(p);
523
454
  return !( installedUris.has(( expectedUri.toString())));
@@ -528,8 +459,8 @@ let PluginListWidget = class PluginListWidget extends Disposable {
528
459
  this.marketplaceItems = [];
529
460
  this.emptyContainer.style.display = "flex";
530
461
  this.listContainer.style.display = "none";
531
- this.emptyText.textContent = ( localize(5376, "Unable to load marketplace"));
532
- this.emptySubtext.textContent = ( localize(5377, "Check your connection and try again"));
462
+ this.emptyText.textContent = ( localize(5462, "Unable to load marketplace"));
463
+ this.emptySubtext.textContent = ( localize(5463, "Check your connection and try again"));
533
464
  }
534
465
  }
535
466
  }
@@ -538,10 +469,10 @@ let PluginListWidget = class PluginListWidget extends Disposable {
538
469
  this.emptyContainer.style.display = "flex";
539
470
  this.listContainer.style.display = "none";
540
471
  if (this.searchQuery.trim()) {
541
- this.emptyText.textContent = ( localize(5378, "No plugins match '{0}'", this.searchQuery));
542
- this.emptySubtext.textContent = ( localize(5379, "Try a different search term"));
472
+ this.emptyText.textContent = ( localize(5464, "No plugins match '{0}'", this.searchQuery));
473
+ this.emptySubtext.textContent = ( localize(5465, "Try a different search term"));
543
474
  } else {
544
- this.emptyText.textContent = ( localize(5380, "No plugins available"));
475
+ this.emptyText.textContent = ( localize(5466, "No plugins available"));
545
476
  this.emptySubtext.textContent = "";
546
477
  }
547
478
  } else {
@@ -556,7 +487,7 @@ let PluginListWidget = class PluginListWidget extends Disposable {
556
487
  }
557
488
  filterPlugins() {
558
489
  const query = this.searchQuery.toLowerCase().trim();
559
- const allPlugins = this.agentPluginService.allPlugins.get();
490
+ const allPlugins = this.agentPluginService.plugins.get();
560
491
  this.installedItems = ( allPlugins.map(p => installedPluginToItem(p, this.labelService))).filter(
561
492
  item => !query || item.name.toLowerCase().includes(query) || item.description.toLowerCase().includes(query)
562
493
  );
@@ -564,18 +495,18 @@ let PluginListWidget = class PluginListWidget extends Disposable {
564
495
  this.emptyContainer.style.display = "flex";
565
496
  this.listContainer.style.display = "none";
566
497
  if (this.searchQuery.trim()) {
567
- this.emptyText.textContent = ( localize(5381, "No plugins match '{0}'", this.searchQuery));
568
- this.emptySubtext.textContent = ( localize(5379, "Try a different search term"));
498
+ this.emptyText.textContent = ( localize(5467, "No plugins match '{0}'", this.searchQuery));
499
+ this.emptySubtext.textContent = ( localize(5465, "Try a different search term"));
569
500
  } else {
570
- this.emptyText.textContent = ( localize(5382, "No plugins installed"));
571
- this.emptySubtext.textContent = ( localize(5383, "Browse the marketplace to discover and install plugins"));
501
+ this.emptyText.textContent = ( localize(5468, "No plugins installed"));
502
+ this.emptySubtext.textContent = ( localize(5469, "Browse the marketplace to discover and install plugins"));
572
503
  }
573
504
  } else {
574
505
  this.emptyContainer.style.display = "none";
575
506
  this.listContainer.style.display = "";
576
507
  }
577
- const enabledPlugins = this.installedItems.filter(item => item.plugin.enabled.get());
578
- const disabledPlugins = this.installedItems.filter(item => !item.plugin.enabled.get());
508
+ const enabledPlugins = this.installedItems.filter(item => isContributionEnabled(item.plugin.enablement.get()));
509
+ const disabledPlugins = this.installedItems.filter(item => !isContributionEnabled(item.plugin.enablement.get()));
579
510
  const entries = [];
580
511
  let isFirst = true;
581
512
  if (enabledPlugins.length > 0) {
@@ -584,12 +515,12 @@ let PluginListWidget = class PluginListWidget extends Disposable {
584
515
  type: "group-header",
585
516
  id: "plugin-group-enabled",
586
517
  group: "enabled",
587
- label: ( localize(5384, "Enabled")),
518
+ label: ( localize(5470, "Enabled")),
588
519
  icon: pluginIcon,
589
520
  count: enabledPlugins.length,
590
521
  isFirst,
591
522
  description: ( localize(
592
- 5385,
523
+ 5471,
593
524
  "Plugins that are currently active and providing commands, skills, agents, and other capabilities."
594
525
  )),
595
526
  collapsed
@@ -610,12 +541,12 @@ let PluginListWidget = class PluginListWidget extends Disposable {
610
541
  type: "group-header",
611
542
  id: "plugin-group-disabled",
612
543
  group: "disabled",
613
- label: ( localize(5386, "Disabled")),
544
+ label: ( localize(5472, "Disabled")),
614
545
  icon: pluginIcon,
615
546
  count: disabledPlugins.length,
616
547
  isFirst,
617
548
  description: ( localize(
618
- 5387,
549
+ 5473,
619
550
  "Plugins that are installed but currently disabled. Enable them to use their capabilities."
620
551
  )),
621
552
  collapsed
@@ -631,6 +562,13 @@ let PluginListWidget = class PluginListWidget extends Disposable {
631
562
  }
632
563
  this.displayEntries = entries;
633
564
  this.list.splice(0, this.list.length, this.displayEntries);
565
+ this._onDidChangeItemCount.fire(this.itemCount);
566
+ }
567
+ get itemCount() {
568
+ return this.installedItems.length;
569
+ }
570
+ fireItemCount() {
571
+ this._onDidChangeItemCount.fire(this.itemCount);
634
572
  }
635
573
  toggleGroup(entry) {
636
574
  if (( this.collapsedGroups.has(entry.group))) {
@@ -641,6 +579,8 @@ let PluginListWidget = class PluginListWidget extends Disposable {
641
579
  this.filterPlugins();
642
580
  }
643
581
  layout(height, width) {
582
+ this.lastHeight = height;
583
+ this.lastWidth = width;
644
584
  const sectionFooterHeight = this.sectionHeader.offsetHeight || 0;
645
585
  const searchBarHeight = this.searchAndButtonContainer.offsetHeight || 52;
646
586
  const backLinkHeight = this.browseMode ? (this.backLink.offsetHeight || 28) : 0;
@@ -697,6 +637,6 @@ let PluginListWidget = class PluginListWidget extends Disposable {
697
637
  });
698
638
  }
699
639
  };
700
- PluginListWidget = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IAgentPluginService)), ( __param(2, IPluginMarketplaceService)), ( __param(3, IPluginInstallService)), ( __param(4, IOpenerService)), ( __param(5, IContextViewService)), ( __param(6, IContextMenuService)), ( __param(7, IHoverService)), ( __param(8, ILabelService))], PluginListWidget));
640
+ PluginListWidget = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IAgentPluginService)), ( __param(2, IPluginMarketplaceService)), ( __param(3, IPluginInstallService)), ( __param(4, IOpenerService)), ( __param(5, IContextViewService)), ( __param(6, IContextMenuService)), ( __param(7, IHoverService)), ( __param(8, ILabelService)), ( __param(9, ICommandService))], PluginListWidget));
701
641
 
702
642
  export { PluginListWidget };
@@ -1,7 +1,6 @@
1
1
  import { VSBuffer } from "@codingame/monaco-vscode-api/vscode/vs/base/common/buffer";
2
2
  import { ThemeIcon } from "@codingame/monaco-vscode-api/vscode/vs/base/common/themables";
3
3
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
- import { ITextModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service";
5
4
  import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
6
5
  import { IDraggedResourceEditorInput, MarkerTransferData, DocumentSymbolTransferData, NotebookCellOutputTransferData } from "@codingame/monaco-vscode-api/vscode/vs/platform/dnd/browser/dnd";
7
6
  import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
@@ -14,11 +13,10 @@ import { IChatAttachmentResolveService } from "@codingame/monaco-vscode-api/vsco
14
13
  export declare class ChatAttachmentResolveService implements IChatAttachmentResolveService {
15
14
  private fileService;
16
15
  private editorService;
17
- private textModelService;
18
16
  private extensionService;
19
17
  private dialogService;
20
18
  _serviceBrand: undefined;
21
- constructor(fileService: IFileService, editorService: IEditorService, textModelService: ITextModelService, extensionService: IExtensionService, dialogService: IDialogService);
19
+ constructor(fileService: IFileService, editorService: IEditorService, extensionService: IExtensionService, dialogService: IDialogService);
22
20
  resolveEditorAttachContext(editor: EditorInput | IDraggedResourceEditorInput): Promise<IChatRequestVariableEntry | undefined>;
23
21
  resolveUntitledEditorAttachContext(editor: IDraggedResourceEditorInput): Promise<IChatRequestVariableEntry | undefined>;
24
22
  resolveResourceAttachContext(resource: URI, isDirectory: boolean): Promise<IChatRequestVariableEntry | undefined>;