@codingame/monaco-vscode-chat-service-override 25.1.2 → 26.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 (334) hide show
  1. package/index.js +24 -3
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +23 -3
  4. package/vscode/src/vs/platform/browserElements/common/browserElements.js +13 -6
  5. package/vscode/src/vs/platform/domWidget/browser/domWidget.js +4 -4
  6. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +42 -27
  8. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +14 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +218 -74
  10. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatTerminalOutputAccessibleView.js +6 -8
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +14 -9
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +165 -168
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +27 -25
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +141 -140
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +189 -121
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +14 -15
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +60 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +435 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +28 -12
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +10 -12
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +37 -16
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.d.ts +11 -0
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +54 -24
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +73 -34
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +71 -30
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +151 -89
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +12 -15
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +39 -40
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +90 -125
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +5 -2
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +263 -143
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.js +4 -4
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +188 -126
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -1
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +37 -28
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +21 -9
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +392 -226
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +31 -27
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +25 -23
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +1 -3
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.d.ts +2 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +13 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +20 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +83 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +68 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +319 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.d.ts +1 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +215 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +179 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +951 -0
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agentsessionprojection.css +20 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +388 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/unifiedQuickAccess.css +195 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +120 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +394 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.d.ts +38 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +95 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +3 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +31 -29
  61. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +49 -47
  62. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +4 -6
  63. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/media/simpleBrowserOverlay.css +0 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +188 -151
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +1012 -639
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +256 -151
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +8 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +182 -101
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +79 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +193 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +9 -7
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.d.ts +68 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +253 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +69 -50
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -4
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +52 -33
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +5 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +274 -155
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +2 -10
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +130 -104
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +12 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +385 -160
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +53 -36
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +112 -75
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +19 -10
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +31 -11
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +39 -17
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNewNotebookContentEdits.js +10 -14
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +0 -2
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +25 -16
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +265 -203
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +29 -26
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.js +114 -60
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +16 -19
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +44 -30
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +119 -45
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +152 -136
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +12 -8
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +51 -31
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +323 -217
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -3
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +653 -401
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +52 -40
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +5 -2
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +43 -28
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +182 -136
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +33 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +548 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +222 -138
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +3 -3
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +151 -113
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +6 -4
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +453 -217
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +162 -88
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/media/chatSetup.css +2 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +0 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +1 -13
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +309 -233
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +55 -53
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.js +3 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +37 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +109 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +35 -23
  132. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.d.ts +9 -4
  133. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +73 -33
  134. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +47 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +333 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +39 -25
  137. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +9 -5
  138. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +23 -20
  139. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +20 -16
  141. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +65 -57
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +48 -36
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +20 -12
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +52 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +155 -159
  147. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +24 -14
  148. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +521 -246
  149. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +107 -76
  150. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +28 -24
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.js +10 -6
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.d.ts +16 -0
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.js +57 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatLayoutService.js +4 -6
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +56 -44
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +0 -3
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +37 -47
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatEditorInputContentProvider.js +5 -7
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +10 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +1284 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +179 -125
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +9 -11
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/editorHoverWrapper.js +7 -6
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +96 -78
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +58 -53
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +25 -11
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +484 -292
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.d.ts +1 -6
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +65 -92
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +16 -19
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +1 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +9 -1
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +331 -189
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +81 -93
  175. package/vscode/src/vs/workbench/contrib/chat/common/ignoredFiles.js +1 -3
  176. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -3
  177. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +6 -7
  178. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +36 -8
  179. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +169 -31
  180. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.d.ts +6 -0
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +141 -0
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -4
  183. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +218 -144
  184. package/vscode/src/vs/workbench/contrib/chat/common/model/chatTransferService.js +20 -10
  185. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +109 -0
  186. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +349 -0
  187. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +9 -8
  188. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +9 -0
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +139 -36
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +3 -6
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +64 -51
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +49 -34
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +21 -13
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +125 -97
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +91 -131
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +8 -5
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +488 -222
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +32 -12
  201. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +58 -13
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +717 -200
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +79 -18
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +371 -130
  205. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +0 -1
  206. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +3 -7
  207. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +79 -61
  208. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +27 -21
  209. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +7 -10
  210. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -1
  211. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +26 -32
  212. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +2 -2
  213. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -60
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +115 -426
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +15 -0
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +127 -0
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -37
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +16 -0
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +21 -0
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +51 -0
  221. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +334 -0
  222. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.d.ts +41 -0
  223. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +424 -0
  224. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.d.ts +4 -0
  225. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +58 -0
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.d.ts +7 -0
  227. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +195 -0
  228. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.d.ts +8 -0
  229. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +368 -0
  230. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.d.ts +2 -0
  231. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +7 -0
  232. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +1 -1
  234. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +23 -25
  235. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/common/remoteCodingAgentsService.js +7 -8
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +34 -38
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +8 -12
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +103 -95
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +28 -16
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +4 -5
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +12 -8
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +65 -54
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +86 -60
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +13 -26
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -1
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +56 -46
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +2 -2
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +63 -31
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +2 -1
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +35 -30
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -1
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +44 -37
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +3 -4
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +3 -3
  258. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -0
  259. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +70 -50
  260. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +26 -394
  261. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +85 -49
  262. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +68 -27
  263. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +1 -0
  264. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +67 -45
  265. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.d.ts +12 -0
  266. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +106 -0
  267. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +2 -2
  268. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +177 -97
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +136 -49
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +2 -1
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +128 -112
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +51 -49
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +8 -0
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +25 -0
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +12 -0
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +21 -0
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +5 -14
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +2 -4
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +1 -0
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -0
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +29 -0
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +30 -31
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +16 -17
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +19 -20
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.d.ts +11 -0
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +58 -0
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +31 -3
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +325 -199
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -1
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +1 -1
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +33 -38
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +45 -5
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +746 -456
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +145 -98
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +88 -37
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +120 -51
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +25 -28
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +5 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +58 -12
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +12 -0
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.js +17 -0
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +8 -1
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +47 -28
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +37 -0
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +171 -0
  313. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +0 -58
  314. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +0 -213
  315. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +0 -39
  316. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +0 -243
  317. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.d.ts +0 -7
  318. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +0 -41
  319. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +0 -166
  320. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +0 -607
  321. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +0 -255
  322. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
  323. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -396
  324. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -9
  325. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -379
  326. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -117
  327. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +0 -141
  328. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +0 -961
  329. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +0 -36
  330. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +0 -447
  331. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.d.ts +0 -6
  332. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.js +0 -251
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.d.ts +0 -10
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +0 -42
@@ -3,12 +3,13 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
3
3
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
4
4
  import { isAbsolute } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
5
5
  import { ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
6
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
6
7
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
7
- import { getPromptFileLocationsConfigKey, PromptsConfig } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
8
- import { basename, dirname, joinPath, isEqualOrParent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
8
+ import { PromptsConfig, getPromptFileLocationsConfigKey, isTildePath } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/config';
9
+ import { joinPath, basename, dirname, isEqualOrParent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
9
10
  import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
10
11
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
11
- import { getPromptFileType, AGENTS_SOURCE_FOLDER, getPromptFileExtension, COPILOT_CUSTOM_INSTRUCTIONS_FILENAME, LEGACY_MODE_FILE_EXTENSION, getCleanPromptName, AGENT_FILE_EXTENSION, DEFAULT_AGENT_SKILLS_WORKSPACE_FOLDERS, DEFAULT_AGENT_SKILLS_USER_HOME_FOLDERS } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/config/promptFileLocations';
12
+ import { getPromptFileType, PromptFileSource, getPromptFileDefaultLocations, DEFAULT_AGENT_SOURCE_FOLDERS, 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';
12
13
  import { PromptsType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
13
14
  import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
14
15
  import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
@@ -23,7 +24,16 @@ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log
23
24
  import { IPathService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/path/common/pathService.service';
24
25
 
25
26
  let PromptFilesLocator = class PromptFilesLocator {
26
- constructor(fileService, configService, workspaceService, environmentService, searchService, userDataService, logService, pathService) {
27
+ constructor(
28
+ fileService,
29
+ configService,
30
+ workspaceService,
31
+ environmentService,
32
+ searchService,
33
+ userDataService,
34
+ logService,
35
+ pathService
36
+ ) {
27
37
  this.fileService = fileService;
28
38
  this.configService = configService;
29
39
  this.workspaceService = workspaceService;
@@ -36,15 +46,62 @@ let PromptFilesLocator = class PromptFilesLocator {
36
46
  async listFiles(type, storage, token) {
37
47
  if (storage === PromptsStorage.local) {
38
48
  return await this.listFilesInLocal(type, token);
39
- }
40
- else if (storage === PromptsStorage.user) {
49
+ } else if (storage === PromptsStorage.user) {
41
50
  return await this.listFilesInUserData(type, token);
42
51
  }
43
52
  throw ( new Error(`Unsupported prompt file storage: ${storage}`));
44
53
  }
45
54
  async listFilesInUserData(type, token) {
46
- const files = await this.resolveFilesAtLocation(this.userDataService.currentProfile.promptsHome, token);
47
- return files.filter(file => getPromptFileType(file) === type);
55
+ const userStorageFolders = await this.getUserStorageFolders(type);
56
+ const paths = ( new ResourceSet());
57
+ for (const {
58
+ uri
59
+ } of userStorageFolders) {
60
+ const files = await this.resolveFilesAtLocation(uri, type, token);
61
+ for (const file of files) {
62
+ if (getPromptFileType(file) === type) {
63
+ paths.add(file);
64
+ }
65
+ }
66
+ if (token.isCancellationRequested) {
67
+ return [];
68
+ }
69
+ }
70
+ return [...paths];
71
+ }
72
+ async getUserStorageFolders(type) {
73
+ const userHome = await this.pathService.userHome();
74
+ const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
75
+ const absoluteLocations = this.toAbsoluteLocations(type, configuredLocations, userHome);
76
+ const result = absoluteLocations.filter(loc => loc.storage === PromptsStorage.user);
77
+ if (type !== PromptsType.skill) {
78
+ const userDataPromptsHome = this.userDataService.currentProfile.promptsHome;
79
+ return [...result, {
80
+ uri: userDataPromptsHome,
81
+ source: PromptFileSource.CopilotPersonal,
82
+ storage: PromptsStorage.user,
83
+ displayPath: ( localize(6382, "User Data")),
84
+ isDefault: true
85
+ }];
86
+ }
87
+ return result;
88
+ }
89
+ getSourceFoldersSync(type, userHome) {
90
+ const result = [];
91
+ const {
92
+ folders
93
+ } = this.workspaceService.getWorkspace();
94
+ const defaultFolders = getPromptFileDefaultLocations(type);
95
+ for (const sourceFolder of defaultFolders) {
96
+ if (sourceFolder.storage === PromptsStorage.local) {
97
+ for (const workspaceFolder of folders) {
98
+ result.push(joinPath(workspaceFolder.uri, sourceFolder.path));
99
+ }
100
+ } else if (sourceFolder.storage === PromptsStorage.user) {
101
+ result.push(joinPath(userHome, sourceFolder.path));
102
+ }
103
+ }
104
+ return result;
48
105
  }
49
106
  createFilesUpdatedEvent(type) {
50
107
  const disposables = ( new DisposableStore());
@@ -52,17 +109,32 @@ let PromptFilesLocator = class PromptFilesLocator {
52
109
  const userDataFolder = this.userDataService.currentProfile.promptsHome;
53
110
  const key = getPromptFileLocationsConfigKey(type);
54
111
  let parentFolders = this.getLocalParentFolders(type);
112
+ let allSourceFolders = [];
55
113
  const externalFolderWatchers = disposables.add(( new DisposableStore()));
56
114
  const updateExternalFolderWatchers = () => {
57
115
  externalFolderWatchers.clear();
58
116
  for (const folder of parentFolders) {
59
117
  if (!this.workspaceService.getWorkspaceFolder(folder.parent)) {
60
118
  const recursive = folder.filePattern !== undefined;
61
- externalFolderWatchers.add(this.fileService.watch(folder.parent, { recursive, excludes: [] }));
119
+ externalFolderWatchers.add(this.fileService.watch(folder.parent, {
120
+ recursive,
121
+ excludes: []
122
+ }));
123
+ }
124
+ }
125
+ for (const folder of allSourceFolders) {
126
+ if (!this.workspaceService.getWorkspaceFolder(folder)) {
127
+ externalFolderWatchers.add(this.fileService.watch(folder, {
128
+ recursive: true,
129
+ excludes: []
130
+ }));
62
131
  }
63
132
  }
64
133
  };
65
- updateExternalFolderWatchers();
134
+ this.pathService.userHome().then(userHome => {
135
+ allSourceFolders = [...this.getSourceFoldersSync(type, userHome)];
136
+ updateExternalFolderWatchers();
137
+ });
66
138
  disposables.add(this.configService.onDidChangeConfiguration(e => {
67
139
  if (e.affectsConfiguration(key)) {
68
140
  parentFolders = this.getLocalParentFolders(type);
@@ -79,27 +151,39 @@ let PromptFilesLocator = class PromptFilesLocator {
79
151
  eventEmitter.fire();
80
152
  return;
81
153
  }
154
+ if (( allSourceFolders.some(folder => e.affects(folder)))) {
155
+ eventEmitter.fire();
156
+ return;
157
+ }
82
158
  }));
83
159
  disposables.add(this.fileService.watch(userDataFolder));
84
- return { event: eventEmitter.event, dispose: () => disposables.dispose() };
160
+ return {
161
+ event: eventEmitter.event,
162
+ dispose: () => disposables.dispose()
163
+ };
85
164
  }
86
- getAgentSourceFolder() {
87
- return this.toAbsoluteLocations([AGENTS_SOURCE_FOLDER]);
165
+ async getAgentSourceFolders() {
166
+ const userHome = await this.pathService.userHome();
167
+ return ( this.toAbsoluteLocations(PromptsType.agent, DEFAULT_AGENT_SOURCE_FOLDERS, userHome).map(l => l.uri));
88
168
  }
89
- getConfigBasedSourceFolders(type) {
169
+ async getConfigBasedSourceFolders(type) {
170
+ const userHome = await this.pathService.userHome();
90
171
  const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
91
- const absoluteLocations = this.toAbsoluteLocations(configuredLocations);
172
+ const absoluteLocations = ( this.toAbsoluteLocations(type, configuredLocations, userHome).map(l => l.uri));
173
+ if (type !== PromptsType.prompt && type !== PromptsType.instructions) {
174
+ return absoluteLocations;
175
+ }
92
176
  const result = ( new ResourceSet());
93
177
  for (let absoluteLocation of absoluteLocations) {
94
178
  const baseName = basename(absoluteLocation);
95
- const filePatterns = ['*.md', `*${getPromptFileExtension(type)}`];
179
+ const filePatterns = ["*.md", `*${getPromptFileExtension(type)}`];
96
180
  for (const filePattern of filePatterns) {
97
181
  if (baseName === filePattern) {
98
182
  absoluteLocation = dirname(absoluteLocation);
99
183
  continue;
100
184
  }
101
185
  }
102
- if (baseName === '*') {
186
+ if (baseName === "*") {
103
187
  absoluteLocation = dirname(absoluteLocation);
104
188
  }
105
189
  if (isValidGlob(absoluteLocation.path) === true) {
@@ -109,12 +193,37 @@ let PromptFilesLocator = class PromptFilesLocator {
109
193
  }
110
194
  return [...result];
111
195
  }
196
+ async getResolvedSourceFolders(type) {
197
+ const localFolders = await this.getLocalStorageFolders(type);
198
+ const userFolders = await this.getUserStorageFolders(type);
199
+ return this.dedupeSourceFolders([...localFolders, ...userFolders]);
200
+ }
201
+ async getLocalStorageFolders(type) {
202
+ const userHome = await this.pathService.userHome();
203
+ const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
204
+ const defaultFolders = getPromptFileDefaultLocations(type);
205
+ const allFolders = [...defaultFolders, ...configuredLocations.filter(loc => !( defaultFolders.some(df => df.path === loc.path)))];
206
+ return this.toAbsoluteLocations(type, allFolders, userHome, defaultFolders);
207
+ }
208
+ dedupeSourceFolders(folders) {
209
+ const seen = ( new ResourceSet());
210
+ const result = [];
211
+ for (const folder of folders) {
212
+ if (!( seen.has(folder.uri))) {
213
+ seen.add(folder.uri);
214
+ result.push(folder);
215
+ }
216
+ }
217
+ return result;
218
+ }
112
219
  async listFilesInLocal(type, token) {
113
220
  const paths = ( new ResourceSet());
114
- for (const { parent, filePattern } of this.getLocalParentFolders(type)) {
115
- const files = (filePattern === undefined)
116
- ? await this.resolveFilesAtLocation(parent, token)
117
- : await this.searchFilesInLocation(parent, filePattern, token);
221
+ for (const {
222
+ parent,
223
+ filePattern
224
+ } of this.getLocalParentFolders(type)) {
225
+ const files = (filePattern === undefined) ?
226
+ await this.resolveFilesAtLocation(parent, type, token) : await this.searchFilesInLocation(parent, filePattern, token);
118
227
  for (const file of files) {
119
228
  if (getPromptFileType(file) === type) {
120
229
  paths.add(file);
@@ -129,44 +238,112 @@ let PromptFilesLocator = class PromptFilesLocator {
129
238
  getLocalParentFolders(type) {
130
239
  const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
131
240
  if (type === PromptsType.agent) {
132
- configuredLocations.push(AGENTS_SOURCE_FOLDER);
241
+ configuredLocations.push(...DEFAULT_AGENT_SOURCE_FOLDERS);
133
242
  }
134
- const absoluteLocations = this.toAbsoluteLocations(configuredLocations);
135
- return ( absoluteLocations.map(firstNonGlobParentAndPattern));
243
+ const absoluteLocations = this.toAbsoluteLocations(type, configuredLocations, undefined);
244
+ return ( absoluteLocations.map(location => firstNonGlobParentAndPattern(location.uri)));
136
245
  }
137
- toAbsoluteLocations(configuredLocations) {
138
- const result = ( new ResourceSet());
139
- const { folders } = this.workspaceService.getWorkspace();
140
- for (const configuredLocation of configuredLocations) {
246
+ toAbsoluteLocations(type, configuredLocations, userHome, defaultLocations) {
247
+ const result = [];
248
+ const seen = ( new ResourceSet());
249
+ const {
250
+ folders
251
+ } = this.workspaceService.getWorkspace();
252
+ const defaultPaths = ( new Set(defaultLocations?.map(loc => loc.path)));
253
+ const validLocations = configuredLocations.filter(sourceFolder => {
254
+ if (type === PromptsType.instructions || type === PromptsType.prompt) {
255
+ const path = sourceFolder.path;
256
+ if (hasGlobPattern(path)) {
257
+ if (type === PromptsType.prompt) {
258
+ this.logService.warn(
259
+ `[Deprecated] Glob patterns (* and **) in prompt file locations are deprecated: "${path}". Consider using explicit paths instead.`
260
+ );
261
+ } else if (type === PromptsType.instructions) {
262
+ this.logService.info(
263
+ `Glob patterns (* and **) detected in instruction file location: "${path}". Consider using explicit paths for better performance.`
264
+ );
265
+ }
266
+ }
267
+ return true;
268
+ }
269
+ const configuredLocation = sourceFolder.path;
270
+ if (!isValidPromptFolderPath(configuredLocation)) {
271
+ this.logService.warn(
272
+ `Skipping invalid path (glob patterns and absolute paths not supported): ${configuredLocation}`
273
+ );
274
+ return false;
275
+ }
276
+ return true;
277
+ });
278
+ for (const sourceFolder of validLocations) {
279
+ const configuredLocation = sourceFolder.path;
280
+ const isDefault = defaultPaths?.has(configuredLocation);
141
281
  try {
282
+ if (isTildePath(configuredLocation)) {
283
+ if (userHome) {
284
+ const uri = joinPath(userHome, configuredLocation.substring(2));
285
+ if (!( seen.has(uri))) {
286
+ seen.add(uri);
287
+ result.push({
288
+ uri,
289
+ source: sourceFolder.source,
290
+ storage: sourceFolder.storage,
291
+ displayPath: configuredLocation,
292
+ isDefault
293
+ });
294
+ }
295
+ }
296
+ continue;
297
+ }
142
298
  if (isAbsolute(configuredLocation)) {
143
299
  let uri = URI.file(configuredLocation);
144
300
  const remoteAuthority = this.environmentService.remoteAuthority;
145
301
  if (remoteAuthority) {
146
- uri = uri.with({ scheme: Schemas.vscodeRemote, authority: remoteAuthority });
302
+ uri = uri.with({
303
+ scheme: Schemas.vscodeRemote,
304
+ authority: remoteAuthority
305
+ });
147
306
  }
148
- result.add(uri);
149
- }
150
- else {
307
+ if (!( seen.has(uri))) {
308
+ seen.add(uri);
309
+ result.push({
310
+ uri,
311
+ source: sourceFolder.source,
312
+ storage: sourceFolder.storage,
313
+ displayPath: configuredLocation,
314
+ isDefault
315
+ });
316
+ }
317
+ } else {
151
318
  for (const workspaceFolder of folders) {
152
319
  const absolutePath = joinPath(workspaceFolder.uri, configuredLocation);
153
- result.add(absolutePath);
320
+ if (!( seen.has(absolutePath))) {
321
+ seen.add(absolutePath);
322
+ result.push({
323
+ uri: absolutePath,
324
+ source: sourceFolder.source,
325
+ storage: sourceFolder.storage,
326
+ displayPath: configuredLocation,
327
+ isDefault
328
+ });
329
+ }
154
330
  }
155
331
  }
156
- }
157
- catch (error) {
332
+ } catch (error) {
158
333
  this.logService.error(`Failed to resolve prompt file location: ${configuredLocation}`, error);
159
334
  }
160
335
  }
161
- return [...result];
336
+ return result;
162
337
  }
163
- async resolveFilesAtLocation(location, token) {
338
+ async resolveFilesAtLocation(location, type, token) {
339
+ if (type === PromptsType.skill) {
340
+ return this.findAgentSkillsInFolder(location, token);
341
+ }
164
342
  try {
165
343
  const info = await this.fileService.resolve(location);
166
344
  if (info.isFile) {
167
345
  return [info.resource];
168
- }
169
- else if (info.isDirectory && info.children) {
346
+ } else if (info.isDirectory && info.children) {
170
347
  const result = [];
171
348
  for (const child of info.children) {
172
349
  if (child.isFile) {
@@ -175,20 +352,30 @@ let PromptFilesLocator = class PromptFilesLocator {
175
352
  }
176
353
  return result;
177
354
  }
178
- }
179
- catch (error) {
180
- }
355
+ } catch (error) {}
181
356
  return [];
182
357
  }
183
358
  async searchFilesInLocation(folder, filePattern, token) {
184
- const disregardIgnoreFiles = this.configService.getValue('explorer.excludeGitIgnore');
359
+ if (!this.searchService.schemeHasFileSearchProvider(folder.scheme)) {
360
+ this.logService.warn(
361
+ `[PromptFilesLocator] No FileSearchProvider available for scheme '${folder.scheme}'. Cannot search for pattern '${filePattern}' in ${( folder.toString())}`
362
+ );
363
+ return [];
364
+ }
365
+ const disregardIgnoreFiles = this.configService.getValue("explorer.excludeGitIgnore");
185
366
  const workspaceRoot = this.workspaceService.getWorkspaceFolder(folder);
186
- const getExcludePattern = (folder) => getExcludes(this.configService.getValue({ resource: folder })) || {};
367
+ const getExcludePattern = folder => getExcludes(this.configService.getValue({
368
+ resource: folder
369
+ })) || {};
187
370
  const searchOptions = {
188
- folderQueries: [{ folder, disregardIgnoreFiles }],
371
+ folderQueries: [{
372
+ folder,
373
+ disregardIgnoreFiles
374
+ }],
189
375
  type: QueryType.File,
190
376
  shouldGlobMatchFilePattern: true,
191
377
  excludePattern: workspaceRoot ? getExcludePattern(workspaceRoot.uri) : undefined,
378
+ ignoreGlobCase: true,
192
379
  sortByScore: true,
193
380
  filePattern
194
381
  };
@@ -198,8 +385,7 @@ let PromptFilesLocator = class PromptFilesLocator {
198
385
  return [];
199
386
  }
200
387
  return ( searchResult.results.map(r => r.resource));
201
- }
202
- catch (e) {
388
+ } catch (e) {
203
389
  if (!isCancellationError(e)) {
204
390
  throw e;
205
391
  }
@@ -208,7 +394,9 @@ let PromptFilesLocator = class PromptFilesLocator {
208
394
  }
209
395
  async findCopilotInstructionsMDsInWorkspace(token) {
210
396
  const result = [];
211
- const { folders } = this.workspaceService.getWorkspace();
397
+ const {
398
+ folders
399
+ } = this.workspaceService.getWorkspace();
212
400
  for (const folder of folders) {
213
401
  const file = joinPath(folder.uri, `.github/` + COPILOT_CUSTOM_INSTRUCTIONS_FILENAME);
214
402
  try {
@@ -216,8 +404,7 @@ let PromptFilesLocator = class PromptFilesLocator {
216
404
  if (stat.isFile) {
217
405
  result.push(file);
218
406
  }
219
- }
220
- catch (error) {
407
+ } catch (error) {
221
408
  this.logService.trace(`[PromptFilesLocator] Skipping copilot-instructions.md at ${( file.toString())}: ${error}`);
222
409
  }
223
410
  }
@@ -228,36 +415,72 @@ let PromptFilesLocator = class PromptFilesLocator {
228
415
  return result.flat(1);
229
416
  }
230
417
  async findAgentMDsInFolder(folder, token) {
231
- const disregardIgnoreFiles = this.configService.getValue('explorer.excludeGitIgnore');
232
- const getExcludePattern = (folder) => getExcludes(this.configService.getValue({ resource: folder })) || {};
233
- const searchOptions = {
234
- folderQueries: [{ folder, disregardIgnoreFiles }],
235
- type: QueryType.File,
236
- shouldGlobMatchFilePattern: true,
237
- excludePattern: getExcludePattern(folder),
238
- filePattern: '**/AGENTS.md',
239
- };
240
- try {
241
- const searchResult = await this.searchService.fileSearch(searchOptions, token);
242
- if (token.isCancellationRequested) {
243
- return [];
418
+ if (this.searchService.schemeHasFileSearchProvider(folder.scheme)) {
419
+ const disregardIgnoreFiles = this.configService.getValue("explorer.excludeGitIgnore");
420
+ const getExcludePattern = folder => getExcludes(this.configService.getValue({
421
+ resource: folder
422
+ })) || {};
423
+ const searchOptions = {
424
+ folderQueries: [{
425
+ folder,
426
+ disregardIgnoreFiles
427
+ }],
428
+ type: QueryType.File,
429
+ shouldGlobMatchFilePattern: true,
430
+ excludePattern: getExcludePattern(folder),
431
+ filePattern: "**/AGENTS.md",
432
+ ignoreGlobCase: true
433
+ };
434
+ try {
435
+ const searchResult = await this.searchService.fileSearch(searchOptions, token);
436
+ if (token.isCancellationRequested) {
437
+ return [];
438
+ }
439
+ return ( searchResult.results.map(r => r.resource));
440
+ } catch (e) {
441
+ if (!isCancellationError(e)) {
442
+ throw e;
443
+ }
244
444
  }
245
- return ( searchResult.results.map(r => r.resource));
445
+ return [];
446
+ } else {
447
+ return this.findAgentMDsUsingFileService(folder, token);
246
448
  }
247
- catch (e) {
248
- if (!isCancellationError(e)) {
249
- throw e;
449
+ }
450
+ async findAgentMDsUsingFileService(folder, token) {
451
+ const result = [];
452
+ const agentsMdFileName = "agents.md";
453
+ const traverse = async uri => {
454
+ if (token.isCancellationRequested) {
455
+ return;
250
456
  }
251
- }
252
- return [];
457
+ try {
458
+ const stat = await this.fileService.resolve(uri);
459
+ if (stat.isFile && stat.name.toLowerCase() === agentsMdFileName) {
460
+ result.push(stat.resource);
461
+ } else if (stat.isDirectory && stat.children) {
462
+ for (const child of stat.children) {
463
+ await traverse(child.resource);
464
+ }
465
+ }
466
+ } catch (error) {
467
+ this.logService.trace(`[PromptFilesLocator] Error traversing ${( uri.toString())}: ${error}`);
468
+ }
469
+ };
470
+ await traverse(folder);
471
+ return result;
253
472
  }
254
473
  async findAgentMDsInWorkspaceRoots(token) {
255
474
  const result = [];
256
- const { folders } = this.workspaceService.getWorkspace();
257
- const resolvedRoots = await this.fileService.resolveAll(( folders.map(f => ({ resource: f.uri }))));
475
+ const {
476
+ folders
477
+ } = this.workspaceService.getWorkspace();
478
+ const resolvedRoots = await this.fileService.resolveAll(( folders.map(f => ({
479
+ resource: f.uri
480
+ }))));
258
481
  for (const root of resolvedRoots) {
259
482
  if (root.success && root.stat?.children) {
260
- const agentMd = root.stat.children.find(c => c.isFile && c.name.toLowerCase() === 'agents.md');
483
+ const agentMd = root.stat.children.find(c => c.isFile && c.name.toLowerCase() === "agents.md");
261
484
  if (agentMd) {
262
485
  result.push(agentMd.resource);
263
486
  }
@@ -270,69 +493,76 @@ let PromptFilesLocator = class PromptFilesLocator {
270
493
  let newLocation;
271
494
  const workspaceFolder = this.workspaceService.getWorkspaceFolder(oldURI);
272
495
  if (workspaceFolder) {
273
- newLocation = joinPath(workspaceFolder.uri, AGENTS_SOURCE_FOLDER, getCleanPromptName(oldURI) + AGENT_FILE_EXTENSION);
274
- }
275
- else if (isEqualOrParent(oldURI, this.userDataService.currentProfile.promptsHome)) {
276
- newLocation = joinPath(this.userDataService.currentProfile.promptsHome, getCleanPromptName(oldURI) + AGENT_FILE_EXTENSION);
496
+ newLocation = joinPath(
497
+ workspaceFolder.uri,
498
+ AGENTS_SOURCE_FOLDER,
499
+ getCleanPromptName(oldURI) + AGENT_FILE_EXTENSION
500
+ );
501
+ } else if (isEqualOrParent(oldURI, this.userDataService.currentProfile.promptsHome)) {
502
+ newLocation = joinPath(
503
+ this.userDataService.currentProfile.promptsHome,
504
+ getCleanPromptName(oldURI) + AGENT_FILE_EXTENSION
505
+ );
277
506
  }
278
507
  return newLocation;
279
508
  }
280
509
  return undefined;
281
510
  }
282
- async findAgentSkillsInFolder(uri, relativePath, token) {
283
- const result = [];
511
+ async findAgentSkillsInFolder(uri, token) {
284
512
  try {
285
- const stat = await this.fileService.resolve(joinPath(uri, relativePath));
286
- if (token.isCancellationRequested) {
287
- return [];
288
- }
513
+ const result = [];
514
+ const stat = await this.fileService.resolve(uri);
289
515
  if (stat.isDirectory && stat.children) {
290
- for (const skillDir of stat.children) {
291
- if (skillDir.isDirectory) {
292
- const skillFile = joinPath(skillDir.resource, 'SKILL.md');
293
- if (await this.fileService.exists(skillFile)) {
294
- result.push(skillFile);
516
+ for (const child of stat.children) {
517
+ try {
518
+ if (token.isCancellationRequested) {
519
+ return [];
295
520
  }
296
- }
521
+ if (child.isDirectory) {
522
+ const skillFile = joinPath(child.resource, SKILL_FILENAME);
523
+ const skillStat = await this.fileService.resolve(skillFile);
524
+ if (skillStat.isFile) {
525
+ result.push(skillStat.resource);
526
+ }
527
+ }
528
+ } catch (error) {}
297
529
  }
298
530
  }
299
- }
300
- catch (error) {
301
- return [];
302
- }
303
- return result;
304
- }
305
- async findAgentSkillsInWorkspace(token) {
306
- const workspace = this.workspaceService.getWorkspace();
307
- const allResults = [];
308
- for (const folder of workspace.folders) {
309
- for (const { path, type } of DEFAULT_AGENT_SKILLS_WORKSPACE_FOLDERS) {
310
- const results = await this.findAgentSkillsInFolder(folder.uri, path, token);
311
- allResults.push(...( results.map(uri => ({ uri, type }))));
531
+ return result;
532
+ } catch (e) {
533
+ if (!isCancellationError(e)) {
534
+ this.logService.trace(`[PromptFilesLocator] Error searching for skills in ${( uri.toString())}: ${e}`);
312
535
  }
536
+ return [];
313
537
  }
314
- return allResults;
315
538
  }
316
- async findAgentSkillsInUserHome(token) {
539
+ async findAgentSkills(token) {
317
540
  const userHome = await this.pathService.userHome();
541
+ const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, PromptsType.skill);
542
+ const absoluteLocations = this.toAbsoluteLocations(PromptsType.skill, configuredLocations, userHome);
318
543
  const allResults = [];
319
- for (const { path, type } of DEFAULT_AGENT_SKILLS_USER_HOME_FOLDERS) {
320
- const results = await this.findAgentSkillsInFolder(userHome, path, token);
321
- allResults.push(...( results.map(uri => ({ uri, type }))));
544
+ for (const {
545
+ uri,
546
+ source,
547
+ storage
548
+ } of absoluteLocations) {
549
+ if (token.isCancellationRequested) {
550
+ return [];
551
+ }
552
+ const results = await this.findAgentSkillsInFolder(uri, token);
553
+ allResults.push(...( results.map(uri => ({
554
+ fileUri: uri,
555
+ source,
556
+ storage
557
+ }))));
322
558
  }
323
559
  return allResults;
324
560
  }
325
561
  };
326
- PromptFilesLocator = ( __decorate([
327
- ( __param(0, IFileService)),
328
- ( __param(1, IConfigurationService)),
329
- ( __param(2, IWorkspaceContextService)),
330
- ( __param(3, IWorkbenchEnvironmentService)),
331
- ( __param(4, ISearchService)),
332
- ( __param(5, IUserDataProfileService)),
333
- ( __param(6, ILogService)),
334
- ( __param(7, IPathService))
335
- ], PromptFilesLocator));
562
+ 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));
563
+ function hasGlobPattern(path) {
564
+ return path.includes("*");
565
+ }
336
566
  function isValidGlob(pattern) {
337
567
  let squareBrackets = false;
338
568
  let squareBracketsCount = 0;
@@ -340,34 +570,34 @@ function isValidGlob(pattern) {
340
570
  let curlyBracketsCount = 0;
341
571
  let previousCharacter;
342
572
  for (const char of pattern) {
343
- if (previousCharacter === '\\') {
573
+ if (previousCharacter === "\\") {
344
574
  previousCharacter = char;
345
575
  continue;
346
576
  }
347
- if (char === '*') {
577
+ if (char === "*") {
348
578
  return true;
349
579
  }
350
- if (char === '?') {
580
+ if (char === "?") {
351
581
  return true;
352
582
  }
353
- if (char === '[') {
583
+ if (char === "[") {
354
584
  squareBrackets = true;
355
585
  squareBracketsCount++;
356
586
  previousCharacter = char;
357
587
  continue;
358
588
  }
359
- if (char === ']') {
589
+ if (char === "]") {
360
590
  squareBrackets = true;
361
591
  squareBracketsCount--;
362
592
  previousCharacter = char;
363
593
  continue;
364
594
  }
365
- if (char === '{') {
595
+ if (char === "{") {
366
596
  curlyBrackets = true;
367
597
  curlyBracketsCount++;
368
598
  continue;
369
599
  }
370
- if (char === '}') {
600
+ if (char === "}") {
371
601
  curlyBrackets = true;
372
602
  curlyBracketsCount--;
373
603
  previousCharacter = char;
@@ -384,22 +614,33 @@ function isValidGlob(pattern) {
384
614
  return false;
385
615
  }
386
616
  function firstNonGlobParentAndPattern(location) {
387
- const segments = location.path.split('/');
617
+ const segments = location.path.split("/");
388
618
  let i = 0;
389
619
  while (i < segments.length && isValidGlob(segments[i]) === false) {
390
620
  i++;
391
621
  }
392
622
  if (i === segments.length) {
393
- return { parent: location };
623
+ return {
624
+ parent: location
625
+ };
394
626
  }
395
- const parent = location.with({ path: segments.slice(0, i).join('/') });
396
- if (i === segments.length - 1 && segments[i] === '*' || segments[i] === ``) {
397
- return { parent };
627
+ const parent = location.with({
628
+ path: segments.slice(0, i).join("/")
629
+ });
630
+ if (i === segments.length - 1 && segments[i] === "*" || segments[i] === ``) {
631
+ return {
632
+ parent
633
+ };
398
634
  }
399
635
  return {
400
636
  parent,
401
- filePattern: segments.slice(i).join('/')
637
+ filePattern: segments.slice(i).join("/")
402
638
  };
403
639
  }
640
+ const VALID_PROMPT_FOLDER_PATTERN = "^(?![A-Za-z]:[\\\\/])(?!/)(?!~(?!/))(?!.*\\\\)(?!.*[*?\\[\\]{}]).*\\S.*$";
641
+ const VALID_PROMPT_FOLDER_REGEX = ( new RegExp(VALID_PROMPT_FOLDER_PATTERN));
642
+ function isValidPromptFolderPath(path) {
643
+ return VALID_PROMPT_FOLDER_REGEX.test(path);
644
+ }
404
645
 
405
- export { PromptFilesLocator, isValidGlob };
646
+ export { PromptFilesLocator, VALID_PROMPT_FOLDER_PATTERN, hasGlobPattern, isValidGlob, isValidPromptFolderPath };