@codingame/monaco-vscode-chat-service-override 33.0.9 → 34.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 (403) hide show
  1. package/index.js +19 -5
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/browser/agentHostIpcChannelTransport.d.ts +32 -0
  4. package/vscode/src/vs/platform/agentHost/browser/agentHostIpcChannelTransport.js +77 -0
  5. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +84 -17
  6. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +235 -190
  7. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +3 -2
  8. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +23 -4
  9. package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.d.ts +1 -0
  10. package/vscode/src/vs/platform/agentHost/common/agentHost.config.contribution.js +22 -0
  11. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +107 -8
  12. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +272 -49
  13. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemService.js +2 -2
  14. package/vscode/src/vs/platform/agentHost/common/{agentHostPermissionService.d.ts → agentHostResourceService.d.ts} +26 -0
  15. package/vscode/src/vs/platform/agentHost/common/{agentHostPermissionService.js → agentHostResourceService.js} +11 -1
  16. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.d.ts +13 -0
  17. package/vscode/src/vs/platform/agentHost/common/agentHostSchema.js +26 -18
  18. package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.d.ts +1 -0
  19. package/vscode/src/vs/platform/agentHost/common/agentHostStarter.config.contribution.js +119 -0
  20. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +135 -19
  21. package/vscode/src/vs/platform/agentHost/common/agentService.js +8 -2
  22. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.d.ts +5 -1
  23. package/vscode/src/vs/platform/agentHost/common/ahpJsonlLogger.js +85 -22
  24. package/vscode/src/vs/platform/agentHost/common/customAgents.d.ts +36 -0
  25. package/vscode/src/vs/platform/agentHost/common/customAgents.js +12 -0
  26. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.d.ts +81 -0
  27. package/vscode/src/vs/platform/agentHost/common/sandboxConfigSchema.js +103 -0
  28. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +86 -10
  29. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +129 -37
  30. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.d.ts +12 -0
  31. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-changeset/reducer.js +72 -0
  32. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/reducer.d.ts +6 -0
  33. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-root/reducer.js +30 -0
  34. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-session/reducer.d.ts +6 -0
  35. package/vscode/src/vs/platform/agentHost/common/state/protocol/{reducers.js → channels-session/reducer.js} +99 -168
  36. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-terminal/reducer.d.ts +6 -0
  37. package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-terminal/reducer.js +110 -0
  38. package/vscode/src/vs/platform/agentHost/common/state/protocol/{errors.d.ts → common/errors.d.ts} +13 -2
  39. package/vscode/src/vs/platform/agentHost/common/state/protocol/{errors.js → common/errors.js} +1 -2
  40. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.d.ts +17 -0
  41. package/vscode/src/vs/platform/agentHost/common/state/protocol/common/reducer-helpers.js +9 -0
  42. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.d.ts +33 -8
  43. package/vscode/src/vs/platform/agentHost/common/state/protocol/version/registry.js +2 -3
  44. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +36 -5
  45. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +6 -3
  46. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.d.ts +50 -0
  47. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.js +138 -0
  48. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +3 -3
  49. package/vscode/src/vs/platform/networkFilter/common/settings.d.ts +12 -0
  50. package/vscode/src/vs/platform/networkFilter/common/settings.js +14 -0
  51. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.d.ts +4 -1
  52. package/vscode/src/vs/platform/sandbox/browser/sandboxHelperService.js +9 -0
  53. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +21 -0
  54. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +28 -0
  55. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.d.ts +31 -0
  56. package/vscode/src/vs/platform/sandbox/common/terminalSandboxCommandRules.js +49 -0
  57. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.d.ts +182 -0
  58. package/vscode/src/vs/platform/sandbox/common/terminalSandboxEngine.js +784 -0
  59. package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.d.ts +18 -0
  60. package/vscode/src/vs/platform/sandbox/common/terminalSandboxReadAllowList.js +305 -0
  61. package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.d.ts +7 -0
  62. package/vscode/src/vs/platform/sandbox/common/terminalSandboxRuntimeConfigurationPerOperation.js +120 -0
  63. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +100 -0
  64. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +10 -0
  65. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
  67. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  68. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +60 -60
  69. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  71. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  72. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +7 -7
  73. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +106 -8
  74. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  75. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +22 -36
  76. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  77. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  78. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +21 -13
  80. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +12 -12
  81. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +38 -18
  82. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  83. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +11 -11
  84. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  85. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  86. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +20 -20
  87. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.d.ts +3 -2
  88. package/vscode/src/vs/workbench/contrib/chat/browser/actions/exportAgentHostDebugLogsAction.js +9 -9
  89. package/vscode/src/vs/workbench/contrib/chat/browser/actions/openCopilotCliStateFileAction.js +5 -5
  90. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +10 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +40 -11
  92. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +15 -9
  93. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  94. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +0 -1
  95. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +23 -17
  96. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +13 -13
  97. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationSyncProvider.d.ts +24 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentCustomizationSyncProvider.js +55 -0
  99. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.d.ts +30 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.js +119 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.d.ts +13 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.js +32 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.d.ts +55 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.js +104 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.d.ts +1 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostModeSynchronizer.js +177 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.d.ts +3 -3
  108. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostPermissionUiContribution.js +11 -11
  109. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolUtils.d.ts +6 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolUtils.js +14 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.d.ts +3 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostUntitledProvisionalSessionService.js +44 -5
  113. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.d.ts +60 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/syncedCustomizationBundler.js +103 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +4 -3
  116. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -62
  117. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +9 -7
  118. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  119. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  121. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +6 -5
  123. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +38 -28
  124. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  125. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  126. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +4 -4
  127. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +22 -31
  128. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +2 -2
  129. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -16
  130. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.d.ts +3 -3
  131. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemsModel.js +8 -2
  132. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +112 -113
  133. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +62 -68
  134. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +3 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +149 -145
  136. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +3 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +6 -1
  138. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +25 -25
  139. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +2 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +2 -0
  141. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +5 -3
  142. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.d.ts +8 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedAgentPluginDetail.js +13 -12
  144. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.d.ts +8 -1
  145. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/embeddedMcpServerDetail.js +15 -13
  146. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +1 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +78 -55
  148. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +140 -67
  149. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +11 -21
  150. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +3 -1
  151. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +59 -57
  152. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +2 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chat.shared.contribution.js +440 -357
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +32 -32
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCacheExplorerView.js +99 -99
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +6 -6
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +20 -20
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +4 -4
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +22 -22
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +13 -13
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +24 -24
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +33 -33
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +1 -1
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  174. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  175. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  176. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  177. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  178. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  179. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  180. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  181. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +1 -1
  182. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  183. package/vscode/src/vs/workbench/contrib/chat/browser/chatGoalSummaryService.d.ts +21 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/chatGoalSummaryService.js +115 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +5 -2
  186. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +8 -8
  187. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +2 -2
  188. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +6 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +28 -1
  190. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +3 -1
  191. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +187 -106
  192. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +41 -0
  193. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  194. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  195. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.d.ts +66 -0
  196. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuotaNotification.js +346 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +3 -2
  198. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -2
  199. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +72 -29
  200. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  201. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  202. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +26 -26
  203. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +12 -12
  204. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +5 -1
  205. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +144 -67
  206. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  207. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +126 -80
  208. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.d.ts +1 -0
  209. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +32 -31
  210. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +4 -0
  211. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.d.ts +11 -0
  212. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +40 -33
  213. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +5 -1
  214. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +25 -24
  215. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  216. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  217. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContext.contribution.js +5 -5
  218. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +5 -5
  219. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  220. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  221. package/vscode/src/vs/workbench/contrib/chat/browser/githubRepoFetcher.js +1 -19
  222. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.d.ts +12 -22
  223. package/vscode/src/vs/workbench/contrib/chat/browser/hasByokModelsContribution.js +14 -6
  224. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +6 -3
  225. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +56 -18
  226. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorActions.js +4 -4
  227. package/vscode/src/vs/workbench/contrib/chat/browser/planReviewFeedback/planReviewFeedbackEditorContribution.js +5 -5
  228. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.d.ts +3 -3
  229. package/vscode/src/vs/workbench/contrib/chat/browser/pluginAutoUpdate.js +5 -6
  230. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +33 -36
  232. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +3 -0
  233. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +31 -16
  234. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +4 -4
  235. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +16 -13
  236. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  237. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +27 -27
  238. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +1 -1
  239. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  240. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  241. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  242. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  243. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  244. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  245. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  246. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +20 -20
  247. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +39 -39
  248. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +24 -23
  249. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +5 -5
  250. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +18 -0
  251. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +23 -1
  252. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +6 -6
  253. package/vscode/src/vs/workbench/contrib/chat/browser/utilityModelContribution.js +5 -2
  254. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  255. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  256. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +22 -13
  257. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +2 -2
  258. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  259. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  260. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  261. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +14 -3
  262. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +55 -24
  263. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  264. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.d.ts +38 -0
  265. package/vscode/src/vs/workbench/contrib/chat/common/chatSelectedModel.js +47 -0
  266. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +54 -12
  267. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +1 -0
  268. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -6
  269. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +39 -0
  270. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +40 -4
  271. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +30 -8
  272. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +205 -46
  273. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.d.ts +4 -3
  274. package/vscode/src/vs/workbench/contrib/chat/common/plugins/fileBackedInstalledPluginsStore.js +8 -3
  275. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +57 -0
  276. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +153 -38
  277. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +12 -7
  278. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +70 -37
  279. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +6 -28
  280. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +18 -18
  281. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  282. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  283. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  284. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +150 -150
  285. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  286. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarousel.contribution.js +10 -10
  287. package/vscode/src/vs/workbench/contrib/imageCarousel/browser/imageCarouselEditor.js +10 -10
  288. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +15 -15
  289. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  290. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +4 -4
  291. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  292. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  293. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  294. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  295. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  296. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +17 -17
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +21 -21
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +4 -0
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +21 -1
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.d.ts +55 -0
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/agentHostSandboxForwarder.js +122 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +2 -0
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +41 -0
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +52 -0
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +232 -0
  313. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +65 -0
  314. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +225 -0
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +27 -0
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +143 -0
  317. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +37 -0
  318. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +205 -0
  319. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +40 -0
  320. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +174 -0
  321. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +7 -0
  322. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +43 -0
  323. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +52 -0
  324. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +260 -0
  325. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +44 -0
  326. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +98 -0
  327. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
  328. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +3 -3
  329. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +14 -7
  330. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +42 -0
  331. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +226 -0
  332. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +31 -0
  333. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +392 -0
  334. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +45 -0
  335. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +243 -0
  336. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +54 -0
  337. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +10 -0
  338. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +20 -0
  339. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +310 -0
  340. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +27 -0
  341. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +177 -0
  342. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +11 -0
  343. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +33 -0
  344. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  345. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  346. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  347. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  348. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  349. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  350. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  351. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +13 -0
  352. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +22 -0
  353. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +42 -0
  354. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +102 -0
  355. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
  356. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +27 -0
  357. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +14 -0
  358. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +29 -0
  359. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
  360. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
  361. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +28 -0
  362. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +15 -0
  363. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +55 -0
  364. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  365. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +3 -0
  366. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +31 -9
  367. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  368. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +4 -4
  369. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +177 -0
  370. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +518 -0
  371. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +42 -0
  372. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
  373. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +9 -0
  374. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +1 -1
  375. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +3 -3
  376. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +297 -0
  377. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +2961 -0
  378. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +29 -0
  379. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +63 -0
  380. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +14 -14
  381. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  382. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  383. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  384. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
  385. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +2 -2
  386. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +17 -0
  387. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +118 -0
  388. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.d.ts +22 -0
  389. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.js +44 -0
  390. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +58 -0
  391. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +223 -0
  392. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.d.ts +20 -0
  393. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/sandboxSettingsReader.js +81 -0
  394. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +63 -0
  395. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +349 -0
  396. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.d.ts +75 -0
  397. package/vscode/src/vs/workbench/services/agentHost/browser/editorRemoteAgentHostServiceClient.js +192 -0
  398. package/vscode/src/vs/workbench/services/agentHost/common/agentHostResourceService.d.ts +89 -0
  399. package/vscode/src/vs/workbench/services/agentHost/common/{agentHostPermissionService.js → agentHostResourceService.js} +226 -9
  400. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +0 -30
  401. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +0 -119
  402. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +0 -552
  403. package/vscode/src/vs/workbench/services/agentHost/common/agentHostPermissionService.d.ts +0 -83
@@ -1,6 +1,7 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { RunOnceScheduler } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
4
+ import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
4
5
  import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
5
6
  import { parse } from '@codingame/monaco-vscode-api/vscode/vs/base/common/json';
6
7
  import { untildify } from '@codingame/monaco-vscode-api/vscode/vs/base/common/labels';
@@ -27,22 +28,26 @@ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
27
28
  import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
28
29
  import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
29
30
  import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
30
- import { detectPluginFormat, parseComponentPathConfig, resolveComponentDirs, readMarkdownComponents, readSkills, parseMcpServerDefinitionMap } from '../../../../../platform/agentPlugins/common/pluginParsers.js';
31
- export { convertBareEnvVarsToVsCodeSyntax, resolveMcpServersMap, shellQuotePluginRootInCommand } from '../../../../../platform/agentPlugins/common/pluginParsers.js';
31
+ import { detectPluginFormat, parseComponentPathConfig, resolveComponentDirs, readMarkdownComponents, readSkills, parseMcpServerDefinitionMap } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentPlugins/common/pluginParsers';
32
+ export { convertBareEnvVarsToVsCodeSyntax, resolveMcpServersMap, shellQuotePluginRootInCommand } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentPlugins/common/pluginParsers';
32
33
  import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionFeatures';
33
34
  import { ExtensionsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
34
35
  import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service';
35
36
  import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
36
- import { EnablementModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
37
+ import { EnablementModel, ContributionEnablementState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
37
38
  import { HookType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookTypes';
38
39
  import { IAgentPluginRepositoryService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginRepositoryService.service';
39
40
  import { agentPluginDiscoveryRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService';
40
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
+ import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
41
44
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
42
45
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
43
46
  import { derived, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
44
47
  import { ObservablePromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/promise';
45
48
  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
+ import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
46
51
 
47
52
  function toAgentPluginHooks(groups) {
48
53
  return ( groups.filter(g => ( Object.values(HookType)).includes(g.type)).map(g => ({
@@ -59,7 +64,13 @@ function resolveWorkspaceRoot(pluginUri, workspaceContextService) {
59
64
  return folder?.uri;
60
65
  }
61
66
  let AgentPluginService = class AgentPluginService extends Disposable {
62
- constructor(instantiationService, configurationService, storageService) {
67
+ constructor(
68
+ instantiationService,
69
+ configurationService,
70
+ storageService,
71
+ pluginMarketplaceService,
72
+ logService
73
+ ) {
63
74
  super();
64
75
  this.enablementModel = this._register(( new EnablementModel("agentPlugins.enablement", storageService)));
65
76
  const pluginsEnabled = observableConfigValue(ChatConfiguration.PluginsEnabled, true, configurationService);
@@ -70,12 +81,72 @@ let AgentPluginService = class AgentPluginService extends Disposable {
70
81
  discoveries.push(discovery);
71
82
  discovery.start(this.enablementModel);
72
83
  }
84
+ const enabledPluginsPolicy = observableFromEvent(this, Event.filter(
85
+ configurationService.onDidChangeConfiguration,
86
+ e => e.affectsConfiguration(ChatConfiguration.EnabledPlugins)
87
+ ), () => 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
+ ));
73
93
  this.plugins = derived(read => {
74
94
  if (!pluginsEnabled.read(read)) {
75
95
  return [];
76
96
  }
77
97
  return this._dedupeAndSort(discoveries.flatMap(d => d.plugins.read(read)));
78
98
  });
99
+ this._register(autorun(reader => {
100
+ const plugins = this.plugins.read(reader);
101
+ const policy = enabledPluginsPolicy.read(reader);
102
+ const strict = strictMarketplaces.read(reader);
103
+ extraMarketplacesChanged.read(reader);
104
+ const trustedExtras = strict ? parseMarketplaceReferences(readConfiguredMarketplaces(configurationService).extraValues) : [];
105
+ transaction(tx => {
106
+ 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
+ }
116
+ });
117
+ }));
118
+ }
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;
79
150
  }
80
151
  _dedupeAndSort(plugins) {
81
152
  const unique = [];
@@ -91,7 +162,57 @@ let AgentPluginService = class AgentPluginService extends Disposable {
91
162
  return unique;
92
163
  }
93
164
  };
94
- AgentPluginService = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IConfigurationService)), ( __param(2, IStorageService))], AgentPluginService));
165
+ AgentPluginService = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IConfigurationService)), ( __param(2, IStorageService)), ( __param(3, IPluginMarketplaceService)), ( __param(4, ILogService))], AgentPluginService));
166
+ function setPolicyBlocked(plugin, blocked, tx) {
167
+ const obs = plugin.policyBlocked;
168
+ if (obs && typeof obs.set === "function") {
169
+ obs.set(blocked, tx);
170
+ }
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
+ }));
215
+ }
95
216
  class AbstractAgentPluginDiscovery extends Disposable {
96
217
  constructor(_fileService, _pathService, _logService, _workspaceContextService) {
97
218
  super();
@@ -126,7 +247,7 @@ class AbstractAgentPluginDiscovery extends Disposable {
126
247
  format,
127
248
  source.fromMarketplace,
128
249
  source.repositoryUri,
129
- () => source.remove()
250
+ source.remove
130
251
  ));
131
252
  }
132
253
  }
@@ -154,7 +275,10 @@ class AbstractAgentPluginDiscovery extends Disposable {
154
275
  }
155
276
  }
156
277
  const store = ( new DisposableStore());
157
- const enablement = derived(r => this._enablementModel.readEnabled(key, r));
278
+ const policyBlocked = observableValue("policyBlocked", false);
279
+ const enablement = derived(
280
+ r => policyBlocked.read(r) ? ContributionEnablementState.DisabledProfile : this._enablementModel.readEnabled(key, r)
281
+ );
158
282
  const initialManifest = await this._readManifest(uri, format);
159
283
  const manifest = observableValue("agentPluginManifest", initialManifest);
160
284
  const observeComponent = (prop, doRead, tryReadEmbedded, defaultPath = prop) => {
@@ -239,6 +363,7 @@ class AbstractAgentPluginDiscovery extends Disposable {
239
363
  uri,
240
364
  label: fromMarketplace?.name ?? manifestName ?? basename(uri),
241
365
  enablement,
366
+ policyBlocked,
242
367
  remove: removeCallback,
243
368
  hooks,
244
369
  commands,
@@ -369,52 +494,78 @@ let ConfiguredAgentPluginDiscovery = class ConfiguredAgentPluginDiscovery extend
369
494
  this._configurationService = _configurationService;
370
495
  this._pluginMarketplaceService = _pluginMarketplaceService;
371
496
  this._pluginLocationsConfig = observableConfigValue(ChatConfiguration.PluginLocations, {}, _configurationService);
497
+ this._enterpriseEnabledPluginsConfig = observableFromEvent(this, Event.filter(
498
+ this._configurationService.onDidChangeConfiguration,
499
+ e => e.affectsConfiguration(ChatConfiguration.EnabledPlugins)
500
+ ), () => {
501
+ const inspected = this._configurationService.inspect(ChatConfiguration.EnabledPlugins);
502
+ return {
503
+ ...inspected.defaultValue,
504
+ ...inspected.userValue,
505
+ ...inspected.policyValue
506
+ };
507
+ });
372
508
  }
373
509
  start(enablementModel) {
374
510
  this._enablementModel = enablementModel;
375
511
  const scheduler = this._register(( new RunOnceScheduler(() => this._refreshPlugins(), 0)));
376
512
  this._register(autorun(reader => {
377
513
  this._pluginLocationsConfig.read(reader);
514
+ this._enterpriseEnabledPluginsConfig.read(reader);
378
515
  scheduler.schedule();
379
516
  }));
380
517
  scheduler.schedule();
381
518
  }
382
519
  async _discoverPluginSources() {
383
520
  const sources = [];
384
- const config = this._pluginLocationsConfig.get();
385
521
  const userHome = await this._getUserHome();
386
- for (const [path, enabled] of Object.entries(config)) {
387
- if (!path.trim() || enabled === false) {
522
+ for (const [key, enabled] of Object.entries(this._pluginLocationsConfig.get())) {
523
+ const trimmed = key.trim();
524
+ if (!trimmed || enabled === false) {
388
525
  continue;
389
526
  }
390
- const resources = this._resolvePluginPath(path.trim(), userHome);
391
- for (const resource of resources) {
392
- let stat;
393
- try {
394
- stat = await this._fileService.resolve(resource);
395
- } catch {
396
- this._logService.debug(
397
- `[ConfiguredAgentPluginDiscovery] Could not resolve plugin path: ${( resource.toString())}`
398
- );
399
- continue;
400
- }
401
- if (!stat.isDirectory) {
402
- this._logService.debug(
403
- `[ConfiguredAgentPluginDiscovery] Plugin path is not a directory: ${( resource.toString())}`
404
- );
405
- continue;
406
- }
407
- const fromMarketplace = this._pluginMarketplaceService.getMarketplacePluginMetadata(stat.resource);
408
- const configKey = path;
409
- sources.push({
410
- uri: stat.resource,
411
- fromMarketplace,
412
- remove: () => this._removePluginPath(configKey)
413
- });
527
+ for (const resource of this._resolvePluginPath(trimmed, userHome)) {
528
+ await this._addPluginSource(sources, resource, "plugin path", () => this._removePluginPath(key));
529
+ }
530
+ }
531
+ for (const [key, enabled] of Object.entries(this._enterpriseEnabledPluginsConfig.get())) {
532
+ const trimmed = key.trim();
533
+ if (!trimmed || enabled === false) {
534
+ continue;
414
535
  }
536
+ const resource = this._resolveEnterprisePluginId(trimmed, userHome);
537
+ if (!resource) {
538
+ this._logService.debug(
539
+ `[ConfiguredAgentPluginDiscovery] Skipping enterprise plugin entry that is not in <plugin>@<marketplace> form: ${trimmed}`
540
+ );
541
+ continue;
542
+ }
543
+ await this._addPluginSource(sources, resource, "enterprise plugin path");
415
544
  }
416
545
  return sources;
417
546
  }
547
+ async _addPluginSource(sources, resource, label, remove) {
548
+ let stat;
549
+ try {
550
+ stat = await this._fileService.resolve(resource);
551
+ } catch {
552
+ this._logService.debug(
553
+ `[ConfiguredAgentPluginDiscovery] Could not resolve ${label}: ${( resource.toString())}`
554
+ );
555
+ return;
556
+ }
557
+ if (!stat.isDirectory) {
558
+ this._logService.debug(
559
+ `[ConfiguredAgentPluginDiscovery] ${label} is not a directory: ${( resource.toString())}`
560
+ );
561
+ return;
562
+ }
563
+ sources.push({
564
+ uri: stat.resource,
565
+ fromMarketplace: this._pluginMarketplaceService.getMarketplacePluginMetadata(stat.resource),
566
+ remove
567
+ });
568
+ }
418
569
  async _getUserHome() {
419
570
  const userHome = await this._pathService.userHome();
420
571
  return userHome.scheme === "file" ? userHome.fsPath : userHome.path;
@@ -428,6 +579,14 @@ let ConfiguredAgentPluginDiscovery = class ConfiguredAgentPluginDiscovery extend
428
579
  }
429
580
  return ( this._workspaceContextService.getWorkspace().folders.map(folder => joinPath(folder.uri, path)));
430
581
  }
582
+ _resolveEnterprisePluginId(id, userHome) {
583
+ const idMatch = id.match(/^([^@/\\~]+)@([^@/\\~]+)$/);
584
+ if (!idMatch) {
585
+ return undefined;
586
+ }
587
+ const [, plugin, marketplace] = idMatch;
588
+ return URI.file(`${userHome}/.copilot/installed-plugins/${marketplace}/${plugin}`);
589
+ }
431
590
  _removePluginPath(configKey) {
432
591
  const inspected = this._configurationService.inspect(ChatConfiguration.PluginLocations);
433
592
  const targets = [
@@ -635,13 +794,13 @@ let CopilotCliAgentPluginDiscovery = class CopilotCliAgentPluginDiscovery extend
635
794
  const {
636
795
  confirmed
637
796
  } = await this._dialogService.confirm({
638
- message: ( localize(7828, "This plugin was installed by the Copilot CLI. Remove it from disk?")),
797
+ message: ( localize(7981, "This plugin was installed by the Copilot CLI. Remove it from disk?")),
639
798
  detail: ( localize(
640
- 7829,
799
+ 7982,
641
800
  "The plugin directory '{0}' will be moved to the trash. You can reinstall it later via the Copilot CLI.",
642
801
  resource.fsPath
643
802
  )),
644
- primaryButton: ( localize(7830, "Remove"))
803
+ primaryButton: ( localize(7983, "Remove"))
645
804
  });
646
805
  if (!confirmed) {
647
806
  return;
@@ -661,7 +820,7 @@ CopilotCliAgentPluginDiscovery = ( __decorate([( __param(0, IFileService)), ( __
661
820
  const epPlugins = ExtensionsRegistry.registerExtensionPoint({
662
821
  extensionPoint: "chatPlugins",
663
822
  jsonSchema: {
664
- description: ( localize(7831, "Contributes agent plugins for chat.")),
823
+ description: ( localize(7984, "Contributes agent plugins for chat.")),
665
824
  type: "array",
666
825
  items: {
667
826
  additionalProperties: false,
@@ -675,13 +834,13 @@ const epPlugins = ExtensionsRegistry.registerExtensionPoint({
675
834
  properties: {
676
835
  path: {
677
836
  description: ( localize(
678
- 7832,
837
+ 7985,
679
838
  "Path to the agent plugin root directory relative to the extension root."
680
839
  )),
681
840
  type: "string"
682
841
  },
683
842
  when: {
684
- description: ( localize(7833, "(Optional) A condition which must be true to enable this plugin.")),
843
+ description: ( localize(7986, "(Optional) A condition which must be true to enable this plugin.")),
685
844
  type: "string"
686
845
  }
687
846
  }
@@ -718,7 +877,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
718
877
  for (const raw of ext.value) {
719
878
  if (!raw.path) {
720
879
  ext.collector.error(( localize(
721
- 7834,
880
+ 7987,
722
881
  "Extension '{0}' cannot register a chatPlugins entry without a path.",
723
882
  ext.description.identifier.value
724
883
  )));
@@ -727,7 +886,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
727
886
  const pluginUri = joinPath(ext.description.extensionLocation, raw.path);
728
887
  if (!isEqualOrParent(pluginUri, ext.description.extensionLocation)) {
729
888
  ext.collector.error(( localize(
730
- 7835,
889
+ 7988,
731
890
  "Extension '{0}' chatPlugins entry '{1}' resolves outside the extension.",
732
891
  ext.description.identifier.value,
733
892
  raw.path
@@ -739,7 +898,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
739
898
  whenExpr = ContextKeyExpr.deserialize(raw.when);
740
899
  if (!whenExpr) {
741
900
  ext.collector.error(( localize(
742
- 7836,
901
+ 7989,
743
902
  "Extension '{0}' chatPlugins entry '{1}' has an invalid when clause: '{2}'.",
744
903
  ext.description.identifier.value,
745
904
  raw.path,
@@ -810,7 +969,7 @@ let ExtensionAgentPluginDiscovery = class ExtensionAgentPluginDiscovery extends
810
969
  confirmed
811
970
  } = await this._dialogService.confirm({
812
971
  message: ( localize(
813
- 7837,
972
+ 7990,
814
973
  "This plugin is provided by the extension '{0}'. Do you want to uninstall the extension?",
815
974
  extensionId
816
975
  ))
@@ -843,7 +1002,7 @@ class ChatPluginsDataRenderer extends Disposable {
843
1002
  dispose: () => {}
844
1003
  };
845
1004
  }
846
- const headers = [( localize(7838, "Path")), ( localize(7839, "When"))];
1005
+ const headers = [( localize(7991, "Path")), ( localize(7992, "When"))];
847
1006
  const rows = ( contributions.map(d => [d.path, d.when ?? "-"]));
848
1007
  return {
849
1008
  data: {
@@ -856,7 +1015,7 @@ class ChatPluginsDataRenderer extends Disposable {
856
1015
  }
857
1016
  ( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
858
1017
  id: "chatPlugins",
859
- label: ( localize(7840, "Chat Plugins")),
1018
+ label: ( localize(7993, "Chat Plugins")),
860
1019
  access: {
861
1020
  canToggle: false
862
1021
  },
@@ -10,6 +10,7 @@ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform
10
10
  export interface IStoredInstalledPlugin {
11
11
  readonly pluginUri: URI;
12
12
  readonly marketplace: string;
13
+ readonly name?: string;
13
14
  }
14
15
  /**
15
16
  * An observable store for installed agent plugins that is backed by a
@@ -17,9 +18,9 @@ export interface IStoredInstalledPlugin {
17
18
  * the installed-plugin manifest discoverable by external tools (CLIs,
18
19
  * other editors, etc.) without depending on VS Code internals.
19
20
  *
20
- * The on-disk format stores only the plugin URI (as a string) and the
21
- * marketplace identifier. Plugin metadata (name, description, etc.) is
22
- * read from the plugin manifest on disk by the discovery layer -
21
+ * The on-disk format stores only the plugin URI (as a string), marketplace
22
+ * identifier, and plugin name. Full plugin metadata (description, source
23
+ * descriptor, etc.) is read from marketplace data by the discovery layer -
23
24
  * keeping a single source of truth.
24
25
  *
25
26
  * On construction the store:
@@ -73,7 +73,8 @@ class FileBackedInstalledPluginsStore extends Disposable {
73
73
  entry => typeof entry.pluginUri === "string" && typeof entry.marketplace === "string"
74
74
  ).map(entry => ({
75
75
  pluginUri: ( URI.parse(entry.pluginUri)),
76
- marketplace: entry.marketplace
76
+ marketplace: entry.marketplace,
77
+ name: typeof entry.name === "string" ? entry.name : undefined
77
78
  })));
78
79
  } catch {
79
80
  return undefined;
@@ -87,7 +88,10 @@ class FileBackedInstalledPluginsStore extends Disposable {
87
88
  async _writeToFile() {
88
89
  const entries = ( this.get().map(e => ({
89
90
  pluginUri: ( e.pluginUri.toString()),
90
- marketplace: e.marketplace
91
+ marketplace: e.marketplace,
92
+ ...(e.name ? {
93
+ name: e.name
94
+ } : {})
91
95
  })));
92
96
  const data = {
93
97
  version: INSTALLED_JSON_VERSION,
@@ -155,7 +159,8 @@ class FileBackedInstalledPluginsStore extends Disposable {
155
159
  const rebased = this._rebasePluginUri(uri);
156
160
  return {
157
161
  pluginUri: rebased ?? uri,
158
- marketplace: entry.plugin?.marketplaceReference?.rawValue ?? ""
162
+ marketplace: entry.plugin?.marketplaceReference?.rawValue ?? "",
163
+ name: entry.plugin?.name
159
164
  };
160
165
  })).filter(e => !!e.marketplace);
161
166
  this._logService.info(
@@ -1,4 +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
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
2
4
  export declare enum MarketplaceReferenceKind {
3
5
  GitHubShorthand = "githubShorthand",
4
6
  GitUri = "gitUri",
@@ -11,10 +13,65 @@ export interface IMarketplaceReference {
11
13
  readonly canonicalId: string;
12
14
  readonly cacheSegments: readonly string[];
13
15
  readonly kind: MarketplaceReferenceKind;
16
+ readonly ref?: string;
14
17
  readonly githubRepo?: string;
15
18
  readonly localRepositoryUri?: URI;
16
19
  }
20
+ /**
21
+ * The two configuration layers behind plugin marketplaces:
22
+ * - `userValues` — what's stored at {@link ChatConfiguration.PluginMarketplaces}
23
+ * (default + user). Writable by the user.
24
+ * - `extraValues` — what's delivered via the `ChatExtraMarketplaces` enterprise
25
+ * policy into {@link ChatConfiguration.ExtraMarketplaces}. Read-only.
26
+ *
27
+ * Entries may be strings (`<owner>/<repo>` or git URIs) or, in the policy case,
28
+ * {@link IExtraMarketplaceObjectEntry} objects — both shapes flow through
29
+ * {@link parseMarketplaceReferences}.
30
+ */
31
+ export interface IConfiguredMarketplaces {
32
+ readonly userValues: readonly unknown[];
33
+ readonly extraValues: readonly unknown[];
34
+ readonly effectiveValues: readonly unknown[];
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
+ export declare function readConfiguredMarketplaces(configurationService: IConfigurationService): IConfiguredMarketplaces;
17
52
  export declare function parseMarketplaceReferences(values: readonly unknown[]): IMarketplaceReference[];
53
+ /**
54
+ * Object-form marketplace entry shape, as delivered via the enterprise
55
+ * `managed_settings` policy or `.github/copilot/settings.json` workspace
56
+ * file. `name` (when present) is used as the marketplace's `displayLabel`
57
+ * so that `enabledPlugins["plugin@name"]` keys match consistently.
58
+ *
59
+ * Both the nested form (`source: { source, repo|url }`) and the flat form
60
+ * (`source: 'github', repo: ...`) are accepted.
61
+ */
62
+ export interface IExtraMarketplaceObjectEntry {
63
+ readonly name?: string;
64
+ readonly source?: string | {
65
+ readonly source?: string;
66
+ readonly repo?: string;
67
+ readonly url?: string;
68
+ readonly ref?: string;
69
+ };
70
+ readonly repo?: string;
71
+ readonly url?: string;
72
+ readonly ref?: string;
73
+ }
74
+ export declare function parseMarketplaceObjectEntry(entry: IExtraMarketplaceObjectEntry): IMarketplaceReference | undefined;
18
75
  /**
19
76
  * Merges two sets of marketplace references, deduplicating by canonical ID.
20
77
  * The first set takes precedence when IDs collide.