@codingame/monaco-vscode-chat-service-override 28.4.0 → 29.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/index.js +18 -12
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +300 -0
  4. package/vscode/src/vs/platform/agentHost/common/agentService.js +31 -0
  5. package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +84 -0
  6. package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +16 -0
  7. package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +488 -0
  8. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +424 -0
  9. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +50 -0
  10. package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +202 -0
  11. package/vscode/src/vs/platform/agentHost/common/state/protocol/notifications.d.ts +114 -0
  12. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +723 -0
  13. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +33 -0
  14. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +40 -0
  15. package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +22 -0
  16. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +13 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  18. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +2 -2
  19. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +29 -15
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +8 -8
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +3 -3
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -4
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +76 -10
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +11 -11
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +1 -1
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +162 -4
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +167 -4
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.d.ts +1 -1
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +52 -20
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +19 -19
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.d.ts +82 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +195 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.d.ts +5 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +97 -88
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +3 -3
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginItems.d.ts +4 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +5 -3
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +78 -35
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +7 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +174 -170
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +7 -4
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +12 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +118 -52
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +7 -7
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.d.ts +5 -1
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +13 -2
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +0 -3
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -10
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +9 -10
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +23 -25
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +341 -196
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +79 -7
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.d.ts +5 -4
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsController.js +22 -10
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +2 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +4 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +15 -14
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +85 -5
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +668 -214
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +10 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +18 -0
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +306 -39
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +84 -4
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +651 -81
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +2 -1
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +6 -2
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +31 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +9 -20
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +11 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +7 -142
  89. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.d.ts +43 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationGroupHeaderRenderer.js +63 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +11 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +44 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +25 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +297 -123
  95. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +153 -31
  96. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +17 -1
  97. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +111 -171
  98. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +1 -3
  99. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +5 -30
  100. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +19 -19
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -186
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +4 -2
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +31 -23
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +3 -7
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +4 -16
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +18 -2
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +112 -17
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +3 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +16 -27
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +1 -1
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +41 -19
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +7 -1
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +35 -23
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +1 -8
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +8 -51
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +1 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +13 -8
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +29 -36
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +14 -7
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +5 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +79 -26
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.d.ts +19 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +125 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +11 -4
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +113 -82
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +18 -7
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +54 -15
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +8 -3
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +103 -28
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +2 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +48 -37
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +28 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +62 -20
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +21 -37
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +2 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +4 -3
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +17 -4
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +5 -5
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +4 -1
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +43 -5
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.d.ts +59 -0
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +194 -0
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +9 -10
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +13 -13
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +2 -1
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +8 -4
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +11 -0
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +81 -50
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +11 -11
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +4 -4
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +32 -32
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +23 -18
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +2 -2
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +9 -7
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -26
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +0 -2
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +19 -27
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +2 -4
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +105 -172
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +80 -65
  174. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  175. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +56 -27
  176. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +1 -1
  177. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +4 -4
  178. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.d.ts +16 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +70 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  181. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.d.ts +20 -0
  182. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +40 -0
  183. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.d.ts +31 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +53 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +33 -2
  186. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +21 -2
  187. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +362 -18
  188. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +15 -4
  189. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +90 -43
  190. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.d.ts +35 -0
  191. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +146 -0
  192. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  193. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
  194. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  195. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  196. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  197. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +10 -9
  198. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  199. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  200. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  201. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +1 -1
  202. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +33 -5
  203. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +3 -0
  204. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +200 -55
  205. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +7 -0
  206. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +90 -45
  207. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +4 -2
  208. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +21 -10
  209. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +22 -16
  210. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +4 -2
  211. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +28 -13
  212. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  214. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +6 -6
  215. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +20 -16
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +68 -5
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  218. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +1 -1
  219. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +1 -1
  220. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +1 -0
  221. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +57 -20
  222. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  223. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +21 -5
  224. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +171 -57
  225. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +7 -5
  226. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +206 -35
  227. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +4 -3
  228. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +7 -7
  229. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +7 -1
  230. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +11 -3
  231. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +44 -22
  232. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +450 -301
  233. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.d.ts +23 -0
  234. package/vscode/src/vs/workbench/contrib/chat/common/plugins/marketplaceReference.js +165 -0
  235. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +34 -20
  236. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +209 -144
  237. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.d.ts +20 -0
  238. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +205 -0
  239. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +17 -17
  240. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.d.ts +33 -0
  241. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalCustomizations.js +47 -0
  242. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalSkill.d.ts +30 -0
  243. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  244. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  245. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  246. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +1 -1
  247. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +191 -159
  248. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +6 -7
  249. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +210 -233
  250. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +19 -26
  251. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +183 -193
  252. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +24 -0
  253. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +75 -0
  254. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  255. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +8 -5
  256. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -0
  257. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +97 -35
  258. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  259. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +16 -0
  260. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +67 -0
  261. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +2 -2
  262. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +62 -23
  263. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  264. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  265. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  266. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  267. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  268. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +8 -8
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -20
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +3 -1
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +23 -9
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +1 -1
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +2 -2
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +3 -1
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +50 -9
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +3 -1
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +21 -7
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +20 -1
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +124 -1
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +20 -5
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +5 -0
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +10 -7
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +2 -1
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +46 -31
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +18 -1
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +74 -37
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +1 -0
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +24 -14
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +1 -1
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +3 -2
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +1 -1
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +2 -0
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +5 -1
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +1 -2
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +66 -64
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +1 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +1 -0
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +5 -2
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +32 -2
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +390 -114
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +14 -0
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +21 -11
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +70 -51
  313. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +61 -51
  314. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +94 -76
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +19 -1
  317. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +112 -21
  318. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +0 -53
  319. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.js +0 -219
  320. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +0 -89
  321. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +0 -251
  322. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +0 -123
  323. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +0 -278
  324. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +0 -76
  325. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +0 -299
  326. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.d.ts +0 -67
  327. package/vscode/src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.js +0 -263
  328. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +0 -85
  329. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +0 -397
  330. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +0 -56
  331. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +0 -26
  332. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +0 -5
  333. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +0 -30
  334. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +0 -40
  335. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +0 -28
  336. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +0 -190
  337. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +0 -11
  338. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +0 -16
  339. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +0 -20
@@ -1,10 +1,12 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { runWhenGlobalIdle } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
3
4
  import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
4
5
  import { parse } from '@codingame/monaco-vscode-api/vscode/vs/base/common/json';
5
6
  import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
6
7
  import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
7
8
  import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
9
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
8
10
  import { isEqualOrParent, isEqual, joinPath, normalizePath, relativePath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
9
11
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
10
12
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
@@ -15,20 +17,22 @@ import { asJson } from '@codingame/monaco-vscode-api/vscode/vs/platform/request/
15
17
  import { IRequestService } from '@codingame/monaco-vscode-api/vscode/vs/platform/request/common/request.service';
16
18
  import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
17
19
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
20
+ import { AutoUpdateConfigurationKey } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions';
18
21
  import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
19
22
  import { IAgentPluginRepositoryService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginRepositoryService.service';
23
+ import { IWorkspacePluginSettingsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.service';
24
+ import { IWorkspaceTrustManagementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service';
25
+ import { parseMarketplaceReferences, deduplicateMarketplaceReferences, parseMarketplaceReference, MarketplaceReferenceKind } from './marketplaceReference.js';
26
+ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
27
+ import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
28
+ import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
20
29
 
21
30
  var MarketplaceType;
22
31
  (function(MarketplaceType) {
23
32
  MarketplaceType["Copilot"] = "copilot";
24
33
  MarketplaceType["Claude"] = "claude";
34
+ MarketplaceType["OpenPlugin"] = "openPlugin";
25
35
  })(MarketplaceType || (MarketplaceType = {}));
26
- var MarketplaceReferenceKind;
27
- (function(MarketplaceReferenceKind) {
28
- MarketplaceReferenceKind["GitHubShorthand"] = "githubShorthand";
29
- MarketplaceReferenceKind["GitUri"] = "gitUri";
30
- MarketplaceReferenceKind["LocalFileUri"] = "localFileUri";
31
- })(MarketplaceReferenceKind || (MarketplaceReferenceKind = {}));
32
36
  var PluginSourceKind;
33
37
  (function(PluginSourceKind) {
34
38
  PluginSourceKind["RelativePath"] = "relativePath";
@@ -38,6 +42,12 @@ var PluginSourceKind;
38
42
  PluginSourceKind["Pip"] = "pip";
39
43
  })(PluginSourceKind || (PluginSourceKind = {}));
40
44
  const MARKETPLACE_DEFINITIONS = [{
45
+ type: MarketplaceType.OpenPlugin,
46
+ path: "marketplace.json"
47
+ }, {
48
+ type: MarketplaceType.OpenPlugin,
49
+ path: ".plugin/marketplace.json"
50
+ }, {
41
51
  type: MarketplaceType.Copilot,
42
52
  path: ".github/plugin/marketplace.json"
43
53
  }, {
@@ -46,6 +56,8 @@ const MARKETPLACE_DEFINITIONS = [{
46
56
  }];
47
57
  const GITHUB_MARKETPLACE_CACHE_TTL_MS = 8 * 60 * 60 * 1000;
48
58
  const GITHUB_MARKETPLACE_CACHE_STORAGE_KEY = "chat.plugins.marketplaces.githubCache.v1";
59
+ const PLUGIN_UPDATE_CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000;
60
+ const PLUGIN_UPDATE_LAST_CHECK_STORAGE_KEY = "chat.plugins.lastUpdateCheck.v1";
49
61
  function ensureSourceDescriptor(plugin) {
50
62
  if (plugin.sourceDescriptor) {
51
63
  return plugin;
@@ -76,6 +88,24 @@ const trustedMarketplacesMemento = observableMemento({
76
88
  return Array.isArray(parsed) ? parsed : [];
77
89
  }
78
90
  });
91
+ const lastFetchedPluginsMemento = observableMemento({
92
+ defaultValue: {
93
+ plugins: [],
94
+ fetchedAt: 0
95
+ },
96
+ key: "chat.plugins.lastFetchedPlugins.v2",
97
+ toStorage: value => JSON.stringify(value),
98
+ fromStorage: value => {
99
+ const parsed = JSON.parse(value);
100
+ if (parsed && Array.isArray(parsed.plugins)) {
101
+ return parsed;
102
+ }
103
+ return {
104
+ plugins: [],
105
+ fetchedAt: 0
106
+ };
107
+ }
108
+ });
79
109
  let PluginMarketplaceService = class PluginMarketplaceService extends Disposable {
80
110
  constructor(
81
111
  _configurationService,
@@ -83,7 +113,9 @@ let PluginMarketplaceService = class PluginMarketplaceService extends Disposable
83
113
  _fileService,
84
114
  _pluginRepositoryService,
85
115
  _logService,
86
- _storageService
116
+ _storageService,
117
+ _workspacePluginSettingsService,
118
+ _workspaceTrustService
87
119
  ) {
88
120
  super();
89
121
  this._configurationService = _configurationService;
@@ -92,28 +124,81 @@ let PluginMarketplaceService = class PluginMarketplaceService extends Disposable
92
124
  this._pluginRepositoryService = _pluginRepositoryService;
93
125
  this._logService = _logService;
94
126
  this._storageService = _storageService;
127
+ this._workspacePluginSettingsService = _workspacePluginSettingsService;
128
+ this._workspaceTrustService = _workspaceTrustService;
95
129
  this._gitHubMarketplaceCache = ( new Lazy(() => this._loadPersistedGitHubMarketplaceCache()));
130
+ this._hasUpdatesAvailable = observableValue("hasUpdatesAvailable", false);
131
+ this.hasUpdatesAvailable = this._hasUpdatesAvailable;
96
132
  this._installedPluginsStore = this._register(
97
133
  installedPluginsMemento(StorageScope.APPLICATION, StorageTarget.MACHINE, _storageService)
98
134
  );
99
135
  this._trustedMarketplacesStore = this._register(
100
136
  trustedMarketplacesMemento(StorageScope.APPLICATION, StorageTarget.MACHINE, _storageService)
101
137
  );
138
+ this._lastFetchedPluginsStore = this._register(
139
+ lastFetchedPluginsMemento(StorageScope.APPLICATION, StorageTarget.MACHINE, _storageService)
140
+ );
141
+ this.lastFetchedPlugins = ( this._lastFetchedPluginsStore.map(s => {
142
+ const revived = revive(s);
143
+ return ( revived.plugins.map(ensureSourceDescriptor));
144
+ }));
102
145
  this.installedPlugins = ( this._installedPluginsStore.map(s => ( revive(s).map(e => ({
103
146
  ...e,
104
147
  plugin: ensureSourceDescriptor(e.plugin)
105
148
  })))));
106
- this.onDidChangeMarketplaces = Event.filter(
149
+ const workspaceTrusted = observableFromEvent(
150
+ this,
151
+ this._workspaceTrustService.onDidChangeTrust,
152
+ () => this._workspaceTrustService.isWorkspaceTrusted()
153
+ );
154
+ this.recommendedPlugins = derived(reader => {
155
+ if (!workspaceTrusted.read(reader)) {
156
+ return ( new Set());
157
+ }
158
+ const enabledMap = this._workspacePluginSettingsService.enabledPlugins.read(reader);
159
+ const keys = ( new Set());
160
+ for (const [key, value] of enabledMap) {
161
+ if (value) {
162
+ keys.add(key);
163
+ }
164
+ }
165
+ return keys;
166
+ });
167
+ this.onDidChangeMarketplaces = Event.any(Event.filter(
107
168
  _configurationService.onDidChangeConfiguration,
108
169
  e => e.affectsConfiguration(ChatConfiguration.PluginsEnabled) || e.affectsConfiguration(ChatConfiguration.PluginMarketplaces)
109
- );
170
+ ), Event.fromObservableLight(this._workspacePluginSettingsService.extraMarketplaces), ( Event.map(this._workspaceTrustService.onDidChangeTrust, () => {})));
171
+ this._register(runWhenGlobalIdle(() => {
172
+ this._scheduleUpdateCheck();
173
+ this._register(Event.filter(
174
+ _configurationService.onDidChangeConfiguration,
175
+ e => e.affectsConfiguration(AutoUpdateConfigurationKey)
176
+ )(() => this._scheduleUpdateCheck()));
177
+ }));
178
+ }
179
+ dispose() {
180
+ if (this._updateCheckTimer !== undefined) {
181
+ clearTimeout(this._updateCheckTimer);
182
+ this._updateCheckTimer = undefined;
183
+ }
184
+ super.dispose();
185
+ }
186
+ clearUpdatesAvailable() {
187
+ this._hasUpdatesAvailable.set(false, undefined);
110
188
  }
111
189
  async fetchMarketplacePlugins(token) {
112
190
  if (!this._configurationService.getValue(ChatConfiguration.PluginsEnabled)) {
113
191
  return [];
114
192
  }
115
193
  const configuredRefs = this._configurationService.getValue(ChatConfiguration.PluginMarketplaces) ?? [];
116
- const refs = parseMarketplaceReferences(configuredRefs);
194
+ const configRefs = parseMarketplaceReferences(configuredRefs);
195
+ let allRefs;
196
+ if (this._workspaceTrustService.isWorkspaceTrusted()) {
197
+ const workspaceEntries = this._workspacePluginSettingsService.extraMarketplaces.get();
198
+ allRefs = deduplicateMarketplaceReferences(( workspaceEntries.map(e => e.reference)), configRefs);
199
+ } else {
200
+ allRefs = configRefs;
201
+ }
117
202
  for (const value of configuredRefs) {
118
203
  if (typeof value !== "string" || !parseMarketplaceReference(value)) {
119
204
  this._logService.debug(
@@ -121,19 +206,28 @@ let PluginMarketplaceService = class PluginMarketplaceService extends Disposable
121
206
  );
122
207
  }
123
208
  }
124
- const results = await Promise.all(( refs.map(ref => {
209
+ const results = await Promise.all(( allRefs.map(ref => {
125
210
  if (ref.kind === MarketplaceReferenceKind.GitHubShorthand && ref.githubRepo) {
126
211
  return this._fetchFromGitHubRepo(ref, ref.githubRepo, token);
127
212
  }
128
213
  return this._fetchFromClonedRepo(ref, token);
129
214
  })));
130
- return results.flat();
215
+ const plugins = results.flat();
216
+ this._lastFetchedPluginsStore.set({
217
+ plugins,
218
+ fetchedAt: Date.now()
219
+ }, undefined);
220
+ return plugins;
131
221
  }
132
222
  async _fetchFromGitHubRepo(reference, repo, token) {
133
223
  const cache = this._gitHubMarketplaceCache.value;
134
224
  const cached = this._getCachedGitHubMarketplacePlugins(cache, reference.canonicalId);
135
225
  if (cached) {
136
- return cached;
226
+ return ( cached.map(c => ({
227
+ ...c,
228
+ marketplace: reference.displayLabel,
229
+ marketplaceReference: reference
230
+ })));
137
231
  }
138
232
  let repoMayBePrivate = true;
139
233
  for (const def of MARKETPLACE_DEFINITIONS) {
@@ -144,7 +238,8 @@ let PluginMarketplaceService = class PluginMarketplaceService extends Disposable
144
238
  try {
145
239
  const context = await this._requestService.request({
146
240
  type: "GET",
147
- url
241
+ url,
242
+ callSite: "pluginMarketplaceService.fetchPluginList"
148
243
  }, token);
149
244
  const statusCode = context.res.statusCode;
150
245
  if (statusCode !== 200) {
@@ -277,8 +372,13 @@ let PluginMarketplaceService = class PluginMarketplaceService extends Disposable
277
372
  }
278
373
  addInstalledPlugin(pluginUri, plugin) {
279
374
  const current = this.installedPlugins.get();
280
- if (( current.some(e => isEqual(e.pluginUri, pluginUri)))) {
281
- this._installedPluginsStore.set([...current], undefined);
375
+ const existing = current.find(e => isEqual(e.pluginUri, pluginUri));
376
+ if (existing) {
377
+ this._installedPluginsStore.set(( current.map(c => c === existing ? {
378
+ pluginUri,
379
+ plugin,
380
+ enabled: existing.enabled
381
+ } : c)), undefined);
282
382
  } else {
283
383
  this._installedPluginsStore.set([...current, {
284
384
  pluginUri,
@@ -307,6 +407,65 @@ let PluginMarketplaceService = class PluginMarketplaceService extends Disposable
307
407
  this._trustedMarketplacesStore.set([...current, ref.canonicalId], undefined);
308
408
  }
309
409
  }
410
+ _isAutoUpdateEnabled() {
411
+ return this._configurationService.getValue(AutoUpdateConfigurationKey);
412
+ }
413
+ _scheduleUpdateCheck() {
414
+ if (this._updateCheckTimer !== undefined) {
415
+ clearTimeout(this._updateCheckTimer);
416
+ this._updateCheckTimer = undefined;
417
+ }
418
+ if (!this._isAutoUpdateEnabled()) {
419
+ return;
420
+ }
421
+ const lastCheck = this._storageService.getNumber(PLUGIN_UPDATE_LAST_CHECK_STORAGE_KEY, StorageScope.APPLICATION, 0);
422
+ const elapsed = Date.now() - lastCheck;
423
+ const delay = Math.max(0, PLUGIN_UPDATE_CHECK_INTERVAL_MS - elapsed);
424
+ this._updateCheckTimer = setTimeout(() => this._runUpdateCheck(), delay);
425
+ }
426
+ async _runUpdateCheck() {
427
+ this._updateCheckTimer = undefined;
428
+ try {
429
+ const installed = this.installedPlugins.get().filter(e => e.enabled);
430
+ if (installed.length === 0) {
431
+ return;
432
+ }
433
+ const seenMarketplaces = ( new Set());
434
+ let hasUpdates = false;
435
+ for (const entry of installed) {
436
+ const ref = entry.plugin.marketplaceReference;
437
+ if (( seenMarketplaces.has(ref.canonicalId))) {
438
+ continue;
439
+ }
440
+ seenMarketplaces.add(ref.canonicalId);
441
+ try {
442
+ const behind = await this._pluginRepositoryService.fetchRepository(ref);
443
+ if (behind) {
444
+ hasUpdates = true;
445
+ break;
446
+ }
447
+ } catch (err) {
448
+ this._logService.debug(
449
+ `[PluginMarketplaceService] Update check failed for ${ref.displayLabel}:`,
450
+ err
451
+ );
452
+ }
453
+ }
454
+ this._hasUpdatesAvailable.set(hasUpdates, undefined);
455
+ this._storageService.store(
456
+ PLUGIN_UPDATE_LAST_CHECK_STORAGE_KEY,
457
+ Date.now(),
458
+ StorageScope.APPLICATION,
459
+ StorageTarget.MACHINE
460
+ );
461
+ } catch (err) {
462
+ this._logService.debug("[PluginMarketplaceService] Periodic update check failed:", err);
463
+ } finally {
464
+ if (this._isAutoUpdateEnabled()) {
465
+ this._updateCheckTimer = setTimeout(() => this._runUpdateCheck(), PLUGIN_UPDATE_CHECK_INTERVAL_MS);
466
+ }
467
+ }
468
+ }
310
469
  async _fetchFromClonedRepo(reference, token) {
311
470
  let repoDir;
312
471
  try {
@@ -318,8 +477,14 @@ let PluginMarketplaceService = class PluginMarketplaceService extends Disposable
318
477
  );
319
478
  return [];
320
479
  }
480
+ return this._readPluginsFromDirectory(repoDir, reference, token);
481
+ }
482
+ async readPluginsFromDirectory(repoDir, reference) {
483
+ return this._readPluginsFromDirectory(repoDir, reference);
484
+ }
485
+ async _readPluginsFromDirectory(repoDir, reference, token) {
321
486
  for (const def of MARKETPLACE_DEFINITIONS) {
322
- if (token.isCancellationRequested) {
487
+ if (token?.isCancellationRequested) {
323
488
  return [];
324
489
  }
325
490
  const definitionUri = joinPath(repoDir, def.path);
@@ -363,131 +528,7 @@ let PluginMarketplaceService = class PluginMarketplaceService extends Disposable
363
528
  return [];
364
529
  }
365
530
  };
366
- PluginMarketplaceService = ( __decorate([( __param(0, IConfigurationService)), ( __param(1, IRequestService)), ( __param(2, IFileService)), ( __param(3, IAgentPluginRepositoryService)), ( __param(4, ILogService)), ( __param(5, IStorageService))], PluginMarketplaceService));
367
- function parseMarketplaceReferences(values) {
368
- const byCanonicalId = ( new Map());
369
- for (const value of values) {
370
- if (typeof value !== "string") {
371
- continue;
372
- }
373
- const parsed = parseMarketplaceReference(value);
374
- if (!parsed) {
375
- continue;
376
- }
377
- if (!( byCanonicalId.has(parsed.canonicalId))) {
378
- byCanonicalId.set(parsed.canonicalId, parsed);
379
- }
380
- }
381
- return [...( byCanonicalId.values())];
382
- }
383
- function parseMarketplaceReference(value) {
384
- const rawValue = value.trim();
385
- if (!rawValue) {
386
- return undefined;
387
- }
388
- const uriReference = parseUriMarketplaceReference(rawValue);
389
- if (uriReference) {
390
- return uriReference;
391
- }
392
- const scpReference = parseScpMarketplaceReference(rawValue);
393
- if (scpReference) {
394
- return scpReference;
395
- }
396
- const shorthandMatch = /^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/.exec(rawValue);
397
- if (shorthandMatch) {
398
- const owner = shorthandMatch[1];
399
- const repo = shorthandMatch[2];
400
- return {
401
- rawValue,
402
- displayLabel: `${owner}/${repo}`,
403
- cloneUrl: `https://github.com/${owner}/${repo}.git`,
404
- canonicalId: getGitHubCanonicalId(owner, repo),
405
- cacheSegments: ["github.com", owner, repo],
406
- kind: MarketplaceReferenceKind.GitHubShorthand,
407
- githubRepo: `${owner}/${repo}`
408
- };
409
- }
410
- return undefined;
411
- }
412
- function parseUriMarketplaceReference(rawValue) {
413
- let uri;
414
- try {
415
- uri = ( URI.parse(rawValue));
416
- } catch {
417
- return undefined;
418
- }
419
- const scheme = uri.scheme.toLowerCase();
420
- if (scheme === "file" && /^file:\/\//i.test(rawValue)) {
421
- const localRepositoryUri = URI.file(uri.fsPath);
422
- return {
423
- rawValue,
424
- displayLabel: localRepositoryUri.fsPath,
425
- cloneUrl: rawValue,
426
- canonicalId: `file:${( localRepositoryUri.toString()).toLowerCase()}`,
427
- cacheSegments: [],
428
- kind: MarketplaceReferenceKind.LocalFileUri,
429
- localRepositoryUri
430
- };
431
- }
432
- if (scheme !== "http" && scheme !== "https" && scheme !== "ssh") {
433
- return undefined;
434
- }
435
- if (!uri.authority) {
436
- return undefined;
437
- }
438
- const normalizedPath = normalizeGitRepoPath(uri.path);
439
- if (!normalizedPath) {
440
- return undefined;
441
- }
442
- const sanitizedAuthority = sanitizePathSegment(uri.authority.toLowerCase());
443
- const pathSegments = ( normalizedPath.slice(1, -4).split("/").map(sanitizePathSegment));
444
- return {
445
- rawValue,
446
- displayLabel: rawValue,
447
- cloneUrl: rawValue,
448
- canonicalId: `git:${uri.authority.toLowerCase()}/${normalizedPath.slice(1).toLowerCase()}`,
449
- cacheSegments: [sanitizedAuthority, ...pathSegments],
450
- kind: MarketplaceReferenceKind.GitUri
451
- };
452
- }
453
- function parseScpMarketplaceReference(rawValue) {
454
- const match = /^([^@\s]+)@([^:\s]+):(.+\.git)$/i.exec(rawValue);
455
- if (!match) {
456
- return undefined;
457
- }
458
- const authority = match[2];
459
- const pathWithGit = match[3].replace(/^\/+/, "");
460
- if (!pathWithGit.toLowerCase().endsWith(".git")) {
461
- return undefined;
462
- }
463
- const pathSegments = ( pathWithGit.slice(0, -4).split("/").map(sanitizePathSegment));
464
- return {
465
- rawValue,
466
- displayLabel: rawValue,
467
- cloneUrl: rawValue,
468
- canonicalId: `git:${authority.toLowerCase()}/${pathWithGit.toLowerCase()}`,
469
- cacheSegments: [sanitizePathSegment(authority.toLowerCase()), ...pathSegments],
470
- kind: MarketplaceReferenceKind.GitUri
471
- };
472
- }
473
- function normalizeGitRepoPath(path) {
474
- const trimmed = path.replace(/\/+/g, "/").replace(/\/+$/g, "");
475
- if (!trimmed.toLowerCase().endsWith(".git")) {
476
- return undefined;
477
- }
478
- const withLeadingSlash = trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
479
- const pathWithoutGit = withLeadingSlash.slice(1, -4);
480
- if (!pathWithoutGit || !pathWithoutGit.includes("/")) {
481
- return undefined;
482
- }
483
- return withLeadingSlash;
484
- }
485
- function getGitHubCanonicalId(owner, repo) {
486
- return `github:${owner.toLowerCase()}/${repo.toLowerCase()}`;
487
- }
488
- function sanitizePathSegment(value) {
489
- return value.replace(/[\\/:*?"<>|]/g, "_");
490
- }
531
+ PluginMarketplaceService = ( __decorate([( __param(0, IConfigurationService)), ( __param(1, IRequestService)), ( __param(2, IFileService)), ( __param(3, IAgentPluginRepositoryService)), ( __param(4, ILogService)), ( __param(5, IStorageService)), ( __param(6, IWorkspacePluginSettingsService)), ( __param(7, IWorkspaceTrustManagementService))], PluginMarketplaceService));
491
532
  function normalizeMarketplacePath(value) {
492
533
  let normalized = value.trim().replace(/\\/g, "/");
493
534
  normalized = normalized.replace(/^\.?\/+/, "").replace(/\/+$/g, "");
@@ -561,11 +602,18 @@ function parsePluginSource(rawSource, pluginRoot, logContext) {
561
602
  );
562
603
  return undefined;
563
604
  }
605
+ if (!isOptionalString(rawSource.path)) {
606
+ logContext.logService.warn(
607
+ `${logContext.logPrefix} Skipping plugin '${logContext.pluginName}': github source 'path' must be a string when provided`
608
+ );
609
+ return undefined;
610
+ }
564
611
  return {
565
612
  kind: PluginSourceKind.GitHub,
566
613
  repo: rawSource.repo,
567
614
  ref: rawSource.ref,
568
- sha: rawSource.sha
615
+ sha: rawSource.sha,
616
+ path: rawSource.path
569
617
  };
570
618
  }
571
619
  case "url":
@@ -659,6 +707,23 @@ function isOptionalGitSha(value) {
659
707
  function isValidGitHubRepo(repo) {
660
708
  return /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(repo);
661
709
  }
710
+ function hasSourceChanged(installed, marketplace) {
711
+ if (installed.kind !== marketplace.kind) {
712
+ return true;
713
+ }
714
+ switch (installed.kind) {
715
+ case PluginSourceKind.GitHub:
716
+ return installed.ref !== marketplace.ref || installed.sha !== marketplace.sha || installed.path !== marketplace.path;
717
+ case PluginSourceKind.GitUrl:
718
+ return installed.ref !== marketplace.ref || installed.sha !== marketplace.sha;
719
+ case PluginSourceKind.Npm:
720
+ return installed.version !== marketplace.version;
721
+ case PluginSourceKind.Pip:
722
+ return installed.version !== marketplace.version;
723
+ default:
724
+ return false;
725
+ }
726
+ }
662
727
  function getMarketplaceReadmeUri(repo, source) {
663
728
  const normalizedSource = source.trim().replace(/^\.?\/+|\/+$/g, "");
664
729
  const readmePath = normalizedSource ? `${normalizedSource}/README.md` : "README.md";
@@ -669,4 +734,4 @@ function getMarketplaceReadmeFileUri(repoDir, source) {
669
734
  return normalizedSource ? joinPath(repoDir, normalizedSource, "README.md") : joinPath(repoDir, "README.md");
670
735
  }
671
736
 
672
- export { MarketplaceReferenceKind, MarketplaceType, PluginMarketplaceService, PluginSourceKind, parseMarketplaceReference, parseMarketplaceReferences, parsePluginSource };
737
+ export { MarketplaceReferenceKind, MarketplaceType, PluginMarketplaceService, PluginSourceKind, deduplicateMarketplaceReferences, hasSourceChanged, parseMarketplaceReference, parseMarketplaceReferences, parsePluginSource };
@@ -0,0 +1,20 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
+ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
4
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
5
+ import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
6
+ import { IMarketplaceReference } from "./marketplaceReference.js";
7
+ import { IWorkspacePluginSettingsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.service";
8
+ /**
9
+ * Minimal representation of a marketplace entry from `extraKnownMarketplaces`.
10
+ */
11
+ export interface IWorkspaceMarketplaceEntry {
12
+ readonly name: string;
13
+ readonly reference: IMarketplaceReference;
14
+ }
15
+ export declare class WorkspacePluginSettingsService extends Disposable implements IWorkspacePluginSettingsService {
16
+ readonly _serviceBrand: undefined;
17
+ readonly extraMarketplaces: IObservable<readonly IWorkspaceMarketplaceEntry[]>;
18
+ readonly enabledPlugins: IObservable<ReadonlyMap<string, boolean>>;
19
+ constructor(fileService: IFileService, workspaceContextService: IWorkspaceContextService, logService: ILogService);
20
+ }