@codingame/monaco-vscode-chat-service-override 30.0.0 → 31.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 (377) hide show
  1. package/index.js +21 -3
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.d.ts +125 -0
  4. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostProtocolClient.js +393 -0
  5. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.d.ts +65 -0
  6. package/vscode/src/vs/platform/agentHost/browser/remoteAgentHostServiceImpl.js +453 -0
  7. package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.d.ts +28 -0
  8. package/vscode/src/vs/platform/agentHost/browser/webSocketClientTransport.js +81 -0
  9. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.d.ts +75 -0
  10. package/vscode/src/vs/platform/agentHost/common/agentHostFileSystemProvider.js +180 -0
  11. package/vscode/src/vs/platform/agentHost/common/agentService.d.ts +202 -51
  12. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.d.ts +182 -0
  13. package/vscode/src/vs/platform/agentHost/common/state/agentSubscription.js +282 -0
  14. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.d.ts +303 -32
  15. package/vscode/src/vs/platform/agentHost/common/state/protocol/commands.js +14 -0
  16. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.d.ts +1 -1
  17. package/vscode/src/vs/platform/agentHost/common/state/protocol/errors.js +9 -0
  18. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +30 -0
  19. package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.js +662 -0
  20. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.d.ts +12 -5
  21. package/vscode/src/vs/platform/agentHost/common/state/sessionActions.js +9 -0
  22. package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.d.ts +17 -0
  23. package/vscode/src/vs/platform/agentHost/common/state/sessionCapabilities.js +5 -0
  24. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.d.ts +5 -5
  25. package/vscode/src/vs/platform/agentHost/common/state/sessionProtocol.js +14 -0
  26. package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.d.ts +42 -0
  27. package/vscode/src/vs/platform/agentHost/common/state/sessionTransport.js +7 -0
  28. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.d.ts +118 -0
  29. package/vscode/src/vs/platform/agentPlugins/common/pluginParsers.js +551 -0
  30. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.d.ts +22 -0
  31. package/vscode/src/vs/platform/networkFilter/common/networkFilterService.js +83 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +2 -2
  33. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +16 -16
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +8 -8
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +59 -59
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +12 -12
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +2 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +17 -15
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.d.ts +8 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +113 -9
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +81 -4
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +47 -26
  45. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +15 -10
  46. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  47. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  48. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +14 -14
  49. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +13 -14
  50. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +15 -14
  51. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  52. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.d.ts +5 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +58 -23
  54. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  55. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  56. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.d.ts +2 -1
  57. package/vscode/src/vs/workbench/contrib/chat/browser/actions/createPluginAction.js +24 -22
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginActions.js +8 -8
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditor.js +2 -2
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginEditor/agentPluginEditorInput.js +2 -2
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +3 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +29 -20
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +16 -16
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.d.ts +9 -0
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionWorkingDirectoryResolver.js +23 -0
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +3 -3
  67. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +2 -2
  68. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +65 -55
  69. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +5 -5
  70. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +1 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +4 -4
  73. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +1 -1
  74. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +5 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +28 -28
  76. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +17 -17
  77. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +10 -3
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +80 -15
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +20 -14
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +30 -15
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.d.ts +131 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationItemSource.js +363 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +31 -76
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +374 -764
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.d.ts +8 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidgetUtils.js +11 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +222 -44
  89. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +20 -11
  90. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +269 -123
  91. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +1 -1
  92. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.d.ts +40 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePage.js +40 -0
  94. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.d.ts +26 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWelcomePagePromptLaunchers.js +249 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +3 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +3 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.d.ts +4 -3
  99. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationHarnessService.js +5 -17
  100. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +14 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +113 -58
  102. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +202 -68
  103. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationWelcomePromptLaunchers.css +246 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.d.ts +15 -1
  105. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.js +162 -50
  106. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.d.ts +24 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.js +306 -0
  108. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +1 -1
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +581 -257
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +15 -1
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +245 -26
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +25 -7
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +1 -1
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +3 -5
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +2 -2
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +19 -19
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +7 -7
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +6 -6
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +7 -7
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +103 -28
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +3 -2
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +11 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +80 -29
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHookContentRenderer.js +17 -17
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +20 -3
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +128 -65
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +8 -8
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +23 -23
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +28 -28
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +11 -11
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +18 -0
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +3 -3
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -0
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +11 -1
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +6 -5
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatImageCarouselService.js +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +10 -27
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +4 -41
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +4 -310
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +0 -12
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +3 -30
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +1 -0
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +61 -53
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +0 -110
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +31 -31
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +2 -2
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +46 -34
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +4 -4
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +17 -18
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +6 -6
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +1 -0
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +96 -82
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +2 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +21 -14
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +18 -18
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +1 -1
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +15 -8
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +315 -263
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +14 -14
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +196 -24
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipCatalog.js +56 -17
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipEligibilityTracker.d.ts +2 -2
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +2 -2
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +8 -4
  172. package/vscode/src/vs/workbench/contrib/chat/browser/claudePluginRecommendations.js +2 -2
  173. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +4 -4
  174. package/vscode/src/vs/workbench/contrib/chat/browser/enablementActions.js +4 -4
  175. package/vscode/src/vs/workbench/contrib/chat/browser/enablementStatusWidget.js +2 -2
  176. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +1 -1
  177. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.d.ts +18 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/pluginGitCommandService.js +31 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +26 -25
  180. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.d.ts +3 -1
  181. package/vscode/src/vs/workbench/contrib/chat/browser/pluginSources.js +48 -57
  182. package/vscode/src/vs/workbench/contrib/chat/browser/pluginUrlHandler.js +6 -6
  183. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  184. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +26 -26
  185. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.d.ts +2 -2
  186. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +3 -3
  187. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  188. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  189. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  190. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  191. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  192. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +3 -3
  193. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +11 -6
  194. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +226 -36
  195. package/vscode/src/vs/workbench/contrib/chat/browser/telemetry/chatModelCountTelemetry.d.ts +23 -0
  196. package/vscode/src/vs/workbench/contrib/chat/browser/telemetry/chatModelCountTelemetry.js +82 -0
  197. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.d.ts +3 -1
  198. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +108 -56
  199. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +24 -24
  200. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +6 -6
  201. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +7 -7
  202. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  203. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +9 -9
  204. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +3 -4
  205. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +9 -16
  206. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +21 -80
  207. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +26 -59
  208. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  209. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +4 -3
  210. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +9 -1
  211. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +2 -1
  212. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +46 -14
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +2 -2
  214. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugEvents.d.ts +40 -0
  215. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugEvents.js +60 -0
  216. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +32 -5
  217. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +152 -26
  218. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +5 -9
  219. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +265 -261
  220. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +28 -2
  221. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +75 -7
  222. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +9 -1
  223. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +6 -5
  224. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +18 -0
  225. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +32 -4
  226. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +10 -25
  227. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +7 -52
  228. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +58 -466
  229. package/vscode/src/vs/workbench/contrib/chat/common/plugins/workspacePluginSettingsService.js +3 -1
  230. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +36 -18
  231. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +5 -5
  232. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +5 -5
  233. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +12 -12
  234. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +0 -1
  235. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +168 -182
  236. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +49 -29
  237. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +491 -462
  238. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +16 -6
  239. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +18 -12
  240. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.d.ts +24 -4
  241. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatArtifactsService.js +145 -68
  242. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  243. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +2 -2
  244. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
  245. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +25 -25
  246. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +2 -2
  247. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.d.ts +2 -4
  248. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatHistoryService.js +19 -17
  249. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.d.ts +1 -1
  250. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +3 -3
  251. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +5 -17
  252. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +77 -157
  253. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  254. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  255. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  256. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +5 -5
  257. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  258. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  259. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +17 -17
  260. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +1 -1
  261. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +21 -21
  262. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
  263. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +4 -1
  264. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +29 -7
  265. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +2 -2
  266. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
  267. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +3 -3
  268. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +12 -14
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +4 -4
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +5 -1
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +49 -12
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +4 -4
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +9 -8
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +2 -2
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +13 -8
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.d.ts +53 -0
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sendToTerminalTool.js +319 -0
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +15 -15
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +8 -8
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +15 -15
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +2 -2
  283. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.d.ts +21 -0
  284. package/vscode/src/vs/workbench/services/agentHost/common/agentHostFileSystemService.js +35 -0
  285. package/vscode/src/vs/platform/agentHost/common/agentService.service.d.ts +0 -94
  286. package/vscode/src/vs/platform/agentHost/common/state/protocol/action-origin.generated.d.ts +0 -16
  287. package/vscode/src/vs/platform/agentHost/common/state/protocol/actions.d.ts +0 -578
  288. package/vscode/src/vs/platform/agentHost/common/state/protocol/messages.d.ts +0 -206
  289. package/vscode/src/vs/platform/agentHost/common/state/protocol/notifications.d.ts +0 -114
  290. package/vscode/src/vs/platform/agentHost/common/state/protocol/state.d.ts +0 -860
  291. package/vscode/src/vs/platform/agentHost/common/state/sessionState.d.ts +0 -27
  292. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +0 -58
  293. package/vscode/src/vs/platform/browserElements/common/browserElements.js +0 -16
  294. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +0 -18
  295. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +0 -13
  296. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/media/simpleBrowserOverlay.css +0 -85
  297. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.d.ts +0 -9
  298. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +0 -443
  299. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.d.ts +0 -17
  300. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +0 -132
  301. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatUsageWidget.css +0 -69
  302. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +0 -65
  303. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +0 -66
  304. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.d.ts +0 -8
  305. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +0 -158
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +0 -2
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +0 -41
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +0 -24
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +0 -26
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +0 -142
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +0 -45
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +0 -164
  313. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +0 -50
  314. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +0 -163
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +0 -27
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +0 -142
  317. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +0 -29
  318. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +0 -137
  319. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +0 -40
  320. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +0 -174
  321. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +0 -3
  322. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +0 -39
  323. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +0 -32
  324. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +0 -249
  325. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +0 -41
  326. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +0 -92
  327. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +0 -40
  328. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +0 -209
  329. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.d.ts +0 -12
  330. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +0 -106
  331. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +0 -31
  332. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +0 -392
  333. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +0 -45
  334. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +0 -243
  335. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +0 -52
  336. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +0 -10
  337. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +0 -20
  338. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +0 -310
  339. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +0 -19
  340. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +0 -168
  341. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +0 -8
  342. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +0 -25
  343. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +0 -41
  344. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +0 -19
  345. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +0 -37
  346. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +0 -19
  347. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +0 -37
  348. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +0 -19
  349. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +0 -44
  350. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +0 -13
  351. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +0 -21
  352. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +0 -5
  353. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +0 -27
  354. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +0 -14
  355. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +0 -29
  356. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +0 -8
  357. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +0 -33
  358. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +0 -20
  359. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +0 -8
  360. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +0 -28
  361. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +0 -118
  362. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +0 -1019
  363. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +0 -49
  364. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +0 -23
  365. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +0 -9
  366. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +0 -150
  367. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +0 -1619
  368. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +0 -22
  369. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +0 -41
  370. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +0 -17
  371. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +0 -118
  372. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +0 -12
  373. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.js +0 -17
  374. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +0 -25
  375. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +0 -130
  376. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +0 -122
  377. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +0 -482
@@ -2,20 +2,35 @@
2
2
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
3
3
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
4
4
  import { registerIcon } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/iconRegistry';
5
+ import { PromptsStorage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
5
6
 
6
- registerIcon("ai-customization-view-icon", Codicon.sparkle, ( localize(5287, "Icon for the Chat Customization view.")));
7
- const agentIcon = registerIcon("ai-customization-agent", Codicon.agent, ( localize(5288, "Icon for custom agents.")));
8
- const skillIcon = registerIcon("ai-customization-skill", Codicon.lightbulb, ( localize(5289, "Icon for skills.")));
9
- const instructionsIcon = registerIcon("ai-customization-instructions", Codicon.book, ( localize(5290, "Icon for instruction files.")));
10
- const promptIcon = registerIcon("ai-customization-prompt", Codicon.bookmark, ( localize(5291, "Icon for prompt files.")));
11
- const hookIcon = registerIcon("ai-customization-hook", Codicon.zap, ( localize(5292, "Icon for hooks.")));
12
- registerIcon("ai-customization-add", Codicon.add, ( localize(5293, "Icon for adding new items.")));
13
- registerIcon("ai-customization-run", Codicon.play, ( localize(5294, "Icon for running a prompt or agent.")));
14
- const workspaceIcon = registerIcon("ai-customization-workspace", Codicon.folder, ( localize(5295, "Icon for workspace items.")));
15
- const userIcon = registerIcon("ai-customization-user", Codicon.account, ( localize(5296, "Icon for user items.")));
16
- const extensionIcon = registerIcon("ai-customization-extension", Codicon.extensions, ( localize(5297, "Icon for extension-contributed items.")));
17
- const pluginIcon = registerIcon("ai-customization-plugin", Codicon.plug, ( localize(5298, "Icon for plugin-contributed items.")));
18
- const builtinIcon = registerIcon("ai-customization-builtin", Codicon.starFull, ( localize(5299, "Icon for built-in items.")));
19
- const mcpServerIcon = registerIcon("ai-customization-mcp-server", Codicon.server, ( localize(5300, "Icon for MCP servers.")));
7
+ registerIcon("ai-customization-view-icon", Codicon.sparkle, ( localize(5297, "Icon for the Agent Customization view.")));
8
+ const agentIcon = registerIcon("ai-customization-agent", Codicon.agent, ( localize(5298, "Icon for custom agents.")));
9
+ const skillIcon = registerIcon("ai-customization-skill", Codicon.lightbulb, ( localize(5299, "Icon for skills.")));
10
+ const instructionsIcon = registerIcon("ai-customization-instructions", Codicon.book, ( localize(5300, "Icon for instruction files.")));
11
+ const promptIcon = registerIcon("ai-customization-prompt", Codicon.bookmark, ( localize(5301, "Icon for prompt files.")));
12
+ const hookIcon = registerIcon("ai-customization-hook", Codicon.zap, ( localize(5302, "Icon for hooks.")));
13
+ registerIcon("ai-customization-add", Codicon.add, ( localize(5303, "Icon for adding new items.")));
14
+ registerIcon("ai-customization-run", Codicon.play, ( localize(5304, "Icon for running a prompt or agent.")));
15
+ const workspaceIcon = registerIcon("ai-customization-workspace", Codicon.folder, ( localize(5305, "Icon for workspace items.")));
16
+ const userIcon = registerIcon("ai-customization-user", Codicon.account, ( localize(5306, "Icon for user items.")));
17
+ const extensionIcon = registerIcon("ai-customization-extension", Codicon.extensions, ( localize(5307, "Icon for extension-contributed items.")));
18
+ const pluginIcon = registerIcon("ai-customization-plugin", Codicon.plug, ( localize(5308, "Icon for plugin-contributed items.")));
19
+ const builtinIcon = registerIcon("ai-customization-builtin", Codicon.starFull, ( localize(5309, "Icon for built-in items.")));
20
+ const mcpServerIcon = registerIcon("ai-customization-mcp-server", Codicon.server, ( localize(5310, "Icon for MCP servers.")));
21
+ function storageToIcon(storage) {
22
+ switch (storage) {
23
+ case PromptsStorage.local:
24
+ return workspaceIcon;
25
+ case PromptsStorage.user:
26
+ return userIcon;
27
+ case PromptsStorage.extension:
28
+ return extensionIcon;
29
+ case PromptsStorage.plugin:
30
+ return pluginIcon;
31
+ default:
32
+ return instructionsIcon;
33
+ }
34
+ }
20
35
 
21
- export { agentIcon, builtinIcon, extensionIcon, hookIcon, instructionsIcon, mcpServerIcon, pluginIcon, promptIcon, skillIcon, userIcon, workspaceIcon };
36
+ export { agentIcon, builtinIcon, extensionIcon, hookIcon, instructionsIcon, mcpServerIcon, pluginIcon, promptIcon, skillIcon, storageToIcon, userIcon, workspaceIcon };
@@ -0,0 +1,131 @@
1
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
2
+ import { IMatch } from "@codingame/monaco-vscode-api/vscode/vs/base/common/filters";
3
+ import { ResourceMap } from "@codingame/monaco-vscode-api/vscode/vs/base/common/map";
4
+ import { ThemeIcon } from "@codingame/monaco-vscode-api/vscode/vs/base/common/themables";
5
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
6
+ import { ExtensionIdentifier } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions";
7
+ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
8
+ import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service";
9
+ import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
10
+ import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
11
+ import { IPathService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service";
12
+ import { IAICustomizationWorkspaceService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.service";
13
+ import { ICustomizationSyncProvider, ICustomizationItem, ICustomizationItemProvider } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/customizationHarnessService";
14
+ import { IAgentPluginService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService.service";
15
+ import { PromptsType } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
16
+ import { PromptsStorage } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService";
17
+ import { IPromptsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service";
18
+ /**
19
+ * Represents an AI customization item in the list widget.
20
+ */
21
+ export interface IAICustomizationListItem {
22
+ readonly id: string;
23
+ readonly uri: URI;
24
+ readonly name: string;
25
+ readonly filename: string;
26
+ readonly description?: string;
27
+ /** Storage origin. Set by core when items come from promptsService; omitted for external provider items. */
28
+ readonly storage?: PromptsStorage;
29
+ readonly promptType: PromptsType;
30
+ readonly disabled: boolean;
31
+ /** When set, overrides `storage` for display grouping purposes. */
32
+ readonly groupKey?: string;
33
+ /** URI of the parent plugin, when this item comes from an installed plugin. */
34
+ readonly pluginUri?: URI;
35
+ /** When set, overrides the formatted name for display. */
36
+ readonly displayName?: string;
37
+ /** When set, shows a small inline badge next to the item name. */
38
+ readonly badge?: string;
39
+ /** Tooltip shown when hovering the badge. */
40
+ readonly badgeTooltip?: string;
41
+ /** When set, overrides the default prompt-type icon. */
42
+ readonly typeIcon?: ThemeIcon;
43
+ /** True when item comes from the default chat extension (grouped under Built-in). */
44
+ readonly isBuiltin?: boolean;
45
+ /** Display name of the contributing extension (for non-built-in extension items). */
46
+ readonly extensionLabel?: string;
47
+ /** Server-reported loading/sync status for remote customizations. */
48
+ readonly status?: "loading" | "loaded" | "degraded" | "error";
49
+ /** Human-readable status detail (e.g. error message or warning). */
50
+ readonly statusMessage?: string;
51
+ /** When true, this item can be selected for syncing to a remote harness. */
52
+ readonly syncable?: boolean;
53
+ /** When true, this syncable item is currently selected for syncing. */
54
+ readonly synced?: boolean;
55
+ nameMatches?: IMatch[];
56
+ descriptionMatches?: IMatch[];
57
+ }
58
+ /**
59
+ * Browser-internal item source consumed by the list widget.
60
+ *
61
+ * Item sources fetch provider-shaped customization rows, normalize them into
62
+ * the browser-only list item shape, and add view-only overlays such as sync state.
63
+ */
64
+ export interface IAICustomizationItemSource {
65
+ readonly onDidChange: Event<void>;
66
+ fetchItems(promptType: PromptsType): Promise<IAICustomizationListItem[]>;
67
+ }
68
+ /**
69
+ * Returns true if the given extension identifier matches the default
70
+ * chat extension (e.g. GitHub Copilot Chat). Used to group items from
71
+ * the chat extension under "Built-in" instead of "Extensions".
72
+ */
73
+ export declare function isChatExtensionItem(extensionId: ExtensionIdentifier, productService: IProductService): boolean;
74
+ /**
75
+ * Derives a friendly name from a filename by removing extension suffixes.
76
+ */
77
+ export declare function getFriendlyName(filename: string): string;
78
+ /**
79
+ * Expands hook file items into individual hook entries by parsing hook
80
+ * definitions from the file content. Falls back to the original item
81
+ * when parsing fails.
82
+ */
83
+ export declare function expandHookFileItems(hookFileItems: readonly ICustomizationItem[], workspaceService: IAICustomizationWorkspaceService, fileService: IFileService, pathService: IPathService): Promise<ICustomizationItem[]>;
84
+ /**
85
+ * Converts provider-shaped customization rows into the rich list model used by the management UI.
86
+ */
87
+ export declare class AICustomizationItemNormalizer {
88
+ private readonly workspaceContextService;
89
+ private readonly workspaceService;
90
+ private readonly labelService;
91
+ private readonly agentPluginService;
92
+ private readonly productService;
93
+ constructor(workspaceContextService: IWorkspaceContextService, workspaceService: IAICustomizationWorkspaceService, labelService: ILabelService, agentPluginService: IAgentPluginService, productService: IProductService);
94
+ normalizeItems(items: readonly ICustomizationItem[], promptType: PromptsType): IAICustomizationListItem[];
95
+ normalizeItem(item: ICustomizationItem, promptType: PromptsType, uriUseCounts?: ResourceMap<number>): IAICustomizationListItem;
96
+ private resolveSource;
97
+ private inferStorageAndGroup;
98
+ private findPluginUri;
99
+ }
100
+ /**
101
+ * Unified item source that fetches items from a provider (extension-contributed
102
+ * or the promptsService adapter), normalizes them into list items, and optionally
103
+ * blends in local syncable items when a sync provider is present.
104
+ */
105
+ export declare class ProviderCustomizationItemSource implements IAICustomizationItemSource {
106
+ private readonly itemProvider;
107
+ private readonly syncProvider;
108
+ private readonly promptsService;
109
+ private readonly workspaceService;
110
+ private readonly fileService;
111
+ private readonly pathService;
112
+ private readonly itemNormalizer;
113
+ readonly onDidChange: Event<void>;
114
+ constructor(itemProvider: ICustomizationItemProvider | undefined, syncProvider: ICustomizationSyncProvider | undefined, promptsService: IPromptsService, workspaceService: IAICustomizationWorkspaceService, fileService: IFileService, pathService: IPathService, itemNormalizer: AICustomizationItemNormalizer);
115
+ fetchItems(promptType: PromptsType): Promise<IAICustomizationListItem[]>;
116
+ private fetchItemsFromProvider;
117
+ /**
118
+ * Merges built-in skills (bundled with the app under `vs/sessions/skills/`)
119
+ * into the provider's items. The provider may re-discover the bundled
120
+ * copies when scanning disk — those duplicates are dropped (deduped by
121
+ * URI) and replaced with the authoritative built-in entry tagged
122
+ * `groupKey: BUILTIN_STORAGE` so the UI renders them in the "Built-in"
123
+ * group. User-authored overrides (different URI, same name) are preserved.
124
+ *
125
+ * A workbench that uses the base `PromptsService` will throw on
126
+ * `BUILTIN_STORAGE` — we catch and return the items unchanged in that case.
127
+ */
128
+ private mergeBuiltinSkills;
129
+ private addSkillDescriptionFallbacks;
130
+ private fetchLocalSyncableItems;
131
+ }
@@ -0,0 +1,363 @@
1
+
2
+ import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
3
+ import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
4
+ import { parse } from '@codingame/monaco-vscode-api/vscode/vs/base/common/json';
5
+ import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
6
+ import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
7
+ import { OS } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
8
+ import { basename, isEqualOrParent, dirname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
9
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
10
+ import { ExtensionIdentifier } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
11
+ import { parseHooksFromFile } from '../../common/promptSyntax/hookCompatibility.js';
12
+ import { formatHookCommandLabel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema';
13
+ import { HOOK_METADATA } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookTypes';
14
+ import { PromptsType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
15
+ import { PromptsStorage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
16
+ import { storageToIcon } from './aiCustomizationIcons.js';
17
+ import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement';
18
+ import { extractExtensionIdFromPath } from './aiCustomizationListWidgetUtils.js';
19
+ import { BUILTIN_STORAGE } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService';
20
+
21
+ function isChatExtensionItem(extensionId, productService) {
22
+ const chatExtensionId = productService.defaultChatAgent?.chatExtensionId;
23
+ return !!chatExtensionId && ExtensionIdentifier.equals(extensionId, chatExtensionId);
24
+ }
25
+ function getFriendlyName(filename) {
26
+ let name = filename.replace(/\.instructions\.md$/i, "").replace(/\.prompt\.md$/i, "").replace(/\.agent\.md$/i, "").replace(/\.md$/i, "");
27
+ name = name.replace(/[-_]/g, " ").replace(/\b\w/g, c => c.toUpperCase());
28
+ return name || filename;
29
+ }
30
+ async function expandHookFileItems(hookFileItems, workspaceService, fileService, pathService) {
31
+ const items = [];
32
+ const activeRoot = workspaceService.getActiveProjectRoot();
33
+ const userHomeUri = await pathService.userHome();
34
+ const userHome = userHomeUri.scheme === Schemas.file ? userHomeUri.fsPath : userHomeUri.path;
35
+ for (const item of hookFileItems) {
36
+ let parsedHooks = false;
37
+ try {
38
+ const content = await fileService.readFile(item.uri);
39
+ const json = parse(( content.value.toString()));
40
+ const {
41
+ hooks
42
+ } = parseHooksFromFile(item.uri, json, activeRoot, userHome);
43
+ if (hooks.size > 0) {
44
+ parsedHooks = true;
45
+ for (const [hookType, entry] of hooks) {
46
+ const hookMeta = HOOK_METADATA[hookType];
47
+ for (let i = 0; i < entry.hooks.length; i++) {
48
+ const hook = entry.hooks[i];
49
+ const cmdLabel = formatHookCommandLabel(hook, OS);
50
+ const truncatedCmd = cmdLabel.length > 60 ? cmdLabel.substring(0, 57) + "..." : cmdLabel;
51
+ items.push({
52
+ uri: item.uri,
53
+ type: PromptsType.hook,
54
+ name: hookMeta?.label ?? entry.originalId,
55
+ description: truncatedCmd || ( localize(5311, "(unset)")),
56
+ enabled: item.enabled,
57
+ groupKey: item.groupKey,
58
+ storage: item.storage
59
+ });
60
+ }
61
+ }
62
+ }
63
+ } catch {}
64
+ if (!parsedHooks) {
65
+ items.push(item);
66
+ }
67
+ }
68
+ return items;
69
+ }
70
+ class AICustomizationItemNormalizer {
71
+ constructor(
72
+ workspaceContextService,
73
+ workspaceService,
74
+ labelService,
75
+ agentPluginService,
76
+ productService
77
+ ) {
78
+ this.workspaceContextService = workspaceContextService;
79
+ this.workspaceService = workspaceService;
80
+ this.labelService = labelService;
81
+ this.agentPluginService = agentPluginService;
82
+ this.productService = productService;
83
+ }
84
+ normalizeItems(items, promptType) {
85
+ const uriUseCounts = ( new ResourceMap());
86
+ return ( items.filter(item => item.type === promptType).map(item => this.normalizeItem(item, promptType, uriUseCounts))).sort((a, b) => a.name.localeCompare(b.name));
87
+ }
88
+ normalizeItem(
89
+ item,
90
+ promptType,
91
+ uriUseCounts = ( new ResourceMap())
92
+ ) {
93
+ const {
94
+ storage,
95
+ groupKey,
96
+ isBuiltin,
97
+ extensionLabel
98
+ } = this.resolveSource(item);
99
+ const seenCount = uriUseCounts.get(item.uri) ?? 0;
100
+ uriUseCounts.set(item.uri, seenCount + 1);
101
+ const duplicateSuffix = seenCount === 0 ? "" : `#${seenCount}`;
102
+ const isWorkspaceItem = storage === PromptsStorage.local;
103
+ return {
104
+ id: `${( item.uri.toString())}${duplicateSuffix}`,
105
+ uri: item.uri,
106
+ name: item.name,
107
+ filename: item.uri.scheme === Schemas.file ? this.labelService.getUriLabel(item.uri, {
108
+ relative: isWorkspaceItem
109
+ }) : basename(item.uri),
110
+ description: item.description,
111
+ storage,
112
+ promptType,
113
+ disabled: item.enabled === false,
114
+ groupKey,
115
+ pluginUri: storage === PromptsStorage.plugin ? this.findPluginUri(item.uri) : undefined,
116
+ displayName: item.name,
117
+ badge: item.badge,
118
+ badgeTooltip: item.badgeTooltip,
119
+ typeIcon: promptType === PromptsType.instructions && storage ? storageToIcon(storage) : undefined,
120
+ isBuiltin,
121
+ extensionLabel,
122
+ status: item.status,
123
+ statusMessage: item.statusMessage
124
+ };
125
+ }
126
+ resolveSource(item) {
127
+ const inferred = this.inferStorageAndGroup(item.uri);
128
+ const storage = item.storage ?? inferred.storage;
129
+ const extensionLabel = item.extensionLabel ?? inferred.extensionLabel;
130
+ if (!item.groupKey) {
131
+ return {
132
+ ...inferred,
133
+ storage,
134
+ extensionLabel
135
+ };
136
+ }
137
+ switch (item.groupKey) {
138
+ case BUILTIN_STORAGE:
139
+ {
140
+ const builtinStorage = item.storage === BUILTIN_STORAGE ? BUILTIN_STORAGE : PromptsStorage.extension;
141
+ return {
142
+ storage: builtinStorage,
143
+ groupKey: BUILTIN_STORAGE,
144
+ isBuiltin: true,
145
+ extensionLabel
146
+ };
147
+ }
148
+ default:
149
+ return {
150
+ storage,
151
+ groupKey: item.groupKey,
152
+ extensionLabel
153
+ };
154
+ }
155
+ }
156
+ inferStorageAndGroup(uri) {
157
+ if (uri.scheme !== Schemas.file) {
158
+ return {
159
+ storage: PromptsStorage.extension,
160
+ groupKey: BUILTIN_STORAGE,
161
+ isBuiltin: true
162
+ };
163
+ }
164
+ const activeProjectRoot = this.workspaceService.getActiveProjectRoot();
165
+ if (activeProjectRoot && isEqualOrParent(uri, activeProjectRoot)) {
166
+ return {
167
+ storage: PromptsStorage.local
168
+ };
169
+ }
170
+ for (const folder of this.workspaceContextService.getWorkspace().folders) {
171
+ if (isEqualOrParent(uri, folder.uri)) {
172
+ return {
173
+ storage: PromptsStorage.local
174
+ };
175
+ }
176
+ }
177
+ for (const plugin of this.agentPluginService.plugins.get()) {
178
+ if (isEqualOrParent(uri, plugin.uri)) {
179
+ return {
180
+ storage: PromptsStorage.plugin
181
+ };
182
+ }
183
+ }
184
+ const extensionId = extractExtensionIdFromPath(uri.path);
185
+ if (extensionId) {
186
+ const extensionIdentifier = ( new ExtensionIdentifier(extensionId));
187
+ if (isChatExtensionItem(extensionIdentifier, this.productService)) {
188
+ return {
189
+ storage: PromptsStorage.extension,
190
+ groupKey: BUILTIN_STORAGE,
191
+ isBuiltin: true
192
+ };
193
+ }
194
+ return {
195
+ storage: PromptsStorage.extension,
196
+ extensionLabel: extensionIdentifier.value
197
+ };
198
+ }
199
+ return {
200
+ storage: PromptsStorage.user
201
+ };
202
+ }
203
+ findPluginUri(itemUri) {
204
+ for (const plugin of this.agentPluginService.plugins.get()) {
205
+ if (isEqualOrParent(itemUri, plugin.uri)) {
206
+ return plugin.uri;
207
+ }
208
+ }
209
+ return undefined;
210
+ }
211
+ }
212
+ class ProviderCustomizationItemSource {
213
+ constructor(
214
+ itemProvider,
215
+ syncProvider,
216
+ promptsService,
217
+ workspaceService,
218
+ fileService,
219
+ pathService,
220
+ itemNormalizer
221
+ ) {
222
+ this.itemProvider = itemProvider;
223
+ this.syncProvider = syncProvider;
224
+ this.promptsService = promptsService;
225
+ this.workspaceService = workspaceService;
226
+ this.fileService = fileService;
227
+ this.pathService = pathService;
228
+ this.itemNormalizer = itemNormalizer;
229
+ const onDidChangeSyncableCustomizations = this.syncProvider ? Event.any(
230
+ this.promptsService.onDidChangeCustomAgents,
231
+ this.promptsService.onDidChangeSlashCommands,
232
+ this.promptsService.onDidChangeSkills,
233
+ this.promptsService.onDidChangeHooks,
234
+ this.promptsService.onDidChangeInstructions
235
+ ) : Event.None;
236
+ this.onDidChange = Event.any(
237
+ this.itemProvider?.onDidChange ?? Event.None,
238
+ this.syncProvider?.onDidChange ?? Event.None,
239
+ onDidChangeSyncableCustomizations
240
+ );
241
+ }
242
+ async fetchItems(promptType) {
243
+ const remoteItems = this.itemProvider ? await this.fetchItemsFromProvider(this.itemProvider, promptType) : [];
244
+ if (!this.syncProvider) {
245
+ return remoteItems;
246
+ }
247
+ const localItems = await this.fetchLocalSyncableItems(promptType, this.syncProvider);
248
+ return [...remoteItems, ...localItems];
249
+ }
250
+ async fetchItemsFromProvider(provider, promptType) {
251
+ const allItems = await provider.provideChatSessionCustomizations(CancellationToken.None);
252
+ if (!allItems) {
253
+ return [];
254
+ }
255
+ let providerItems;
256
+ if (promptType === PromptsType.hook) {
257
+ const hookItems = allItems.filter(item => item.type === PromptsType.hook);
258
+ const toExpand = hookItems.filter(item => item.storage !== PromptsStorage.plugin);
259
+ const preExpanded = hookItems.filter(item => item.storage === PromptsStorage.plugin);
260
+ const expanded = await expandHookFileItems(toExpand, this.workspaceService, this.fileService, this.pathService);
261
+ providerItems = [...expanded, ...preExpanded];
262
+ } else {
263
+ providerItems = allItems.filter(item => item.type === promptType);
264
+ }
265
+ if (promptType === PromptsType.skill) {
266
+ providerItems = await this.addSkillDescriptionFallbacks(providerItems);
267
+ }
268
+ const normalized = this.itemNormalizer.normalizeItems(providerItems, promptType);
269
+ if (promptType === PromptsType.skill) {
270
+ return this.mergeBuiltinSkills(normalized, promptType);
271
+ }
272
+ return normalized;
273
+ }
274
+ async mergeBuiltinSkills(items, promptType) {
275
+ let builtinPaths = [];
276
+ try {
277
+ builtinPaths = await this.promptsService.listPromptFilesForStorage(PromptsType.skill, BUILTIN_STORAGE, CancellationToken.None);
278
+ } catch {
279
+ return [...items];
280
+ }
281
+ if (builtinPaths.length === 0) {
282
+ return [...items];
283
+ }
284
+ const builtinUris = ( new ResourceMap());
285
+ for (const p of builtinPaths) {
286
+ builtinUris.set(p.uri, p);
287
+ }
288
+ const deduped = items.filter(item => !( builtinUris.has(item.uri)));
289
+ const uiIntegrations = this.workspaceService.getSkillUIIntegrations();
290
+ const uiIntegrationBadge = ( localize(5312, "UI Integration"));
291
+ const overriddenNames = ( new Set());
292
+ for (const item of deduped) {
293
+ if (item.storage === PromptsStorage.local || item.storage === PromptsStorage.user) {
294
+ if (item.name) {
295
+ overriddenNames.add(item.name);
296
+ }
297
+ }
298
+ }
299
+ const uriUseCounts = ( new ResourceMap());
300
+ for (const item of deduped) {
301
+ uriUseCounts.set(item.uri, (uriUseCounts.get(item.uri) ?? 0) + 1);
302
+ }
303
+ const appended = [];
304
+ const disabledPromptFiles = this.promptsService.getDisabledPromptFiles(PromptsType.skill);
305
+ for (const p of builtinPaths) {
306
+ const name = p.name ?? basename(p.uri);
307
+ if (( overriddenNames.has(name))) {
308
+ continue;
309
+ }
310
+ const folderName = basename(dirname(p.uri));
311
+ const uiTooltip = uiIntegrations.get(folderName);
312
+ const builtinItem = {
313
+ uri: p.uri,
314
+ type: PromptsType.skill,
315
+ name,
316
+ description: p.description,
317
+ storage: BUILTIN_STORAGE,
318
+ groupKey: BUILTIN_STORAGE,
319
+ enabled: !( disabledPromptFiles.has(p.uri)),
320
+ badge: uiTooltip ? uiIntegrationBadge : undefined,
321
+ badgeTooltip: uiTooltip
322
+ };
323
+ appended.push(this.itemNormalizer.normalizeItem(builtinItem, promptType, uriUseCounts));
324
+ }
325
+ return [...deduped, ...appended];
326
+ }
327
+ async addSkillDescriptionFallbacks(items) {
328
+ const descriptionsByUri = ( new Map());
329
+ const skills = await this.promptsService.findAgentSkills(CancellationToken.None);
330
+ for (const skill of skills ?? []) {
331
+ if (skill.description) {
332
+ descriptionsByUri.set(( skill.uri.toString()), skill.description);
333
+ }
334
+ }
335
+ return ( items.map(item => item.description ? item : {
336
+ ...item,
337
+ description: descriptionsByUri.get(( item.uri.toString()))
338
+ }));
339
+ }
340
+ async fetchLocalSyncableItems(promptType, syncProvider) {
341
+ const files = await this.promptsService.listPromptFiles(promptType, CancellationToken.None);
342
+ if (!files.length) {
343
+ return [];
344
+ }
345
+ const providerItems = ( files.filter(
346
+ file => file.storage === PromptsStorage.local || file.storage === PromptsStorage.user
347
+ ).map(file => ({
348
+ uri: file.uri,
349
+ type: promptType,
350
+ name: getFriendlyName(basename(file.uri)),
351
+ groupKey: "sync-local",
352
+ enabled: true
353
+ })));
354
+ return ( this.itemNormalizer.normalizeItems(providerItems, promptType).map(item => ({
355
+ ...item,
356
+ id: `sync-${item.id}`,
357
+ syncable: true,
358
+ synced: syncProvider.isSelected(item.uri)
359
+ })));
360
+ }
361
+ }
362
+
363
+ export { AICustomizationItemNormalizer, ProviderCustomizationItemSource, expandHookFileItems, getFriendlyName, isChatExtensionItem };