@codingame/monaco-vscode-chat-service-override 34.1.3 → 35.0.1

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 +1424 -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
@@ -38,7 +38,7 @@ function value(comparator) {
38
38
  extract: from => {
39
39
  let value = from;
40
40
  if (!!value && typeof value === "object") {
41
- value = JSON.parse(JSON.stringify(value));
41
+ value = deepCloneWithFallback(value);
42
42
  }
43
43
  return value;
44
44
  },
@@ -118,6 +118,9 @@ function stringifyEntryWithFallback(entry) {
118
118
  );
119
119
  }
120
120
  }
121
+ function deepCloneWithFallback(value) {
122
+ return JSON.parse(stringifyEntryWithFallback(value));
123
+ }
121
124
  function makeTruncatingReplacer(maxStringChars, maxTotalChars) {
122
125
  let total = 0;
123
126
  return (_key, val) => {
@@ -443,4 +446,4 @@ class ObjectMutationLog {
443
446
  }
444
447
  }
445
448
 
446
- export { ObjectMutationLog, PERSIST_ENTRY_MAX_STRING_CHARS, PERSIST_ENTRY_MAX_TOTAL_CHARS, array, key, makeTruncatingReplacer, object, stringifyEntryWithFallback, t, v, value };
449
+ export { ObjectMutationLog, PERSIST_ENTRY_MAX_STRING_CHARS, PERSIST_ENTRY_MAX_TOTAL_CHARS, array, deepCloneWithFallback, key, makeTruncatingReplacer, object, stringifyEntryWithFallback, t, v, value };
@@ -0,0 +1,15 @@
1
+ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
2
+ import { AgentPluginDiscoveryPriority, IAgentPlugin } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService";
3
+ import { CollisionEnablementModel, IEnablementModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement";
4
+ export interface IDiscoveredAgentPlugins {
5
+ readonly plugins: readonly IAgentPlugin[];
6
+ readonly priority: AgentPluginDiscoveryPriority;
7
+ readonly order: number;
8
+ }
9
+ export declare class AgentPluginCollisionEnablementModel extends CollisionEnablementModel {
10
+ constructor(base: IEnablementModel, collisionGroups: IObservable<ReadonlyMap<string, readonly string[]>>);
11
+ }
12
+ export declare function getSortedAgentPlugins(discoveries: readonly IDiscoveredAgentPlugins[]): readonly IAgentPlugin[];
13
+ export declare function getCanonicalAgentPluginCollisionGroups(discoveries: readonly IDiscoveredAgentPlugins[], isBlocked?: (plugin: IAgentPlugin) => boolean): ReadonlyMap<string, readonly string[]>;
14
+ export declare function isAgentPluginBlockedByPolicy(plugin: IAgentPlugin, enabledPluginsPolicy: Record<string, boolean> | undefined): boolean;
15
+ export declare function getAgentPluginPolicyId(plugin: IAgentPlugin): string | undefined;
@@ -0,0 +1,177 @@
1
+
2
+ import { PluginSourceKind } from './pluginMarketplaceService.js';
3
+ import { CollisionEnablementModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
4
+
5
+ const COPILOT_CLI_INSTALL_PATH_FRAGMENT = "/.copilot/installed-plugins/";
6
+ class AgentPluginCollisionEnablementModel extends CollisionEnablementModel {
7
+ constructor(base, collisionGroups) {
8
+ super(base, collisionGroups);
9
+ }
10
+ }
11
+ function getSortedAgentPlugins(discoveries) {
12
+ return ( getUniqueAgentPluginCandidates(discoveries).map(candidate => candidate.plugin)).sort((a, b) => ( a.uri.toString()).localeCompare(( b.uri.toString())));
13
+ }
14
+ function getCanonicalAgentPluginCollisionGroups(discoveries, isBlocked) {
15
+ const candidates = getUniqueAgentPluginCandidates(discoveries);
16
+ const byCanonicalKey = ( new Map());
17
+ for (const candidate of candidates) {
18
+ if (isBlocked?.(candidate.plugin)) {
19
+ continue;
20
+ }
21
+ let group = byCanonicalKey.get(candidate.canonicalKey);
22
+ if (!group) {
23
+ group = [];
24
+ byCanonicalKey.set(candidate.canonicalKey, group);
25
+ }
26
+ group.push(( candidate.plugin.uri.toString()));
27
+ }
28
+ const groups = ( new Map());
29
+ for (const group of ( byCanonicalKey.values())) {
30
+ if (group.length < 2) {
31
+ continue;
32
+ }
33
+ for (const key of group) {
34
+ groups.set(key, group);
35
+ }
36
+ }
37
+ return groups;
38
+ }
39
+ function isAgentPluginBlockedByPolicy(plugin, enabledPluginsPolicy) {
40
+ const pluginId = getAgentPluginPolicyId(plugin);
41
+ if (enabledPluginsPolicy && ( Object.keys(enabledPluginsPolicy)).length > 0) {
42
+ return pluginId !== undefined && enabledPluginsPolicy[pluginId] !== true;
43
+ }
44
+ return false;
45
+ }
46
+ function getAgentPluginPolicyId(plugin) {
47
+ const identity = getPolicyIdentity(plugin);
48
+ return identity ? `${identity.name}@${identity.marketplace}` : undefined;
49
+ }
50
+ function getAgentPluginCandidates(discoveries) {
51
+ const candidates = [];
52
+ for (const discovery of discoveries) {
53
+ for (let pluginOrder = 0; pluginOrder < discovery.plugins.length; pluginOrder++) {
54
+ const plugin = discovery.plugins[pluginOrder];
55
+ candidates.push({
56
+ plugin,
57
+ priority: discovery.priority,
58
+ order: discovery.order,
59
+ pluginOrder,
60
+ canonicalKey: getCanonicalPluginIdentity(plugin)
61
+ });
62
+ }
63
+ }
64
+ return candidates.sort(
65
+ (a, b) => a.priority - b.priority || a.order - b.order || a.pluginOrder - b.pluginOrder || ( a.plugin.uri.toString()).localeCompare(( b.plugin.uri.toString()))
66
+ );
67
+ }
68
+ function getUniqueAgentPluginCandidates(discoveries) {
69
+ const unique = [];
70
+ const seen = ( new Set());
71
+ for (const candidate of getAgentPluginCandidates(discoveries)) {
72
+ const key = ( candidate.plugin.uri.toString());
73
+ if (( seen.has(key))) {
74
+ continue;
75
+ }
76
+ seen.add(key);
77
+ unique.push(candidate);
78
+ }
79
+ return unique;
80
+ }
81
+ function getCanonicalPluginIdentity(plugin) {
82
+ return getMarketplaceCanonicalIdentity(plugin.fromMarketplace) ?? getCopilotCliInstallCanonicalIdentity(plugin) ?? `uri:${( plugin.uri.toString())}`;
83
+ }
84
+ function getMarketplaceCanonicalIdentity(plugin) {
85
+ if (!plugin) {
86
+ return undefined;
87
+ }
88
+ const normalizedName = normalizePluginIdentitySegment(plugin.name);
89
+ const source = plugin.sourceDescriptor;
90
+ switch (source.kind) {
91
+ case PluginSourceKind.RelativePath:
92
+ {
93
+ if (plugin.marketplaceReference.githubRepo) {
94
+ return `github:${plugin.marketplaceReference.githubRepo.toLowerCase()}|${normalizedName}`;
95
+ }
96
+ return `marketplace:${plugin.marketplaceReference.canonicalId}|${normalizedName}`;
97
+ }
98
+ case PluginSourceKind.GitHub:
99
+ {
100
+ const github = source;
101
+ return `github:${github.repo.toLowerCase()}|${normalizedName}`;
102
+ }
103
+ case PluginSourceKind.GitUrl:
104
+ {
105
+ const git = source;
106
+ return `git:${git.url.toLowerCase()}|${normalizedName}`;
107
+ }
108
+ case PluginSourceKind.Npm:
109
+ {
110
+ const npm = source;
111
+ return `npm:${npm.package.toLowerCase()}|${normalizedName}`;
112
+ }
113
+ case PluginSourceKind.Pip:
114
+ {
115
+ const pip = source;
116
+ return `pip:${pip.package.toLowerCase()}|${normalizedName}`;
117
+ }
118
+ }
119
+ }
120
+ function getCopilotCliInstallCanonicalIdentity(plugin) {
121
+ if (plugin.uri.scheme !== "file") {
122
+ return undefined;
123
+ }
124
+ const idx = plugin.uri.path.indexOf(COPILOT_CLI_INSTALL_PATH_FRAGMENT);
125
+ if (idx === -1) {
126
+ return undefined;
127
+ }
128
+ const segments = plugin.uri.path.slice(idx + COPILOT_CLI_INSTALL_PATH_FRAGMENT.length).split("/").filter(s => s.length > 0);
129
+ if (segments.length !== 2) {
130
+ return undefined;
131
+ }
132
+ const [bucket, installName] = segments;
133
+ const normalizedName = normalizePluginIdentitySegment(plugin.label || installName);
134
+ if (bucket !== "_direct") {
135
+ return `copilot-cli-marketplace:${normalizePluginIdentitySegment(bucket)}|${normalizedName}`;
136
+ }
137
+ const match = /^(?<owner>.+)--(?<repo>.+)--(?<plugin>.+)$/.exec(installName);
138
+ const groups = match?.groups;
139
+ if (!groups) {
140
+ return undefined;
141
+ }
142
+ return `github:${groups.owner.toLowerCase()}/${groups.repo.toLowerCase()}|${normalizePluginIdentitySegment(groups.plugin)}`;
143
+ }
144
+ function normalizePluginIdentitySegment(value) {
145
+ return value.trim().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9_.:-]/g, "-").replace(/-+/g, "-").replace(/^[-:.]+|[-:.]+$/g, "");
146
+ }
147
+ function getPolicyIdentity(plugin) {
148
+ const m = plugin.fromMarketplace;
149
+ if (m) {
150
+ return {
151
+ name: m.name,
152
+ marketplace: m.marketplace,
153
+ marketplaceReference: m.marketplaceReference
154
+ };
155
+ }
156
+ if (plugin.uri.scheme !== "file") {
157
+ return undefined;
158
+ }
159
+ const idx = plugin.uri.path.indexOf(COPILOT_CLI_INSTALL_PATH_FRAGMENT);
160
+ if (idx === -1) {
161
+ return undefined;
162
+ }
163
+ const segments = plugin.uri.path.slice(idx + COPILOT_CLI_INSTALL_PATH_FRAGMENT.length).split("/").filter(s => s.length > 0);
164
+ if (segments.length !== 2) {
165
+ return undefined;
166
+ }
167
+ const [marketplace, name] = segments;
168
+ if (marketplace === "_direct") {
169
+ return undefined;
170
+ }
171
+ return {
172
+ name,
173
+ marketplace
174
+ };
175
+ }
176
+
177
+ export { AgentPluginCollisionEnablementModel, getAgentPluginPolicyId, getCanonicalAgentPluginCollisionGroups, getSortedAgentPlugins, isAgentPluginBlockedByPolicy };
@@ -22,23 +22,7 @@ export declare class AgentPluginService extends Disposable implements IAgentPlug
22
22
  readonly _serviceBrand: undefined;
23
23
  readonly plugins: IObservable<readonly IAgentPlugin[]>;
24
24
  readonly enablementModel: IEnablementModel;
25
- constructor(instantiationService: IInstantiationService, configurationService: IConfigurationService, storageService: IStorageService, pluginMarketplaceService: IPluginMarketplaceService, logService: ILogService);
26
- /**
27
- * Determines whether a plugin is blocked by enterprise policy:
28
- * - If `chat.plugins.enabledPlugins` (policy-managed via `ChatEnabledPlugins`)
29
- * is set, only plugins whose ID appears with value `true` are allowed.
30
- * - If `chat.plugins.strictMarketplaces` is on, only plugins from a
31
- * marketplace listed in `chat.plugins.extraMarketplaces` are allowed.
32
- *
33
- * Plugins without a marketplace provenance (e.g. user-configured filesystem
34
- * paths from `chat.pluginLocations`) are never blocked — they are user-side
35
- * concerns outside the enterprise enforcement boundary. Copilot-CLI-installed
36
- * plugins under `~/.copilot/installed-plugins/<marketplace>/<plugin>/` are
37
- * gated using their install-path identity even when they lack rich
38
- * marketplace metadata.
39
- */
40
- private _isBlockedByPolicy;
41
- private _dedupeAndSort;
25
+ constructor(instantiationService: IInstantiationService, configurationService: IConfigurationService, storageService: IStorageService, logService: ILogService);
42
26
  }
43
27
  /**
44
28
  * Describes a single discovered plugin source, before the shared
@@ -67,7 +51,7 @@ export declare abstract class AbstractAgentPluginDiscovery extends Disposable im
67
51
  protected readonly _workspaceContextService: IWorkspaceContextService;
68
52
  private readonly _pluginEntries;
69
53
  private readonly _plugins;
70
- readonly plugins: IObservable<readonly IAgentPlugin[]>;
54
+ readonly plugins: IObservable<readonly IAgentPlugin[] | undefined>;
71
55
  private _discoverVersion;
72
56
  protected _enablementModel: IEnablementModel;
73
57
  constructor(_fileService: IFileService, _pathService: IPathService, _logService: ILogService, _workspaceContextService: IWorkspaceContextService);
@@ -6,7 +6,6 @@ import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/ite
6
6
  import { parse } from '@codingame/monaco-vscode-api/vscode/vs/base/common/json';
7
7
  import { untildify } from '@codingame/monaco-vscode-api/vscode/vs/base/common/labels';
8
8
  import { Disposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
9
- import { ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
10
9
  import { equals } from '@codingame/monaco-vscode-api/vscode/vs/base/common/objects';
11
10
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
12
11
  import { win32, posix } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
@@ -36,17 +35,16 @@ import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/s
36
35
  import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
37
36
  import { EnablementModel, ContributionEnablementState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
38
37
  import { HookType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookTypes';
38
+ import { getCanonicalAgentPluginCollisionGroups, isAgentPluginBlockedByPolicy, AgentPluginCollisionEnablementModel, getSortedAgentPlugins, getAgentPluginPolicyId } from './agentPluginEnablement.js';
39
39
  import { IAgentPluginRepositoryService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginRepositoryService.service';
40
40
  import { agentPluginDiscoveryRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService';
41
41
  import { IPluginMarketplaceService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.service';
42
- import { parseMarketplaceReferences, readConfiguredMarketplaces } from './marketplaceReference.js';
43
42
  import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
44
43
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
45
44
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
46
45
  import { derived, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
47
46
  import { ObservablePromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/promise';
48
47
  import { observableSignal } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignal';
49
- import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
50
48
  import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
51
49
 
52
50
  function toAgentPluginHooks(groups) {
@@ -64,154 +62,97 @@ function resolveWorkspaceRoot(pluginUri, workspaceContextService) {
64
62
  return folder?.uri;
65
63
  }
66
64
  let AgentPluginService = class AgentPluginService extends Disposable {
67
- constructor(
68
- instantiationService,
69
- configurationService,
70
- storageService,
71
- pluginMarketplaceService,
72
- logService
73
- ) {
65
+ constructor(instantiationService, configurationService, storageService, logService) {
74
66
  super();
75
- this.enablementModel = this._register(( new EnablementModel("agentPlugins.enablement", storageService)));
67
+ const baseEnablementModel = this._register(( new EnablementModel("agentPlugins.enablement", storageService)));
76
68
  const pluginsEnabled = observableConfigValue(ChatConfiguration.PluginsEnabled, true, configurationService);
77
69
  const discoveries = [];
78
- for (const descriptor of agentPluginDiscoveryRegistry.getAll()) {
79
- const discovery = instantiationService.createInstance(descriptor);
70
+ for (const registration of agentPluginDiscoveryRegistry.getAll()) {
71
+ const discovery = instantiationService.createInstance(registration.descriptor);
80
72
  this._register(discovery);
81
- discoveries.push(discovery);
82
- discovery.start(this.enablementModel);
73
+ discoveries.push({
74
+ discovery,
75
+ priority: registration.priority,
76
+ order: registration.order
77
+ });
83
78
  }
84
79
  const enabledPluginsPolicy = observableFromEvent(this, Event.filter(
85
80
  configurationService.onDidChangeConfiguration,
86
81
  e => e.affectsConfiguration(ChatConfiguration.EnabledPlugins)
87
82
  ), () => configurationService.inspect(ChatConfiguration.EnabledPlugins).policyValue);
88
- const strictMarketplaces = observableConfigValue(ChatConfiguration.StrictMarketplaces, false, configurationService);
89
- const extraMarketplacesChanged = observableSignalFromEvent("extraMarketplaces", Event.filter(
90
- configurationService.onDidChangeConfiguration,
91
- e => e.affectsConfiguration(ChatConfiguration.ExtraMarketplaces)
92
- ));
83
+ const collisionGroups = derived(reader => {
84
+ if (!pluginsEnabled.read(reader)) {
85
+ return ( new Map());
86
+ }
87
+ const discoveredPlugins = readDiscoveredAgentPlugins(discoveries, reader);
88
+ if (!discoveredPlugins) {
89
+ return ( new Map());
90
+ }
91
+ const policy = enabledPluginsPolicy.read(reader);
92
+ return getCanonicalAgentPluginCollisionGroups(discoveredPlugins, plugin => isAgentPluginBlockedByPolicy(plugin, policy));
93
+ });
94
+ this.enablementModel = ( new AgentPluginCollisionEnablementModel(baseEnablementModel, collisionGroups));
95
+ for (const {
96
+ discovery
97
+ } of discoveries) {
98
+ discovery.start(this.enablementModel);
99
+ }
93
100
  this.plugins = derived(read => {
94
101
  if (!pluginsEnabled.read(read)) {
95
102
  return [];
96
103
  }
97
- return this._dedupeAndSort(discoveries.flatMap(d => d.plugins.read(read)));
104
+ const discoveredPlugins = readDiscoveredAgentPlugins(discoveries, read);
105
+ if (!discoveredPlugins) {
106
+ return [];
107
+ }
108
+ return getSortedAgentPlugins(discoveredPlugins);
98
109
  });
99
110
  this._register(autorun(reader => {
100
111
  const plugins = this.plugins.read(reader);
101
112
  const policy = enabledPluginsPolicy.read(reader);
102
- const strict = strictMarketplaces.read(reader);
103
- extraMarketplacesChanged.read(reader);
104
- const trustedExtras = strict ? parseMarketplaceReferences(readConfiguredMarketplaces(configurationService).extraValues) : [];
105
113
  transaction(tx => {
106
114
  for (const plugin of plugins) {
107
- setPolicyBlocked(plugin, this._isBlockedByPolicy(
108
- plugin,
109
- policy,
110
- strict,
111
- trustedExtras,
112
- pluginMarketplaceService,
113
- logService
114
- ), tx);
115
+ const blocked = isAgentPluginBlockedByPolicy(plugin, policy);
116
+ if (setPolicyBlocked(plugin, blocked, tx) && blocked) {
117
+ logService.debug(
118
+ `[AgentPluginService] Plugin '${getAgentPluginPolicyId(plugin) ?? ( plugin.uri.toString())}' blocked — not enabled by ChatEnabledPlugins policy`
119
+ );
120
+ }
115
121
  }
116
122
  });
117
123
  }));
118
124
  }
119
- _isBlockedByPolicy(
120
- plugin,
121
- enabledPluginsPolicy,
122
- strictMarketplaces,
123
- trustedExtras,
124
- pluginMarketplaceService,
125
- logService
126
- ) {
127
- const identity = getPolicyIdentity(plugin);
128
- if (!identity) {
129
- return false;
130
- }
131
- const pluginId = `${identity.name}@${identity.marketplace}`;
132
- if (enabledPluginsPolicy && ( Object.keys(enabledPluginsPolicy)).length > 0) {
133
- if (enabledPluginsPolicy[pluginId] !== true) {
134
- logService.debug(
135
- `[AgentPluginService] Plugin '${pluginId}' blocked — not enabled by ChatEnabledPlugins policy`
136
- );
137
- return true;
138
- }
139
- }
140
- if (strictMarketplaces) {
141
- const trusted = identity.marketplaceReference ? pluginMarketplaceService.isMarketplaceTrusted(identity.marketplaceReference) : isCliBucketTrusted(identity.marketplace, trustedExtras);
142
- if (!trusted) {
143
- logService.debug(
144
- `[AgentPluginService] Plugin '${pluginId}' blocked — marketplace not trusted under strict mode`
145
- );
146
- return true;
147
- }
148
- }
149
- return false;
150
- }
151
- _dedupeAndSort(plugins) {
152
- const unique = [];
153
- const seen = ( new ResourceSet());
154
- for (const plugin of plugins) {
155
- if (( seen.has(plugin.uri))) {
156
- continue;
157
- }
158
- seen.add(plugin.uri);
159
- unique.push(plugin);
125
+ };
126
+ AgentPluginService = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IConfigurationService)), ( __param(2, IStorageService)), ( __param(3, ILogService))], AgentPluginService));
127
+ function readDiscoveredAgentPlugins(discoveries, reader) {
128
+ const result = [];
129
+ for (const {
130
+ discovery,
131
+ priority,
132
+ order
133
+ } of discoveries) {
134
+ const plugins = discovery.plugins.read(reader);
135
+ if (!plugins) {
136
+ return undefined;
160
137
  }
161
- unique.sort((a, b) => ( a.uri.toString()).localeCompare(( b.uri.toString())));
162
- return unique;
138
+ result.push({
139
+ plugins,
140
+ priority,
141
+ order
142
+ });
163
143
  }
164
- };
165
- AgentPluginService = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IConfigurationService)), ( __param(2, IStorageService)), ( __param(3, IPluginMarketplaceService)), ( __param(4, ILogService))], AgentPluginService));
144
+ return result;
145
+ }
166
146
  function setPolicyBlocked(plugin, blocked, tx) {
167
147
  const obs = plugin.policyBlocked;
168
148
  if (obs && typeof obs.set === "function") {
149
+ if (obs.get() === blocked) {
150
+ return false;
151
+ }
169
152
  obs.set(blocked, tx);
153
+ return true;
170
154
  }
171
- }
172
- const COPILOT_CLI_INSTALL_PATH_FRAGMENT = "/.copilot/installed-plugins/";
173
- function getPolicyIdentity(plugin) {
174
- const m = plugin.fromMarketplace;
175
- if (m) {
176
- return {
177
- name: m.name,
178
- marketplace: m.marketplace,
179
- marketplaceReference: m.marketplaceReference
180
- };
181
- }
182
- if (plugin.uri.scheme !== "file") {
183
- return undefined;
184
- }
185
- const idx = plugin.uri.path.indexOf(COPILOT_CLI_INSTALL_PATH_FRAGMENT);
186
- if (idx === -1) {
187
- return undefined;
188
- }
189
- const segments = plugin.uri.path.slice(idx + COPILOT_CLI_INSTALL_PATH_FRAGMENT.length).split("/").filter(s => s.length > 0);
190
- if (segments.length !== 2) {
191
- return undefined;
192
- }
193
- const [marketplace, name] = segments;
194
- if (marketplace === "_direct") {
195
- return undefined;
196
- }
197
- return {
198
- name,
199
- marketplace
200
- };
201
- }
202
- function isCliBucketTrusted(bucket, trustedExtras) {
203
- return ( trustedExtras.some(ref => {
204
- if (ref.githubRepo && ref.githubRepo.split("/").pop() === bucket) {
205
- return true;
206
- }
207
- if (ref.displayLabel === bucket || ref.displayLabel.endsWith(`/${bucket}`)) {
208
- return true;
209
- }
210
- if (ref.canonicalId.endsWith(`/${bucket}`) || ref.canonicalId.endsWith(`/${bucket}.git`)) {
211
- return true;
212
- }
213
- return false;
214
- }));
155
+ return false;
215
156
  }
216
157
  class AbstractAgentPluginDiscovery extends Disposable {
217
158
  constructor(_fileService, _pathService, _logService, _workspaceContextService) {
@@ -221,7 +162,7 @@ class AbstractAgentPluginDiscovery extends Disposable {
221
162
  this._logService = _logService;
222
163
  this._workspaceContextService = _workspaceContextService;
223
164
  this._pluginEntries = ( new Map());
224
- this._plugins = observableValue("discoveredAgentPlugins", []);
165
+ this._plugins = observableValue("discoveredAgentPlugins", undefined);
225
166
  this.plugins = this._plugins;
226
167
  this._discoverVersion = 0;
227
168
  }
@@ -335,7 +276,7 @@ class AbstractAgentPluginDiscovery extends Disposable {
335
276
  "hooks",
336
277
  paths => this._readHooksFromPaths(uri, paths, format),
337
278
  async section => {
338
- const userHome = (await this._pathService.userHome()).fsPath;
279
+ const userHome = await this._pathService.userHome();
339
280
  const workspaceRoot = resolveWorkspaceRoot(uri, this._workspaceContextService);
340
281
  return toAgentPluginHooks(format.parseHooks(manifestUri, section, uri, workspaceRoot, userHome));
341
282
  },
@@ -388,7 +329,7 @@ class AbstractAgentPluginDiscovery extends Disposable {
388
329
  return undefined;
389
330
  }
390
331
  async _readHooksFromPaths(pluginUri, paths, format) {
391
- const userHome = (await this._pathService.userHome()).fsPath;
332
+ const userHome = await this._pathService.userHome();
392
333
  const workspaceRoot = resolveWorkspaceRoot(pluginUri, this._workspaceContextService);
393
334
  for (const hookPath of paths) {
394
335
  const json = await this._readJsonFile(hookPath);
@@ -794,13 +735,13 @@ let CopilotCliAgentPluginDiscovery = class CopilotCliAgentPluginDiscovery extend
794
735
  const {
795
736
  confirmed
796
737
  } = await this._dialogService.confirm({
797
- message: ( localize(7981, "This plugin was installed by the Copilot CLI. Remove it from disk?")),
738
+ message: ( localize(8587, "This plugin was installed by the Copilot CLI. Remove it from disk?")),
798
739
  detail: ( localize(
799
- 7982,
740
+ 8588,
800
741
  "The plugin directory '{0}' will be moved to the trash. You can reinstall it later via the Copilot CLI.",
801
742
  resource.fsPath
802
743
  )),
803
- primaryButton: ( localize(7983, "Remove"))
744
+ primaryButton: ( localize(8589, "Remove"))
804
745
  });
805
746
  if (!confirmed) {
806
747
  return;
@@ -820,7 +761,7 @@ CopilotCliAgentPluginDiscovery = ( __decorate([( __param(0, IFileService)), ( __
820
761
  const epPlugins = ExtensionsRegistry.registerExtensionPoint({
821
762
  extensionPoint: "chatPlugins",
822
763
  jsonSchema: {
823
- description: ( localize(7984, "Contributes agent plugins for chat.")),
764
+ description: ( localize(8590, "Contributes agent plugins for chat.")),
824
765
  type: "array",
825
766
  items: {
826
767
  additionalProperties: false,
@@ -834,13 +775,13 @@ const epPlugins = ExtensionsRegistry.registerExtensionPoint({
834
775
  properties: {
835
776
  path: {
836
777
  description: ( localize(
837
- 7985,
778
+ 8591,
838
779
  "Path to the agent plugin root directory relative to the extension root."
839
780
  )),
840
781
  type: "string"
841
782
  },
842
783
  when: {
843
- description: ( localize(7986, "(Optional) A condition which must be true to enable this plugin.")),
784
+ description: ( localize(8592, "(Optional) A condition which must be true to enable this plugin.")),
844
785
  type: "string"
845
786
  }
846
787
  }
@@ -877,7 +818,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
877
818
  for (const raw of ext.value) {
878
819
  if (!raw.path) {
879
820
  ext.collector.error(( localize(
880
- 7987,
821
+ 8593,
881
822
  "Extension '{0}' cannot register a chatPlugins entry without a path.",
882
823
  ext.description.identifier.value
883
824
  )));
@@ -886,7 +827,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
886
827
  const pluginUri = joinPath(ext.description.extensionLocation, raw.path);
887
828
  if (!isEqualOrParent(pluginUri, ext.description.extensionLocation)) {
888
829
  ext.collector.error(( localize(
889
- 7988,
830
+ 8594,
890
831
  "Extension '{0}' chatPlugins entry '{1}' resolves outside the extension.",
891
832
  ext.description.identifier.value,
892
833
  raw.path
@@ -898,7 +839,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
898
839
  whenExpr = ContextKeyExpr.deserialize(raw.when);
899
840
  if (!whenExpr) {
900
841
  ext.collector.error(( localize(
901
- 7989,
842
+ 8595,
902
843
  "Extension '{0}' chatPlugins entry '{1}' has an invalid when clause: '{2}'.",
903
844
  ext.description.identifier.value,
904
845
  raw.path,
@@ -922,6 +863,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
922
863
  this._rebuildWhenKeys();
923
864
  scheduler.schedule();
924
865
  });
866
+ scheduler.schedule();
925
867
  }
926
868
  _rebuildWhenKeys() {
927
869
  this._whenKeys.clear();
@@ -969,7 +911,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
969
911
  confirmed
970
912
  } = await this._dialogService.confirm({
971
913
  message: ( localize(
972
- 7990,
914
+ 8596,
973
915
  "This plugin is provided by the extension '{0}'. Do you want to uninstall the extension?",
974
916
  extensionId
975
917
  ))
@@ -1002,7 +944,7 @@ class ChatPluginsDataRenderer extends Disposable {
1002
944
  dispose: () => {}
1003
945
  };
1004
946
  }
1005
- const headers = [( localize(7991, "Path")), ( localize(7992, "When"))];
947
+ const headers = [( localize(8597, "Path")), ( localize(8598, "When"))];
1006
948
  const rows = ( contributions.map(d => [d.path, d.when ?? "-"]));
1007
949
  return {
1008
950
  data: {
@@ -1015,7 +957,7 @@ class ChatPluginsDataRenderer extends Disposable {
1015
957
  }
1016
958
  ( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
1017
959
  id: "chatPlugins",
1018
- label: ( localize(7993, "Chat Plugins")),
960
+ label: ( localize(8599, "Chat Plugins")),
1019
961
  access: {
1020
962
  canToggle: false
1021
963
  },
@@ -1,6 +1,6 @@
1
1
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
2
- import { IExtraKnownMarketplaceEntry } from "@codingame/monaco-vscode-api/vscode/vs/base/common/managedSettings";
3
2
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
3
+ export { extraKnownMarketplacesToConfigDict } from "@codingame/monaco-vscode-api/vscode/vs/base/common/managedSettings";
4
4
  export declare enum MarketplaceReferenceKind {
5
5
  GitHubShorthand = "githubShorthand",
6
6
  GitUri = "gitUri",
@@ -33,21 +33,6 @@ export interface IConfiguredMarketplaces {
33
33
  readonly extraValues: readonly unknown[];
34
34
  readonly effectiveValues: readonly unknown[];
35
35
  }
36
- /**
37
- * Converts the {@link IExtraKnownMarketplaceEntry} array delivered by the
38
- * `ChatExtraMarketplaces` policy into the `{ [name]: url-or-shorthand }` dict
39
- * stored on the `chat.plugins.extraMarketplaces` setting.
40
- *
41
- * The dict shape is what the Settings Editor's ComplexObject renderer can
42
- * display inline as key/value rows. {@link readConfiguredMarketplaces} reverses
43
- * this conversion so {@link parseMarketplaceReferences} keeps producing
44
- * `displayLabel = name` (required for `enabledPlugins["plugin@<name>"]` keys).
45
- *
46
- * Plain-string entries (allowed by the policy schema but unnamed) are stored
47
- * with the value used as both key and value so they survive the round-trip
48
- * intact.
49
- */
50
- export declare function extraKnownMarketplacesToConfigDict(entries: readonly (string | IExtraKnownMarketplaceEntry)[] | undefined): Record<string, string> | undefined;
51
36
  export declare function readConfiguredMarketplaces(configurationService: IConfigurationService): IConfiguredMarketplaces;
52
37
  export declare function parseMarketplaceReferences(values: readonly unknown[]): IMarketplaceReference[];
53
38
  /**