@codingame/monaco-vscode-chat-service-override 17.2.1 → 18.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 (159) hide show
  1. package/index.js +7 -4
  2. package/package.json +36 -30
  3. package/vscode/src/vs/base/common/objectCache.d.ts +2 -2
  4. package/vscode/src/vs/base/common/objectCache.js +3 -3
  5. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +10 -0
  6. package/vscode/src/vs/platform/browserElements/common/browserElements.js +9 -0
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +40 -40
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.d.ts +6 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +158 -0
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +1 -1
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +13 -13
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.d.ts +8 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +256 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +3 -4
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +234 -572
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +4 -4
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -3
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +1 -1
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +5 -5
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +29 -19
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +11 -11
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +1 -0
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +107 -0
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +3 -0
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +344 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +4 -3
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +84 -37
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatAttachInstructionsAction.d.ts +18 -3
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatAttachInstructionsAction.js +137 -14
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatModeActions.d.ts +1 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatModeActions.js +54 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatRunPromptAction.js +40 -10
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatSaveToPromptAction.d.ts +1 -1
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatSaveToPromptAction.js +3 -3
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/promptFilePickers.d.ts +15 -5
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/promptFilePickers.js +171 -101
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/attachInstructions.d.ts +2 -2
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/attachInstructions.js +2 -2
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/runPrompt.d.ts +1 -1
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/index.d.ts +0 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/index.js +2 -1
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +176 -69
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +1 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +15 -29
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +2 -2
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +22 -22
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +35 -29
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +1 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +80 -32
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +5 -3
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +11 -9
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +12 -11
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +13 -11
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +2 -2
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +15 -13
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +3 -5
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +10 -9
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +18 -8
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +1 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +118 -33
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +2 -2
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +5 -5
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.d.ts +1 -3
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +46 -48
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +49 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +379 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +31 -10
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +2 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +382 -152
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +1 -1
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +99 -56
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +2 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +11 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +1 -3
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +9 -21
  82. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
  83. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +10 -6
  84. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
  85. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +18 -5
  86. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +95 -24
  87. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSetup.css +92 -5
  88. package/vscode/src/vs/workbench/contrib/chat/browser/media/github.svg +1 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/media/google.svg +6 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +10 -4
  91. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.d.ts +1 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.js +111 -111
  93. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.d.ts +3 -4
  94. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.js +36 -10
  95. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.d.ts +5 -17
  96. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.js +91 -17
  97. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/errors.js +2 -2
  98. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/utils/createPromptFile.d.ts +1 -4
  99. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/utils/createPromptFile.js +4 -5
  100. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.d.ts +1 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +95 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +24 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +348 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  105. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +2 -2
  106. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +2 -2
  107. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.d.ts +30 -0
  108. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +93 -0
  109. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +5 -2
  110. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +46 -36
  111. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +2 -2
  112. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.d.ts +5 -1
  113. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.js +21 -11
  114. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/index.js +6 -1
  115. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/index.js +3 -2
  116. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptHeaderDiagnosticsProvider.d.ts +4 -3
  117. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptHeaderDiagnosticsProvider.js +12 -8
  118. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkDiagnosticsProvider.d.ts +3 -3
  119. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkDiagnosticsProvider.js +1 -2
  120. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkProvider.js +3 -3
  121. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptPathAutocompletion.js +5 -5
  122. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceBase.d.ts +2 -1
  123. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceBase.js +9 -5
  124. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceManagerBase.d.ts +3 -2
  125. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceManagerBase.js +12 -8
  126. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.d.ts +1 -1
  127. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.js +3 -3
  128. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +21 -10
  129. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +111 -124
  130. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +22 -8
  131. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +159 -97
  132. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/treeUtils.d.ts +15 -3
  133. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/treeUtils.js +2 -14
  134. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +8 -2
  135. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +198 -33
  136. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  137. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +7 -7
  138. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +1 -1
  139. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +28 -18
  140. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  142. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/attachInstructionsCommand.d.ts +0 -6
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/attachInstructionsCommand.js +0 -73
  145. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterDecoration.d.ts +0 -29
  146. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterDecoration.js +0 -74
  147. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterMarkerDecoration.d.ts +0 -14
  148. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterMarkerDecoration.js +0 -40
  149. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/decorationBase.d.ts +0 -23
  150. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/decorationBase.js +0 -40
  151. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/index.d.ts +0 -5
  152. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/index.js +0 -9
  153. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/reactiveDecorationBase.d.ts +0 -23
  154. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/reactiveDecorationBase.js +0 -68
  155. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/types.d.ts +0 -13
  156. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/promptDecorationsProvider.d.ts +0 -19
  157. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/promptDecorationsProvider.js +0 -121
  158. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/types.d.ts +0 -13
  159. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/types.js +0 -13
@@ -1,82 +1,193 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
4
- import { match } from '@codingame/monaco-vscode-api/vscode/vs/base/common/glob';
5
4
  import { assert } from '@codingame/monaco-vscode-api/vscode/vs/base/common/assert';
6
5
  import { isAbsolute } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
7
6
  import { ResourceSet } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
8
7
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
9
- import { PromptsConfig } from '@codingame/monaco-vscode-51fed910-d648-5620-9b80-9232cd79d116-common/vscode/vs/platform/prompts/common/config';
10
- import { basename, dirname, extUri } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
8
+ import { PromptsConfig } from '@codingame/monaco-vscode-47472025-cc45-5680-86cd-09ceaba921a1-common/vscode/vs/platform/prompts/common/config';
9
+ import { basename, dirname, joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
11
10
  import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
12
11
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
13
- import { PROMPT_FILE_EXTENSION, getPromptFileType } from '@codingame/monaco-vscode-51fed910-d648-5620-9b80-9232cd79d116-common/vscode/vs/platform/prompts/common/constants';
12
+ import { getPromptFileType, getPromptFileLocationsConfigKey, getPromptFileExtension } from '@codingame/monaco-vscode-47472025-cc45-5680-86cd-09ceaba921a1-common/vscode/vs/platform/prompts/common/prompts';
13
+ import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
14
+ import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
15
+ import { getExcludes, QueryType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/search/common/search';
16
+ import { ISearchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/search/common/search.service';
17
+ import { isCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
18
+ import { IUserDataProfileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
19
+ import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
20
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
14
21
 
15
- let PromptFilesLocator = class PromptFilesLocator {
16
- constructor(fileService, configService, workspaceService) {
22
+ let PromptFilesLocator = class PromptFilesLocator extends Disposable {
23
+ constructor(fileService, configService, workspaceService, environmentService, searchService, userDataService) {
24
+ super();
17
25
  this.fileService = fileService;
18
26
  this.configService = configService;
19
27
  this.workspaceService = workspaceService;
28
+ this.environmentService = environmentService;
29
+ this.searchService = searchService;
30
+ this.userDataService = userDataService;
20
31
  }
21
- async listFiles(type) {
22
- const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
23
- const absoluteLocations = toAbsoluteLocations(configuredLocations, this.workspaceService);
24
- return await this.listFilesIn(absoluteLocations, type);
32
+ async listFiles(type, storage, token) {
33
+ if (storage === 'local') {
34
+ return await this.listFilesInLocal(type, token);
35
+ }
36
+ else {
37
+ return await this.listFilesInUserData(type, token);
38
+ }
39
+ }
40
+ async listFilesInUserData(type, token) {
41
+ const files = await this.resolveFilesAtLocation(this.userDataService.currentProfile.promptsHome, token);
42
+ return files.filter(file => getPromptFileType(file) === type);
25
43
  }
26
- async listFilesIn(folders, type) {
27
- return await this.findFilesInLocations(folders, type);
44
+ getFilesUpdatedEvent(type) {
45
+ const eventEmitter = this._register(( new Emitter()));
46
+ const key = getPromptFileLocationsConfigKey(type);
47
+ let parentFolders = ( this.getLocalParentFolders(type).map(folder => folder.parent));
48
+ this._register(this.configService.onDidChangeConfiguration(e => {
49
+ if (e.affectsConfiguration(key)) {
50
+ parentFolders = ( this.getLocalParentFolders(type).map(folder => folder.parent));
51
+ eventEmitter.fire();
52
+ }
53
+ }));
54
+ this._register(this.fileService.onDidFilesChange(e => {
55
+ if (e.affects(this.userDataService.currentProfile.promptsHome)) {
56
+ eventEmitter.fire();
57
+ return;
58
+ }
59
+ if (( parentFolders.some(folder => e.affects(folder)))) {
60
+ eventEmitter.fire();
61
+ return;
62
+ }
63
+ }));
64
+ this._register(this.fileService.watch(this.userDataService.currentProfile.promptsHome));
65
+ return eventEmitter.event;
28
66
  }
29
67
  getConfigBasedSourceFolders(type) {
30
68
  const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
31
- const absoluteLocations = toAbsoluteLocations(configuredLocations, this.workspaceService);
69
+ const absoluteLocations = this.toAbsoluteLocations(configuredLocations);
32
70
  const result = ( new ResourceSet());
33
- for (const absoluteLocation of absoluteLocations) {
34
- let { path } = absoluteLocation;
71
+ for (let absoluteLocation of absoluteLocations) {
35
72
  const baseName = basename(absoluteLocation);
36
- const filePatterns = ['*.md', `*${PROMPT_FILE_EXTENSION}`];
73
+ const filePatterns = ['*.md', `*${getPromptFileExtension(type)}`];
37
74
  for (const filePattern of filePatterns) {
38
75
  if (baseName === filePattern) {
39
- path = URI.joinPath(absoluteLocation, '..').path;
76
+ absoluteLocation = dirname(absoluteLocation);
40
77
  continue;
41
78
  }
42
79
  }
43
80
  if (baseName === '*') {
44
- path = URI.joinPath(absoluteLocation, '..').path;
81
+ absoluteLocation = dirname(absoluteLocation);
45
82
  }
46
- if (isValidGlob(path) === true) {
83
+ if (isValidGlob(absoluteLocation.path) === true) {
47
84
  continue;
48
85
  }
49
- result.add(absoluteLocation.with({ path }));
86
+ result.add(absoluteLocation);
50
87
  }
51
88
  return [...result];
52
89
  }
53
- async findFilesInLocations(absoluteLocations, type) {
90
+ async listFilesInLocal(type, token) {
54
91
  const paths = ( new ResourceSet());
55
- for (const absoluteLocation of absoluteLocations) {
56
- assert(isAbsolute(absoluteLocation.path), `Provided location must be an absolute path, got '${absoluteLocation.path}'.`);
57
- const nonGlobParent = firstNonGlobParent(absoluteLocation);
58
- if (nonGlobParent === absoluteLocation) {
59
- const promptFiles = await findFilesInLocation(absoluteLocation, type, this.fileService);
60
- for (const file of promptFiles) {
92
+ for (const { parent, filePattern } of this.getLocalParentFolders(type)) {
93
+ const files = (filePattern === undefined)
94
+ ? await this.resolveFilesAtLocation(parent, token)
95
+ : await this.searchFilesInLocation(parent, filePattern, token);
96
+ for (const file of files) {
97
+ if (getPromptFileType(file) === type) {
61
98
  paths.add(file);
62
99
  }
63
100
  }
101
+ if (token.isCancellationRequested) {
102
+ return [];
103
+ }
104
+ }
105
+ return [...paths];
106
+ }
107
+ getLocalParentFolders(type) {
108
+ const configuredLocations = PromptsConfig.promptSourceFolders(this.configService, type);
109
+ const absoluteLocations = this.toAbsoluteLocations(configuredLocations);
110
+ return ( absoluteLocations.map(firstNonGlobParentAndPattern));
111
+ }
112
+ toAbsoluteLocations(configuredLocations) {
113
+ const result = ( new ResourceSet());
114
+ const { folders } = this.workspaceService.getWorkspace();
115
+ for (const configuredLocation of configuredLocations) {
116
+ if (isAbsolute(configuredLocation)) {
117
+ const remoteAuthority = this.environmentService.remoteAuthority;
118
+ if (remoteAuthority) {
119
+ result.add(( URI.from(
120
+ { scheme: Schemas.vscodeRemote, authority: remoteAuthority, path: configuredLocation }
121
+ )));
122
+ }
123
+ else {
124
+ result.add(URI.file(configuredLocation));
125
+ }
126
+ }
64
127
  else {
65
- const promptFiles = await findFilesInLocation(nonGlobParent, type, this.fileService);
66
- for (const file of promptFiles) {
67
- if (match(absoluteLocation.path, file.path)) {
68
- paths.add(file);
128
+ for (const workspaceFolder of folders) {
129
+ const absolutePath = joinPath(workspaceFolder.uri, configuredLocation);
130
+ assert(isAbsolute(absolutePath.path), `Provided location must be an absolute path, got '${absolutePath.path}'.`);
131
+ result.add(absolutePath);
132
+ }
133
+ }
134
+ }
135
+ return [...result];
136
+ }
137
+ async resolveFilesAtLocation(location, token) {
138
+ try {
139
+ const info = await this.fileService.resolve(location);
140
+ if (info.isFile) {
141
+ return [info.resource];
142
+ }
143
+ else if (info.isDirectory && info.children) {
144
+ const result = [];
145
+ for (const child of info.children) {
146
+ if (child.isFile) {
147
+ result.push(child.resource);
69
148
  }
70
149
  }
150
+ return result;
71
151
  }
72
152
  }
73
- return [...paths];
153
+ catch (error) {
154
+ }
155
+ return [];
156
+ }
157
+ async searchFilesInLocation(folder, filePattern, token) {
158
+ const disregardIgnoreFiles = this.configService.getValue('explorer.excludeGitIgnore');
159
+ const workspaceRoot = this.workspaceService.getWorkspaceFolder(folder);
160
+ const getExcludePattern = (folder) => getExcludes(this.configService.getValue({ resource: folder })) || {};
161
+ const searchOptions = {
162
+ folderQueries: [{ folder, disregardIgnoreFiles }],
163
+ type: QueryType.File,
164
+ shouldGlobMatchFilePattern: true,
165
+ excludePattern: workspaceRoot ? getExcludePattern(workspaceRoot.uri) : undefined,
166
+ sortByScore: true,
167
+ filePattern
168
+ };
169
+ try {
170
+ const searchResult = await this.searchService.fileSearch(searchOptions, token);
171
+ if (token?.isCancellationRequested) {
172
+ return [];
173
+ }
174
+ return ( searchResult.results.map(r => r.resource));
175
+ }
176
+ catch (e) {
177
+ if (!isCancellationError(e)) {
178
+ throw e;
179
+ }
180
+ }
181
+ return [];
74
182
  }
75
183
  };
76
184
  PromptFilesLocator = ( __decorate([
77
185
  ( __param(0, IFileService)),
78
186
  ( __param(1, IConfigurationService)),
79
- ( __param(2, IWorkspaceContextService))
187
+ ( __param(2, IWorkspaceContextService)),
188
+ ( __param(3, IWorkbenchEnvironmentService)),
189
+ ( __param(4, ISearchService)),
190
+ ( __param(5, IUserDataProfileService))
80
191
  ], PromptFilesLocator));
81
192
  const isValidGlob = (pattern) => {
82
193
  let squareBrackets = false;
@@ -128,72 +239,23 @@ const isValidGlob = (pattern) => {
128
239
  }
129
240
  return false;
130
241
  };
131
- const firstNonGlobParent = (location) => {
132
- assert(isAbsolute(location.path), `Provided location must be an absolute path, got '${location.path}'.`);
133
- if (isValidGlob(location.path) === false) {
134
- return location;
135
- }
136
- const parent = dirname(location);
137
- if (extUri.isEqual(parent, location)) {
138
- return location;
139
- }
140
- return firstNonGlobParent(parent);
141
- };
142
- const findFilesInLocation = async (location, type, fileService) => {
143
- const result = [];
144
- try {
145
- const info = await fileService.resolve(location);
146
- if (info.isFile && getPromptFileType(info.resource) === type) {
147
- result.push(info.resource);
148
- return result;
149
- }
150
- if (info.isDirectory && info.children) {
151
- for (const child of info.children) {
152
- if (child.isFile && getPromptFileType(child.resource) === type) {
153
- result.push(child.resource);
154
- continue;
155
- }
156
- if (child.isDirectory) {
157
- const promptFiles = await findFilesInLocation(child.resource, type, fileService);
158
- result.push(...promptFiles);
159
- continue;
160
- }
161
- }
162
- return result;
163
- }
242
+ const firstNonGlobParentAndPattern = (location) => {
243
+ const segments = location.path.split('/');
244
+ let i = 0;
245
+ while (i < segments.length && isValidGlob(segments[i]) === false) {
246
+ i++;
164
247
  }
165
- catch (error) {
248
+ if (i === segments.length) {
249
+ return { parent: location };
166
250
  }
167
- return result;
168
- };
169
- const toAbsoluteLocations = (configuredLocations, workspaceService) => {
170
- const result = ( new ResourceSet());
171
- const { folders } = workspaceService.getWorkspace();
172
- for (const configuredLocation of configuredLocations) {
173
- if (isAbsolute(configuredLocation)) {
174
- result.add(URI.file(configuredLocation));
175
- continue;
176
- }
177
- for (const workspaceFolder of folders) {
178
- const absolutePath = extUri.resolvePath(workspaceFolder.uri, configuredLocation);
179
- assert(isAbsolute(absolutePath.path), `Provided location must be an absolute path, got '${absolutePath.path}'.`);
180
- if (( result.has(absolutePath)) === false) {
181
- result.add(absolutePath);
182
- }
183
- if (folders.length <= 1) {
184
- continue;
185
- }
186
- const workspaceRootUri = dirname(workspaceFolder.uri);
187
- const workspaceFolderUri = extUri.resolvePath(workspaceRootUri, configuredLocation);
188
- if (( result.has(workspaceFolderUri)) === true) {
189
- continue;
190
- }
191
- if (workspaceFolderUri.fsPath.startsWith(workspaceFolder.uri.fsPath)) {
192
- result.add(workspaceFolderUri);
193
- }
194
- }
251
+ const parent = location.with({ path: segments.slice(0, i).join('/') });
252
+ if (i === segments.length - 1 && segments[i] === '*' || segments[i] === ``) {
253
+ return { parent };
195
254
  }
196
- return [...result];
255
+ return {
256
+ parent,
257
+ filePattern: segments.slice(i).join('/')
258
+ };
197
259
  };
198
260
 
199
- export { PromptFilesLocator, firstNonGlobParent, isValidGlob };
261
+ export { PromptFilesLocator, isValidGlob };
@@ -1,10 +1,22 @@
1
1
  export type TTree<TTreenNode> = {
2
2
  children?: readonly TTree<TTreenNode>[];
3
3
  } & TTreenNode;
4
- export declare const flatten: <TTreeNode>(treeRoot: TTree<TTreeNode>) => Omit<TTreeNode, "children">[];
4
+ export declare const flatten: <TTreeNode>(treeRoot: TTree<TTreeNode>) => TTreeNode[];
5
5
  export declare const forEach: <TTreeNode>(callback: (node: TTreeNode) => boolean, treeRoot: TTree<TTreeNode>) => ReturnType<typeof callback>;
6
6
  export declare const map: <TTreeNode extends object, TNewTreeNode extends object>(callback: (originalNode: Readonly<TTree<TTreeNode>>, newChildren: Readonly<TNewTreeNode>[] | undefined) => TTree<TNewTreeNode>, treeRoot: TTree<TTreeNode>) => TTree<TNewTreeNode>;
7
- type TRestParameters<T extends (...args: any[]) => any> = T extends (first: any, ...rest: infer R) => any ? R : never;
8
- type TCurriedFunction<T extends (...args: any[]) => any> = ((...args: TRestParameters<T>) => ReturnType<T>);
7
+ type TComparable<T> = T & {
8
+ equals: (other: T) => boolean;
9
+ };
10
+ type TDiff<TObject1, TObject2> = {
11
+ readonly object1: TObject1;
12
+ readonly object2: TObject2;
13
+ };
14
+ type TDifference<T> = TDiff<T, T | null> | TDiff<T | null, T>;
15
+ type TDiffTree<T> = TTree<TDifference<T> & {
16
+ readonly index: number;
17
+ }>;
18
+ export declare function difference<T extends NonNullable<unknown>>(tree1: TTree<TComparable<T>>, tree2: TTree<TComparable<T>>): TDiffTree<T> | null;
19
+ type TRestParameters<T extends (...args: any[]) => unknown> = T extends (first: Parameters<T>[0], ...rest: infer R) => unknown ? R : never;
20
+ type TCurriedFunction<T extends (...args: any[]) => unknown> = ((...args: TRestParameters<T>) => ReturnType<T>);
9
21
  export declare const curry: <T, K>(callback: (arg1: T, ...args: any[]) => K, arg1: T) => TCurriedFunction<typeof callback>;
10
22
  export {};
@@ -1,4 +1,5 @@
1
1
 
2
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
2
3
 
3
4
  const flatten = (treeRoot) => {
4
5
  const result = [];
@@ -8,18 +9,5 @@ const flatten = (treeRoot) => {
8
9
  }
9
10
  return result;
10
11
  };
11
- const forEach = (callback, treeRoot) => {
12
- const shouldStop = callback(treeRoot);
13
- if (shouldStop === true) {
14
- return true;
15
- }
16
- for (const child of treeRoot.children ?? []) {
17
- const shouldStop = forEach(callback, child);
18
- if (shouldStop === true) {
19
- return true;
20
- }
21
- }
22
- return false;
23
- };
24
12
 
25
- export { flatten, forEach };
13
+ export { flatten };
@@ -1,5 +1,4 @@
1
1
  import { IJSONSchema } from "@codingame/monaco-vscode-api/vscode/vs/base/common/jsonSchema";
2
- import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
3
2
  import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
4
3
  import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
5
4
  import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service";
@@ -18,8 +17,15 @@ export interface IRawToolContribution {
18
17
  inputSchema?: IJSONSchema;
19
18
  canBeReferencedInPrompt?: boolean;
20
19
  }
20
+ export interface IRawToolSetContribution {
21
+ name: string;
22
+ referenceName?: string;
23
+ description: string;
24
+ icon?: string;
25
+ tools: string[];
26
+ }
21
27
  export declare class LanguageModelToolsExtensionPointHandler implements IWorkbenchContribution {
22
28
  static readonly ID = "workbench.contrib.toolsExtensionPointHandler";
23
29
  private _registrationDisposables;
24
- constructor(languageModelToolsService: ILanguageModelToolsService, logService: ILogService, productService: IProductService);
30
+ constructor(productService: IProductService, languageModelToolsService: ILanguageModelToolsService);
25
31
  }