@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
@@ -9,22 +9,6 @@ var MarketplaceReferenceKind;
9
9
  MarketplaceReferenceKind["LocalFileUri"] = "localFileUri";
10
10
  })(MarketplaceReferenceKind || (MarketplaceReferenceKind = {}));
11
11
  const _githubShorthandRe = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+(?:#.+)?$/;
12
- function extraKnownMarketplacesToConfigDict(entries) {
13
- if (!entries?.length) {
14
- return undefined;
15
- }
16
- const obj = {};
17
- for (const entry of entries) {
18
- if (typeof entry === "string") {
19
- obj[entry] = entry;
20
- } else {
21
- const s = entry.source;
22
- const base = s.source === "github" ? s.repo : s.url;
23
- obj[entry.name] = s.ref ? `${base}#${s.ref}` : base;
24
- }
25
- }
26
- return obj;
27
- }
28
12
  function readConfiguredMarketplaces(configurationService) {
29
13
  const userValues = configurationService.getValue(ChatConfiguration.PluginMarketplaces) ?? [];
30
14
  const extraObj = configurationService.getValue(ChatConfiguration.ExtraMarketplaces) ?? {};
@@ -277,4 +261,4 @@ function sanitizePathSegment(value) {
277
261
  return value.replace(/[\\/:*?"<>|]/g, "_");
278
262
  }
279
263
 
280
- export { MarketplaceReferenceKind, deduplicateMarketplaceReferences, extraKnownMarketplacesToConfigDict, parseMarketplaceObjectEntry, parseMarketplaceReference, parseMarketplaceReferences, readConfiguredMarketplaces };
264
+ export { MarketplaceReferenceKind, deduplicateMarketplaceReferences, parseMarketplaceObjectEntry, parseMarketplaceReference, parseMarketplaceReferences, readConfiguredMarketplaces };
@@ -130,6 +130,7 @@ export declare class PluginMarketplaceService extends Disposable implements IPlu
130
130
  addInstalledPlugin(pluginUri: URI, plugin: IMarketplacePlugin): void;
131
131
  removeInstalledPlugin(pluginUri: URI): void;
132
132
  isMarketplaceTrusted(ref: IMarketplaceReference): boolean;
133
+ isStrictMarketplacePolicyActive(): boolean;
133
134
  /**
134
135
  * Hydrates installed entries from marketplace metadata. Entries written
135
136
  * by current builds include the marketplace plugin name, which is enough
@@ -158,6 +159,7 @@ export declare class PluginMarketplaceService extends Disposable implements IPlu
158
159
  private _fetchFromClonedRepo;
159
160
  readPluginsFromDirectory(repoDir: URI, reference: IMarketplaceReference): Promise<IMarketplacePlugin[]>;
160
161
  readSinglePluginManifest(repoDir: URI, reference: IMarketplaceReference): Promise<IMarketplacePlugin | undefined>;
162
+ isPluginDirectory(repoDir: URI): Promise<boolean>;
161
163
  private _readPluginsFromDirectory;
162
164
  /**
163
165
  * Iterates over {@link MARKETPLACE_DEFINITIONS} paths, calling
@@ -27,7 +27,7 @@ import { FileBackedInstalledPluginsStore } from './fileBackedInstalledPluginsSto
27
27
  import { IWorkspacePluginSettingsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.service';
28
28
  import { IWorkspaceTrustManagementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service';
29
29
  import { readConfiguredMarketplaces, parseMarketplaceReferences, deduplicateMarketplaceReferences, parseMarketplaceReference, parseMarketplaceObjectEntry, MarketplaceReferenceKind } from './marketplaceReference.js';
30
- export { extraKnownMarketplacesToConfigDict } from './marketplaceReference.js';
30
+ import { getStrictKnownMarketplaces, isMarketplaceReferenceAllowed } from './strictKnownMarketplaces.js';
31
31
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
32
32
  import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
33
33
  import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
@@ -400,12 +400,15 @@ let PluginMarketplaceService = class PluginMarketplaceService extends Disposable
400
400
  this._installedPluginsStore.set(current.filter(e => !isEqual(e.pluginUri, pluginUri)), undefined);
401
401
  }
402
402
  isMarketplaceTrusted(ref) {
403
- if (this._configurationService.getValue(ChatConfiguration.StrictMarketplaces)) {
404
- const refs = parseMarketplaceReferences(readConfiguredMarketplaces(this._configurationService).extraValues);
405
- return ( refs.some(r => r.canonicalId === ref.canonicalId));
403
+ const allowlist = getStrictKnownMarketplaces(this._configurationService.getValue(ChatConfiguration.StrictMarketplaces));
404
+ if (allowlist !== undefined) {
405
+ return isMarketplaceReferenceAllowed(allowlist, ref);
406
406
  }
407
407
  return this._trustedMarketplacesStore.get().includes(ref.canonicalId);
408
408
  }
409
+ isStrictMarketplacePolicyActive() {
410
+ return getStrictKnownMarketplaces(this._configurationService.getValue(ChatConfiguration.StrictMarketplaces)) !== undefined;
411
+ }
409
412
  async _hydratePluginMetadata(entries) {
410
413
  let hydrated = 0;
411
414
  for (const entry of entries) {
@@ -486,7 +489,7 @@ let PluginMarketplaceService = class PluginMarketplaceService extends Disposable
486
489
  }
487
490
  }
488
491
  _isAutoUpdateEnabled() {
489
- return this._extensionsWorkbenchService.getAutoUpdateValue() === true;
492
+ return this._extensionsWorkbenchService.getAutoUpdateValue() !== "off";
490
493
  }
491
494
  _scheduleUpdateCheck() {
492
495
  if (this._updateCheckTimer !== undefined) {
@@ -605,6 +608,14 @@ let PluginMarketplaceService = class PluginMarketplaceService extends Disposable
605
608
  );
606
609
  return undefined;
607
610
  }
611
+ async isPluginDirectory(repoDir) {
612
+ for (const def of SINGLE_PLUGIN_MANIFEST_DEFINITIONS) {
613
+ if (await this._fileService.exists(joinPath(repoDir, def.path))) {
614
+ return true;
615
+ }
616
+ }
617
+ return false;
618
+ }
608
619
  async _readPluginsFromDirectory(repoDir, reference, token) {
609
620
  return this._readPluginsFromDefinitions(reference, async defPath => {
610
621
  if (token?.isCancellationRequested) {
@@ -0,0 +1,31 @@
1
+ import { IStrictMarketplaceSource } from "@codingame/monaco-vscode-api/vscode/vs/base/common/managedSettings";
2
+ import { IMarketplaceReference } from "./marketplaceReference.js";
3
+ /**
4
+ * The allowlist entry type for `chat.plugins.strictMarketplaces`. Re-exported
5
+ * from `base/common` so chat plugin code can import it alongside the matcher it
6
+ * operates with; the same type is consumed by the managed-settings adapter.
7
+ */
8
+ export type { IStrictMarketplaceSource };
9
+ /**
10
+ * The value of the `chat.plugins.strictMarketplaces` allowlist.
11
+ * - `undefined`: no restrictions — all marketplaces are allowed.
12
+ * - `[]`: complete lockdown — no marketplace is allowed.
13
+ * - non-empty array: only marketplaces matching an entry are allowed.
14
+ */
15
+ export type StrictKnownMarketplaces = readonly IStrictMarketplaceSource[];
16
+ /**
17
+ * Coerces a resolved configuration value into a {@link StrictKnownMarketplaces}
18
+ * allowlist. Returns `undefined` (meaning "no restrictions") when the value is
19
+ * not an array — which is also how an unset policy surfaces (the registered
20
+ * `null` default). Malformed entries (non-objects or entries without a string
21
+ * `source`) are dropped so a bad managed-settings payload degrades to "no match"
22
+ * rather than throwing during matching.
23
+ */
24
+ export declare function getStrictKnownMarketplaces(value: unknown): StrictKnownMarketplaces | undefined;
25
+ /**
26
+ * Checks whether a marketplace reference is allowed by the strict allowlist.
27
+ *
28
+ * @param allowlist `undefined` allows everything, `[]` blocks everything,
29
+ * otherwise the reference must match at least one entry.
30
+ */
31
+ export declare function isMarketplaceReferenceAllowed(allowlist: StrictKnownMarketplaces | undefined, ref: IMarketplaceReference): boolean;
@@ -0,0 +1,122 @@
1
+
2
+ import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
3
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
4
+ import { MarketplaceReferenceKind, parseMarketplaceReference } from './marketplaceReference.js';
5
+
6
+ function getStrictKnownMarketplaces(value) {
7
+ if (!Array.isArray(value)) {
8
+ return undefined;
9
+ }
10
+ return value.filter(
11
+ entry => typeof entry === "object" && entry !== null && typeof entry.source === "string"
12
+ );
13
+ }
14
+ function isMarketplaceReferenceAllowed(allowlist, ref) {
15
+ if (allowlist === undefined) {
16
+ return true;
17
+ }
18
+ if (allowlist.length === 0) {
19
+ return false;
20
+ }
21
+ return ( allowlist.some(entry => matchesAllowlistEntry(entry, ref)));
22
+ }
23
+ function matchesAllowlistEntry(entry, ref) {
24
+ switch (entry.source) {
25
+ case "github":
26
+ {
27
+ if (typeof entry.repo !== "string" || entry.path !== undefined) {
28
+ return false;
29
+ }
30
+ const candidate = parseMarketplaceReference(appendRef(entry.repo, entry.ref));
31
+ return !!candidate && candidate.canonicalId === ref.canonicalId;
32
+ }
33
+ case "git":
34
+ {
35
+ if (typeof entry.url !== "string" || entry.path !== undefined) {
36
+ return false;
37
+ }
38
+ const candidate = parseMarketplaceReference(appendRef(entry.url, entry.ref));
39
+ return !!candidate && candidate.canonicalId === ref.canonicalId;
40
+ }
41
+ case "url":
42
+ {
43
+ if (typeof entry.url !== "string") {
44
+ return false;
45
+ }
46
+ const candidate = parseMarketplaceReference(appendRef(entry.url, entry.ref));
47
+ return !!candidate && candidate.canonicalId === ref.canonicalId;
48
+ }
49
+ case "npm":
50
+ {
51
+ return false;
52
+ }
53
+ case "file":
54
+ case "directory":
55
+ {
56
+ if (ref.kind !== MarketplaceReferenceKind.LocalFileUri || !ref.localRepositoryUri || typeof entry.path !== "string") {
57
+ return false;
58
+ }
59
+ return isEqual(ref.localRepositoryUri, URI.file(entry.path));
60
+ }
61
+ case "hostPattern":
62
+ {
63
+ if (typeof entry.hostPattern !== "string") {
64
+ return false;
65
+ }
66
+ const host = extractHost(ref);
67
+ return !!host && testPattern(entry.hostPattern, host);
68
+ }
69
+ case "pathPattern":
70
+ {
71
+ if (typeof entry.pathPattern !== "string" || ref.kind !== MarketplaceReferenceKind.LocalFileUri || !ref.localRepositoryUri) {
72
+ return false;
73
+ }
74
+ return testPattern(entry.pathPattern, ref.localRepositoryUri.fsPath);
75
+ }
76
+ default:
77
+ return false;
78
+ }
79
+ }
80
+ function appendRef(value, ref) {
81
+ if (!ref) {
82
+ return value;
83
+ }
84
+ const fragmentIndex = value.indexOf("#");
85
+ const base = fragmentIndex === -1 ? value : value.slice(0, fragmentIndex);
86
+ return `${base}#${ref}`;
87
+ }
88
+ function extractHost(ref) {
89
+ if (ref.kind === MarketplaceReferenceKind.GitHubShorthand) {
90
+ return "github.com";
91
+ }
92
+ if (ref.kind !== MarketplaceReferenceKind.GitUri) {
93
+ return undefined;
94
+ }
95
+ const scpMatch = /^[\w._-]+@([\w.-]+):/.exec(ref.cloneUrl);
96
+ if (scpMatch) {
97
+ return scpMatch[1].toLowerCase();
98
+ }
99
+ try {
100
+ let authority = ( URI.parse(ref.cloneUrl)).authority.toLowerCase();
101
+ const at = authority.lastIndexOf("@");
102
+ if (at !== -1) {
103
+ authority = authority.slice(at + 1);
104
+ }
105
+ const colon = authority.indexOf(":");
106
+ if (colon !== -1) {
107
+ authority = authority.slice(0, colon);
108
+ }
109
+ return authority || undefined;
110
+ } catch {
111
+ return undefined;
112
+ }
113
+ }
114
+ function testPattern(pattern, value) {
115
+ try {
116
+ return ( new RegExp(pattern)).test(value);
117
+ } catch {
118
+ return false;
119
+ }
120
+ }
121
+
122
+ export { getStrictKnownMarketplaces, isMarketplaceReferenceAllowed };
@@ -25,7 +25,7 @@ function registerChatFilesExtensionPoint(point) {
25
25
  return ExtensionsRegistry.registerExtensionPoint({
26
26
  extensionPoint: point,
27
27
  jsonSchema: {
28
- description: ( localize(7994, "Contributes {0} for chat prompts.", point)),
28
+ description: ( localize(8600, "Contributes {0} for chat prompts.", point)),
29
29
  type: "array",
30
30
  items: {
31
31
  additionalProperties: false,
@@ -39,28 +39,28 @@ function registerChatFilesExtensionPoint(point) {
39
39
  properties: {
40
40
  path: {
41
41
  description: point === ChatContributionPoint.chatSkills ? ( localize(
42
- 7995,
42
+ 8601,
43
43
  "Path to the SKILL.md file relative to the extension root. The folder name must match the \"name\" property in SKILL.md."
44
- )) : ( localize(7996, "Path to the file relative to the extension root.")),
44
+ )) : ( localize(8602, "Path to the file relative to the extension root.")),
45
45
  type: "string"
46
46
  },
47
47
  name: {
48
- description: ( localize(7997, "(Optional) Name for this entry.")),
49
- deprecationMessage: ( localize(7998, "Specify \"name\" in the prompt file itself instead.")),
48
+ description: ( localize(8603, "(Optional) Name for this entry.")),
49
+ deprecationMessage: ( localize(8604, "Specify \"name\" in the prompt file itself instead.")),
50
50
  type: "string"
51
51
  },
52
52
  description: {
53
- description: ( localize(7999, "(Optional) Description of the entry.")),
54
- deprecationMessage: ( localize(8000, "Specify \"description\" in the prompt file itself instead.")),
53
+ description: ( localize(8605, "(Optional) Description of the entry.")),
54
+ deprecationMessage: ( localize(8606, "Specify \"description\" in the prompt file itself instead.")),
55
55
  type: "string"
56
56
  },
57
57
  when: {
58
- description: ( localize(8001, "(Optional) A condition which must be true to enable this entry.")),
58
+ description: ( localize(8607, "(Optional) A condition which must be true to enable this entry.")),
59
59
  type: "string"
60
60
  },
61
61
  sessionTypes: {
62
62
  description: ( localize(
63
- 8002,
63
+ 8608,
64
64
  "(Optional) The chat session types where this entry should be offered."
65
65
  )),
66
66
  type: "array",
@@ -116,7 +116,7 @@ let ChatPromptFilesExtensionPointHandler = class ChatPromptFilesExtensionPointHa
116
116
  for (const raw of ext.value) {
117
117
  if (!raw.path) {
118
118
  ext.collector.error(( localize(
119
- 8003,
119
+ 8609,
120
120
  "Extension '{0}' cannot register {1} entry without path.",
121
121
  ext.description.identifier.value,
122
122
  contributionPoint
@@ -126,7 +126,7 @@ let ChatPromptFilesExtensionPointHandler = class ChatPromptFilesExtensionPointHa
126
126
  const fileUri = joinPath(ext.description.extensionLocation, raw.path);
127
127
  if (!isEqualOrParent(fileUri, ext.description.extensionLocation)) {
128
128
  ext.collector.error(( localize(
129
- 8004,
129
+ 8610,
130
130
  "Extension '{0}' {1} entry '{2}' resolves outside the extension.",
131
131
  ext.description.identifier.value,
132
132
  contributionPoint,
@@ -136,7 +136,7 @@ let ChatPromptFilesExtensionPointHandler = class ChatPromptFilesExtensionPointHa
136
136
  }
137
137
  if (raw.when && !ContextKeyExpr.deserialize(raw.when)) {
138
138
  ext.collector.error(( localize(
139
- 8005,
139
+ 8611,
140
140
  "Extension '{0}' {1} entry '{2}' has an invalid when clause: '{3}'.",
141
141
  ext.description.identifier.value,
142
142
  contributionPoint,
@@ -159,7 +159,7 @@ let ChatPromptFilesExtensionPointHandler = class ChatPromptFilesExtensionPointHa
159
159
  } catch (e) {
160
160
  const msg = e instanceof Error ? e.message : String(e);
161
161
  ext.collector.error(( localize(
162
- 8006,
162
+ 8612,
163
163
  "Extension '{0}' {1}. Failed to register {2}: {3}",
164
164
  ext.description.identifier.value,
165
165
  contributionPoint,
@@ -196,6 +196,12 @@ CommandsRegistry.registerCommand("_listExtensionPromptFiles", async accessor =>
196
196
  type: file.type,
197
197
  extensionId: file.extension.identifier.value
198
198
  });
199
+ } else if (file.storage === PromptsStorage.plugin) {
200
+ result.push({
201
+ uri: file.uri.toJSON(),
202
+ type: file.type,
203
+ extensionId: ( file.pluginUri.toString())
204
+ });
199
205
  }
200
206
  }
201
207
  return result;
@@ -220,7 +226,7 @@ class ChatPromptFilesDataRenderer extends Disposable {
220
226
  dispose: () => {}
221
227
  };
222
228
  }
223
- const headers = [( localize(8007, "Name")), ( localize(8008, "Description")), ( localize(8009, "Path"))];
229
+ const headers = [( localize(8613, "Name")), ( localize(8614, "Description")), ( localize(8615, "Path"))];
224
230
  const rows = ( contributions.map(d => {
225
231
  return [d.name ?? "-", d.description ?? "-", d.path];
226
232
  }));
@@ -235,7 +241,7 @@ class ChatPromptFilesDataRenderer extends Disposable {
235
241
  }
236
242
  ( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
237
243
  id: ChatContributionPoint.chatPromptFiles,
238
- label: ( localize(8010, "Chat Prompt Files")),
244
+ label: ( localize(8616, "Chat Prompt Files")),
239
245
  access: {
240
246
  canToggle: false
241
247
  },
@@ -243,7 +249,7 @@ class ChatPromptFilesDataRenderer extends Disposable {
243
249
  });
244
250
  ( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
245
251
  id: ChatContributionPoint.chatInstructions,
246
- label: ( localize(8011, "Chat Instructions")),
252
+ label: ( localize(8617, "Chat Instructions")),
247
253
  access: {
248
254
  canToggle: false
249
255
  },
@@ -251,7 +257,7 @@ class ChatPromptFilesDataRenderer extends Disposable {
251
257
  });
252
258
  ( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
253
259
  id: ChatContributionPoint.chatAgents,
254
- label: ( localize(8012, "Chat Agents")),
260
+ label: ( localize(8618, "Chat Agents")),
255
261
  access: {
256
262
  canToggle: false
257
263
  },
@@ -259,7 +265,7 @@ class ChatPromptFilesDataRenderer extends Disposable {
259
265
  });
260
266
  ( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
261
267
  id: ChatContributionPoint.chatSkills,
262
- label: ( localize(8013, "Chat Skills")),
268
+ label: ( localize(8619, "Chat Skills")),
263
269
  access: {
264
270
  canToggle: false
265
271
  },
@@ -20,6 +20,9 @@ export declare class PromptCodeActionProvider implements CodeActionProvider {
20
20
  provideCodeActions(model: ITextModel, range: Range | Selection, context: CodeActionContext, token: CancellationToken): Promise<CodeActionList | undefined>;
21
21
  private getMarkers;
22
22
  private createCodeAction;
23
+ private getEnableMcpServerCodeActions;
24
+ private getMarkerCode;
25
+ private getMarkersInRange;
23
26
  private getUpdateModeCodeActions;
24
27
  private getMigrateModeFileCodeActions;
25
28
  private getUpdateToolsCodeActions;
@@ -9,7 +9,7 @@ import { PromptHeaderAttributes, parseCommaSeparatedList } from '@codingame/mona
9
9
  import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
10
10
  import { LEGACY_MODE_FILE_EXTENSION } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
11
11
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
12
- import { MARKERS_OWNER_ID } from './promptValidator.js';
12
+ import { MARKERS_OWNER_ID, PromptValidatorMarkerCode } from './promptValidator.js';
13
13
  import { IMarkerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markers/common/markers.service';
14
14
  import { CodeActionKind } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/codeAction/common/types';
15
15
  import { getTarget, isVSCodeOrDefaultTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptFileAttributes';
@@ -32,11 +32,13 @@ let PromptCodeActionProvider = class PromptCodeActionProvider {
32
32
  switch (promptType) {
33
33
  case PromptsType.agent:
34
34
  this.getUpdateToolsCodeActions(promptAST, promptType, model, range, result);
35
+ this.getEnableMcpServerCodeActions(model, range, result);
35
36
  await this.getMigrateModeFileCodeActions(model, result);
36
37
  break;
37
38
  case PromptsType.prompt:
38
39
  this.getUpdateModeCodeActions(promptAST, model, range, result);
39
40
  this.getUpdateToolsCodeActions(promptAST, promptType, model, range, result);
41
+ this.getEnableMcpServerCodeActions(model, range, result);
40
42
  break;
41
43
  }
42
44
  if (result.length === 0) {
@@ -54,17 +56,118 @@ let PromptCodeActionProvider = class PromptCodeActionProvider {
54
56
  });
55
57
  return markers.filter(marker => range.containsRange(marker));
56
58
  }
57
- createCodeAction(model, range, title, edits) {
59
+ createCodeAction(model, range, title, edits, command) {
58
60
  return {
59
61
  title,
60
- edit: {
61
- edits
62
- },
62
+ ...(edits ? {
63
+ edit: {
64
+ edits
65
+ }
66
+ } : {}),
67
+ ...(command ? {
68
+ command
69
+ } : {}),
63
70
  ranges: [range],
64
71
  diagnostics: this.getMarkers(model, range),
65
72
  kind: CodeActionKind.QuickFix.value
66
73
  };
67
74
  }
75
+ getEnableMcpServerCodeActions(model, range, result) {
76
+ const markersInRange = this.getMarkersInRange(model, range);
77
+ for (const marker of markersInRange) {
78
+ const markerCode = this.getMarkerCode(marker);
79
+ if (markerCode === PromptValidatorMarkerCode.MissingGithubMcpServer) {
80
+ result.push(this.createCodeAction(model, range, ( localize(8672, "Enable Built-in GitHub MCP Server")), undefined, {
81
+ id: "workbench.action.openSettings",
82
+ title: "",
83
+ arguments: ["@id:github.copilot.chat.githubMcpServer.enabled"]
84
+ }));
85
+ result.push(this.createCodeAction(model, range, ( localize(8673, "Install GitHub MCP Server from Marketplace")), undefined, {
86
+ id: "workbench.extensions.search",
87
+ title: "",
88
+ arguments: ["@mcp github"]
89
+ }));
90
+ } else if (markerCode === PromptValidatorMarkerCode.MissingPlaywrightMcpServer) {
91
+ result.push(this.createCodeAction(model, range, ( localize(8674, "Install Playwright MCP Server from Marketplace")), undefined, {
92
+ id: "workbench.extensions.search",
93
+ title: "",
94
+ arguments: ["@mcp playwright"]
95
+ }));
96
+ } else if (markerCode === PromptValidatorMarkerCode.UnknownExtensionReference) {
97
+ const reference = model.getValueInRange(( new Range(
98
+ marker.startLineNumber,
99
+ marker.startColumn,
100
+ marker.endLineNumber,
101
+ marker.endColumn
102
+ ))).trim();
103
+ const extensionId = reference.split("/")[0].replace(/^['"]|['"]$/g, "");
104
+ if (extensionId) {
105
+ result.push(this.createCodeAction(model, range, ( localize(8675, "Search Marketplace for Extension '{0}'", extensionId)), undefined, {
106
+ id: "workbench.extensions.search",
107
+ title: "",
108
+ arguments: [`@id:${extensionId}`]
109
+ }));
110
+ }
111
+ } else if (markerCode === PromptValidatorMarkerCode.UnknownMcpServerReference) {
112
+ const reference = model.getValueInRange(( new Range(
113
+ marker.startLineNumber,
114
+ marker.startColumn,
115
+ marker.endLineNumber,
116
+ marker.endColumn
117
+ ))).trim();
118
+ const serverId = reference.replace(/^['"]|['"]$/g, "");
119
+ if (serverId) {
120
+ result.push(this.createCodeAction(model, range, ( localize(8676, "Search Marketplace for MCP Server '{0}'", serverId)), undefined, {
121
+ id: "workbench.extensions.search",
122
+ title: "",
123
+ arguments: [`@mcp ${serverId}`]
124
+ }));
125
+ }
126
+ } else {
127
+ const reference = model.getValueInRange(( new Range(
128
+ marker.startLineNumber,
129
+ marker.startColumn,
130
+ marker.endLineNumber,
131
+ marker.endColumn
132
+ ))).trim();
133
+ if (reference) {
134
+ const extensionId = reference.split("/")[0].replace(/^['"]|['"]$/g, "");
135
+ result.push(this.createCodeAction(model, range, ( localize(8677, "Search Marketplace for Extension '{0}'", extensionId)), undefined, {
136
+ id: "workbench.extensions.search",
137
+ title: "",
138
+ arguments: [`@id:${extensionId}`]
139
+ }));
140
+ const serverId = reference.replace(/^['"]|['"]$/g, "");
141
+ result.push(this.createCodeAction(model, range, ( localize(8678, "Search Marketplace for MCP Server '{0}'", serverId)), undefined, {
142
+ id: "workbench.extensions.search",
143
+ title: "",
144
+ arguments: [`@mcp ${serverId}`]
145
+ }));
146
+ }
147
+ }
148
+ }
149
+ }
150
+ getMarkerCode(marker) {
151
+ if (!marker.code) {
152
+ return undefined;
153
+ }
154
+ return typeof marker.code === "string" ? marker.code : marker.code.value;
155
+ }
156
+ getMarkersInRange(model, range) {
157
+ const markers = this.markerService.read({
158
+ resource: model.uri,
159
+ owner: MARKERS_OWNER_ID
160
+ });
161
+ return markers.filter(marker => {
162
+ const markerRange = ( new Range(
163
+ marker.startLineNumber,
164
+ marker.startColumn,
165
+ marker.endLineNumber,
166
+ marker.endColumn
167
+ ));
168
+ return markerRange.intersectRanges(range);
169
+ });
170
+ }
68
171
  getUpdateModeCodeActions(promptFile, model, range, result) {
69
172
  const modeAttr = promptFile.header?.getAttribute(PromptHeaderAttributes.mode);
70
173
  if (!modeAttr?.range.containsRange(range)) {
@@ -76,7 +179,7 @@ let PromptCodeActionProvider = class PromptCodeActionProvider {
76
179
  modeAttr.range.startLineNumber,
77
180
  modeAttr.range.startColumn + modeAttr.key.length
78
181
  ));
79
- result.push(this.createCodeAction(model, keyRange, ( localize(8066, "Rename to 'agent'")), [asWorkspaceTextEdit(model, {
182
+ result.push(this.createCodeAction(model, keyRange, ( localize(8679, "Rename to 'agent'")), [asWorkspaceTextEdit(model, {
80
183
  range: keyRange,
81
184
  text: "agent"
82
185
  })]));
@@ -93,7 +196,7 @@ let PromptCodeActionProvider = class PromptCodeActionProvider {
93
196
  copy: false
94
197
  }
95
198
  };
96
- result.push(this.createCodeAction(model, ( new Range(1, 1, 1, 4)), ( localize(8067, "Migrate to custom agent file")), [edit]));
199
+ result.push(this.createCodeAction(model, ( new Range(1, 1, 1, 4)), ( localize(8680, "Migrate to custom agent file")), [edit]));
97
200
  }
98
201
  }
99
202
  }
@@ -140,7 +243,7 @@ let PromptCodeActionProvider = class PromptCodeActionProvider {
140
243
  };
141
244
  edits.push(edit);
142
245
  if (item.range.containsRange(range)) {
143
- result.push(this.createCodeAction(model, item.range, ( localize(8068, "Update to '{0}'", newName)), [asWorkspaceTextEdit(model, edit)]));
246
+ result.push(this.createCodeAction(model, item.range, ( localize(8681, "Update to '{0}'", newName)), [asWorkspaceTextEdit(model, edit)]));
144
247
  }
145
248
  } else {
146
249
  const newNamesArray = Array.from(newNames).sort((a, b) => a.localeCompare(b));
@@ -159,13 +262,13 @@ let PromptCodeActionProvider = class PromptCodeActionProvider {
159
262
  };
160
263
  edits.push(edit);
161
264
  if (item.range.containsRange(range)) {
162
- result.push(this.createCodeAction(model, item.range, ( localize(8069, "Expand to {0} tools", newNames.size)), [asWorkspaceTextEdit(model, edit)]));
265
+ result.push(this.createCodeAction(model, item.range, ( localize(8682, "Expand to {0} tools", newNames.size)), [asWorkspaceTextEdit(model, edit)]));
163
266
  }
164
267
  }
165
268
  }
166
269
  }
167
270
  if (edits.length && result.length === 0 || edits.length > 1) {
168
- result.push(this.createCodeAction(model, value.range, ( localize(8070, "Update all tool names")), ( edits.map(edit => asWorkspaceTextEdit(model, edit)))));
271
+ result.push(this.createCodeAction(model, value.range, ( localize(8683, "Update all tool names")), ( edits.map(edit => asWorkspaceTextEdit(model, edit)))));
169
272
  }
170
273
  }
171
274
  };
@@ -44,7 +44,7 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
44
44
  if (/^\s*$/.test(model.getValue())) {
45
45
  return {
46
46
  suggestions: [{
47
- label: ( localize(8149, "Add Prompt Header")),
47
+ label: ( localize(8762, "Add Prompt Header")),
48
48
  kind: CompletionItemKind.Snippet,
49
49
  insertText: [`---`, `description: $1`, `---`, `$0`].join("\n"),
50
50
  insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,
@@ -234,7 +234,7 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
234
234
  " send: true"
235
235
  ].join("\n");
236
236
  const item = {
237
- label: ( localize(8150, "Handoff Example")),
237
+ label: ( localize(8763, "Handoff Example")),
238
238
  kind: CompletionItemKind.Value,
239
239
  insertText: whilespaceAfterColon === 0 ? ` ${value}` : value,
240
240
  range: ( new Range(
@@ -249,7 +249,7 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
249
249
  if (attribute.key === PromptHeaderAttributes.hooks && promptType === PromptsType.agent) {
250
250
  const hookSnippet = ["", " ${1|" + ( Object.keys(HOOKS_BY_TARGET[target] ?? HOOKS_BY_TARGET[Target.Undefined])).join(",") + "|}:", " - type: command", " command: \"$2\""].join("\n");
251
251
  const item = {
252
- label: ( localize(8151, "New Hook")),
252
+ label: ( localize(8764, "New Hook")),
253
253
  kind: CompletionItemKind.Snippet,
254
254
  insertText: whilespaceAfterColon === 0 ? ` ${hookSnippet}` : hookSnippet,
255
255
  insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,
@@ -276,8 +276,8 @@ let PromptHeaderAutocompletion = class PromptHeaderAutocompletion {
276
276
  const commandSnippet = ["", " - type: command", " command: \"$1\""].join("\n");
277
277
  return {
278
278
  suggestions: [{
279
- label: ( localize(8152, "New Command")),
280
- documentation: ( localize(8153, "Add a new command entry to this hook.")),
279
+ label: ( localize(8765, "New Command")),
280
+ documentation: ( localize(8766, "Add a new command entry to this hook.")),
281
281
  kind: CompletionItemKind.Snippet,
282
282
  insertText: whilespaceAfterColon === 0 ? ` ${commandSnippet}` : commandSnippet,
283
283
  insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,