@codingame/monaco-vscode-chat-service-override 27.0.0 → 28.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 (251) hide show
  1. package/index.js +5 -2
  2. package/package.json +5 -5
  3. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +54 -4
  4. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +179 -11
  5. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +5 -1
  6. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +6 -1
  7. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +25 -10
  8. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +67 -0
  9. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +263 -0
  10. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +6 -0
  11. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +25 -6
  12. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  13. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +15 -15
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +13 -5
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +5 -5
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +11 -11
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +5 -4
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +7 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +2 -2
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +13 -13
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +12 -12
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +49 -13
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +58 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +537 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.d.ts +17 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +55 -0
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +26 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.js +9 -0
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/media/agentPluginEditor.css +32 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +17 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +89 -11
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +4 -26
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +146 -53
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +56 -54
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -5
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +25 -25
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  58. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +4 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +13 -12
  60. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +7 -9
  61. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +189 -145
  62. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +42 -44
  63. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +3 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +20 -8
  66. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +210 -59
  67. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +14 -3
  69. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +3 -3
  70. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +122 -53
  71. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +87 -9
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +62 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +702 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +279 -214
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +21 -21
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +12 -3
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +19 -19
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +12 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +63 -4
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +18 -18
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +6 -6
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +4 -1
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +62 -24
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +28 -28
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +9 -9
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +2 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +7 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +2 -5
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +32 -36
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +4 -5
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +2 -2
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +49 -49
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +9 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +14 -14
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +26 -26
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +13 -13
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +3 -1
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +103 -60
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +61 -61
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +66 -0
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +245 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.d.ts +78 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.js +234 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +31 -126
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +229 -524
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.d.ts +41 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipStorageKeys.js +22 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +4 -3
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +54 -20
  137. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  138. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +11 -12
  139. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +112 -39
  140. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +99 -0
  141. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +489 -0
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +6 -3
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +348 -285
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +18 -1
  146. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +107 -5
  147. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  148. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +4 -4
  149. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  150. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  151. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  152. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  153. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +2 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +55 -38
  155. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +20 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +148 -60
  157. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
  158. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  159. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
  160. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.d.ts +2 -0
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +29 -14
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +72 -14
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +5 -3
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +5 -2
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +11 -10
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +1 -0
  173. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +1 -0
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +8 -0
  175. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +20 -0
  176. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +1 -1
  177. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +72 -23
  178. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +19 -1
  179. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +5 -1
  180. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -1
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +37 -8
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +36 -3
  183. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +4 -4
  184. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +2 -2
  185. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +6 -1
  186. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +71 -25
  187. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +217 -91
  188. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +85 -3
  189. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +257 -63
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.d.ts +3 -16
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.js +7 -50
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.d.ts +2 -1
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +32 -3
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +1 -1
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +3 -1
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +7 -6
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +1 -1
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +26 -1
  201. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +287 -88
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +10 -1
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +75 -20
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +121 -0
  205. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +1422 -0
  206. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
  207. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +5 -1
  208. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +81 -41
  209. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +3 -1
  210. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +8 -6
  211. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  212. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.d.ts +14 -2
  213. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +54 -5
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +6 -5
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +4 -4
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +38 -22
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +8 -8
  219. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  220. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  221. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  222. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  223. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  224. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +8 -0
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +36 -18
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -2
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +6 -0
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +27 -13
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +1 -1
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +1 -0
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +8 -1
  250. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.d.ts +0 -12
  251. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +0 -67
@@ -2,7 +2,7 @@
2
2
  import { registerCss } from '@codingame/monaco-vscode-api/css';
3
3
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
4
  import * as aiCustomizationManagement from './media/aiCustomizationManagement.css';
5
- import { $ as $$1, append, addDisposableListener } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
5
+ import { $ as $$1, append, addDisposableListener, getWindow } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
6
  import { DisposableStore, Disposable, isDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
7
7
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
8
8
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
@@ -26,14 +26,15 @@ import { Delayer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/asyn
26
26
  import { Separator } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
27
27
  import { getContextMenuActions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/browser/mcpServerActions';
28
28
  import { LocalMcpServerScope } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/mcp/common/mcpWorkbenchManagementService';
29
- import { workspaceIcon, userIcon } from './aiCustomizationIcons.js';
29
+ import { workspaceIcon, userIcon, extensionIcon } from './aiCustomizationIcons.js';
30
30
  import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
31
+ import { IAICustomizationWorkspaceService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.service';
31
32
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
32
33
 
33
34
  registerCss(aiCustomizationManagement);
34
35
  const $ = $$1;
35
- const MCP_ITEM_HEIGHT = 60;
36
- const MCP_GROUP_HEADER_HEIGHT = 32;
36
+ const MCP_ITEM_HEIGHT = 36;
37
+ const MCP_GROUP_HEADER_HEIGHT = 36;
37
38
  const MCP_GROUP_HEADER_HEIGHT_WITH_SEPARATOR = 40;
38
39
  class McpServerItemDelegate {
39
40
  getHeight(element) {
@@ -46,6 +47,9 @@ class McpServerItemDelegate {
46
47
  if (element.type === "group-header") {
47
48
  return "mcpGroupHeader";
48
49
  }
50
+ if (element.type === "builtin-item") {
51
+ return "mcpServerItem";
52
+ }
49
53
  const server = element.server;
50
54
  return server.gallery && !server.local ? "mcpGalleryItem" : "mcpServerItem";
51
55
  }
@@ -103,21 +107,19 @@ class McpGroupHeaderRenderer {
103
107
  }
104
108
  }
105
109
  let McpServerItemRenderer = class McpServerItemRenderer {
106
- constructor(mcpService) {
110
+ constructor(mcpService, workspaceService) {
107
111
  this.mcpService = mcpService;
112
+ this.workspaceService = workspaceService;
108
113
  this.templateId = "mcpServerItem";
109
114
  }
110
115
  renderTemplate(container) {
111
116
  container.classList.add("mcp-server-item");
112
- const icon = append(container, $(".mcp-server-icon"));
113
- icon.classList.add(...ThemeIcon.asClassNameArray(Codicon.server));
114
117
  const details = append(container, $(".mcp-server-details"));
115
118
  const name = append(details, $(".mcp-server-name"));
116
119
  const description = append(details, $(".mcp-server-description"));
117
120
  const status = append(container, $(".mcp-server-status"));
118
121
  return {
119
122
  container,
120
- icon,
121
123
  name,
122
124
  description,
123
125
  status,
@@ -126,8 +128,26 @@ let McpServerItemRenderer = class McpServerItemRenderer {
126
128
  }
127
129
  renderElement(element, index, templateData) {
128
130
  templateData.disposables.clear();
131
+ if (element.type === "builtin-item") {
132
+ templateData.container.classList.add("builtin");
133
+ templateData.name.textContent = element.label;
134
+ if (element.description) {
135
+ templateData.description.textContent = element.description;
136
+ templateData.description.style.display = "";
137
+ } else {
138
+ templateData.description.style.display = "none";
139
+ }
140
+ templateData.status.style.display = "none";
141
+ return;
142
+ }
143
+ templateData.container.classList.remove("builtin");
129
144
  templateData.name.textContent = element.server.label;
130
- templateData.description.textContent = element.server.description || "";
145
+ if (element.server.description) {
146
+ templateData.description.textContent = element.server.description;
147
+ templateData.description.style.display = "";
148
+ } else {
149
+ templateData.description.style.display = "none";
150
+ }
131
151
  const server = this.mcpService.servers.get().find(s => s.definition.id === element.server.id);
132
152
  templateData.disposables.add(autorun(reader => {
133
153
  const connectionState = server?.connectionState.read(reader);
@@ -136,22 +156,27 @@ let McpServerItemRenderer = class McpServerItemRenderer {
136
156
  }
137
157
  updateStatus(statusElement, state) {
138
158
  statusElement.className = "mcp-server-status";
159
+ if (this.workspaceService.isSessionsWindow) {
160
+ statusElement.style.display = "none";
161
+ return;
162
+ }
163
+ statusElement.style.display = "";
139
164
  switch (state) {
140
165
  case McpConnectionState.Kind.Running:
141
- statusElement.textContent = ( localize(5291, "Running"));
166
+ statusElement.textContent = ( localize(5320, "Running"));
142
167
  statusElement.classList.add("running");
143
168
  break;
144
169
  case McpConnectionState.Kind.Starting:
145
- statusElement.textContent = ( localize(5292, "Starting"));
170
+ statusElement.textContent = ( localize(5321, "Starting"));
146
171
  statusElement.classList.add("starting");
147
172
  break;
148
173
  case McpConnectionState.Kind.Error:
149
- statusElement.textContent = ( localize(5293, "Error"));
174
+ statusElement.textContent = ( localize(5322, "Error"));
150
175
  statusElement.classList.add("error");
151
176
  break;
152
177
  case McpConnectionState.Kind.Stopped:
153
178
  default:
154
- statusElement.textContent = ( localize(5294, "Stopped"));
179
+ statusElement.textContent = ( localize(5323, "Stopped"));
155
180
  statusElement.classList.add("stopped");
156
181
  break;
157
182
  }
@@ -160,7 +185,7 @@ let McpServerItemRenderer = class McpServerItemRenderer {
160
185
  templateData.disposables.dispose();
161
186
  }
162
187
  };
163
- McpServerItemRenderer = ( __decorate([( __param(0, IMcpService))], McpServerItemRenderer));
188
+ McpServerItemRenderer = ( __decorate([( __param(0, IMcpService)), ( __param(1, IAICustomizationWorkspaceService))], McpServerItemRenderer));
164
189
  class McpGalleryItemRenderer {
165
190
  constructor(mcpWorkbenchService) {
166
191
  this.mcpWorkbenchService = mcpWorkbenchService;
@@ -168,8 +193,6 @@ class McpGalleryItemRenderer {
168
193
  }
169
194
  renderTemplate(container) {
170
195
  container.classList.add("mcp-server-item", "mcp-gallery-item");
171
- const icon = append(container, $(".mcp-server-icon"));
172
- icon.classList.add(...ThemeIcon.asClassNameArray(Codicon.server));
173
196
  const details = append(container, $(".mcp-server-details"));
174
197
  const nameRow = append(details, $(".mcp-gallery-name-row"));
175
198
  const name = append(nameRow, $(".mcp-server-name"));
@@ -185,7 +208,6 @@ class McpGalleryItemRenderer {
185
208
  templateDisposables.add(installButton);
186
209
  return {
187
210
  container,
188
- icon,
189
211
  name,
190
212
  publisher,
191
213
  description,
@@ -203,7 +225,7 @@ class McpGalleryItemRenderer {
203
225
  templateData.elementDisposables.add(templateData.installButton.onDidClick(async () => {
204
226
  const canInstall = this.mcpWorkbenchService.canInstall(element.server);
205
227
  if (canInstall === true) {
206
- templateData.installButton.label = ( localize(5295, "Installing..."));
228
+ templateData.installButton.label = ( localize(5324, "Installing..."));
207
229
  templateData.installButton.enabled = false;
208
230
  await this.mcpWorkbenchService.install(element.server);
209
231
  }
@@ -217,15 +239,15 @@ class McpGalleryItemRenderer {
217
239
  updateInstallButton(button, server) {
218
240
  switch (server.installState) {
219
241
  case McpServerInstallState.Installed:
220
- button.label = ( localize(5296, "Installed"));
242
+ button.label = ( localize(5325, "Installed"));
221
243
  button.enabled = false;
222
244
  break;
223
245
  case McpServerInstallState.Installing:
224
- button.label = ( localize(5295, "Installing..."));
246
+ button.label = ( localize(5324, "Installing..."));
225
247
  button.enabled = false;
226
248
  break;
227
249
  default:
228
- button.label = ( localize(5297, "Install"));
250
+ button.label = ( localize(5326, "Install"));
229
251
  button.enabled = true;
230
252
  break;
231
253
  }
@@ -277,7 +299,7 @@ let McpListWidget = class McpListWidget extends Disposable {
277
299
  this.searchAndButtonContainer = append(this.element, $(".list-search-and-button-container"));
278
300
  const searchContainer = append(this.searchAndButtonContainer, $(".list-search-container"));
279
301
  this.searchInput = this._register(( new InputBox(searchContainer, this.contextViewService, {
280
- placeholder: ( localize(5298, "Type to search...")),
302
+ placeholder: ( localize(5327, "Type to search...")),
281
303
  inputBoxStyles: defaultInputBoxStyles
282
304
  })));
283
305
  this._register(this.searchInput.onDidChange(() => {
@@ -295,7 +317,7 @@ let McpListWidget = class McpListWidget extends Disposable {
295
317
  secondary: true,
296
318
  supportIcons: true
297
319
  })));
298
- this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5299, "Browse Marketplace"))}`;
320
+ this.browseButton.label = `$(${Codicon.library.id}) ${( localize(5328, "Browse Marketplace"))}`;
299
321
  this.browseButton.element.classList.add("list-add-button");
300
322
  this._register(this.browseButton.onDidClick(() => {
301
323
  this.toggleBrowseMode(!this.browseMode);
@@ -305,7 +327,7 @@ let McpListWidget = class McpListWidget extends Disposable {
305
327
  ...defaultButtonStyles,
306
328
  supportIcons: true
307
329
  })));
308
- this.addButton.label = `$(${Codicon.add.id}) ${( localize(5300, "Add Server"))}`;
330
+ this.addButton.label = `$(${Codicon.add.id}) ${( localize(5329, "Add Server"))}`;
309
331
  this.addButton.element.classList.add("list-add-button");
310
332
  this._register(this.addButton.onDidClick(() => {
311
333
  this.commandService.executeCommand(McpCommandIds.AddConfiguration);
@@ -313,11 +335,11 @@ let McpListWidget = class McpListWidget extends Disposable {
313
335
  this.backLink = append(this.element, $(".mcp-back-link"));
314
336
  this.backLink.setAttribute("role", "button");
315
337
  this.backLink.tabIndex = 0;
316
- this.backLink.setAttribute("aria-label", ( localize(5301, "Back to installed servers")));
338
+ this.backLink.setAttribute("aria-label", ( localize(5330, "Back to installed servers")));
317
339
  const backIcon = append(this.backLink, $("span"));
318
340
  backIcon.classList.add(...ThemeIcon.asClassNameArray(Codicon.arrowLeft));
319
341
  const backText = append(this.backLink, $("span"));
320
- backText.textContent = ( localize(5302, "Back to installed servers"));
342
+ backText.textContent = ( localize(5331, "Back to installed servers"));
321
343
  this._register(addDisposableListener(this.backLink, "click", () => {
322
344
  this.toggleBrowseMode(false);
323
345
  }));
@@ -337,11 +359,11 @@ let McpListWidget = class McpListWidget extends Disposable {
337
359
  this.sectionHeader = append(this.element, $(".section-footer"));
338
360
  this.sectionDescription = append(this.sectionHeader, $("p.section-footer-description"));
339
361
  this.sectionDescription.textContent = ( localize(
340
- 5303,
362
+ 5332,
341
363
  "An open standard that lets AI use external tools and services. MCP servers provide tools for file operations, databases, APIs, and more."
342
364
  ));
343
365
  this.sectionLink = append(this.sectionHeader, $("a.section-footer-link"));
344
- this.sectionLink.textContent = ( localize(5304, "Learn more about MCP servers"));
366
+ this.sectionLink.textContent = ( localize(5333, "Learn more about MCP servers"));
345
367
  this.sectionLink.href = "https://code.visualstudio.com/docs/copilot/chat/mcp-servers";
346
368
  this._register(addDisposableListener(this.sectionLink, "click", e => {
347
369
  e.preventDefault();
@@ -368,23 +390,32 @@ let McpListWidget = class McpListWidget extends Disposable {
368
390
  getAriaLabel(element) {
369
391
  if (element.type === "group-header") {
370
392
  return localize(
371
- 5305,
393
+ 5334,
372
394
  "{0}, {1} items, {2}",
373
395
  element.label,
374
396
  element.count,
375
- element.collapsed ? ( localize(5306, "collapsed")) : ( localize(5307, "expanded"))
397
+ element.collapsed ? ( localize(5335, "collapsed")) : ( localize(5336, "expanded"))
376
398
  );
377
399
  }
400
+ if (element.type === "builtin-item") {
401
+ return element.label;
402
+ }
378
403
  return element.server.label;
379
404
  },
380
405
  getWidgetAriaLabel() {
381
- return localize(5308, "MCP Servers");
406
+ return localize(5337, "MCP Servers");
382
407
  }
383
408
  },
384
409
  openOnSingleClick: true,
385
410
  identityProvider: {
386
411
  getId(element) {
387
- return element.type === "group-header" ? element.id : element.server.id;
412
+ if (element.type === "group-header") {
413
+ return element.id;
414
+ }
415
+ if (element.type === "builtin-item") {
416
+ return element.id;
417
+ }
418
+ return element.server.id;
388
419
  }
389
420
  }
390
421
  }
@@ -393,7 +424,7 @@ let McpListWidget = class McpListWidget extends Disposable {
393
424
  if (e.element) {
394
425
  if (e.element.type === "group-header") {
395
426
  this.toggleGroup(e.element);
396
- } else {
427
+ } else if (e.element.type === "server-item") {
397
428
  this._onDidSelectServer.fire(e.element.server);
398
429
  }
399
430
  }
@@ -426,7 +457,7 @@ let McpListWidget = class McpListWidget extends Disposable {
426
457
  this.backLink.style.display = browse ? "" : "none";
427
458
  this.addButton.element.parentElement.style.display = browse ? "none" : "";
428
459
  this.browseButton.element.parentElement.style.display = browse ? "none" : "";
429
- this.searchInput.setPlaceHolder(browse ? ( localize(5309, "Search MCP marketplace...")) : ( localize(5298, "Type to search...")));
460
+ this.searchInput.setPlaceHolder(browse ? ( localize(5338, "Search MCP marketplace...")) : ( localize(5327, "Type to search...")));
430
461
  if (browse) {
431
462
  void this.queryGallery();
432
463
  } else {
@@ -440,7 +471,7 @@ let McpListWidget = class McpListWidget extends Disposable {
440
471
  const cts = this.galleryCts = ( new CancellationTokenSource());
441
472
  this.emptyContainer.style.display = "flex";
442
473
  this.listContainer.style.display = "none";
443
- this.emptyText.textContent = ( localize(5310, "Loading marketplace..."));
474
+ this.emptyText.textContent = ( localize(5339, "Loading marketplace..."));
444
475
  this.emptySubtext.textContent = "";
445
476
  try {
446
477
  const pager = await this.mcpWorkbenchService.queryGallery({
@@ -456,8 +487,8 @@ let McpListWidget = class McpListWidget extends Disposable {
456
487
  this.galleryServers = [];
457
488
  this.emptyContainer.style.display = "flex";
458
489
  this.listContainer.style.display = "none";
459
- this.emptyText.textContent = ( localize(5311, "Unable to load marketplace"));
460
- this.emptySubtext.textContent = ( localize(5312, "Check your connection and try again"));
490
+ this.emptyText.textContent = ( localize(5340, "Unable to load marketplace"));
491
+ this.emptySubtext.textContent = ( localize(5341, "Check your connection and try again"));
461
492
  }
462
493
  }
463
494
  }
@@ -466,10 +497,10 @@ let McpListWidget = class McpListWidget extends Disposable {
466
497
  this.emptyContainer.style.display = "flex";
467
498
  this.listContainer.style.display = "none";
468
499
  if (this.searchQuery.trim()) {
469
- this.emptyText.textContent = ( localize(5313, "No servers match '{0}'", this.searchQuery));
470
- this.emptySubtext.textContent = ( localize(5314, "Try a different search term"));
500
+ this.emptyText.textContent = ( localize(5342, "No servers match '{0}'", this.searchQuery));
501
+ this.emptySubtext.textContent = ( localize(5343, "Try a different search term"));
471
502
  } else {
472
- this.emptyText.textContent = ( localize(5315, "No MCP servers available"));
503
+ this.emptyText.textContent = ( localize(5344, "No MCP servers available"));
473
504
  this.emptySubtext.textContent = "";
474
505
  }
475
506
  } else {
@@ -491,15 +522,17 @@ let McpListWidget = class McpListWidget extends Disposable {
491
522
  } else {
492
523
  this.filteredServers = [...this.mcpWorkbenchService.local];
493
524
  }
494
- if (this.filteredServers.length === 0) {
525
+ const localIds = ( new Set(( this.filteredServers.map(s => s.id))));
526
+ const builtinServers = this.mcpService.servers.get().filter(s => !( localIds.has(s.definition.id))).filter(s => !query || s.definition.label.toLowerCase().includes(query));
527
+ if (this.filteredServers.length === 0 && builtinServers.length === 0) {
495
528
  this.emptyContainer.style.display = "flex";
496
529
  this.listContainer.style.display = "none";
497
530
  if (this.searchQuery.trim()) {
498
- this.emptyText.textContent = ( localize(5316, "No servers match '{0}'", this.searchQuery));
499
- this.emptySubtext.textContent = ( localize(5314, "Try a different search term"));
531
+ this.emptyText.textContent = ( localize(5345, "No servers match '{0}'", this.searchQuery));
532
+ this.emptySubtext.textContent = ( localize(5343, "Try a different search term"));
500
533
  } else {
501
- this.emptyText.textContent = ( localize(5317, "No MCP servers configured"));
502
- this.emptySubtext.textContent = ( localize(5318, "Add an MCP server configuration to get started"));
534
+ this.emptyText.textContent = ( localize(5346, "No MCP servers configured"));
535
+ this.emptySubtext.textContent = ( localize(5347, "Add an MCP server configuration to get started"));
503
536
  }
504
537
  } else {
505
538
  this.emptyContainer.style.display = "none";
@@ -507,19 +540,19 @@ let McpListWidget = class McpListWidget extends Disposable {
507
540
  }
508
541
  const groups = [{
509
542
  scope: LocalMcpServerScope.Workspace,
510
- label: ( localize(5319, "Workspace")),
543
+ label: ( localize(5348, "Workspace")),
511
544
  icon: workspaceIcon,
512
545
  description: ( localize(
513
- 5320,
546
+ 5349,
514
547
  "MCP servers configured in your workspace settings, shared with your team via version control."
515
548
  )),
516
549
  servers: []
517
550
  }, {
518
551
  scope: LocalMcpServerScope.User,
519
- label: ( localize(5321, "User")),
552
+ label: ( localize(5350, "User")),
520
553
  icon: userIcon,
521
554
  description: ( localize(
522
- 5322,
555
+ 5351,
523
556
  "MCP servers configured in your user settings. Private to you and available across all projects."
524
557
  )),
525
558
  servers: []
@@ -560,6 +593,30 @@ let McpListWidget = class McpListWidget extends Disposable {
560
593
  }
561
594
  isFirst = false;
562
595
  }
596
+ if (builtinServers.length > 0) {
597
+ const collapsed = ( this.collapsedGroups.has("builtin"));
598
+ entries.push({
599
+ type: "group-header",
600
+ id: "mcp-group-builtin",
601
+ scope: "builtin",
602
+ label: ( localize(5352, "Built-in")),
603
+ icon: extensionIcon,
604
+ count: builtinServers.length,
605
+ isFirst,
606
+ description: ( localize(5353, "MCP servers built into VS Code. These are available automatically.")),
607
+ collapsed
608
+ });
609
+ if (!collapsed) {
610
+ for (const server of builtinServers) {
611
+ entries.push({
612
+ type: "builtin-item",
613
+ id: `builtin-${server.definition.id}`,
614
+ label: server.definition.label,
615
+ description: ""
616
+ });
617
+ }
618
+ }
619
+ }
563
620
  this.displayEntries = entries;
564
621
  this.list.splice(0, this.list.length, this.displayEntries);
565
622
  }
@@ -572,13 +629,25 @@ let McpListWidget = class McpListWidget extends Disposable {
572
629
  this.filterServers();
573
630
  }
574
631
  layout(height, width) {
575
- const sectionFooterHeight = this.sectionHeader.offsetHeight || 100;
576
- const searchBarHeight = this.searchAndButtonContainer.offsetHeight || 40;
632
+ const sectionFooterHeight = this.sectionHeader.offsetHeight || 0;
633
+ const searchBarHeight = this.searchAndButtonContainer.offsetHeight || 52;
577
634
  const backLinkHeight = this.browseMode ? (this.backLink.offsetHeight || 28) : 0;
578
- const margins = 12;
579
- const listHeight = height - sectionFooterHeight - searchBarHeight - backLinkHeight - margins;
635
+ const listHeight = height - sectionFooterHeight - searchBarHeight - backLinkHeight;
580
636
  this.listContainer.style.height = `${Math.max(0, listHeight)}px`;
581
637
  this.list.layout(Math.max(0, listHeight), width);
638
+ if (sectionFooterHeight === 0) {
639
+ getWindow(this.listContainer).requestAnimationFrame(() => {
640
+ if (this._store.isDisposed) {
641
+ return;
642
+ }
643
+ const actualFooterHeight = this.sectionHeader.offsetHeight;
644
+ if (actualFooterHeight > 0) {
645
+ const correctedHeight = height - actualFooterHeight - searchBarHeight - backLinkHeight;
646
+ this.listContainer.style.height = `${Math.max(0, correctedHeight)}px`;
647
+ this.list.layout(Math.max(0, correctedHeight), width);
648
+ }
649
+ });
650
+ }
582
651
  }
583
652
  focusSearch() {
584
653
  this.searchInput.focus();
@@ -31,7 +31,65 @@
31
31
  overflow: hidden;
32
32
  }
33
33
 
34
+ /* Folder picker footer (sessions window only) */
35
+ .ai-customization-management-editor .sidebar-folder-picker {
36
+ flex-shrink: 0;
37
+ display: flex;
38
+ align-items: center;
39
+ gap: 2px;
40
+ padding: 6px 4px;
41
+ border-top: 1px solid var(--vscode-sideBarSectionHeader-border, transparent);
42
+ }
34
43
 
44
+ .ai-customization-management-editor .folder-picker-button {
45
+ display: flex;
46
+ align-items: center;
47
+ gap: 6px;
48
+ flex: 1;
49
+ min-width: 0;
50
+ padding: 4px 6px;
51
+ border: none;
52
+ border-radius: 4px;
53
+ background: transparent;
54
+ color: var(--vscode-descriptionForeground);
55
+ cursor: pointer;
56
+ font-size: 11px;
57
+ }
58
+
59
+ .ai-customization-management-editor .folder-picker-button:hover {
60
+ background-color: var(--vscode-list-hoverBackground);
61
+ }
62
+
63
+ .ai-customization-management-editor .folder-picker-icon {
64
+ flex-shrink: 0;
65
+ font-size: 14px;
66
+ }
67
+
68
+ .ai-customization-management-editor .folder-picker-label {
69
+ overflow: hidden;
70
+ text-overflow: ellipsis;
71
+ white-space: nowrap;
72
+ }
73
+
74
+ .ai-customization-management-editor .folder-picker-clear {
75
+ flex-shrink: 0;
76
+ display: flex;
77
+ align-items: center;
78
+ justify-content: center;
79
+ width: 22px;
80
+ height: 22px;
81
+ padding: 0;
82
+ border: none;
83
+ border-radius: 4px;
84
+ background: transparent;
85
+ color: var(--vscode-descriptionForeground);
86
+ cursor: pointer;
87
+ font-size: 12px;
88
+ }
89
+
90
+ .ai-customization-management-editor .folder-picker-clear:hover {
91
+ background-color: var(--vscode-list-hoverBackground);
92
+ }
35
93
 
36
94
  /* Section list items */
37
95
  .ai-customization-management-editor .section-list-item {
@@ -108,7 +166,7 @@
108
166
  align-items: center;
109
167
  gap: 8px;
110
168
  flex-shrink: 0;
111
- margin: 6px 0px;
169
+ padding: 6px 0;
112
170
  }
113
171
 
114
172
  .ai-customization-list-widget .list-search-container,
@@ -137,7 +195,8 @@
137
195
 
138
196
  .ai-customization-list-widget .list-container {
139
197
  flex: 1;
140
- overflow: hidden;
198
+ min-height: 0;
199
+ overflow: auto;
141
200
  }
142
201
 
143
202
  .ai-customization-list-widget .list-empty-message {
@@ -193,11 +252,9 @@
193
252
  border-radius: 4px;
194
253
  }
195
254
 
196
- /* Separator line above non-first group headers */
255
+ /* Spacing above non-first group headers */
197
256
  .ai-customization-group-header.has-previous-group {
198
- border-top: 1px solid var(--vscode-sideBarSectionHeader-border, var(--vscode-panel-border));
199
257
  margin-top: 4px;
200
- padding-top: 12px;
201
258
  }
202
259
 
203
260
  .ai-customization-group-header:hover {
@@ -499,6 +556,7 @@
499
556
  /* Content container visibility */
500
557
  .ai-customization-management-editor .prompts-content-container,
501
558
  .ai-customization-management-editor .mcp-content-container,
559
+ .ai-customization-management-editor .plugin-content-container,
502
560
  .ai-customization-management-editor .models-content-container {
503
561
  height: 100%;
504
562
  display: flex;
@@ -517,6 +575,18 @@
517
575
  overflow: hidden;
518
576
  }
519
577
 
578
+ /* Embedded plugin detail view */
579
+ .ai-customization-management-editor .plugin-detail-container {
580
+ height: 100%;
581
+ display: flex;
582
+ flex-direction: column;
583
+ }
584
+
585
+ .ai-customization-management-editor .plugin-detail-editor-container {
586
+ flex: 1;
587
+ overflow: hidden;
588
+ }
589
+
520
590
  /* Models section footer */
521
591
  .ai-customization-management-editor .models-content-container .section-footer {
522
592
  flex-shrink: 0;
@@ -590,7 +660,8 @@
590
660
 
591
661
  .mcp-list-widget .mcp-list-container {
592
662
  flex: 1;
593
- overflow: hidden;
663
+ min-height: 0;
664
+ overflow: auto;
594
665
  }
595
666
 
596
667
  /* MCP Empty State */
@@ -632,17 +703,23 @@
632
703
  .mcp-server-item {
633
704
  display: flex;
634
705
  align-items: center;
635
- padding: 8px 12px;
706
+ padding: 6px 8px 6px 24px;
636
707
  cursor: pointer;
637
708
  border-radius: 4px;
638
709
  margin: 2px 0;
639
- gap: 12px;
710
+ min-height: 32px;
711
+ gap: 10px;
640
712
  }
641
713
 
642
714
  .mcp-server-item:hover {
643
715
  background-color: var(--vscode-list-hoverBackground);
644
716
  }
645
717
 
718
+ .mcp-server-item.builtin {
719
+ cursor: default;
720
+ opacity: 0.85;
721
+ }
722
+
646
723
  .mcp-server-item .mcp-server-icon {
647
724
  flex-shrink: 0;
648
725
  width: 24px;
@@ -663,10 +740,10 @@
663
740
 
664
741
  .mcp-server-item .mcp-server-name {
665
742
  font-size: 13px;
666
- font-weight: 500;
667
743
  overflow: hidden;
668
744
  text-overflow: ellipsis;
669
745
  white-space: nowrap;
746
+ line-height: 18px;
670
747
  }
671
748
 
672
749
  .mcp-server-item .mcp-server-description {
@@ -675,6 +752,7 @@
675
752
  overflow: hidden;
676
753
  text-overflow: ellipsis;
677
754
  white-space: nowrap;
755
+ line-height: 14px;
678
756
  }
679
757
 
680
758
  .mcp-server-item .mcp-server-status {
@@ -0,0 +1,62 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
3
+ import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
4
+ import { IContextMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service";
5
+ import { IContextViewService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service";
6
+ import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
7
+ import { IAgentPluginService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService.service";
8
+ import { IPluginMarketplaceService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.service";
9
+ import { IPluginInstallService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginInstallService.service";
10
+ import { IAgentPluginItem } from "../agentPluginEditor/agentPluginItems.js";
11
+ import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service";
12
+ /**
13
+ * Widget that displays a list of agent plugins with marketplace browsing.
14
+ * Follows the same patterns as {@link McpListWidget}.
15
+ */
16
+ export declare class PluginListWidget extends Disposable {
17
+ private readonly instantiationService;
18
+ private readonly agentPluginService;
19
+ private readonly pluginMarketplaceService;
20
+ private readonly pluginInstallService;
21
+ private readonly openerService;
22
+ private readonly contextViewService;
23
+ private readonly contextMenuService;
24
+ private readonly hoverService;
25
+ private readonly labelService;
26
+ readonly element: HTMLElement;
27
+ private readonly _onDidSelectPlugin;
28
+ readonly onDidSelectPlugin: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<IAgentPluginItem>;
29
+ private sectionHeader;
30
+ private sectionDescription;
31
+ private sectionLink;
32
+ private searchAndButtonContainer;
33
+ private searchInput;
34
+ private listContainer;
35
+ private list;
36
+ private emptyContainer;
37
+ private emptyText;
38
+ private emptySubtext;
39
+ private browseButton;
40
+ private backLink;
41
+ private installedItems;
42
+ private displayEntries;
43
+ private marketplaceItems;
44
+ private searchQuery;
45
+ private browseMode;
46
+ private readonly collapsedGroups;
47
+ private marketplaceCts;
48
+ private readonly delayedFilter;
49
+ private readonly delayedMarketplaceSearch;
50
+ constructor(instantiationService: IInstantiationService, agentPluginService: IAgentPluginService, pluginMarketplaceService: IPluginMarketplaceService, pluginInstallService: IPluginInstallService, openerService: IOpenerService, contextViewService: IContextViewService, contextMenuService: IContextMenuService, hoverService: IHoverService, labelService: ILabelService);
51
+ private create;
52
+ private refresh;
53
+ private toggleBrowseMode;
54
+ private queryMarketplace;
55
+ private updateMarketplaceList;
56
+ private filterPlugins;
57
+ private toggleGroup;
58
+ layout(height: number, width: number): void;
59
+ focusSearch(): void;
60
+ focus(): void;
61
+ private onContextMenu;
62
+ }