@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
@@ -7,7 +7,7 @@ import { parse } from '@codingame/monaco-vscode-api/vscode/vs/base/common/json';
7
7
  import { Disposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
8
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
9
9
  import { ResourceMap, ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
10
- import { isEqual, dirname, joinPath, basename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
10
+ import { isEqual, dirname, basename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
11
11
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
12
12
  import { OffsetRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/offsetRange';
13
13
  import { IModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service';
@@ -25,7 +25,7 @@ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform
25
25
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
26
26
  import { IUserDataProfileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
27
27
  import { PromptsConfig } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
28
- import { getCleanPromptName, AGENT_MD_FILENAME, CLAUDE_CONFIG_FOLDER, CLAUDE_MD_FILENAME, CLAUDE_LOCAL_MD_FILENAME, PromptFileSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
28
+ import { getCleanPromptName, AGENT_MD_FILENAME, CLAUDE_MD_FILENAME, CLAUDE_LOCAL_MD_FILENAME, CLAUDE_CONFIG_FOLDER, COPILOT_CUSTOM_INSTRUCTIONS_FILENAME, GITHUB_CONFIG_FOLDER, getSkillFolderName, PromptFileSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
29
29
  import { PromptsType, PROMPT_LANGUAGE_ID, Target, getPromptsTypeForLanguageId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
30
30
  import { PromptFilesLocator } from '../utils/promptFilesLocator.js';
31
31
  import { PromptFileParser, PromptHeaderAttributes } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser';
@@ -43,7 +43,9 @@ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/
43
43
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
44
44
  import { getCanonicalPluginCommandId } from '../../plugins/agentPluginService.js';
45
45
  import { IAgentPluginService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService.service';
46
+ import { isContributionEnabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/enablement';
46
47
  import { assertNever } from '@codingame/monaco-vscode-api/vscode/vs/base/common/assert';
48
+ import { ChatInternalCustomizations } from '../internalCustomizations/internalCustomizations.js';
47
49
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
48
50
 
49
51
  class SkillMissingNameError extends Error {
@@ -126,6 +128,7 @@ let PromptsService = class PromptsService extends Disposable {
126
128
  this.promptFileProviders = [];
127
129
  this.disabledPromptsStorageKeyPrefix = "chat.disabledPromptFiles.";
128
130
  this.fileLocator = this.createPromptFilesLocator();
131
+ this.internalCustomizations = this._register(( new ChatInternalCustomizations(this.fileService)));
129
132
  this._register(this.modelService.onModelRemoved(model => {
130
133
  this.cachedParsedPromptFromModels.delete(model.uri);
131
134
  }));
@@ -145,7 +148,8 @@ let PromptsService = class PromptsService extends Disposable {
145
148
  Event.filter(
146
149
  this.configurationService.onDidChangeConfiguration,
147
150
  e => e.affectsConfiguration(PromptsConfig.USE_CUSTOM_AGENT_HOOKS)
148
- )
151
+ ),
152
+ this._onDidPluginPromptFilesChange.event
149
153
  ))));
150
154
  this.cachedSlashCommands = this._register(( new CachedPromise(token => this.computePromptSlashCommands(token), () => Event.any(
151
155
  this.getFileLocatorEvent(PromptsType.prompt),
@@ -179,11 +183,28 @@ let PromptsService = class PromptsService extends Disposable {
179
183
  this._register(
180
184
  this.watchPluginPromptFilesForType(PromptsType.agent, (plugin, reader) => plugin.agents.read(reader))
181
185
  );
186
+ this._register(this.watchPluginPromptFilesForType(
187
+ PromptsType.instructions,
188
+ (plugin, reader) => plugin.instructions.read(reader)
189
+ ));
182
190
  this._register(autorun(reader => {
183
191
  const plugins = this.agentPluginService.plugins.read(reader);
192
+ const hookFiles = [];
184
193
  for (const plugin of plugins) {
185
- plugin.hooks.read(reader);
194
+ if (isContributionEnabled(plugin.enablement.read(reader))) {
195
+ for (const hook of plugin.hooks.read(reader)) {
196
+ hookFiles.push({
197
+ uri: hook.uri,
198
+ storage: PromptsStorage.plugin,
199
+ type: PromptsType.hook,
200
+ name: getCanonicalPluginCommandId(plugin, hook.originalId),
201
+ pluginUri: plugin.uri
202
+ });
203
+ }
204
+ }
186
205
  }
206
+ this._pluginPromptFilesByType.set(PromptsType.hook, hookFiles);
207
+ this.cachedFileLocations[PromptsType.hook] = undefined;
187
208
  this._onDidPluginHooksChange.fire();
188
209
  }));
189
210
  }
@@ -192,6 +213,9 @@ let PromptsService = class PromptsService extends Disposable {
192
213
  const plugins = this.agentPluginService.plugins.read(reader);
193
214
  const nextFiles = [];
194
215
  for (const plugin of plugins) {
216
+ if (!isContributionEnabled(plugin.enablement.read(reader))) {
217
+ continue;
218
+ }
195
219
  for (const item of getItems(plugin, reader)) {
196
220
  nextFiles.push({
197
221
  uri: item.uri,
@@ -259,37 +283,14 @@ let PromptsService = class PromptsService extends Disposable {
259
283
  this.getExtensionPromptFiles(type, token),
260
284
  this._pluginPromptFilesByType.get(type) ?? []
261
285
  ]);
262
- return [...prompts.flat()];
286
+ return [...prompts.flat(), ...this.internalCustomizations.getPromptPaths(type)];
263
287
  }
264
- async _collectSourceFolderDiagnostics(type, foundFiles) {
288
+ async _collectSourceFolderDiagnostics(type) {
265
289
  const resolvedFolders = await this.fileLocator.getSourceFoldersInDiscoveryOrder(type);
266
- const results = [];
267
- for (const folder of resolvedFolders) {
268
- const fileCount = foundFiles.filter(f => f.uri.path.startsWith(folder.uri.path + "/")).length;
269
- let exists = fileCount > 0;
270
- let errorMessage;
271
- if (!exists) {
272
- try {
273
- const stat = await this.fileService.stat(folder.uri);
274
- exists = stat.isDirectory;
275
- } catch (e) {
276
- if (e instanceof FileOperationError && e.fileOperationResult === FileOperationResult.FILE_NOT_FOUND) {
277
- exists = false;
278
- } else {
279
- exists = false;
280
- errorMessage = e instanceof Error ? e.message : String(e);
281
- }
282
- }
283
- }
284
- results.push({
285
- uri: folder.uri,
286
- storage: folder.storage,
287
- exists,
288
- fileCount,
289
- errorMessage
290
- });
291
- }
292
- return results;
290
+ return ( resolvedFolders.map(folder => ({
291
+ uri: folder.uri,
292
+ storage: folder.storage
293
+ })));
293
294
  }
294
295
  registerPromptFileProvider(extension, type, provider) {
295
296
  const providerEntry = {
@@ -389,6 +390,8 @@ let PromptsService = class PromptsService extends Disposable {
389
390
  }))));
390
391
  case PromptsStorage.plugin:
391
392
  return this._pluginPromptFilesByType.get(type) ?? [];
393
+ case PromptsStorage.internal:
394
+ return this.internalCustomizations.getPromptPaths(type);
392
395
  default:
393
396
  throw ( new Error(`[listPromptFilesForStorage] Unsupported prompt storage type: ${storage}`));
394
397
  }
@@ -467,13 +470,39 @@ let PromptsService = class PromptsService extends Disposable {
467
470
  return this.cachedSlashCommands.onDidChange;
468
471
  }
469
472
  async getPromptSlashCommands(token, sessionResource) {
470
- return await this.cachedSlashCommands.get(token);
473
+ const sw = StopWatch.create();
474
+ const result = await this.cachedSlashCommands.get(token);
475
+ if (sessionResource) {
476
+ const elapsed = sw.elapsed();
477
+ void this.getPromptSlashCommandDiscoveryInfo(token).catch(() => undefined).then(discoveryInfo => {
478
+ const details = result.length === 1 ? ( localize(
479
+ 7555,
480
+ "Resolved {0} slash command in {1}ms",
481
+ result.length,
482
+ elapsed.toFixed(1)
483
+ )) : ( localize(
484
+ 7556,
485
+ "Resolved {0} slash commands in {1}ms",
486
+ result.length,
487
+ elapsed.toFixed(1)
488
+ ));
489
+ this._onDidLogDiscovery.fire({
490
+ sessionResource,
491
+ name: ( localize(7557, "Load Slash Commands")),
492
+ details,
493
+ discoveryInfo,
494
+ category: "discovery"
495
+ });
496
+ });
497
+ }
498
+ return result;
471
499
  }
472
500
  async computePromptSlashCommands(token) {
473
501
  const promptFiles = await this.listPromptFiles(PromptsType.prompt, token);
474
502
  const useAgentSkills = this.configurationService.getValue(PromptsConfig.USE_AGENT_SKILLS);
475
503
  const skills = useAgentSkills ? await this.listPromptFiles(PromptsType.skill, token) : [];
476
- const slashCommandFiles = [...promptFiles, ...skills];
504
+ const disabledSkills = this.getDisabledPromptFiles(PromptsType.skill);
505
+ const slashCommandFiles = [...promptFiles, ...skills.filter(s => !( disabledSkills.has(s.uri)))];
477
506
  const details = await Promise.all(( slashCommandFiles.map(async promptPath => {
478
507
  try {
479
508
  const parsedPromptFile = await this.parseNew(promptPath.uri, token);
@@ -516,12 +545,14 @@ let PromptsService = class PromptsService extends Disposable {
516
545
  asChatPromptSlashCommand(parsedPromptFile, promptPath) {
517
546
  let name = parsedPromptFile?.header?.name ?? promptPath.name ?? getCleanPromptName(promptPath.uri);
518
547
  name = name.replace(/[^\p{L}\d_\-\.:]+/gu, "-");
548
+ const internalSkill = this.internalCustomizations.getInternalSkillByUri(promptPath.uri);
519
549
  return {
520
550
  name: name,
521
551
  description: parsedPromptFile?.header?.description ?? promptPath.description,
522
552
  argumentHint: parsedPromptFile?.header?.argumentHint,
523
553
  parsedPromptFile,
524
- promptPath
554
+ promptPath,
555
+ when: internalSkill?.when
525
556
  };
526
557
  }
527
558
  async getPromptSlashCommandName(uri, token) {
@@ -539,7 +570,8 @@ let PromptsService = class PromptsService extends Disposable {
539
570
  return Event.any(
540
571
  this.getFileLocatorEvent(PromptsType.instructions),
541
572
  this._onDidContributedWhenChange.event,
542
- this._onDidChangeInstructions.event
573
+ this._onDidChangeInstructions.event,
574
+ this._onDidPluginPromptFilesChange.event
543
575
  );
544
576
  }
545
577
  async getCustomAgents(token, sessionResource) {
@@ -547,14 +579,15 @@ let PromptsService = class PromptsService extends Disposable {
547
579
  const result = await this.cachedCustomAgents.get(token);
548
580
  if (sessionResource) {
549
581
  const elapsed = sw.elapsed();
550
- const discoveryInfo = await this.getAgentDiscoveryInfo(token);
551
- const details = result.length === 1 ? ( localize(7327, "Resolved {0} agent in {1}ms", result.length, elapsed.toFixed(1))) : ( localize(7328, "Resolved {0} agents in {1}ms", result.length, elapsed.toFixed(1)));
552
- this._onDidLogDiscovery.fire({
553
- sessionResource,
554
- name: ( localize(7329, "Load Agents")),
555
- details,
556
- discoveryInfo,
557
- category: "discovery"
582
+ void this.getAgentDiscoveryInfo(token).catch(() => undefined).then(discoveryInfo => {
583
+ const details = result.length === 1 ? ( localize(7558, "Resolved {0} agent in {1}ms", result.length, elapsed.toFixed(1))) : ( localize(7559, "Resolved {0} agents in {1}ms", result.length, elapsed.toFixed(1)));
584
+ this._onDidLogDiscovery.fire({
585
+ sessionResource,
586
+ name: ( localize(7560, "Load Agents")),
587
+ details,
588
+ discoveryInfo,
589
+ category: "discovery"
590
+ });
558
591
  });
559
592
  }
560
593
  return result;
@@ -776,17 +809,19 @@ let PromptsService = class PromptsService extends Disposable {
776
809
  relative: true
777
810
  });
778
811
  case PromptsStorage.user:
779
- return localize(7330, "User Data");
812
+ return localize(7561, "User Data");
780
813
  case PromptsStorage.extension:
781
814
  {
782
815
  return localize(
783
- 7331,
816
+ 7562,
784
817
  "Extension: {0}",
785
818
  promptPath.extension.displayName ?? promptPath.extension.id
786
819
  );
787
820
  }
788
821
  case PromptsStorage.plugin:
789
- return localize(7332, "Plugin");
822
+ return localize(7563, "Plugin");
823
+ case PromptsStorage.internal:
824
+ return localize(7564, "Built-in");
790
825
  default:
791
826
  assertNever(promptPath, "Unknown prompt storage type");
792
827
  }
@@ -802,62 +837,69 @@ let PromptsService = class PromptsService extends Disposable {
802
837
  }
803
838
  return [];
804
839
  }
805
- async listAgentMDs(token, logger) {
840
+ async listAgentInstructions(token, logger) {
841
+ const resolvedAgentFiles = [];
842
+ const promises = [];
843
+ const includeParents = this.configurationService.getValue(PromptsConfig.USE_CUSTOMIZATIONS_IN_PARENT_REPOS) === true;
844
+ const rootFolders = await this.fileLocator.getWorkspaceFolderRoots(includeParents, logger);
845
+ const rootFiles = [];
806
846
  const useAgentMD = this.configurationService.getValue(PromptsConfig.USE_AGENT_MD);
807
847
  if (!useAgentMD) {
808
848
  logger?.logInfo("Agent MD files are disabled via configuration.");
809
- return [];
849
+ } else {
850
+ rootFiles.push({
851
+ fileName: AGENT_MD_FILENAME,
852
+ type: AgentFileType.agentsMd
853
+ });
810
854
  }
811
- return await this.fileLocator.findFilesInWorkspaceRoots(AGENT_MD_FILENAME, undefined, AgentFileType.agentsMd, token);
812
- }
813
- async listClaudeMDs(token, logger) {
814
855
  const useClaudeMD = this.configurationService.getValue(PromptsConfig.USE_CLAUDE_MD);
815
856
  if (!useClaudeMD) {
816
857
  logger?.logInfo("Claude MD files are disabled via configuration.");
817
- return [];
858
+ } else {
859
+ const claudeMdFile = {
860
+ fileName: CLAUDE_MD_FILENAME,
861
+ type: AgentFileType.claudeMd
862
+ };
863
+ rootFiles.push(claudeMdFile);
864
+ rootFiles.push({
865
+ fileName: CLAUDE_LOCAL_MD_FILENAME,
866
+ type: AgentFileType.claudeMd
867
+ });
868
+ promises.push(this.fileLocator.findFilesInRoots(
869
+ rootFolders,
870
+ CLAUDE_CONFIG_FOLDER,
871
+ [claudeMdFile],
872
+ token,
873
+ resolvedAgentFiles
874
+ ));
875
+ promises.push(this.fileLocator.findFilesInRoots(
876
+ [await this.pathService.userHome()],
877
+ CLAUDE_CONFIG_FOLDER,
878
+ [claudeMdFile],
879
+ token,
880
+ resolvedAgentFiles
881
+ ));
818
882
  }
819
- const results = [];
820
- const userHome = await this.pathService.userHome();
821
- const userClaudeFolder = joinPath(userHome, CLAUDE_CONFIG_FOLDER);
822
- await Promise.all([
823
- this.fileLocator.findFilesInWorkspaceRoots(CLAUDE_MD_FILENAME, undefined, AgentFileType.claudeMd, token, results),
824
- this.fileLocator.findFilesInWorkspaceRoots(
825
- CLAUDE_LOCAL_MD_FILENAME,
826
- undefined,
827
- AgentFileType.claudeMd,
828
- token,
829
- results
830
- ),
831
- this.fileLocator.findFilesInWorkspaceRoots(
832
- CLAUDE_MD_FILENAME,
833
- CLAUDE_CONFIG_FOLDER,
834
- AgentFileType.claudeMd,
835
- token,
836
- results
837
- ),
838
- this.fileLocator.findFilesInRoots(
839
- [userClaudeFolder],
840
- CLAUDE_MD_FILENAME,
841
- AgentFileType.claudeMd,
842
- token,
843
- results
844
- )]);
845
- return results.sort((a, b) => ( a.uri.toString()).localeCompare(( b.uri.toString())));
846
- }
847
- async listCopilotInstructionsMDs(token, logger) {
848
883
  const useCopilotInstructionsFiles = this.configurationService.getValue(PromptsConfig.USE_COPILOT_INSTRUCTION_FILES);
849
884
  if (!useCopilotInstructionsFiles) {
850
885
  logger?.logInfo("Copilot instructions files are disabled via configuration.");
851
- return [];
886
+ } else {
887
+ const githubConfigFiles = [{
888
+ fileName: COPILOT_CUSTOM_INSTRUCTIONS_FILENAME,
889
+ type: AgentFileType.copilotInstructionsMd
890
+ }];
891
+ promises.push(this.fileLocator.findFilesInRoots(
892
+ rootFolders,
893
+ GITHUB_CONFIG_FOLDER,
894
+ githubConfigFiles,
895
+ token,
896
+ resolvedAgentFiles
897
+ ));
852
898
  }
853
- return await this.fileLocator.findCopilotInstructionsMDsInWorkspace(token);
854
- }
855
- async listAgentInstructions(token, logger) {
856
- const [agentMDs, claudeMDs, copilotInstructionsMDs] = await Promise.all([
857
- this.listAgentMDs(token, logger),
858
- this.listClaudeMDs(token, logger),
859
- this.listCopilotInstructionsMDs(token, logger)
860
- ]);
899
+ promises.push(
900
+ this.fileLocator.findFilesInRoots(rootFolders, undefined, rootFiles, token, resolvedAgentFiles)
901
+ );
902
+ await Promise.all(promises);
861
903
  if (token.isCancellationRequested) {
862
904
  return [];
863
905
  }
@@ -873,9 +915,7 @@ let PromptsService = class PromptsService extends Disposable {
873
915
  }
874
916
  return true;
875
917
  };
876
- agentMDs.forEach(add);
877
- claudeMDs.forEach(add);
878
- copilotInstructionsMDs.forEach(add);
918
+ resolvedAgentFiles.forEach(add);
879
919
  for (const symlink of symlinks) {
880
920
  if (( seenFileURI.has(symlink.realPath))) {
881
921
  logger?.logInfo(
@@ -886,7 +926,7 @@ let PromptsService = class PromptsService extends Disposable {
886
926
  seenFileURI.add(symlink.realPath);
887
927
  }
888
928
  }
889
- return result;
929
+ return result.sort((a, b) => ( a.uri.toString()).localeCompare(( b.uri.toString())));
890
930
  }
891
931
  getAgentFileURIFromModeFile(oldURI) {
892
932
  return this.fileLocator.getAgentFileURIFromModeFile(oldURI);
@@ -917,6 +957,9 @@ let PromptsService = class PromptsService extends Disposable {
917
957
  );
918
958
  if (type === PromptsType.agent) {
919
959
  this.cachedCustomAgents.refresh();
960
+ } else if (type === PromptsType.skill) {
961
+ this.cachedSkills.refresh();
962
+ this.cachedSlashCommands.refresh();
920
963
  }
921
964
  }
922
965
  sanitizeAgentSkillText(text) {
@@ -939,8 +982,7 @@ let PromptsService = class PromptsService extends Disposable {
939
982
  throw ( new SkillMissingDescriptionError(uri));
940
983
  }
941
984
  const sanitizedName = this.truncateAgentSkillName(name, uri);
942
- const skillFolderUri = dirname(uri);
943
- const folderName = basename(skillFolderUri);
985
+ const folderName = getSkillFolderName(uri);
944
986
  if (sanitizedName !== folderName) {
945
987
  this.logger.error(
946
988
  `[validateAndSanitizeSkillFile] Agent skill name "${sanitizedName}" does not match folder name "${folderName}": ${uri}`
@@ -957,10 +999,10 @@ let PromptsService = class PromptsService extends Disposable {
957
999
  const MAX_NAME_LENGTH = 64;
958
1000
  const sanitized = this.sanitizeAgentSkillText(name);
959
1001
  if (sanitized !== name) {
960
- this.logger.warn(`[findAgentSkills] Agent skill name contains XML tags, removed: ${uri}`);
1002
+ this.logger.debug(`[findAgentSkills] Agent skill name contains XML tags, removed: ${uri}`);
961
1003
  }
962
1004
  if (sanitized.length > MAX_NAME_LENGTH) {
963
- this.logger.warn(
1005
+ this.logger.debug(
964
1006
  `[findAgentSkills] Agent skill name exceeds ${MAX_NAME_LENGTH} characters, truncated: ${uri}`
965
1007
  );
966
1008
  return sanitized.substring(0, MAX_NAME_LENGTH);
@@ -974,12 +1016,12 @@ let PromptsService = class PromptsService extends Disposable {
974
1016
  const MAX_DESCRIPTION_LENGTH = 1024;
975
1017
  const sanitized = this.sanitizeAgentSkillText(description);
976
1018
  if (sanitized !== description) {
977
- this.logger.warn(
1019
+ this.logger.debug(
978
1020
  `[findAgentSkills] Agent skill description contains XML tags, removed: ${uri}`
979
1021
  );
980
1022
  }
981
1023
  if (sanitized.length > MAX_DESCRIPTION_LENGTH) {
982
- this.logger.warn(
1024
+ this.logger.debug(
983
1025
  `[findAgentSkills] Agent skill description exceeds ${MAX_DESCRIPTION_LENGTH} characters, truncated: ${uri}`
984
1026
  );
985
1027
  return sanitized.substring(0, MAX_DESCRIPTION_LENGTH);
@@ -998,14 +1040,15 @@ let PromptsService = class PromptsService extends Disposable {
998
1040
  const result = await this.cachedSkills.get(token);
999
1041
  if (sessionResource) {
1000
1042
  const elapsed = sw.elapsed();
1001
- const discoveryInfo = await this.getSkillDiscoveryInfo(token);
1002
- const details = result.length === 1 ? ( localize(7333, "Resolved {0} skill in {1}ms", result.length, elapsed.toFixed(1))) : ( localize(7334, "Resolved {0} skills in {1}ms", result.length, elapsed.toFixed(1)));
1003
- this._onDidLogDiscovery.fire({
1004
- sessionResource,
1005
- name: ( localize(7335, "Load Skills")),
1006
- details,
1007
- discoveryInfo,
1008
- category: "discovery"
1043
+ void this.getSkillDiscoveryInfo(token).catch(() => undefined).then(discoveryInfo => {
1044
+ const details = result.length === 1 ? ( localize(7565, "Resolved {0} skill in {1}ms", result.length, elapsed.toFixed(1))) : ( localize(7566, "Resolved {0} skills in {1}ms", result.length, elapsed.toFixed(1)));
1045
+ this._onDidLogDiscovery.fire({
1046
+ sessionResource,
1047
+ name: ( localize(7567, "Load Skills")),
1048
+ details,
1049
+ discoveryInfo,
1050
+ category: "discovery"
1051
+ });
1009
1052
  });
1010
1053
  }
1011
1054
  return result;
@@ -1019,13 +1062,15 @@ let PromptsService = class PromptsService extends Disposable {
1019
1062
  for (const file of files) {
1020
1063
  if (file.status === "loaded" && file.name) {
1021
1064
  const sanitizedDescription = this.truncateAgentSkillDescription(file.description, file.uri);
1065
+ const internalSkill = this.internalCustomizations.getInternalSkillByUri(file.uri);
1022
1066
  result.push({
1023
1067
  uri: file.uri,
1024
1068
  storage: file.storage,
1025
1069
  name: file.name,
1026
1070
  description: sanitizedDescription,
1027
1071
  disableModelInvocation: file.disableModelInvocation ?? false,
1028
- userInvocable: file.userInvocable ?? true
1072
+ userInvocable: file.userInvocable ?? true,
1073
+ when: internalSkill?.when
1029
1074
  });
1030
1075
  }
1031
1076
  }
@@ -1081,15 +1126,16 @@ let PromptsService = class PromptsService extends Disposable {
1081
1126
  const result = await this.cachedHooks.get(token);
1082
1127
  if (sessionResource) {
1083
1128
  const elapsed = sw.elapsed();
1084
- const hookCount = result ? ( Object.values(result.hooks)).reduce((sum, arr) => sum + arr.length, 0) : 0;
1085
- const discoveryInfo = await this.getHookDiscoveryInfo(token);
1086
- const details = hookCount === 1 ? ( localize(7336, "Resolved {0} hook in {1}ms", hookCount, elapsed.toFixed(1))) : ( localize(7337, "Resolved {0} hooks in {1}ms", hookCount, elapsed.toFixed(1)));
1087
- this._onDidLogDiscovery.fire({
1088
- sessionResource,
1089
- name: ( localize(7338, "Load Hooks")),
1090
- details,
1091
- discoveryInfo,
1092
- category: "discovery"
1129
+ void this.getHookDiscoveryInfo(token).catch(() => undefined).then(discoveryInfo => {
1130
+ const hookCount = result ? ( Object.values(result.hooks)).reduce((sum, arr) => sum + arr.length, 0) : 0;
1131
+ const details = hookCount === 1 ? ( localize(7568, "Resolved {0} hook in {1}ms", hookCount, elapsed.toFixed(1))) : ( localize(7569, "Resolved {0} hooks in {1}ms", hookCount, elapsed.toFixed(1)));
1132
+ this._onDidLogDiscovery.fire({
1133
+ sessionResource,
1134
+ name: ( localize(7570, "Load Hooks")),
1135
+ details,
1136
+ discoveryInfo,
1137
+ category: "discovery"
1138
+ });
1093
1139
  });
1094
1140
  }
1095
1141
  return result;
@@ -1099,24 +1145,25 @@ let PromptsService = class PromptsService extends Disposable {
1099
1145
  const result = await this.listPromptFiles(PromptsType.instructions, token);
1100
1146
  if (sessionResource) {
1101
1147
  const elapsed = sw.elapsed();
1102
- const discoveryInfo = await this.getInstructionsDiscoveryInfo(token);
1103
- const details = result.length === 1 ? ( localize(
1104
- 7339,
1105
- "Resolved {0} instruction in {1}ms",
1106
- result.length,
1107
- elapsed.toFixed(1)
1108
- )) : ( localize(
1109
- 7340,
1110
- "Resolved {0} instructions in {1}ms",
1111
- result.length,
1112
- elapsed.toFixed(1)
1113
- ));
1114
- this._onDidLogDiscovery.fire({
1115
- sessionResource,
1116
- name: ( localize(7341, "Load Instructions")),
1117
- details,
1118
- discoveryInfo,
1119
- category: "discovery"
1148
+ void this.getInstructionsDiscoveryInfo(token).catch(() => undefined).then(discoveryInfo => {
1149
+ const details = result.length === 1 ? ( localize(
1150
+ 7571,
1151
+ "Resolved {0} instruction in {1}ms",
1152
+ result.length,
1153
+ elapsed.toFixed(1)
1154
+ )) : ( localize(
1155
+ 7572,
1156
+ "Resolved {0} instructions in {1}ms",
1157
+ result.length,
1158
+ elapsed.toFixed(1)
1159
+ ));
1160
+ this._onDidLogDiscovery.fire({
1161
+ sessionResource,
1162
+ name: ( localize(7573, "Load Instructions")),
1163
+ details,
1164
+ discoveryInfo,
1165
+ category: "discovery"
1166
+ });
1120
1167
  });
1121
1168
  }
1122
1169
  return result;
@@ -1189,6 +1236,9 @@ let PromptsService = class PromptsService extends Disposable {
1189
1236
  }
1190
1237
  const plugins = this.agentPluginService.plugins.get();
1191
1238
  for (const plugin of plugins) {
1239
+ if (!isContributionEnabled(plugin.enablement.get())) {
1240
+ continue;
1241
+ }
1192
1242
  for (const hook of plugin.hooks.get()) {
1193
1243
  let bucket = collectedHooks.get(hook.type);
1194
1244
  if (!bucket) {
@@ -1209,53 +1259,6 @@ let PromptsService = class PromptsService extends Disposable {
1209
1259
  hasDisabledClaudeHooks
1210
1260
  };
1211
1261
  }
1212
- async getPromptDiscoveryInfo(type, token, sessionResource) {
1213
- if (sessionResource) {
1214
- this._onDidLogDiscovery.fire({
1215
- sessionResource,
1216
- name: ( localize(7342, "Discovery {0} (Start)", type)),
1217
- category: "discovery"
1218
- });
1219
- }
1220
- const files = [];
1221
- let result;
1222
- if (type === PromptsType.skill) {
1223
- result = await this.getSkillDiscoveryInfo(token);
1224
- } else if (type === PromptsType.agent) {
1225
- result = await this.getAgentDiscoveryInfo(token);
1226
- } else if (type === PromptsType.prompt) {
1227
- result = await this.getPromptSlashCommandDiscoveryInfo(token);
1228
- } else if (type === PromptsType.instructions) {
1229
- result = await this.getInstructionsDiscoveryInfo(token);
1230
- } else if (type === PromptsType.hook) {
1231
- result = await this.getHookDiscoveryInfo(token);
1232
- } else {
1233
- result = {
1234
- type,
1235
- files
1236
- };
1237
- }
1238
- const loadedCount = result.files.filter(f => f.status === "loaded").length;
1239
- const skippedCount = result.files.filter(f => f.status === "skipped").length;
1240
- if (!result.sourceFolders) {
1241
- const sourceFolders = await this._collectSourceFolderDiagnostics(type, result.files.filter(f => f.status === "loaded"));
1242
- result = {
1243
- ...result,
1244
- sourceFolders
1245
- };
1246
- }
1247
- if (sessionResource) {
1248
- const details = ( localize(7343, "{0} loaded, {1} skipped", loadedCount, skippedCount));
1249
- this._onDidLogDiscovery.fire({
1250
- sessionResource,
1251
- name: ( localize(7344, "Discovery {0} (End)", type)),
1252
- details,
1253
- discoveryInfo: result,
1254
- category: "discovery"
1255
- });
1256
- }
1257
- return result;
1258
- }
1259
1262
  async getSkillDiscoveryInfo(token) {
1260
1263
  const useAgentSkills = this.configurationService.getValue(PromptsConfig.USE_AGENT_SKILLS);
1261
1264
  if (!useAgentSkills) {
@@ -1267,7 +1270,7 @@ let PromptsService = class PromptsService extends Disposable {
1267
1270
  skipReason: "disabled",
1268
1271
  extensionId: promptPath.extension?.identifier?.value
1269
1272
  })));
1270
- const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.skill, []);
1273
+ const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.skill);
1271
1274
  return {
1272
1275
  type: PromptsType.skill,
1273
1276
  files,
@@ -1277,7 +1280,7 @@ let PromptsService = class PromptsService extends Disposable {
1277
1280
  const {
1278
1281
  files
1279
1282
  } = await this.computeSkillDiscoveryInfo(token);
1280
- const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.skill, files.filter(f => f.status === "loaded"));
1283
+ const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.skill);
1281
1284
  return {
1282
1285
  type: PromptsType.skill,
1283
1286
  files,
@@ -1301,6 +1304,10 @@ let PromptsService = class PromptsService extends Disposable {
1301
1304
  fileUri: p.uri,
1302
1305
  storage: p.storage,
1303
1306
  source: PromptFileSource.Plugin
1307
+ }))), ...( this.internalCustomizations.getSkills().map(s => ({
1308
+ fileUri: s.uri,
1309
+ storage: s.storage,
1310
+ source: PromptFileSource.Internal
1304
1311
  }))));
1305
1312
  const getPriority = skill => {
1306
1313
  if (skill.storage === PromptsStorage.local) {
@@ -1332,41 +1339,22 @@ let PromptsService = class PromptsService extends Disposable {
1332
1339
  const extensionId = extensionIdByUri.get(( uri.toString()));
1333
1340
  try {
1334
1341
  const parsedFile = await this.parseNew(uri, token);
1335
- const name = parsedFile.header?.name;
1342
+ const folderName = getSkillFolderName(uri);
1343
+ let name = parsedFile.header?.name;
1336
1344
  if (!name) {
1337
- this.logger.error(
1338
- `[computeSkillDiscoveryInfo] Agent skill file missing name attribute: ${uri}`
1345
+ this.logger.debug(
1346
+ `[computeSkillDiscoveryInfo] Agent skill file missing name attribute, using folder name "${folderName}": ${uri}`
1339
1347
  );
1340
- files.push({
1341
- uri,
1342
- storage,
1343
- status: "skipped",
1344
- skipReason: "missing-name",
1345
- extensionId,
1346
- source
1347
- });
1348
- continue;
1348
+ name = folderName;
1349
1349
  }
1350
1350
  const sanitizedName = this.truncateAgentSkillName(name, uri);
1351
- const skillFolderUri = dirname(uri);
1352
- const folderName = basename(skillFolderUri);
1353
1351
  if (sanitizedName !== folderName) {
1354
- this.logger.error(
1355
- `[computeSkillDiscoveryInfo] Agent skill name "${sanitizedName}" does not match folder name "${folderName}": ${uri}`
1352
+ this.logger.debug(
1353
+ `[computeSkillDiscoveryInfo] Agent skill name "${sanitizedName}" does not match folder name "${folderName}", using folder name: ${uri}`
1356
1354
  );
1357
- files.push({
1358
- uri,
1359
- storage,
1360
- status: "skipped",
1361
- skipReason: "name-mismatch",
1362
- name: sanitizedName,
1363
- extensionId,
1364
- source
1365
- });
1366
- continue;
1367
1355
  }
1368
1356
  if (( seenNames.has(sanitizedName))) {
1369
- this.logger.warn(
1357
+ this.logger.debug(
1370
1358
  `[computeSkillDiscoveryInfo] Skipping duplicate agent skill name: ${sanitizedName} at ${uri}`
1371
1359
  );
1372
1360
  files.push({
@@ -1382,21 +1370,6 @@ let PromptsService = class PromptsService extends Disposable {
1382
1370
  continue;
1383
1371
  }
1384
1372
  const description = parsedFile.header?.description;
1385
- if (!description) {
1386
- this.logger.error(
1387
- `[computeSkillDiscoveryInfo] Agent skill file missing description attribute: ${uri}`
1388
- );
1389
- files.push({
1390
- uri,
1391
- storage,
1392
- status: "skipped",
1393
- skipReason: "missing-description",
1394
- name: sanitizedName,
1395
- extensionId,
1396
- source
1397
- });
1398
- continue;
1399
- }
1400
1373
  seenNames.add(sanitizedName);
1401
1374
  nameToUri.set(sanitizedName, uri);
1402
1375
  const disableModelInvocation = parsedFile.header?.disableModelInvocation === true;
@@ -1474,7 +1447,7 @@ let PromptsService = class PromptsService extends Disposable {
1474
1447
  });
1475
1448
  }
1476
1449
  }
1477
- const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.agent, files.filter(f => f.status === "loaded"));
1450
+ const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.agent);
1478
1451
  return {
1479
1452
  type: PromptsType.agent,
1480
1453
  files,
@@ -1509,7 +1482,7 @@ let PromptsService = class PromptsService extends Disposable {
1509
1482
  });
1510
1483
  }
1511
1484
  }
1512
- const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.prompt, files.filter(f => f.status === "loaded"));
1485
+ const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.prompt);
1513
1486
  return {
1514
1487
  type: PromptsType.prompt,
1515
1488
  files,
@@ -1544,7 +1517,7 @@ let PromptsService = class PromptsService extends Disposable {
1544
1517
  });
1545
1518
  }
1546
1519
  }
1547
- const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.instructions, files.filter(f => f.status === "loaded"));
1520
+ const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.instructions);
1548
1521
  return {
1549
1522
  type: PromptsType.instructions,
1550
1523
  files,
@@ -1634,7 +1607,7 @@ let PromptsService = class PromptsService extends Disposable {
1634
1607
  });
1635
1608
  }
1636
1609
  }
1637
- const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.hook, files.filter(f => f.status === "loaded"));
1610
+ const sourceFolders = await this._collectSourceFolderDiagnostics(PromptsType.hook);
1638
1611
  return {
1639
1612
  type: PromptsType.hook,
1640
1613
  files,
@@ -1740,6 +1713,10 @@ var IAgentSource;
1740
1713
  storage: PromptsStorage.plugin,
1741
1714
  pluginUri: promptPath.pluginUri
1742
1715
  };
1716
+ } else if (promptPath.storage === PromptsStorage.internal) {
1717
+ return {
1718
+ storage: PromptsStorage.internal
1719
+ };
1743
1720
  } else {
1744
1721
  return {
1745
1722
  storage: promptPath.storage