@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
@@ -6,16 +6,17 @@ import { ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/
6
6
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
7
  import { FileOperationError, FileOperationResult } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files';
8
8
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
9
- import { PromptsConfig, isTildePath, getPromptFileLocationsConfigKey } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
10
- import { dirname, joinPath, basename, isEqual, isEqualOrParent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
9
+ import { PromptsConfig, getPromptFileLocationsConfigKey, isTildePath } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
10
+ import { dirname, isEqual, joinPath, basename, isEqualOrParent, extname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
11
11
  import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
12
12
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
13
- import { getPromptFileType, PromptFileSource, getPromptFileDefaultLocations, getPromptFileExtension, COPILOT_CUSTOM_INSTRUCTIONS_FILENAME, LEGACY_MODE_FILE_EXTENSION, AGENTS_SOURCE_FOLDER, getCleanPromptName, AGENT_FILE_EXTENSION, SKILL_FILENAME } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
13
+ import { PromptFileSource, getPromptFileType, getPromptFileExtension, getPromptFileDefaultLocations, LEGACY_MODE_FILE_EXTENSION, AGENTS_SOURCE_FOLDER, getCleanPromptName, AGENT_FILE_EXTENSION, SKILL_FILENAME } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
14
14
  import { PromptsType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
15
15
  import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
16
16
  import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
17
17
  import { getExcludes, QueryType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/search/common/search';
18
18
  import { ISearchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/search/common/search.service';
19
+ import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
19
20
  import { isCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
20
21
  import { PromptsStorage, AgentFileType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
21
22
  import { IUserDataProfileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
@@ -23,6 +24,8 @@ import { Event, Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/comm
23
24
  import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
24
25
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
25
26
  import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service';
27
+ import { equalsIgnoreCase } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
28
+ import { IWorkspaceTrustManagementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service';
26
29
 
27
30
  const MAX_INSTRUCTIONS_RECURSION_DEPTH = 5;
28
31
  let PromptFilesLocator = class PromptFilesLocator {
@@ -34,7 +37,8 @@ let PromptFilesLocator = class PromptFilesLocator {
34
37
  searchService,
35
38
  userDataService,
36
39
  logService,
37
- pathService
40
+ pathService,
41
+ workspaceTrustManagementService
38
42
  ) {
39
43
  this.fileService = fileService;
40
44
  this.configService = configService;
@@ -44,6 +48,17 @@ let PromptFilesLocator = class PromptFilesLocator {
44
48
  this.userDataService = userDataService;
45
49
  this.logService = logService;
46
50
  this.pathService = pathService;
51
+ this.workspaceTrustManagementService = workspaceTrustManagementService;
52
+ const userDataPromptsHome = this.userDataService.currentProfile.promptsHome;
53
+ this.userDataFolder = {
54
+ uri: userDataPromptsHome,
55
+ parent: userDataPromptsHome,
56
+ filePattern: undefined,
57
+ source: PromptFileSource.CopilotPersonal,
58
+ storage: PromptsStorage.user,
59
+ displayPath: ( localize(7574, "User Data")),
60
+ isDefault: true
61
+ };
47
62
  }
48
63
  getWorkspaceFolders() {
49
64
  return this.workspaceService.getWorkspace().folders;
@@ -54,21 +69,65 @@ let PromptFilesLocator = class PromptFilesLocator {
54
69
  onDidChangeWorkspaceFolders() {
55
70
  return ( Event.map(this.workspaceService.onDidChangeWorkspaceFolders, () => undefined));
56
71
  }
57
- async listFiles(type, storage, token) {
58
- if (storage === PromptsStorage.local) {
59
- return await this.listFilesInLocal(type, token);
60
- } else if (storage === PromptsStorage.user) {
61
- return await this.listFilesInUserData(type, token);
72
+ async getWorkspaceFolderRoots(includeParents, logger) {
73
+ const workspaceFolders = this.getWorkspaceFolders();
74
+ if (includeParents) {
75
+ const roots = ( new ResourceSet());
76
+ const userHome = await this.pathService.userHome();
77
+ for (const workspaceFolder of workspaceFolders) {
78
+ roots.add(workspaceFolder.uri);
79
+ const parents = await this.findParentRepoFolders(workspaceFolder.uri, userHome, roots, logger);
80
+ for (const parent of parents) {
81
+ roots.add(parent);
82
+ }
83
+ }
84
+ return [...roots];
62
85
  }
63
- throw ( new Error(`Unsupported prompt file storage: ${storage}`));
86
+ return ( workspaceFolders.map(f => f.uri));
87
+ }
88
+ async findParentRepoFolders(folderUri, userHome, seen, logger) {
89
+ const candidates = [];
90
+ let current = folderUri;
91
+ let parent = dirname(current);
92
+ do {
93
+ try {
94
+ const isRepoRoot = await this.fileService.exists(joinPath(current, ".git"));
95
+ if (isRepoRoot) {
96
+ if ((await this.workspaceTrustManagementService.getUriTrustInfo(current)).trusted) {
97
+ candidates.push(current);
98
+ return candidates;
99
+ }
100
+ logger?.logInfo(`Repository root found at ${( current.toString())}, but it is not trusted. Skipping parent folder inclusion for this workspace folder.`);
101
+ return [];
102
+ }
103
+ } catch (e) {
104
+ const msg = e instanceof Error ? e.message : String(e);
105
+ logger?.logInfo(`No repository root found for folder ${( folderUri.toString())}. Error accessing ${joinPath(current, ".git")}: ${msg}.`);
106
+ return [];
107
+ }
108
+ candidates.push(current);
109
+ current = parent;
110
+ parent = dirname(current);
111
+ } while (!( seen.has(current)) && current.path !== "/" && !isEqual(userHome, current));
112
+ logger?.logInfo(`No repository root found for folder ${( folderUri.toString())}.`);
113
+ return [];
64
114
  }
65
- async listFilesInUserData(type, token) {
66
- const userStorageFolders = await this.getUserStorageFolders(type);
115
+ async listFiles(type, storage, token) {
116
+ if (storage !== PromptsStorage.user && storage !== PromptsStorage.local) {
117
+ throw ( new Error(`Unsupported prompt file storage: ${storage}`));
118
+ }
119
+ const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
120
+ const absoluteLocations = await this.toAbsoluteLocations(type, configuredLocations.filter(loc => loc.storage === storage));
121
+ if (storage === PromptsStorage.user && (type === PromptsType.agent || type === PromptsType.instructions || type === PromptsType.prompt)) {
122
+ absoluteLocations.push(this.userDataFolder);
123
+ }
67
124
  const paths = ( new ResourceSet());
68
125
  for (const {
69
- uri
70
- } of userStorageFolders) {
71
- const files = await this.resolveFilesAtLocation(uri, type, token);
126
+ parent,
127
+ filePattern
128
+ } of absoluteLocations) {
129
+ const files = (filePattern === undefined) ?
130
+ await this.resolveFilesAtLocation(parent, type, token) : await this.searchFilesInLocation(parent, filePattern, token);
72
131
  for (const file of files) {
73
132
  if (getPromptFileType(file) === type) {
74
133
  paths.add(file);
@@ -80,94 +139,51 @@ let PromptFilesLocator = class PromptFilesLocator {
80
139
  }
81
140
  return [...paths];
82
141
  }
83
- async getUserStorageFolders(type) {
84
- const userHome = await this.pathService.userHome();
85
- const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
86
- const absoluteLocations = this.toAbsoluteLocations(type, configuredLocations, userHome);
87
- const result = absoluteLocations.filter(loc => loc.storage === PromptsStorage.user);
88
- if (type === PromptsType.agent || type === PromptsType.instructions || type === PromptsType.prompt) {
89
- const userDataPromptsHome = this.userDataService.currentProfile.promptsHome;
90
- return [...result, {
91
- uri: userDataPromptsHome,
92
- source: PromptFileSource.CopilotPersonal,
93
- storage: PromptsStorage.user,
94
- displayPath: ( localize(7345, "User Data")),
95
- isDefault: true
96
- }];
97
- }
98
- return result;
99
- }
100
- getSourceFoldersSync(type, userHome) {
101
- const result = [];
102
- const folders = this.getWorkspaceFolders();
103
- const defaultFileOrFolders = getPromptFileDefaultLocations(type);
104
- const getFolderUri = (type, fileOrFolderPath) => {
105
- if (type === PromptsType.hook && fileOrFolderPath.path.toLowerCase().endsWith(".json")) {
106
- return dirname(fileOrFolderPath);
107
- }
108
- return fileOrFolderPath;
109
- };
110
- for (const sourceFileOrFolder of defaultFileOrFolders) {
111
- let fileOrFolderPath;
112
- if (sourceFileOrFolder.storage === PromptsStorage.local) {
113
- for (const workspaceFolder of folders) {
114
- fileOrFolderPath = joinPath(workspaceFolder.uri, sourceFileOrFolder.path);
115
- result.push(getFolderUri(type, fileOrFolderPath));
116
- }
117
- } else if (sourceFileOrFolder.storage === PromptsStorage.user) {
118
- const relativePath = isTildePath(sourceFileOrFolder.path) ? sourceFileOrFolder.path.substring(2) : sourceFileOrFolder.path;
119
- fileOrFolderPath = joinPath(userHome, relativePath);
120
- result.push(getFolderUri(type, fileOrFolderPath));
121
- }
122
- }
123
- return result;
124
- }
125
142
  createFilesUpdatedEvent(type) {
126
143
  const disposables = ( new DisposableStore());
127
144
  const eventEmitter = disposables.add(( new Emitter()));
128
- const userDataFolder = this.userDataService.currentProfile.promptsHome;
129
- const key = getPromptFileLocationsConfigKey(type);
130
- let parentFolders = this.getLocalParentFolders(type);
131
- let allSourceFolders = [];
145
+ const token = disposables.add(( new CancellationTokenSource())).token;
132
146
  const externalFolderWatchers = disposables.add(( new DisposableStore()));
147
+ const key = getPromptFileLocationsConfigKey(type);
148
+ const userDataFolder = this.userDataService.currentProfile.promptsHome;
149
+ let parentFolders = [];
133
150
  const updateExternalFolderWatchers = () => {
134
151
  externalFolderWatchers.clear();
135
152
  for (const folder of parentFolders) {
136
153
  if (!this.getWorkspaceFolder(folder.parent)) {
137
- const recursive = folder.filePattern !== undefined;
154
+ const recursive = folder.filePattern !== undefined || type === PromptsType.instructions;
138
155
  externalFolderWatchers.add(this.fileService.watch(folder.parent, {
139
156
  recursive,
140
157
  excludes: []
141
158
  }));
142
159
  }
143
160
  }
144
- for (const folder of allSourceFolders) {
145
- if (!this.getWorkspaceFolder(folder)) {
146
- externalFolderWatchers.add(this.fileService.watch(folder, {
147
- recursive: true,
148
- excludes: []
149
- }));
161
+ };
162
+ const update = async emitEvent => {
163
+ try {
164
+ const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
165
+ parentFolders = await this.toAbsoluteLocations(type, configuredLocations, undefined);
166
+ if (token.isCancellationRequested) {
167
+ return;
168
+ }
169
+ updateExternalFolderWatchers();
170
+ if (emitEvent) {
171
+ eventEmitter.fire();
150
172
  }
173
+ } catch (err) {
174
+ this.logService.error(`Error updating prompt file watchers after config change:`, err);
151
175
  }
152
176
  };
153
- this.pathService.userHome().then(userHome => {
154
- allSourceFolders = [...this.getSourceFoldersSync(type, userHome)];
155
- updateExternalFolderWatchers();
156
- });
157
177
  disposables.add(this.configService.onDidChangeConfiguration(e => {
158
178
  if (e.affectsConfiguration(key)) {
159
- parentFolders = this.getLocalParentFolders(type);
160
- updateExternalFolderWatchers();
161
- eventEmitter.fire();
179
+ void update(true);
162
180
  }
163
181
  }));
164
182
  disposables.add(this.onDidChangeWorkspaceFolders()(() => {
165
- parentFolders = this.getLocalParentFolders(type);
166
- this.pathService.userHome().then(userHome => {
167
- allSourceFolders = [...this.getSourceFoldersSync(type, userHome)];
168
- updateExternalFolderWatchers();
169
- });
170
- eventEmitter.fire();
183
+ void update(true);
184
+ }));
185
+ disposables.add(this.workspaceTrustManagementService.onDidChangeTrustedFolders(() => {
186
+ void update(true);
171
187
  }));
172
188
  disposables.add(this.fileService.onDidFilesChange(e => {
173
189
  if (e.affects(userDataFolder)) {
@@ -178,76 +194,72 @@ let PromptFilesLocator = class PromptFilesLocator {
178
194
  eventEmitter.fire();
179
195
  return;
180
196
  }
181
- if (( allSourceFolders.some(folder => e.affects(folder)))) {
182
- eventEmitter.fire();
183
- return;
184
- }
185
197
  }));
186
198
  disposables.add(this.fileService.watch(userDataFolder));
199
+ void update(false);
187
200
  return {
188
201
  event: eventEmitter.event,
189
202
  dispose: () => disposables.dispose()
190
203
  };
191
204
  }
192
205
  async getHookSourceFolders() {
193
- const userHome = await this.pathService.userHome();
194
206
  const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, PromptsType.hook);
195
207
  const allowedHookFolders = configuredLocations.filter(loc => !loc.path.startsWith(".claude/") && !loc.path.includes("/.claude/"));
196
208
  const result = ( new ResourceSet());
197
- const absoluteLocations = this.toAbsoluteLocations(PromptsType.hook, allowedHookFolders, userHome);
209
+ const absoluteLocations = await this.toAbsoluteLocations(PromptsType.hook, allowedHookFolders);
198
210
  for (const location of absoluteLocations) {
199
- const isSpecificFile = location.uri.path.endsWith(".json");
200
- if (isSpecificFile) {
201
- result.add(dirname(location.uri));
202
- } else {
203
- result.add(location.uri);
204
- }
211
+ result.add(location.parent);
205
212
  }
206
213
  return [...result];
207
214
  }
208
215
  async getConfigBasedSourceFolders(type) {
209
- const userHome = await this.pathService.userHome();
210
216
  const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
211
- const absoluteLocations = ( this.toAbsoluteLocations(type, configuredLocations, userHome).map(l => l.uri));
217
+ const absoluteLocations = await this.toAbsoluteLocations(type, configuredLocations);
212
218
  if (type !== PromptsType.prompt && type !== PromptsType.instructions) {
213
- return absoluteLocations;
219
+ return ( absoluteLocations.map(l => l.uri));
214
220
  }
215
221
  const result = ( new ResourceSet());
216
- for (let absoluteLocation of absoluteLocations) {
217
- const baseName = basename(absoluteLocation);
222
+ for (const absoluteLocation of absoluteLocations) {
223
+ let location = absoluteLocation.uri;
224
+ const baseName = basename(location);
218
225
  const filePatterns = ["*.md", `*${getPromptFileExtension(type)}`];
219
226
  for (const filePattern of filePatterns) {
220
227
  if (baseName === filePattern) {
221
- absoluteLocation = dirname(absoluteLocation);
228
+ location = dirname(location);
222
229
  continue;
223
230
  }
224
231
  }
225
232
  if (baseName === "*") {
226
- absoluteLocation = dirname(absoluteLocation);
233
+ location = dirname(location);
227
234
  }
228
- if (isValidGlob(absoluteLocation.path) === true) {
235
+ if (isValidGlob(location.path) === true) {
229
236
  continue;
230
237
  }
231
- result.add(absoluteLocation);
238
+ result.add(location);
232
239
  }
233
240
  return [...result];
234
241
  }
235
242
  async getResolvedSourceFolders(type) {
236
- const localFolders = await this.getLocalStorageFolders(type);
237
- const userFolders = await this.getUserStorageFolders(type);
243
+ const absoluteLocations = await this.getLocalStorageFolders(type);
244
+ const localFolders = absoluteLocations.filter(loc => loc.storage === PromptsStorage.local);
245
+ const userFolders = absoluteLocations.filter(loc => loc.storage === PromptsStorage.user);
238
246
  return this.dedupeSourceFolders([...localFolders, ...userFolders]);
239
247
  }
240
248
  async getSourceFoldersInDiscoveryOrder(type) {
241
- const userFolders = await this.getUserStorageFolders(type);
242
- const localFolders = await this.getLocalStorageFolders(type);
249
+ const absoluteLocations = await this.getLocalStorageFolders(type);
250
+ const userFolders = absoluteLocations.filter(loc => loc.storage === PromptsStorage.user);
251
+ const localFolders = absoluteLocations.filter(loc => loc.storage === PromptsStorage.local);
243
252
  return this.dedupeSourceFolders([...userFolders, ...localFolders]);
244
253
  }
245
254
  async getLocalStorageFolders(type) {
246
- const userHome = await this.pathService.userHome();
247
255
  const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
248
256
  const defaultFolders = getPromptFileDefaultLocations(type);
249
257
  const allFolders = [...defaultFolders, ...configuredLocations.filter(loc => !( defaultFolders.some(df => df.path === loc.path)))];
250
- return this.toAbsoluteLocations(type, allFolders, userHome, defaultFolders);
258
+ const absoluteLocations = await this.toAbsoluteLocations(type, allFolders, defaultFolders);
259
+ if (type === PromptsType.agent || type === PromptsType.instructions || type === PromptsType.prompt) {
260
+ absoluteLocations.push(this.userDataFolder);
261
+ }
262
+ return absoluteLocations;
251
263
  }
252
264
  dedupeSourceFolders(folders) {
253
265
  const seen = ( new ResourceSet());
@@ -260,34 +272,13 @@ let PromptFilesLocator = class PromptFilesLocator {
260
272
  }
261
273
  return result;
262
274
  }
263
- async listFilesInLocal(type, token) {
264
- const paths = ( new ResourceSet());
265
- for (const {
266
- parent,
267
- filePattern
268
- } of this.getLocalParentFolders(type)) {
269
- const files = (filePattern === undefined) ?
270
- await this.resolveFilesAtLocation(parent, type, token) : await this.searchFilesInLocation(parent, filePattern, token);
271
- for (const file of files) {
272
- if (getPromptFileType(file) === type) {
273
- paths.add(file);
274
- }
275
- }
276
- if (token.isCancellationRequested) {
277
- return [];
278
- }
279
- }
280
- return [...paths];
281
- }
282
- getLocalParentFolders(type) {
283
- const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
284
- const absoluteLocations = this.toAbsoluteLocations(type, configuredLocations, undefined);
285
- return ( absoluteLocations.map(location => firstNonGlobParentAndPattern(location.uri)));
286
- }
287
- toAbsoluteLocations(type, configuredLocations, userHome, defaultLocations) {
275
+ async toAbsoluteLocations(type, configuredLocations, defaultLocations) {
288
276
  const result = [];
289
277
  const seen = ( new ResourceSet());
290
- const folders = this.getWorkspaceFolders();
278
+ const userHome = await this.pathService.userHome();
279
+ const rootFolders = await this.getWorkspaceFolderRoots(
280
+ this.configService.getValue(PromptsConfig.USE_CUSTOMIZATIONS_IN_PARENT_REPOS) === true
281
+ );
291
282
  const defaultPaths = ( new Set(defaultLocations?.map(loc => loc.path)));
292
283
  const validLocations = configuredLocations.filter(sourceFolder => {
293
284
  if (type === PromptsType.instructions || type === PromptsType.prompt) {
@@ -319,18 +310,22 @@ let PromptFilesLocator = class PromptFilesLocator {
319
310
  const isDefault = defaultPaths?.has(configuredLocation);
320
311
  try {
321
312
  if (isTildePath(configuredLocation)) {
322
- if (userHome) {
323
- const uri = joinPath(userHome, configuredLocation.substring(2));
324
- if (!( seen.has(uri))) {
325
- seen.add(uri);
326
- result.push({
327
- uri,
328
- source: sourceFolder.source,
329
- storage: sourceFolder.storage,
330
- displayPath: configuredLocation,
331
- isDefault
332
- });
333
- }
313
+ const uri = joinPath(userHome, configuredLocation.substring(2));
314
+ if (!( seen.has(uri))) {
315
+ seen.add(uri);
316
+ const {
317
+ parent,
318
+ filePattern
319
+ } = getParentFolder(type, uri);
320
+ result.push({
321
+ uri,
322
+ parent,
323
+ filePattern,
324
+ source: sourceFolder.source,
325
+ storage: sourceFolder.storage,
326
+ displayPath: configuredLocation,
327
+ isDefault
328
+ });
334
329
  }
335
330
  continue;
336
331
  }
@@ -345,8 +340,14 @@ let PromptFilesLocator = class PromptFilesLocator {
345
340
  }
346
341
  if (!( seen.has(uri))) {
347
342
  seen.add(uri);
343
+ const {
344
+ parent,
345
+ filePattern
346
+ } = getParentFolder(type, uri);
348
347
  result.push({
349
348
  uri,
349
+ parent,
350
+ filePattern,
350
351
  source: sourceFolder.source,
351
352
  storage: sourceFolder.storage,
352
353
  displayPath: configuredLocation,
@@ -354,12 +355,18 @@ let PromptFilesLocator = class PromptFilesLocator {
354
355
  });
355
356
  }
356
357
  } else {
357
- for (const workspaceFolder of folders) {
358
- const absolutePath = joinPath(workspaceFolder.uri, configuredLocation);
358
+ for (const folder of rootFolders) {
359
+ const absolutePath = joinPath(folder, configuredLocation);
359
360
  if (!( seen.has(absolutePath))) {
360
361
  seen.add(absolutePath);
362
+ const {
363
+ parent,
364
+ filePattern
365
+ } = getParentFolder(type, absolutePath);
361
366
  result.push({
362
367
  uri: absolutePath,
368
+ parent,
369
+ filePattern,
363
370
  source: sourceFolder.source,
364
371
  storage: sourceFolder.storage,
365
372
  displayPath: configuredLocation,
@@ -444,27 +451,6 @@ let PromptFilesLocator = class PromptFilesLocator {
444
451
  }
445
452
  return [];
446
453
  }
447
- async findCopilotInstructionsMDsInWorkspace(token) {
448
- const result = [];
449
- const folders = this.getWorkspaceFolders();
450
- for (const folder of folders) {
451
- const file = joinPath(folder.uri, `.github/` + COPILOT_CUSTOM_INSTRUCTIONS_FILENAME);
452
- try {
453
- const stat = await this.fileService.stat(file);
454
- if (stat.isFile) {
455
- const realPath = stat.isSymbolicLink ? await this.fileService.realpath(file) : undefined;
456
- result.push({
457
- uri: file,
458
- realPath,
459
- type: AgentFileType.copilotInstructionsMd
460
- });
461
- }
462
- } catch (error) {
463
- this.logService.trace(`[PromptFilesLocator] Skipping copilot-instructions.md at ${( file.toString())}: ${error}`);
464
- }
465
- }
466
- return result;
467
- }
468
454
  async findAgentMDsInWorkspace(token) {
469
455
  const result = await Promise.all(( this.getWorkspaceFolders().map(folder => this.findAgentMDsInFolder(folder.uri, token))));
470
456
  return result.flat(1);
@@ -539,31 +525,28 @@ let PromptFilesLocator = class PromptFilesLocator {
539
525
  await traverse(folder);
540
526
  return result;
541
527
  }
542
- async findFilesInWorkspaceRoots(fileName, folder, type, token, result = []) {
543
- const folders = this.getWorkspaceFolders();
544
- if (folder) {
545
- return this.findFilesInRoots(( folders.map(f => joinPath(f.uri, folder))), fileName, type, token, result);
546
- }
547
- return this.findFilesInRoots(( folders.map(f => f.uri)), fileName, type, token, result);
548
- }
549
- async findFilesInRoots(roots, fileName, type, token, result = []) {
550
- const fileNameLower = fileName.toLowerCase();
551
- const resolvedRoots = await this.fileService.resolveAll(( roots.map(uri => ({
552
- resource: uri
553
- }))));
528
+ async findFilesInRoots(roots, folder, paths, token, result = []) {
529
+ const toResolve = ( roots.map(root => ({
530
+ resource: folder !== undefined ? joinPath(root, folder) : root
531
+ })));
532
+ const resolvedRoots = await this.fileService.resolveAll(toResolve);
554
533
  if (token.isCancellationRequested) {
555
534
  return result;
556
535
  }
557
536
  for (const root of resolvedRoots) {
558
537
  if (root.success && root.stat?.children) {
559
- const file = root.stat.children.find(c => c.isFile && c.name.toLowerCase() === fileNameLower);
560
- if (file) {
561
- const realPath = file.isSymbolicLink ? await this.fileService.realpath(file.resource) : undefined;
562
- result.push({
563
- uri: file.resource,
564
- realPath,
565
- type
566
- });
538
+ for (const child of root.stat.children) {
539
+ if (child.isFile) {
540
+ const matchingPath = paths.find(p => equalsIgnoreCase(p.fileName, child.name));
541
+ if (matchingPath) {
542
+ const realPath = child.isSymbolicLink ? await this.fileService.realpath(child.resource) : undefined;
543
+ result.push({
544
+ uri: child.resource,
545
+ realPath,
546
+ type: matchingPath.type
547
+ });
548
+ }
549
+ }
567
550
  }
568
551
  }
569
552
  }
@@ -618,9 +601,8 @@ let PromptFilesLocator = class PromptFilesLocator {
618
601
  }
619
602
  }
620
603
  async findAgentSkills(token) {
621
- const userHome = await this.pathService.userHome();
622
604
  const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, PromptsType.skill);
623
- const absoluteLocations = this.toAbsoluteLocations(PromptsType.skill, configuredLocations, userHome);
605
+ const absoluteLocations = await this.toAbsoluteLocations(PromptsType.skill, configuredLocations);
624
606
  const allResults = [];
625
607
  for (const {
626
608
  uri,
@@ -640,7 +622,7 @@ let PromptFilesLocator = class PromptFilesLocator {
640
622
  return allResults;
641
623
  }
642
624
  };
643
- PromptFilesLocator = ( __decorate([( __param(0, IFileService)), ( __param(1, IConfigurationService)), ( __param(2, IWorkspaceContextService)), ( __param(3, IWorkbenchEnvironmentService)), ( __param(4, ISearchService)), ( __param(5, IUserDataProfileService)), ( __param(6, ILogService)), ( __param(7, IPathService))], PromptFilesLocator));
625
+ PromptFilesLocator = ( __decorate([( __param(0, IFileService)), ( __param(1, IConfigurationService)), ( __param(2, IWorkspaceContextService)), ( __param(3, IWorkbenchEnvironmentService)), ( __param(4, ISearchService)), ( __param(5, IUserDataProfileService)), ( __param(6, ILogService)), ( __param(7, IPathService)), ( __param(8, IWorkspaceTrustManagementService))], PromptFilesLocator));
644
626
  function hasGlobPattern(path) {
645
627
  return path.includes("*");
646
628
  }
@@ -694,7 +676,15 @@ function isValidGlob(pattern) {
694
676
  }
695
677
  return false;
696
678
  }
697
- function firstNonGlobParentAndPattern(location) {
679
+ function getParentFolder(type, location) {
680
+ if (type === PromptsType.hook && extname(location) === ".json") {
681
+ location = dirname(location);
682
+ }
683
+ if (type !== PromptsType.instructions && type !== PromptsType.prompt) {
684
+ return {
685
+ parent: location
686
+ };
687
+ }
698
688
  const segments = location.path.split("/");
699
689
  let i = 0;
700
690
  while (i < segments.length && isValidGlob(segments[i]) === false) {
@@ -0,0 +1,24 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
5
+ import { IChatArtifactsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/chatArtifactsService.service";
6
+ export interface IChatArtifact {
7
+ readonly label: string;
8
+ readonly uri: string;
9
+ readonly toolCallId?: string;
10
+ readonly dataPartIndex?: number;
11
+ readonly type: "devServer" | "screenshot" | "plan" | undefined;
12
+ }
13
+ export declare class ChatArtifactsService extends Disposable implements IChatArtifactsService {
14
+ readonly _serviceBrand: undefined;
15
+ private readonly _onDidUpdateArtifacts;
16
+ readonly onDidUpdateArtifacts: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<URI>;
17
+ private readonly _storage;
18
+ private readonly _observables;
19
+ constructor(storageService: IStorageService);
20
+ getArtifacts(sessionResource: URI): readonly IChatArtifact[];
21
+ setArtifacts(sessionResource: URI, artifacts: IChatArtifact[]): void;
22
+ migrateArtifacts(oldSessionResource: URI, newSessionResource: URI): void;
23
+ artifacts(sessionResource: URI): IObservable<readonly IChatArtifact[]>;
24
+ }