@codingame/monaco-vscode-chat-service-override 34.1.2 → 35.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 (427) hide show
  1. package/index.js +38 -0
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/browser/agentHost.config.contribution.d.ts +1 -0
  4. package/vscode/src/vs/platform/agentHost/browser/agentHost.config.contribution.js +40 -0
  5. package/vscode/src/vs/platform/agentHost/browser/agentHostConnectionsService.d.ts +27 -0
  6. package/vscode/src/vs/platform/agentHost/browser/agentHostConnectionsService.js +91 -0
  7. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +20 -4
  8. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +148 -15
  9. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +1 -0
  10. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +9 -1
  11. package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.js +57 -3
  12. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +10 -14
  13. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +29 -8
  14. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +109 -2
  15. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +207 -21
  16. package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.js +362 -37
  17. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +698 -91
  18. package/vscode/src/vs/platform/agentHost/common/agentService.js +46 -3
  19. package/vscode/src/vs/platform/agentHost/common/customAgents.js +1 -0
  20. package/vscode/src/vs/platform/agentHost/common/resourceReadLogging.d.ts +1 -0
  21. package/vscode/src/vs/platform/agentHost/common/resourceReadLogging.js +26 -0
  22. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.d.ts +5 -5
  23. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.js +17 -17
  24. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +96 -12
  25. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +226 -19
  26. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-annotations/reducer.d.ts +18 -0
  27. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-annotations/reducer.js +89 -0
  28. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.js +10 -0
  29. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/reducer.d.ts +6 -0
  30. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-chat/reducer.js +400 -0
  31. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/reducer.js +129 -446
  32. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.d.ts +2 -2
  33. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +1 -1
  34. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +1 -1
  35. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +35 -25
  36. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +7 -1
  37. package/vscode/src/vs/{workbench/contrib → platform}/browserView/common/browserChatToolReferenceNames.d.ts +4 -0
  38. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +1 -1
  39. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +1 -0
  40. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.d.ts +0 -6
  41. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.js +5 -18
  42. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.d.ts +52 -3
  43. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.js +212 -34
  44. package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.js +3 -4
  45. package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.js +11 -10
  46. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +13 -6
  47. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +6 -1
  48. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoice.contribution.d.ts +2 -0
  49. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoice.contribution.js +399 -0
  50. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceSessionsPicker.d.ts +20 -0
  51. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceSessionsPicker.js +85 -0
  52. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidget.d.ts +177 -0
  53. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidget.js +898 -0
  54. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidgetBinding.d.ts +24 -0
  55. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWidgetBinding.js +204 -0
  56. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWindowService.d.ts +61 -0
  57. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/agentsVoiceWindowService.js +338 -0
  58. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/confirmationComponent.d.ts +10 -0
  59. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/confirmationComponent.js +57 -0
  60. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/feedbackDialog.d.ts +33 -0
  61. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/feedbackDialog.js +98 -0
  62. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/headerComponent.d.ts +30 -0
  63. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/headerComponent.js +149 -0
  64. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/onboardingComponent.d.ts +12 -0
  65. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/onboardingComponent.js +116 -0
  66. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/sessionListComponent.d.ts +32 -0
  67. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/sessionListComponent.js +226 -0
  68. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/statusRowsComponent.d.ts +18 -0
  69. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/statusRowsComponent.js +138 -0
  70. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/tokens.d.ts +26 -0
  71. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/tokens.js +25 -0
  72. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/transcriptComponent.d.ts +13 -0
  73. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/transcriptComponent.js +108 -0
  74. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/voiceBarComponent.d.ts +13 -0
  75. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/components/voiceBarComponent.js +63 -0
  76. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscripts.contribution.d.ts +1 -0
  77. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscripts.contribution.js +178 -0
  78. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscriptsView.d.ts +47 -0
  79. package/vscode/src/vs/workbench/contrib/agentsVoice/browser/transcriptsView/voiceTranscriptsView.js +322 -0
  80. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.d.ts +15 -0
  81. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoice.js +15 -0
  82. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoiceColors.d.ts +2 -0
  83. package/vscode/src/vs/workbench/contrib/agentsVoice/common/agentsVoiceColors.js +26 -0
  84. package/vscode/src/vs/workbench/contrib/agentsVoice/common/voiceTranscriptStore.d.ts +132 -0
  85. package/vscode/src/vs/workbench/contrib/agentsVoice/common/voiceTranscriptStore.js +237 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  87. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +2 -2
  88. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +32 -16
  89. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  90. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.d.ts +1 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +71 -60
  92. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  93. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClear.js +6 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +15 -15
  95. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  96. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +7 -7
  97. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +19 -24
  98. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +9 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +14 -5
  101. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  102. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  103. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  104. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +14 -14
  105. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +13 -13
  106. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +66 -52
  107. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  108. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +15 -36
  109. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  110. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
  111. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +20 -20
  112. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +1 -1
  113. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +128 -13
  114. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +6 -6
  115. package/vscode/src/vs/workbench/contrib/chat/browser/actions/reviewEdits.js +1 -1
  116. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +10 -10
  117. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
  118. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  119. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +1 -0
  120. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +58 -9
  121. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
  122. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.d.ts +15 -3
  123. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.js +64 -17
  124. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.d.ts +45 -1
  125. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.js +15 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.d.ts +25 -5
  127. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.js +143 -20
  128. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.js +7 -31
  129. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.d.ts +23 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostNewSessionFolderService.js +52 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +5 -5
  132. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolSetEnablementService.d.ts +47 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolSetEnablementService.js +163 -0
  134. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +26 -3
  135. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +106 -8
  136. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.d.ts +16 -3
  137. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.js +44 -14
  138. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  139. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -59
  140. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  141. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  144. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  145. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +4 -4
  146. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +22 -22
  147. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  148. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  149. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentDisabledInputTipContribution.d.ts +27 -0
  150. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentDisabledInputTipContribution.js +152 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +11 -5
  152. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +1 -1
  153. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +9 -36
  154. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +8 -0
  155. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +17 -15
  156. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +143 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.js +30 -0
  158. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +6 -3
  159. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +3 -1
  160. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +1 -3
  161. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +107 -126
  162. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +46 -46
  163. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +19 -22
  164. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +244 -190
  165. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +2 -0
  166. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +13 -1
  167. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.d.ts +3 -1
  168. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.js +7 -2
  169. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.d.ts +5 -1
  170. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +47 -28
  171. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +2 -5
  172. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +4 -8
  173. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/automationsListWidget.d.ts +87 -0
  174. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/automationsListWidget.js +772 -0
  175. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +24 -8
  176. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +3 -8
  177. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +1 -7
  178. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +2 -2
  179. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.d.ts +42 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedExtensionToolsDetail.js +130 -0
  181. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +3 -3
  182. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.d.ts +46 -0
  183. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/galleryItemRenderer.js +94 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +9 -1
  185. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +421 -201
  186. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +1426 -97
  187. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +1 -1
  188. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +1 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +107 -127
  190. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.d.ts +29 -0
  191. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +331 -0
  192. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.d.ts +120 -0
  193. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/toolsListWidget.js +898 -0
  194. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +581 -336
  196. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostChatDebugProvider.d.ts +123 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/agentHostChatDebugProvider.js +567 -0
  198. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  199. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheDiff.js +168 -84
  200. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.d.ts +183 -2
  201. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +897 -251
  202. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheInsights.d.ts +213 -0
  203. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheInsights.js +720 -0
  204. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  205. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  206. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
  207. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  208. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  209. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  210. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
  211. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  212. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  213. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
  214. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  215. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  216. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
  217. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  218. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +354 -1
  219. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +9 -2
  220. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  221. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +1 -1
  222. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  223. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  224. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  225. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  226. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +11 -4
  227. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  228. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  229. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +4 -4
  230. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +1 -1
  232. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  233. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.d.ts +9 -3
  234. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +55 -8
  235. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
  236. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  237. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +18 -1
  238. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +192 -87
  239. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +37 -3
  240. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  241. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  242. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.d.ts +40 -1
  243. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.js +230 -41
  244. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  245. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseFileChangesService.d.ts +30 -0
  246. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseFileChangesService.js +29 -0
  247. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -25
  248. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  249. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  250. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +35 -32
  251. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +26 -2
  252. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +56 -32
  253. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +19 -19
  254. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +0 -1
  255. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +109 -68
  256. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +38 -5
  257. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +175 -50
  258. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +4 -0
  259. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +19 -19
  260. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
  261. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  262. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  263. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +5 -5
  264. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +5 -5
  265. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  266. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  267. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
  268. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
  269. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
  270. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +4 -5
  271. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +1 -1
  272. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
  273. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +32 -3
  274. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +183 -84
  275. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +15 -15
  276. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +3 -1
  277. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +20 -9
  278. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  279. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
  280. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  281. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  282. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolSetsCodeLensProvider.d.ts +1 -0
  283. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolSetsCodeLensProvider.js +109 -0
  284. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  285. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  286. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  287. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  288. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  289. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  290. package/vscode/src/vs/workbench/contrib/chat/browser/tools/clientToolSetsContribution.d.ts +17 -0
  291. package/vscode/src/vs/workbench/contrib/chat/browser/tools/clientToolSetsContribution.js +117 -0
  292. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  293. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +40 -4
  294. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +169 -34
  295. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +7 -7
  296. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +5 -1
  297. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +2 -2
  298. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +8 -8
  299. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +2 -2
  300. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  301. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.d.ts +125 -0
  302. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/micCaptureService.js +399 -0
  303. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/ttsPlaybackService.d.ts +34 -0
  304. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/ttsPlaybackService.js +198 -0
  305. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceClientService.d.ts +85 -0
  306. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceClientService.js +504 -0
  307. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceSessionController.d.ts +321 -0
  308. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceSessionController.js +2117 -0
  309. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceToolDispatchService.d.ts +57 -0
  310. package/vscode/src/vs/workbench/contrib/chat/browser/voiceClient/voiceToolDispatchService.js +367 -0
  311. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +16 -12
  312. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.d.ts +2 -0
  313. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/agentHostInputCompletions.js +68 -18
  314. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +11 -10
  315. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +2 -2
  316. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  317. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  318. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.d.ts +7 -0
  319. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +13 -2
  320. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +23 -5
  321. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +320 -40
  322. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  323. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +80 -4
  324. package/vscode/src/vs/workbench/contrib/chat/common/automations/automation.d.ts +78 -0
  325. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.d.ts +13 -0
  326. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.service.d.ts +11 -0
  327. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationDialogService.service.js +6 -0
  328. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationRunner.service.d.ts +16 -0
  329. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationRunner.service.js +6 -0
  330. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.d.ts +46 -0
  331. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.service.d.ts +36 -0
  332. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationService.service.js +6 -0
  333. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationsEnabled.d.ts +12 -0
  334. package/vscode/src/vs/workbench/contrib/chat/common/automations/automationsEnabled.js +6 -0
  335. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +9 -0
  336. package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +6 -0
  337. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +2 -0
  338. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +7 -1
  339. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +28 -0
  340. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +226 -88
  341. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +6 -0
  342. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +8 -3
  343. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +13 -2
  344. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +12 -8
  345. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +5 -0
  346. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +5 -2
  347. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.d.ts +15 -0
  348. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginEnablement.js +177 -0
  349. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +2 -18
  350. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +78 -136
  351. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +1 -16
  352. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +1 -17
  353. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +2 -0
  354. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +16 -5
  355. package/vscode/src/vs/workbench/contrib/chat/common/plugins/strictKnownMarketplaces.d.ts +31 -0
  356. package/vscode/src/vs/workbench/contrib/chat/common/plugins/strictKnownMarketplaces.js +122 -0
  357. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +24 -18
  358. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +3 -0
  359. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +113 -10
  360. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  361. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  362. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +10 -0
  363. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +227 -152
  364. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  365. package/vscode/src/vs/workbench/contrib/chat/common/voicePlaybackService.d.ts +26 -0
  366. package/vscode/src/vs/workbench/contrib/chat/common/voicePlaybackService.js +98 -0
  367. package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.d.ts +5 -0
  368. package/vscode/src/vs/workbench/contrib/chat/common/workingDirectory.js +7 -6
  369. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +11 -12
  370. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +10 -10
  371. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.d.ts +2 -0
  372. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditorInput.js +7 -0
  373. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
  374. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  375. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
  376. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  377. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  378. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  379. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  380. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  381. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  382. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  383. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +32 -20
  384. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  385. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.d.ts +23 -5
  386. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.js +37 -30
  387. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +7 -0
  388. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +7 -0
  389. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +7 -0
  390. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/largeOutputFileWriter.d.ts +33 -0
  391. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/largeOutputFileWriter.js +71 -0
  392. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +19 -0
  393. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +29 -9
  394. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +7 -20
  395. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +4 -4
  396. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +2 -1
  397. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  398. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  399. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +10 -8
  400. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  401. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +4 -4
  402. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  403. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  404. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +3 -3
  405. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +26 -2
  406. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +32 -3
  407. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +416 -252
  408. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +1 -1
  409. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +3 -2
  410. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +10 -10
  411. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  412. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  413. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  414. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  415. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.d.ts +2 -3
  416. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.js +5 -5
  417. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +6 -2
  418. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +25 -8
  419. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.d.ts +8 -3
  420. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.js +15 -0
  421. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +0 -20
  422. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +0 -77
  423. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.d.ts +0 -52
  424. package/vscode/src/vs/workbench/contrib/chat/browser/copilotCliEventsUri.js +0 -82
  425. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.d.ts +0 -38
  426. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.js +0 -47
  427. /package/vscode/src/vs/{workbench/contrib → platform}/browserView/common/browserChatToolReferenceNames.js +0 -0
@@ -5,6 +5,7 @@ import * as aiCustomizationManagement from './media/aiCustomizationManagement.cs
5
5
  import { $ as $$1, append, getWindow, addDisposableListener, clearNode } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
6
  import { status } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
7
7
  import { RunOnceScheduler } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
8
+ import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
8
9
  import { VSBuffer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
9
10
  import { onUnexpectedError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
10
11
  import { DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
@@ -34,8 +35,12 @@ import { ITEMS_MODEL_SECTIONS } from './aiCustomizationItemsModel.js';
34
35
  import { IAICustomizationItemsModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.service';
35
36
  import { McpListWidget } from './mcpListWidget.js';
36
37
  import { PluginListWidget } from './pluginListWidget.js';
38
+ import { ToolsListWidget } from './toolsListWidget.js';
39
+ import { AGENT_HOST_COPILOT_CLI_SESSION_TYPE } from '../agentSessions/agentHost/agentHostToolSetEnablementService.js';
40
+ import { AutomationsListWidget } from './automationsListWidget.js';
37
41
  import { AI_CUSTOMIZATION_MANAGEMENT_EDITOR_ID, CONTEXT_AI_CUSTOMIZATION_MANAGEMENT_EDITOR, CONTEXT_AI_CUSTOMIZATION_MANAGEMENT_SECTION, CONTEXT_AI_CUSTOMIZATION_MANAGEMENT_HARNESS, AI_CUSTOMIZATION_MANAGEMENT_SELECTED_SECTION_KEY, AI_CUSTOMIZATION_MANAGEMENT_SIDEBAR_WIDTH_KEY, SIDEBAR_DEFAULT_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_MIN_WIDTH, CONTENT_MIN_WIDTH } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement';
38
- import { pluginIcon, hookIcon, promptIcon, instructionsIcon, skillIcon, agentIcon } from './aiCustomizationIcons.js';
42
+ import { toolsIcon, pluginIcon, automationIcon, hookIcon, promptIcon, instructionsIcon, skillIcon, agentIcon } from './aiCustomizationIcons.js';
43
+ import { CHAT_AUTOMATIONS_ENABLED_SETTING } from '../../common/automations/automationsEnabled.js';
39
44
  import { ChatModelsWidget } from '../chatManagement/chatModelsWidget.js';
40
45
  import { PromptsType, Target } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
41
46
  import { PromptsStorage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
@@ -60,16 +65,17 @@ import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/fi
60
65
  import { IMarkdownRendererService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer.service';
61
66
  import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
62
67
  import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
63
- import { IContextMenuService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service';
64
- import { Action } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
65
68
  import { getDefaultHoverDelegate } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
66
69
  import { EmbeddedMcpServerDetail } from './embeddedMcpServerDetail.js';
67
70
  import { EmbeddedAgentPluginDetail } from './embeddedAgentPluginDetail.js';
68
- import { matchesWorkspaceSubpath } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/customizationHarnessService';
71
+ import { EmbeddedExtensionToolsDetail } from './embeddedExtensionToolsDetail.js';
69
72
  import { ICustomizationHarnessService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/customizationHarnessService.service';
70
73
  import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
71
74
  import { AICustomizationWelcomePage } from './aiCustomizationWelcomePage.js';
72
75
  import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
76
+ import { ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
77
+ import { PromptsServiceCustomizationItemProvider } from './promptsServiceCustomizationItemProvider.js';
78
+ import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
73
79
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
74
80
  import { Orientation } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/sash/sash';
75
81
 
@@ -150,11 +156,11 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
150
156
  markdownRendererService,
151
157
  modelService,
152
158
  quickInputService,
153
- contextMenuService,
154
159
  fileService,
155
160
  notificationService,
156
161
  harnessService,
157
162
  viewsService,
163
+ labelService,
158
164
  itemsModel
159
165
  ) {
160
166
  super(
@@ -177,11 +183,11 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
177
183
  this.markdownRendererService = markdownRendererService;
178
184
  this.modelService = modelService;
179
185
  this.quickInputService = quickInputService;
180
- this.contextMenuService = contextMenuService;
181
186
  this.fileService = fileService;
182
187
  this.notificationService = notificationService;
183
188
  this.harnessService = harnessService;
184
189
  this.viewsService = viewsService;
190
+ this.labelService = labelService;
185
191
  this.itemsModel = itemsModel;
186
192
  this.editorActionButtonInProgress = false;
187
193
  this.editorDisplayMode = "preview";
@@ -197,6 +203,7 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
197
203
  this.viewMode = "list";
198
204
  this.mcpDetailDisposables = this._register(( new DisposableStore()));
199
205
  this.pluginDetailDisposables = this._register(( new DisposableStore()));
206
+ this.toolsDetailDisposables = this._register(( new DisposableStore()));
200
207
  this.sections = [];
201
208
  this.allSections = [];
202
209
  this.editorDisposables = this._register(( new DisposableStore()));
@@ -204,6 +211,7 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
204
211
  this.inEditorContextKey = CONTEXT_AI_CUSTOMIZATION_MANAGEMENT_EDITOR.bindTo(contextKeyService);
205
212
  this.sectionContextKey = CONTEXT_AI_CUSTOMIZATION_MANAGEMENT_SECTION.bindTo(contextKeyService);
206
213
  this.harnessContextKey = CONTEXT_AI_CUSTOMIZATION_MANAGEMENT_HARNESS.bindTo(contextKeyService);
214
+ this.updateHarnessLabelPresentation();
207
215
  this._register(autorun(reader => {
208
216
  this.workspaceService.activeProjectRoot.read(reader);
209
217
  if (this.viewMode === "editor") {
@@ -217,62 +225,75 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
217
225
  this._register(toDisposable(() => this.disposeBuiltinEditingSessions()));
218
226
  const sectionInfo = {
219
227
  [AICustomizationManagementSection.Agents]: {
220
- label: ( localize(5616, "Agents")),
228
+ label: ( localize(5858, "Agents")),
221
229
  icon: agentIcon,
222
230
  description: ( localize(
223
- 5617,
231
+ 5859,
224
232
  "Define custom agents with specialized personas, tool access, and instructions for specific tasks."
225
233
  ))
226
234
  },
227
235
  [AICustomizationManagementSection.Skills]: {
228
- label: ( localize(5618, "Skills")),
236
+ label: ( localize(5860, "Skills")),
229
237
  icon: skillIcon,
230
238
  description: ( localize(
231
- 5619,
239
+ 5861,
232
240
  "Create reusable skill files that provide domain-specific knowledge and workflows."
233
241
  ))
234
242
  },
235
243
  [AICustomizationManagementSection.Instructions]: {
236
- label: ( localize(5620, "Instructions")),
244
+ label: ( localize(5862, "Instructions")),
237
245
  icon: instructionsIcon,
238
246
  description: ( localize(
239
- 5621,
247
+ 5863,
240
248
  "Set always-on instructions that guide AI behavior across your workspace or user profile."
241
249
  ))
242
250
  },
243
251
  [AICustomizationManagementSection.Prompts]: {
244
- label: ( localize(5622, "Prompts")),
252
+ label: ( localize(5864, "Prompts")),
245
253
  icon: promptIcon,
246
- description: ( localize(5623, "Reusable prompt templates that can be invoked as slash commands."))
254
+ description: ( localize(5865, "Reusable prompt templates that can be invoked as slash commands."))
247
255
  },
248
256
  [AICustomizationManagementSection.Hooks]: {
249
- label: ( localize(5624, "Hooks")),
257
+ label: ( localize(5866, "Hooks")),
250
258
  icon: hookIcon,
251
259
  description: ( localize(
252
- 5625,
260
+ 5867,
253
261
  "Configure automated actions triggered by events like saving files or running tasks."
254
262
  ))
255
263
  },
264
+ [AICustomizationManagementSection.Automations]: {
265
+ label: ( localize(5868, "Automations")),
266
+ icon: automationIcon,
267
+ description: ( localize(5869, "Schedule agent sessions to run on a cadence you choose."))
268
+ },
256
269
  [AICustomizationManagementSection.McpServers]: {
257
- label: ( localize(5626, "MCP Servers")),
270
+ label: ( localize(5870, "MCP Servers")),
258
271
  icon: Codicon.server,
259
272
  description: ( localize(
260
- 5627,
273
+ 5871,
261
274
  "Connect external tool servers that extend AI capabilities with custom tools and data sources."
262
275
  ))
263
276
  },
264
277
  [AICustomizationManagementSection.Plugins]: {
265
- label: ( localize(5628, "Plugins")),
278
+ label: ( localize(5872, "Plugins")),
266
279
  icon: pluginIcon,
267
280
  description: ( localize(
268
- 5629,
281
+ 5873,
269
282
  "Install and manage agent plugins that add additional tools, skills, and integrations."
270
283
  ))
271
284
  },
272
285
  [AICustomizationManagementSection.Models]: {
273
- label: ( localize(5630, "Models")),
286
+ label: ( localize(5874, "Models")),
274
287
  icon: Codicon.vm,
275
- description: ( localize(5631, "Configure and manage language models available for use."))
288
+ description: ( localize(5875, "Configure and manage language models available for use."))
289
+ },
290
+ [AICustomizationManagementSection.Tools]: {
291
+ label: ( localize(5876, "Tools")),
292
+ icon: toolsIcon,
293
+ description: ( localize(
294
+ 5877,
295
+ "Enable or disable groups of language model tools available to chat."
296
+ ))
276
297
  }
277
298
  };
278
299
  for (const id of this.workspaceService.managementSections) {
@@ -338,6 +359,8 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
338
359
  this.listWidget.layout(height - 16, width - 24);
339
360
  this.mcpListWidget?.layout(height - 16, width - 24);
340
361
  this.pluginListWidget?.layout(height - 16, width - 24);
362
+ this.toolsListWidget?.layout(height - 16, width - 24);
363
+ this.automationsListWidget?.layout(height - 16, width - 24);
341
364
  const modelsFooterHeight = this.modelsFooterElement?.offsetHeight || 80;
342
365
  this.modelsWidget?.layout(height - 16 - modelsFooterHeight, width);
343
366
  if (this.viewMode === "editor" && this.embeddedEditor && this.embeddedEditorContainer) {
@@ -385,13 +408,21 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
385
408
  this.splitView.resizeView(1, totalWidth - SIDEBAR_DEFAULT_WIDTH);
386
409
  }));
387
410
  }
388
- get isHarnessSelectorEnabled() {
389
- return false;
411
+ getActiveHarnessLabel() {
412
+ return this.harnessService.getActiveDescriptor().label || ( localize(5878, "Local"));
413
+ }
414
+ updateHarnessLabelPresentation() {
415
+ const harnessLabel = this.getActiveHarnessLabel();
416
+ AICustomizationManagementEditorInput.getOrCreate().setHarnessLabel(harnessLabel);
417
+ this.welcomePage?.setHarnessLabel(harnessLabel);
390
418
  }
391
419
  rebuildVisibleSections() {
392
420
  const activeId = this.harnessService.activeHarness.get();
393
421
  const descriptor = this.harnessService.findHarnessById(activeId);
394
422
  const hidden = ( new Set(descriptor?.hiddenSections ?? []));
423
+ if (this.configurationService.getValue(CHAT_AUTOMATIONS_ENABLED_SETTING) !== true) {
424
+ hidden.add(AICustomizationManagementSection.Automations);
425
+ }
395
426
  this.sections.length = 0;
396
427
  for (const s of this.allSections) {
397
428
  if (!( hidden.has(s.id))) {
@@ -423,8 +454,8 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
423
454
  setRowLineHeight: false,
424
455
  horizontalScrolling: false,
425
456
  accessibilityProvider: {
426
- getAriaLabel: item => item.count > 0 ? ( localize(5632, "{0}, {1} items", item.label, item.count)) : item.label,
427
- getWidgetAriaLabel: () => ( localize(5633, "Agent Customization Sections"))
457
+ getAriaLabel: item => item.count > 0 ? ( localize(5879, "{0}, {1} items", item.label, item.count)) : item.label,
458
+ getWidgetAriaLabel: () => ( localize(5880, "Agent Customization Sections"))
428
459
  },
429
460
  openOnSingleClick: true,
430
461
  identityProvider: {
@@ -449,8 +480,6 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
449
480
  this.harnessContextKey.set(activeId);
450
481
  this.updateHomeButtonHarnessPresentation();
451
482
  this.rebuildVisibleSections();
452
- this.ensureHarnessDropdown();
453
- this.updateHarnessDropdown();
454
483
  if (this._previousActiveHarnessId !== undefined && this._previousActiveHarnessId !== activeId) {
455
484
  for (const section of this.sections) {
456
485
  this.updateSectionCount(section.id, 0);
@@ -462,125 +491,47 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
462
491
  if (e.affectsConfiguration(ChatConfiguration.ChatCustomizationsStructuredPreviewEnabled)) {
463
492
  this.onStructuredPreviewSettingChanged();
464
493
  }
494
+ if (e.affectsConfiguration(CHAT_AUTOMATIONS_ENABLED_SETTING)) {
495
+ this.rebuildVisibleSections();
496
+ }
465
497
  }));
466
498
  }
467
499
  createSidebarHeader(sidebarContent) {
468
500
  const headerRow = this.sidebarHeaderContainer = append(sidebarContent, $(".sidebar-header-row"));
469
501
  const homeButton = this.homeButton = append(headerRow, $("button.sidebar-home-button"));
470
502
  homeButton.classList.add("sidebar-harness-home-button");
471
- homeButton.setAttribute("aria-label", ( localize(5634, "Overview")));
503
+ homeButton.setAttribute("aria-label", ( localize(5881, "Overview")));
472
504
  this.editorDisposables.add(
473
- this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), homeButton, ( localize(5635, "Back to overview")))
505
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), homeButton, ( localize(5882, "Back to overview")))
474
506
  );
475
507
  const homeIcon = this.homeButtonIcon = append(homeButton, $("span.sidebar-home-icon"));
476
508
  homeIcon.classList.add(...ThemeIcon.asClassNameArray(Codicon.home));
477
509
  homeIcon.setAttribute("aria-hidden", "true");
478
510
  const homeLabel = this.homeButtonLabel = append(homeButton, $("span.sidebar-home-label"));
479
- homeLabel.textContent = ( localize(5636, "Overview"));
511
+ homeLabel.textContent = ( localize(5883, "Overview"));
480
512
  this.editorDisposables.add(addDisposableListener(homeButton, "click", () => {
481
513
  this.showWelcomePage();
482
514
  }));
483
515
  this.updateHomeButtonHarnessPresentation();
484
516
  this.updateHomeButtonStyle();
485
517
  }
486
- createHarnessDropdown(parent) {
487
- if (!this.isHarnessSelectorEnabled) {
488
- return;
489
- }
490
- const container = this.harnessDropdownContainer = append(parent, $(".sidebar-harness-dropdown"));
491
- this.harnessDropdownButton = append(container, $("button.harness-dropdown-button"));
492
- this.harnessDropdownButton.setAttribute("aria-label", ( localize(5637, "Select customization target")));
493
- this.harnessDropdownButton.setAttribute("aria-haspopup", "listbox");
494
- this.editorDisposables.add(
495
- this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), this.harnessDropdownButton, () => {
496
- const descriptor = this.harnessService.findHarnessById(this.harnessService.activeHarness.get());
497
- return descriptor?.label ?? "";
498
- })
499
- );
500
- this.harnessDropdownIcon = append(this.harnessDropdownButton, $("span.harness-dropdown-icon"));
501
- this.harnessDropdownLabel = append(this.harnessDropdownButton, $("span.harness-dropdown-label"));
502
- append(
503
- this.harnessDropdownButton,
504
- $("span.harness-dropdown-chevron.codicon.codicon-chevron-down")
505
- );
506
- this.updateHarnessDropdown();
507
- this.editorDisposables.add(addDisposableListener(this.harnessDropdownButton, "click", () => {
508
- this.showHarnessMenu();
509
- }));
510
- }
511
- ensureHarnessDropdown() {
512
- if (!this.isHarnessSelectorEnabled && this.harnessDropdownContainer) {
513
- this.harnessDropdownContainer.remove();
514
- this.harnessDropdownContainer = undefined;
515
- this.harnessDropdownButton = undefined;
516
- this.harnessDropdownIcon = undefined;
517
- this.harnessDropdownLabel = undefined;
518
- this.updateHomeButtonStyle();
519
- } else if (this.isHarnessSelectorEnabled && !this.harnessDropdownContainer && this.sidebarHeaderContainer) {
520
- this.createHarnessDropdown(this.sidebarHeaderContainer);
521
- this.updateHomeButtonStyle();
522
- }
523
- }
524
518
  updateHomeButtonStyle() {
525
519
  if (!this.homeButtonLabel || !this.homeButton) {
526
520
  return;
527
521
  }
528
- const harnessVisible = this.harnessDropdownContainer && this.harnessDropdownContainer.style.display !== "none";
529
- this.homeButtonLabel.style.display = harnessVisible ? "none" : "";
530
- this.homeButton.style.flex = harnessVisible ? "" : "1";
522
+ this.homeButtonLabel.style.display = "";
523
+ this.homeButton.style.flex = "1";
531
524
  }
532
525
  updateHomeButtonHarnessPresentation() {
533
- if (!this.homeButton || !this.homeButtonIcon || !this.homeButtonLabel || this.isHarnessSelectorEnabled) {
534
- return;
535
- }
536
- const descriptor = this.harnessService.getActiveDescriptor();
537
- if (!descriptor) {
538
- this.homeButtonIcon.className = "sidebar-home-icon";
539
- this.homeButtonIcon.classList.add(...ThemeIcon.asClassNameArray(Codicon.home));
540
- this.homeButtonLabel.textContent = ( localize(5636, "Overview"));
541
- this.homeButton.setAttribute("aria-label", ( localize(5634, "Overview")));
542
- this.homeButton.title = ( localize(5635, "Back to overview"));
526
+ this.updateHarnessLabelPresentation();
527
+ if (!this.homeButton || !this.homeButtonIcon || !this.homeButtonLabel) {
543
528
  return;
544
529
  }
545
530
  this.homeButtonIcon.className = "sidebar-home-icon";
546
- this.homeButtonIcon.classList.add(...ThemeIcon.asClassNameArray(descriptor.icon));
547
- this.homeButtonLabel.textContent = descriptor.label;
548
- this.homeButton.setAttribute("aria-label", ( localize(5638, "{0}, Back to overview", descriptor.label)));
549
- this.homeButton.title = ( localize(5639, "Current harness: {0}. Click to go to overview", descriptor.label));
550
- }
551
- updateHarnessDropdown() {
552
- if (!this.harnessDropdownContainer || !this.harnessDropdownIcon || !this.harnessDropdownLabel) {
553
- return;
554
- }
555
- const harnesses = this.harnessService.availableHarnesses.get();
556
- this.harnessDropdownContainer.style.display = harnesses.length <= 1 ? "none" : "";
557
- this.updateHomeButtonStyle();
558
- const activeId = this.harnessService.activeHarness.get();
559
- const descriptor = harnesses.find(h => h.id === activeId);
560
- if (descriptor) {
561
- this.harnessDropdownIcon.className = "harness-dropdown-icon";
562
- this.harnessDropdownIcon.classList.add(...ThemeIcon.asClassNameArray(descriptor.icon));
563
- this.harnessDropdownLabel.textContent = descriptor.label;
564
- }
565
- }
566
- showHarnessMenu() {
567
- if (!this.harnessDropdownButton) {
568
- return;
569
- }
570
- const harnesses = this.harnessService.availableHarnesses.get();
571
- const activeId = this.harnessService.activeHarness.get();
572
- const actions = ( harnesses.map(h => {
573
- const action = ( new Action(h.id, h.label, ThemeIcon.asClassName(h.icon), true, () => {
574
- this.harnessService.setActiveSession(this.harnessService.getSessionResourceForHarness(h.id));
575
- }));
576
- action.checked = h.id === activeId;
577
- return action;
578
- }));
579
- this.contextMenuService.showContextMenu({
580
- getAnchor: () => this.harnessDropdownButton,
581
- getActions: () => actions,
582
- getCheckedActionsRepresentation: () => "radio"
583
- });
531
+ this.homeButtonIcon.classList.add(...ThemeIcon.asClassNameArray(Codicon.home));
532
+ this.homeButtonLabel.textContent = ( localize(5883, "Overview"));
533
+ this.homeButton.setAttribute("aria-label", ( localize(5881, "Overview")));
534
+ this.homeButton.title = ( localize(5882, "Back to overview"));
584
535
  }
585
536
  createWelcomePage(parent) {
586
537
  this.welcomePage = this.editorDisposables.add(( new AICustomizationWelcomePage(parent, this.workspaceService.welcomePageFeatures, {
@@ -620,15 +571,15 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
620
571
  onUnexpectedError(err);
621
572
  }
622
573
  }
623
- }, this.commandService, this.workspaceService, this.hoverService)));
574
+ }, this.commandService, this.workspaceService, this.hoverService, this.getActiveHarnessLabel())));
624
575
  this.welcomePage.rebuildCards(( new Set(( this.sections.map(s => s.id)))));
625
576
  }
626
577
  createBackArrowButton(onClick) {
627
578
  const button = $("button.section-back-arrow-button");
628
579
  button.type = "button";
629
- button.setAttribute("aria-label", ( localize(5640, "Back to overview")));
580
+ button.setAttribute("aria-label", ( localize(5884, "Back to overview")));
630
581
  this.editorDisposables.add(
631
- this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), button, ( localize(5641, "Back to overview")))
582
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), button, ( localize(5885, "Back to overview")))
632
583
  );
633
584
  const icon = append(button, $("span.section-back-arrow-icon"));
634
585
  icon.classList.add(...ThemeIcon.asClassNameArray(Codicon.arrowLeft));
@@ -688,12 +639,12 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
688
639
  this.modelsFooterElement = append(this.modelsContentContainer, $(".section-footer"));
689
640
  const modelsDescription = append(this.modelsFooterElement, $("p.section-footer-description"));
690
641
  modelsDescription.textContent = ( localize(
691
- 5642,
642
+ 5886,
692
643
  "Browse and manage language models from different providers. Select models for use in chat, code completion, and other AI features."
693
644
  ));
694
645
  const modelsLink = append(this.modelsFooterElement, $("a.section-footer-link"));
695
- modelsLink.textContent = ( localize(5643, "Learn more about language models"));
696
- modelsLink.href = "https://code.visualstudio.com/docs/copilot/customization/language-models";
646
+ modelsLink.textContent = ( localize(5887, "Learn more about language models"));
647
+ modelsLink.href = "https://code.visualstudio.com/docs/agent-customization/language-models?referrer=in-product";
697
648
  this.editorDisposables.add(addDisposableListener(modelsLink, "click", e => {
698
649
  e.preventDefault();
699
650
  this.openerService.open(( URI.parse(modelsLink.href)));
@@ -723,6 +674,23 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
723
674
  this.showEmbeddedPluginDetail(item);
724
675
  }));
725
676
  }
677
+ if (( hasSections.has(AICustomizationManagementSection.Tools))) {
678
+ this.toolsContentContainer = append(contentInner, $(".tools-content-container"));
679
+ this.toolsListWidget = this.editorDisposables.add(
680
+ this.instantiationService.createInstance(ToolsListWidget, AGENT_HOST_COPILOT_CLI_SESSION_TYPE)
681
+ );
682
+ this.toolsContentContainer.appendChild(this.toolsListWidget.element);
683
+ this.toolsDetailContainer = append(contentInner, $(".tools-detail-container"));
684
+ this.createEmbeddedToolDetail();
685
+ this.editorDisposables.add(this.toolsListWidget.onDidSelectExtension(extension => {
686
+ this.showEmbeddedToolDetail(extension);
687
+ }));
688
+ }
689
+ if (( hasSections.has(AICustomizationManagementSection.Automations))) {
690
+ this.automationsContentContainer = append(contentInner, $(".automations-content-container"));
691
+ this.automationsListWidget = this.editorDisposables.add(this.instantiationService.createInstance(AutomationsListWidget));
692
+ this.automationsContentContainer.appendChild(this.automationsListWidget.element);
693
+ }
726
694
  this.editorContentContainer = append(contentInner, $(".editor-content-container"));
727
695
  this.createEmbeddedEditor();
728
696
  this.updateContentVisibility();
@@ -743,12 +711,24 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
743
711
  }));
744
712
  this.pluginListWidget.fireItemCount();
745
713
  }
714
+ if (this.automationsListWidget) {
715
+ this.editorDisposables.add(this.automationsListWidget.onDidChangeItemCount(count => {
716
+ this.updateSectionCount(AICustomizationManagementSection.Automations, count);
717
+ }));
718
+ this.automationsListWidget.fireItemCount();
719
+ }
746
720
  if (this.modelsWidget) {
747
721
  this.editorDisposables.add(this.modelsWidget.onDidChangeItemCount(count => {
748
722
  this.updateSectionCount(AICustomizationManagementSection.Models, count);
749
723
  }));
750
724
  this.modelsWidget.fireItemCount();
751
725
  }
726
+ if (this.toolsListWidget) {
727
+ this.editorDisposables.add(this.toolsListWidget.onDidChangeItemCount(count => {
728
+ this.updateSectionCount(AICustomizationManagementSection.Tools, count);
729
+ }));
730
+ this.toolsListWidget.fireItemCount();
731
+ }
752
732
  for (const section of ITEMS_MODEL_SECTIONS) {
753
733
  const observable = this.itemsModel.getCount(section);
754
734
  this.editorDisposables.add(autorun(reader => {
@@ -781,6 +761,9 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
781
761
  if (this.viewMode === "pluginDetail") {
782
762
  this.goBackFromPluginDetail();
783
763
  }
764
+ if (this.viewMode === "toolsDetail") {
765
+ this.goBackFromToolDetail();
766
+ }
784
767
  this.selectedSection = undefined;
785
768
  this.sectionContextKey.set("");
786
769
  this.storageService.remove(AI_CUSTOMIZATION_MANAGEMENT_SELECTED_SECTION_KEY, StorageScope.PROFILE);
@@ -806,6 +789,9 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
806
789
  if (this.viewMode === "pluginDetail") {
807
790
  this.goBackFromPluginDetail();
808
791
  }
792
+ if (this.viewMode === "toolsDetail") {
793
+ this.goBackFromToolDetail();
794
+ }
809
795
  this.selectedSection = section;
810
796
  this.sectionContextKey.set(section);
811
797
  this.storageService.store(
@@ -835,6 +821,10 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
835
821
  this.pluginListWidget?.focusSearch();
836
822
  } else if (section === AICustomizationManagementSection.Models) {
837
823
  this.modelsWidget?.focusSearch();
824
+ } else if (section === AICustomizationManagementSection.Tools) {
825
+ this.toolsListWidget?.focusSearch();
826
+ } else if (section === AICustomizationManagementSection.Automations) {
827
+ this.automationsListWidget?.focus();
838
828
  } else {
839
829
  this.listWidget?.focusSearch();
840
830
  }
@@ -865,12 +855,15 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
865
855
  const isEditorMode = this.viewMode === "editor";
866
856
  const isMcpDetailMode = this.viewMode === "mcpDetail";
867
857
  const isPluginDetailMode = this.viewMode === "pluginDetail";
868
- const isDetailMode = isMcpDetailMode || isPluginDetailMode;
858
+ const isToolsDetailMode = this.viewMode === "toolsDetail";
859
+ const isDetailMode = isMcpDetailMode || isPluginDetailMode || isToolsDetailMode;
869
860
  const isWelcome = this.selectedSection === undefined;
870
861
  const isPromptsSection = this.selectedSection !== undefined && this.isPromptsSection(this.selectedSection);
871
862
  const isModelsSection = this.selectedSection === AICustomizationManagementSection.Models;
872
863
  const isMcpSection = this.selectedSection === AICustomizationManagementSection.McpServers;
873
864
  const isPluginsSection = this.selectedSection === AICustomizationManagementSection.Plugins;
865
+ const isToolsSection = this.selectedSection === AICustomizationManagementSection.Tools;
866
+ const isAutomationsSection = this.selectedSection === AICustomizationManagementSection.Automations;
874
867
  if (this.welcomePage) {
875
868
  this.welcomePage.container.style.display = isWelcome && !isEditorMode && !isDetailMode ? "" : "none";
876
869
  }
@@ -889,9 +882,18 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
889
882
  if (this.pluginContentContainer) {
890
883
  this.pluginContentContainer.style.display = !isEditorMode && !isDetailMode && isPluginsSection ? "" : "none";
891
884
  }
885
+ if (this.automationsContentContainer) {
886
+ this.automationsContentContainer.style.display = !isEditorMode && !isDetailMode && isAutomationsSection ? "" : "none";
887
+ }
892
888
  if (this.pluginDetailContainer) {
893
889
  this.pluginDetailContainer.style.display = isPluginDetailMode ? "" : "none";
894
890
  }
891
+ if (this.toolsContentContainer) {
892
+ this.toolsContentContainer.style.display = !isEditorMode && !isDetailMode && isToolsSection ? "" : "none";
893
+ }
894
+ if (this.toolsDetailContainer) {
895
+ this.toolsDetailContainer.style.display = isToolsDetailMode ? "" : "none";
896
+ }
895
897
  if (this.editorContentContainer) {
896
898
  this.editorContentContainer.style.display = isEditorMode ? "" : "none";
897
899
  }
@@ -999,38 +1001,32 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
999
1001
  this.listWidget.refresh();
1000
1002
  }
1001
1003
  async resolveTargetDirectoryWithPicker(type, target) {
1002
- const allFolders = await this.promptsService.getSourceFolders(type);
1004
+ const sessionResource = this.harnessService.activeSessionResource.get();
1005
+ const activeDescriptor = this.harnessService.getActiveDescriptor();
1006
+ const provider = activeDescriptor.itemProvider ?? this.instantiationService.createInstance(PromptsServiceCustomizationItemProvider, () => activeDescriptor);
1007
+ if (!provider.provideSourceFolders) {
1008
+ return undefined;
1009
+ }
1010
+ const allFolders = await provider.provideSourceFolders(sessionResource, type, CancellationToken.None);
1011
+ if (!allFolders) {
1012
+ return undefined;
1013
+ }
1003
1014
  const projectRoot = this.workspaceService.getActiveProjectRoot();
1004
- const descriptor = this.harnessService.getActiveDescriptor();
1005
- const subpaths = descriptor.workspaceSubpaths;
1006
- let matchingFolders;
1007
- if (target === "workspace") {
1008
- matchingFolders = projectRoot ? allFolders.filter(f => {
1009
- if (!isEqualOrParent(f.uri, projectRoot)) {
1010
- return false;
1015
+ const matchingFolders = [];
1016
+ const hasSeen = ( new ResourceSet());
1017
+ for (const f of allFolders) {
1018
+ if (target === "workspace") {
1019
+ if (projectRoot && isEqualOrParent(f.uri, projectRoot) && !( hasSeen.has(f.uri))) {
1020
+ hasSeen.add(f.uri);
1021
+ matchingFolders.push(f);
1011
1022
  }
1012
- if (subpaths) {
1013
- return matchesWorkspaceSubpath(f.uri.path, subpaths);
1023
+ } else {
1024
+ if ((!projectRoot || !isEqualOrParent(f.uri, projectRoot)) && !( hasSeen.has(f.uri))) {
1025
+ hasSeen.add(f.uri);
1026
+ matchingFolders.push(f);
1014
1027
  }
1015
- return true;
1016
- }) : [];
1017
- } else {
1018
- matchingFolders = projectRoot ? allFolders.filter(f => !isEqualOrParent(f.uri, projectRoot)) : allFolders;
1019
- const filter = this.harnessService.getStorageSourceFilter(type);
1020
- if (filter.includedUserFileRoots) {
1021
- const roots = filter.includedUserFileRoots;
1022
- matchingFolders = matchingFolders.filter(f => ( roots.some(root => isEqualOrParent(f.uri, root))));
1023
1028
  }
1024
1029
  }
1025
- const seen = ( new Set());
1026
- matchingFolders = matchingFolders.filter(f => {
1027
- const key = ( f.uri.toString());
1028
- if (( seen.has(key))) {
1029
- return false;
1030
- }
1031
- seen.add(key);
1032
- return true;
1033
- });
1034
1030
  if (matchingFolders.length === 0) {
1035
1031
  return undefined;
1036
1032
  }
@@ -1038,12 +1034,14 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1038
1034
  return matchingFolders[0].uri;
1039
1035
  }
1040
1036
  const items = ( matchingFolders.map(folder => ({
1041
- label: this.promptsService.getPromptLocationLabel(folder),
1042
- description: folder.uri.fsPath,
1037
+ label: folder.label,
1038
+ description: this.labelService.getUriLabel(folder.uri, {
1039
+ relative: true
1040
+ }),
1043
1041
  uri: folder.uri
1044
1042
  })));
1045
1043
  const picked = await this.quickInputService.pick(items, {
1046
- placeHolder: ( localize(5644, "Select a directory for the new customization file"))
1044
+ placeHolder: ( localize(5888, "Select a directory for the new customization file"))
1047
1045
  });
1048
1046
  return picked?.uri ?? null;
1049
1047
  }
@@ -1081,6 +1079,9 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1081
1079
  if (this.viewMode === "pluginDetail") {
1082
1080
  this.goBackFromPluginDetail();
1083
1081
  }
1082
+ if (this.viewMode === "toolsDetail") {
1083
+ this.goBackFromToolDetail();
1084
+ }
1084
1085
  this.workspaceService.clearOverrideProjectRoot();
1085
1086
  this.disposeBuiltinEditingSessions();
1086
1087
  super.clearInput();
@@ -1112,6 +1113,10 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1112
1113
  this.pluginListWidget?.focusSearch();
1113
1114
  } else if (this.selectedSection === AICustomizationManagementSection.Models) {
1114
1115
  this.modelsWidget?.focusSearch();
1116
+ } else if (this.selectedSection === AICustomizationManagementSection.Tools) {
1117
+ this.toolsListWidget?.focusSearch();
1118
+ } else if (this.selectedSection === AICustomizationManagementSection.Automations) {
1119
+ this.automationsListWidget?.focus();
1115
1120
  } else {
1116
1121
  this.listWidget?.focusSearch();
1117
1122
  }
@@ -1128,6 +1133,9 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1128
1133
  if (this.viewMode === "pluginDetail") {
1129
1134
  this.goBackFromPluginDetail();
1130
1135
  }
1136
+ if (this.viewMode === "toolsDetail") {
1137
+ this.goBackFromToolDetail();
1138
+ }
1131
1139
  this.selectedSection = sectionId;
1132
1140
  this.sectionContextKey.set(sectionId);
1133
1141
  this.storageService.store(
@@ -1174,11 +1182,11 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1174
1182
  }
1175
1183
  const editorHeader = append(this.editorContentContainer, $(".editor-header"));
1176
1184
  this.editorActionButton = append(editorHeader, $("button.editor-back-button"));
1177
- this.editorActionButton.setAttribute("aria-label", ( localize(5645, "Back to list")));
1185
+ this.editorActionButton.setAttribute("aria-label", ( localize(5889, "Back to list")));
1178
1186
  this.editorDisposables.add(this.hoverService.setupManagedHover(
1179
1187
  getDefaultHoverDelegate("element"),
1180
1188
  this.editorActionButton,
1181
- ( localize(5646, "Back to list"))
1189
+ ( localize(5890, "Back to list"))
1182
1190
  ));
1183
1191
  this.editorActionButtonIcon = append(
1184
1192
  this.editorActionButton,
@@ -1188,7 +1196,7 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1188
1196
  this.editorDisposables.add(addDisposableListener(this.editorActionButton, "click", () => {
1189
1197
  void this.handleEditorActionButton().catch(error => {
1190
1198
  console.error("Failed to handle editor back action:", error);
1191
- this.notificationService.error(( localize(5647, "Failed to finish the prompt action.")));
1199
+ this.notificationService.error(( localize(5891, "Failed to finish the prompt action.")));
1192
1200
  });
1193
1201
  }));
1194
1202
  const itemInfo = append(editorHeader, $(".editor-item-info"));
@@ -1209,7 +1217,7 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1209
1217
  this.editorPreviewContainer = append(this.editorContentContainer, $(".editor-preview-container"));
1210
1218
  this.editorPreviewScrollContainer = append(this.editorPreviewContainer, $(".editor-preview-scroll-container"));
1211
1219
  this.editorPreviewScrollContainer.setAttribute("role", "region");
1212
- this.editorPreviewScrollContainer.setAttribute("aria-label", ( localize(5648, "Customization preview")));
1220
+ this.editorPreviewScrollContainer.setAttribute("aria-label", ( localize(5892, "Customization preview")));
1213
1221
  this.editorPreviewIssuesContainer = append(this.editorPreviewScrollContainer, $(".editor-preview-issues"));
1214
1222
  const frontMatterSection = append(
1215
1223
  this.editorPreviewScrollContainer,
@@ -1336,9 +1344,9 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1336
1344
  this._editorContentChanged = this.workingCopyService.isDirty(uri);
1337
1345
  this.editorSaveIndicator.className = "editor-save-indicator visible saved";
1338
1346
  this.editorSaveIndicator.classList.add(...ThemeIcon.asClassNameArray(Codicon.check));
1339
- this.editorSaveIndicator.title = ( localize(5649, "Saved"));
1340
- this.editorSaveIndicator.setAttribute("aria-label", ( localize(5649, "Saved")));
1341
- status(( localize(5649, "Saved")));
1347
+ this.editorSaveIndicator.title = ( localize(5893, "Saved"));
1348
+ this.editorSaveIndicator.setAttribute("aria-label", ( localize(5893, "Saved")));
1349
+ status(( localize(5893, "Saved")));
1342
1350
  }
1343
1351
  }));
1344
1352
  } catch (error) {
@@ -1388,7 +1396,7 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1388
1396
  const saveRequest = backgroundSaveRequest;
1389
1397
  void this.saveExistingCustomization(saveRequest).catch(error => {
1390
1398
  console.error("Failed to save customization changes on exit:", error);
1391
- this.notificationService.warn(( localize(5650, "Could not save changes to {0}.", basename(saveRequest.fileUri))));
1399
+ this.notificationService.warn(( localize(5894, "Could not save changes to {0}.", basename(saveRequest.fileUri))));
1392
1400
  });
1393
1401
  }
1394
1402
  }
@@ -1481,8 +1489,10 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1481
1489
  const workspaceFolder = resolveWorkspaceTargetDirectory(this.workspaceService, promptType);
1482
1490
  if (workspaceFolder) {
1483
1491
  items.push({
1484
- label: ( localize(5651, "Workspace")),
1485
- description: workspaceFolder.fsPath,
1492
+ label: ( localize(5895, "Workspace")),
1493
+ description: this.labelService.getUriLabel(workspaceFolder, {
1494
+ relative: true
1495
+ }),
1486
1496
  target: "workspace",
1487
1497
  folder: workspaceFolder
1488
1498
  });
@@ -1490,19 +1500,21 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1490
1500
  const userFolder = await resolveUserTargetDirectory(this.promptsService, promptType);
1491
1501
  if (userFolder) {
1492
1502
  items.push({
1493
- label: ( localize(5652, "User")),
1494
- description: userFolder.fsPath,
1503
+ label: ( localize(5896, "User")),
1504
+ description: this.labelService.getUriLabel(userFolder, {
1505
+ relative: true
1506
+ }),
1495
1507
  target: "user",
1496
1508
  folder: userFolder
1497
1509
  });
1498
1510
  }
1499
1511
  items.push({
1500
- label: ( localize(5653, "Cancel")),
1512
+ label: ( localize(5897, "Cancel")),
1501
1513
  target: "cancel"
1502
1514
  });
1503
1515
  return this.quickInputService.pick(items, {
1504
1516
  canPickMany: false,
1505
- placeHolder: ( localize(5654, "Select Workspace, User, or Cancel")),
1517
+ placeHolder: ( localize(5898, "Select Workspace, User, or Cancel")),
1506
1518
  matchOnDescription: true
1507
1519
  });
1508
1520
  }
@@ -1535,7 +1547,7 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1535
1547
  void this.listWidget?.refresh();
1536
1548
  }, error => {
1537
1549
  console.error("Failed to save built-in override:", error);
1538
- this.notificationService.warn(saveRequest.target === "workspace" ? ( localize(5655, "Could not save the override to the workspace.")) : ( localize(5656, "Could not save the override to your user folder.")));
1550
+ this.notificationService.warn(saveRequest.target === "workspace" ? ( localize(5899, "Could not save the override to the workspace.")) : ( localize(5900, "Could not save the override to your user folder.")));
1539
1551
  });
1540
1552
  }
1541
1553
  } finally {
@@ -1551,8 +1563,8 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1551
1563
  const shouldShowBuiltinSaveAction = this.shouldShowBuiltinSaveAction();
1552
1564
  this.editorActionButtonIcon.className = `codicon codicon-${shouldShowBuiltinSaveAction ? Codicon.save.id : Codicon.arrowLeft.id} editor-action-button-icon`;
1553
1565
  this.editorActionButton.disabled = this.editorActionButtonInProgress;
1554
- this.editorActionButton.setAttribute("aria-label", shouldShowBuiltinSaveAction ? ( localize(5657, "Save override")) : ( localize(5645, "Back to list")));
1555
- this.editorActionButton.title = shouldShowBuiltinSaveAction ? ( localize(5658, "Save override (choose Workspace, User, or Cancel)")) : ( localize(5645, "Back to list"));
1566
+ this.editorActionButton.setAttribute("aria-label", shouldShowBuiltinSaveAction ? ( localize(5901, "Save override")) : ( localize(5889, "Back to list")));
1567
+ this.editorActionButton.title = shouldShowBuiltinSaveAction ? ( localize(5902, "Save override (choose Workspace, User, or Cancel)")) : ( localize(5889, "Back to list"));
1556
1568
  }
1557
1569
  shouldShowBuiltinSaveAction() {
1558
1570
  return this._editorContentChanged && this.currentEditingSource === AICustomizationSources.builtin && (this.currentEditingPromptType === PromptsType.prompt || this.currentEditingPromptType === PromptsType.skill);
@@ -1587,7 +1599,7 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1587
1599
  return true;
1588
1600
  } catch (error) {
1589
1601
  console.error("Failed to save built-in override:", error);
1590
- this.notificationService.warn(target.target === "workspace" ? ( localize(5655, "Could not save the override to the workspace.")) : ( localize(5656, "Could not save the override to your user folder.")));
1602
+ this.notificationService.warn(target.target === "workspace" ? ( localize(5899, "Could not save the override to the workspace.")) : ( localize(5900, "Could not save the override to your user folder.")));
1591
1603
  return false;
1592
1604
  }
1593
1605
  }
@@ -1669,18 +1681,18 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1669
1681
  return "";
1670
1682
  }
1671
1683
  if (this.editorDisplayMode === "raw") {
1672
- return localize(5659, "Preview");
1684
+ return localize(5903, "Preview");
1673
1685
  }
1674
- return this.canEditCurrentRaw() ? ( localize(5660, "Edit")) : ( localize(5661, "View Raw"));
1686
+ return this.canEditCurrentRaw() ? ( localize(5904, "Edit")) : ( localize(5905, "View Raw"));
1675
1687
  }
1676
1688
  getEditorModeButtonTooltip() {
1677
1689
  if (!this.isStructuredPreviewSupported(this.currentEditingPromptType)) {
1678
1690
  return "";
1679
1691
  }
1680
1692
  if (this.editorDisplayMode === "raw") {
1681
- return localize(5662, "Show structured preview");
1693
+ return localize(5906, "Show structured preview");
1682
1694
  }
1683
- return this.canEditCurrentRaw() ? ( localize(5663, "Edit the raw markdown file")) : ( localize(5664, "Show the raw markdown file"));
1695
+ return this.canEditCurrentRaw() ? ( localize(5907, "Edit the raw markdown file")) : ( localize(5908, "Show the raw markdown file"));
1684
1696
  }
1685
1697
  canEditCurrentRaw() {
1686
1698
  const promptType = this.currentEditingPromptType;
@@ -1723,8 +1735,8 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1723
1735
  return;
1724
1736
  }
1725
1737
  const issuesContainer = append(this.editorPreviewIssuesContainer, $(".editor-preview-issues-box"));
1726
- append(issuesContainer, $("div.editor-preview-issues-title")).textContent = ( localize(5665, "Header issues detected"));
1727
- append(issuesContainer, $("div.editor-preview-issues-description")).textContent = ( localize(5666, "Switch to raw view to fix invalid or unsupported metadata entries."));
1738
+ append(issuesContainer, $("div.editor-preview-issues-title")).textContent = ( localize(5909, "Header issues detected"));
1739
+ append(issuesContainer, $("div.editor-preview-issues-description")).textContent = ( localize(5910, "Switch to raw view to fix invalid or unsupported metadata entries."));
1728
1740
  const list = append(issuesContainer, $("ul.editor-preview-issues-list"));
1729
1741
  for (const error of parsedPromptFile.header.errors) {
1730
1742
  append(list, $("li.editor-preview-issues-item")).textContent = error.message;
@@ -1739,7 +1751,7 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1739
1751
  append(
1740
1752
  this.editorPreviewFrontMatterContainer,
1741
1753
  $("div.editor-preview-empty-state")
1742
- ).textContent = ( localize(5667, "No metadata found in this file."));
1754
+ ).textContent = ( localize(5911, "No metadata found in this file."));
1743
1755
  return;
1744
1756
  }
1745
1757
  for (const attribute of attributes) {
@@ -1755,11 +1767,11 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1755
1767
  append(header, $("div.editor-preview-row-key")).textContent = attribute.key;
1756
1768
  const helpButton = append(header, $("button.editor-preview-row-help"));
1757
1769
  helpButton.type = "button";
1758
- helpButton.setAttribute("aria-label", ( localize(5668, "Show help for '{0}'", attribute.key)));
1770
+ helpButton.setAttribute("aria-label", ( localize(5912, "Show help for '{0}'", attribute.key)));
1759
1771
  const helpIcon = append(helpButton, $("span.editor-preview-row-help-icon"));
1760
1772
  helpIcon.classList.add(...ThemeIcon.asClassNameArray(Codicon.info));
1761
1773
  helpIcon.setAttribute("aria-hidden", "true");
1762
- const description = getAttributeDefinition(attribute.key, promptType, target)?.description ?? ( localize(5669, "Custom metadata field `{0}`.", attribute.key));
1774
+ const description = getAttributeDefinition(attribute.key, promptType, target)?.description ?? ( localize(5913, "Custom metadata field `{0}`.", attribute.key));
1763
1775
  const helpHover = this.editorPreviewDisposables.add(
1764
1776
  this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), helpButton, {
1765
1777
  markdown: ( new MarkdownString(description)),
@@ -1782,7 +1794,7 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1782
1794
  }
1783
1795
  const bodyContent = parsedPromptFile.body?.getContent() ?? "";
1784
1796
  if (!bodyContent.trim()) {
1785
- append(this.editorPreviewBodyContainer, $("div.editor-preview-empty-state")).textContent = ( localize(5670, "No markdown body found in this file."));
1797
+ append(this.editorPreviewBodyContainer, $("div.editor-preview-empty-state")).textContent = ( localize(5914, "No markdown body found in this file."));
1786
1798
  return;
1787
1799
  }
1788
1800
  const markdown = ( new MarkdownString(bodyContent, {
@@ -1859,9 +1871,9 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1859
1871
  );
1860
1872
  const backButton = append(this.embeddedMcpDetail.leadingSlot, $("button.editor-back-button"));
1861
1873
  backButton.setAttribute("type", "button");
1862
- backButton.setAttribute("aria-label", ( localize(5671, "Back to MCP servers")));
1874
+ backButton.setAttribute("aria-label", ( localize(5915, "Back to MCP servers")));
1863
1875
  this.editorDisposables.add(
1864
- this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), backButton, ( localize(5672, "Back to MCP servers")))
1876
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), backButton, ( localize(5916, "Back to MCP servers")))
1865
1877
  );
1866
1878
  const backIconEl = append(backButton, $(`.codicon.codicon-${Codicon.arrowLeft.id}`));
1867
1879
  backIconEl.setAttribute("aria-hidden", "true");
@@ -1901,9 +1913,9 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1901
1913
  );
1902
1914
  const backButton = append(this.embeddedPluginDetail.leadingSlot, $("button.editor-back-button"));
1903
1915
  backButton.setAttribute("type", "button");
1904
- backButton.setAttribute("aria-label", ( localize(5673, "Back to plugins")));
1916
+ backButton.setAttribute("aria-label", ( localize(5917, "Back to plugins")));
1905
1917
  this.editorDisposables.add(
1906
- this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), backButton, ( localize(5674, "Back to plugins")))
1918
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), backButton, ( localize(5918, "Back to plugins")))
1907
1919
  );
1908
1920
  const backIconEl = append(backButton, $(`.codicon.codicon-${Codicon.arrowLeft.id}`));
1909
1921
  backIconEl.setAttribute("aria-hidden", "true");
@@ -1947,7 +1959,49 @@ let AICustomizationManagementEditor = class AICustomizationManagementEditor exte
1947
1959
  this.layout(this.dimension);
1948
1960
  }
1949
1961
  }
1962
+ createEmbeddedToolDetail() {
1963
+ if (!this.toolsDetailContainer) {
1964
+ return;
1965
+ }
1966
+ const detailBody = append(this.toolsDetailContainer, $(".tools-detail-editor-container"));
1967
+ this.embeddedToolDetail = this.editorDisposables.add(
1968
+ this.instantiationService.createInstance(EmbeddedExtensionToolsDetail, detailBody)
1969
+ );
1970
+ const backButton = append(this.embeddedToolDetail.leadingSlot, $("button.editor-back-button"));
1971
+ backButton.setAttribute("type", "button");
1972
+ backButton.setAttribute("aria-label", ( localize(5919, "Back to tools")));
1973
+ this.editorDisposables.add(
1974
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), backButton, ( localize(5920, "Back to tools")))
1975
+ );
1976
+ const backIconEl = append(backButton, $(`.codicon.codicon-${Codicon.arrowLeft.id}`));
1977
+ backIconEl.setAttribute("aria-hidden", "true");
1978
+ this.editorDisposables.add(addDisposableListener(backButton, "click", () => {
1979
+ this.goBackFromToolDetail();
1980
+ }));
1981
+ }
1982
+ async showEmbeddedToolDetail(extension) {
1983
+ if (!this.embeddedToolDetail) {
1984
+ return;
1985
+ }
1986
+ this.viewMode = "toolsDetail";
1987
+ this.updateContentVisibility();
1988
+ this.toolsDetailDisposables.clear();
1989
+ this.embeddedToolDetail.setInput(extension);
1990
+ if (this.dimension) {
1991
+ this.layout(this.dimension);
1992
+ }
1993
+ }
1994
+ goBackFromToolDetail() {
1995
+ this.toolsDetailDisposables.clear();
1996
+ this.embeddedToolDetail?.clearInput();
1997
+ this.viewMode = "list";
1998
+ this.updateContentVisibility();
1999
+ if (this.dimension) {
2000
+ this.layout(this.dimension);
2001
+ }
2002
+ this.toolsListWidget?.focusSearch();
2003
+ }
1950
2004
  };
1951
- AICustomizationManagementEditor = AICustomizationManagementEditor_1 = ( __decorate([( __param(1, ITelemetryService)), ( __param(2, IThemeService)), ( __param(3, IStorageService)), ( __param(4, IInstantiationService)), ( __param(5, IContextKeyService)), ( __param(6, IOpenerService)), ( __param(7, ICommandService)), ( __param(8, IAICustomizationWorkspaceService)), ( __param(9, IPromptsService)), ( __param(10, ITextModelService)), ( __param(11, IConfigurationService)), ( __param(12, IWorkingCopyService)), ( __param(13, IHoverService)), ( __param(14, IMarkdownRendererService)), ( __param(15, IModelService)), ( __param(16, IQuickInputService)), ( __param(17, IContextMenuService)), ( __param(18, IFileService)), ( __param(19, INotificationService)), ( __param(20, ICustomizationHarnessService)), ( __param(21, IViewsService)), ( __param(22, IAICustomizationItemsModel))], AICustomizationManagementEditor));
2005
+ AICustomizationManagementEditor = AICustomizationManagementEditor_1 = ( __decorate([( __param(1, ITelemetryService)), ( __param(2, IThemeService)), ( __param(3, IStorageService)), ( __param(4, IInstantiationService)), ( __param(5, IContextKeyService)), ( __param(6, IOpenerService)), ( __param(7, ICommandService)), ( __param(8, IAICustomizationWorkspaceService)), ( __param(9, IPromptsService)), ( __param(10, ITextModelService)), ( __param(11, IConfigurationService)), ( __param(12, IWorkingCopyService)), ( __param(13, IHoverService)), ( __param(14, IMarkdownRendererService)), ( __param(15, IModelService)), ( __param(16, IQuickInputService)), ( __param(17, IFileService)), ( __param(18, INotificationService)), ( __param(19, ICustomizationHarnessService)), ( __param(20, IViewsService)), ( __param(21, ILabelService)), ( __param(22, IAICustomizationItemsModel))], AICustomizationManagementEditor));
1952
2006
 
1953
2007
  export { AICustomizationManagementEditor };