@codingame/monaco-vscode-chat-service-override 17.2.0 → 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
@@ -0,0 +1,95 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
+ import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
5
+ import { EditOperation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/editOperation';
6
+ import { isITextModel } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model';
7
+ import { ILanguageFeaturesService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/languageFeatures.service';
8
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
9
+ import { CommandsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands';
10
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
11
+ import { showToolsPicker } from '../actions/chatToolPicker.js';
12
+ import { ToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
13
+ import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
14
+ import { ALL_PROMPTS_LANGUAGE_SELECTOR } from '@codingame/monaco-vscode-fab30422-b487-5f4e-8d30-8b4d266e3fcd-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/constants';
15
+ import { PromptToolsMetadata } from '@codingame/monaco-vscode-fab30422-b487-5f4e-8d30-8b4d266e3fcd-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools';
16
+ import { IPromptsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/types.service';
17
+ import { registerEditorFeature } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/editorFeatures';
18
+
19
+ let PromptToolsCodeLensProvider = class PromptToolsCodeLensProvider extends Disposable {
20
+ constructor(promptsService, languageService, languageModelToolsService, instantiationService) {
21
+ super();
22
+ this.promptsService = promptsService;
23
+ this.languageService = languageService;
24
+ this.languageModelToolsService = languageModelToolsService;
25
+ this.instantiationService = instantiationService;
26
+ this.cmdId = `_configure/${generateUuid()}`;
27
+ this._register(this.languageService.codeLensProvider.register(ALL_PROMPTS_LANGUAGE_SELECTOR, this));
28
+ this._register(CommandsRegistry.registerCommand(this.cmdId, (_accessor, ...args) => {
29
+ const [first, second] = args;
30
+ if (isITextModel(first) && second instanceof PromptToolsMetadata) {
31
+ this.updateTools(first, second);
32
+ }
33
+ }));
34
+ }
35
+ async provideCodeLenses(model, token) {
36
+ const parser = this.promptsService.getSyntaxParserFor(model);
37
+ const { header } = await parser
38
+ .start()
39
+ .settled();
40
+ if ((header === undefined) || token.isCancellationRequested) {
41
+ return undefined;
42
+ }
43
+ if (('tools' in header.metadataUtility) === false) {
44
+ return undefined;
45
+ }
46
+ const { tools } = header.metadataUtility;
47
+ if (tools === undefined) {
48
+ return undefined;
49
+ }
50
+ const codeLens = {
51
+ range: tools.range.collapseToStart(),
52
+ command: {
53
+ title: ( localize(5077, "Configure Tools...")),
54
+ id: this.cmdId,
55
+ arguments: [model, tools]
56
+ }
57
+ };
58
+ return { lenses: [codeLens] };
59
+ }
60
+ async updateTools(model, tools) {
61
+ const toolNames = ( new Set(tools.value));
62
+ const selectedToolsNow = ( new Map());
63
+ for (const tool of this.languageModelToolsService.getTools()) {
64
+ selectedToolsNow.set(tool, ( toolNames.has(tool.toolReferenceName ?? tool.displayName)));
65
+ }
66
+ for (const toolSet of this.languageModelToolsService.toolSets.get()) {
67
+ selectedToolsNow.set(toolSet, ( toolNames.has(toolSet.referenceName)));
68
+ }
69
+ const newSelectedAfter = await this.instantiationService.invokeFunction(showToolsPicker, ( localize(5078, "Select tools")), selectedToolsNow);
70
+ if (!newSelectedAfter) {
71
+ return;
72
+ }
73
+ const newToolNames = [];
74
+ for (const [item, picked] of newSelectedAfter) {
75
+ if (picked) {
76
+ if (item instanceof ToolSet) {
77
+ newToolNames.push(item.referenceName);
78
+ }
79
+ else {
80
+ newToolNames.push(item.toolReferenceName ?? item.displayName);
81
+ }
82
+ }
83
+ }
84
+ model.pushStackElement();
85
+ model.pushEditOperations(null, [EditOperation.replaceMove(tools.range, `tools: [${( newToolNames.map(s => `'${s}'`)).join(', ')}]`)], () => null);
86
+ model.pushStackElement();
87
+ }
88
+ };
89
+ PromptToolsCodeLensProvider = ( __decorate([
90
+ ( __param(0, IPromptsService)),
91
+ ( __param(1, ILanguageFeaturesService)),
92
+ ( __param(2, ILanguageModelToolsService)),
93
+ ( __param(3, IInstantiationService))
94
+ ], PromptToolsCodeLensProvider));
95
+ registerEditorFeature(PromptToolsCodeLensProvider);
@@ -0,0 +1,24 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { Action2 } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions";
3
+ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
4
+ import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
5
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
6
+ import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
7
+ import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
8
+ import { ILifecycleService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service";
9
+ import { IUserDataProfileService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service";
10
+ import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service";
11
+ export declare class UserToolSetsContributions extends Disposable implements IWorkbenchContribution {
12
+ private readonly _languageModelToolsService;
13
+ private readonly _userDataProfileService;
14
+ private readonly _fileService;
15
+ private readonly _logService;
16
+ static readonly ID = "chat.userToolSets";
17
+ constructor(extensionService: IExtensionService, lifecycleService: ILifecycleService, _languageModelToolsService: ILanguageModelToolsService, _userDataProfileService: IUserDataProfileService, _fileService: IFileService, _logService: ILogService);
18
+ private _initToolSets;
19
+ }
20
+ export declare class ConfigureToolSets extends Action2 {
21
+ static readonly ID = "chat.configureToolSets";
22
+ constructor();
23
+ run(accessor: ServicesAccessor): Promise<void>;
24
+ }
@@ -0,0 +1,348 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { isFalsyOrEmpty } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
4
+ import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
5
+ import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
6
+ import { Disposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
7
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
8
+ import { basename, joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
9
+ import { isFalsyOrWhitespace } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
10
+ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
11
+ import { isObject, assertType } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
12
+ import { localize, localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
13
+ import { Action2, MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
14
+ import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
15
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
16
+ import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
17
+ import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
18
+ import { LifecyclePhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
19
+ import { ILifecycleService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
20
+ import { IUserDataProfileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
21
+ import { CHAT_CATEGORY } from '@codingame/monaco-vscode-3a35f433-1297-5707-ab58-c261b8180e6d-common/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
22
+ import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
23
+ import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
24
+ import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
25
+ import { getAllCodicons, Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
26
+ import { isValidBasename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/extpath';
27
+ import { ITextFileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/textfile/common/textfiles.service';
28
+ import { parse } from '@codingame/monaco-vscode-aa9ead53-dfd3-59da-b9e7-f163d201de8d-common/vscode/vs/base/common/jsonc';
29
+ import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/jsonschemas/common/jsonContributionRegistry';
30
+ import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
31
+ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
32
+ import { ChatViewId } from '@codingame/monaco-vscode-7adbeffb-8051-54a9-8c9b-b62ce9e5836f-common/vscode/vs/workbench/contrib/chat/browser/chat';
33
+ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
34
+ import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
35
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
36
+ import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
37
+ import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
38
+
39
+ const toolEnumValues = [];
40
+ const toolEnumDescriptions = [];
41
+ const toolSetSchemaId = 'vscode://schemas/toolsets';
42
+ const toolSetsSchema = {
43
+ id: toolSetSchemaId,
44
+ allowComments: true,
45
+ allowTrailingCommas: true,
46
+ defaultSnippets: [{
47
+ label: ( localize(5079, "Empty tool set")),
48
+ body: { '${1:toolSetName}': { 'tools': ['${2:someTool}', '${3:anotherTool}'], 'description': '${4:description}', 'icon': '${5:tools}' } }
49
+ }],
50
+ type: 'object',
51
+ description: ( localize(5080, 'User tool sets configuration')),
52
+ additionalProperties: {
53
+ type: 'object',
54
+ required: ['tools'],
55
+ additionalProperties: false,
56
+ properties: {
57
+ tools: {
58
+ description: ( localize(
59
+ 5081,
60
+ "A list of tools or tool sets to include in this tool set. Cannot be empty and must reference tools the way they are referenced in prompts."
61
+ )),
62
+ type: 'array',
63
+ minItems: 1,
64
+ items: {
65
+ type: 'string',
66
+ enum: toolEnumValues,
67
+ enumDescriptions: toolEnumDescriptions,
68
+ }
69
+ },
70
+ icon: {
71
+ description: ( localize(
72
+ 5082,
73
+ "Icon to use for this tool set in the UI. Uses the `\\$(name)`-syntax, like `\\$(zap)`"
74
+ )),
75
+ type: 'string',
76
+ enum: Array.from(getAllCodicons(), icon => icon.id),
77
+ markdownEnumDescriptions: Array.from(getAllCodicons(), icon => `$(${icon.id})`),
78
+ },
79
+ description: {
80
+ description: ( localize(5083, "A short description of this tool set.")),
81
+ type: 'string'
82
+ },
83
+ },
84
+ }
85
+ };
86
+ const reg = ( Registry.as(Extensions.JSONContribution));
87
+ class RawToolSetsShape {
88
+ static { this.suffix = '.toolsets.jsonc'; }
89
+ static isToolSetFileName(uri) {
90
+ return basename(uri).endsWith(RawToolSetsShape.suffix);
91
+ }
92
+ static from(data, logService) {
93
+ if (!isObject(data)) {
94
+ throw ( new Error(`Invalid tool set data`));
95
+ }
96
+ const map = ( new Map());
97
+ for (const [name, value] of Object.entries(data)) {
98
+ if (isFalsyOrWhitespace(name)) {
99
+ logService.error(`Tool set name cannot be empty`);
100
+ }
101
+ if (isFalsyOrEmpty(value.tools)) {
102
+ logService.error(`Tool set '${name}' cannot have an empty tools array`);
103
+ }
104
+ map.set(name, {
105
+ name,
106
+ tools: value.tools,
107
+ description: value.description,
108
+ icon: value.icon,
109
+ });
110
+ }
111
+ return new class extends RawToolSetsShape {
112
+ }(map);
113
+ }
114
+ constructor(entries) {
115
+ this.entries = ( Object.freeze(( new Map(entries))));
116
+ }
117
+ }
118
+ let UserToolSetsContributions = class UserToolSetsContributions extends Disposable {
119
+ static { this.ID = 'chat.userToolSets'; }
120
+ constructor(extensionService, lifecycleService, _languageModelToolsService, _userDataProfileService, _fileService, _logService) {
121
+ super();
122
+ this._languageModelToolsService = _languageModelToolsService;
123
+ this._userDataProfileService = _userDataProfileService;
124
+ this._fileService = _fileService;
125
+ this._logService = _logService;
126
+ Promise.allSettled([
127
+ extensionService.whenInstalledExtensionsRegistered,
128
+ lifecycleService.when(LifecyclePhase.Restored)
129
+ ]).then(() => this._initToolSets());
130
+ const toolsObs = observableFromEvent(this, _languageModelToolsService.onDidChangeTools, () => Array.from(_languageModelToolsService.getTools()));
131
+ const store = this._store.add(( new DisposableStore()));
132
+ this._store.add(autorun(r => {
133
+ const tools = toolsObs.read(r);
134
+ const toolSets = this._languageModelToolsService.toolSets.read(r);
135
+ const data = [];
136
+ for (const tool of tools) {
137
+ if (tool.canBeReferencedInPrompt) {
138
+ data.push({
139
+ name: tool.toolReferenceName ?? tool.displayName,
140
+ sourceLabel: ToolDataSource.classify(tool.source).label,
141
+ sourceOrdinal: ToolDataSource.classify(tool.source).ordinal,
142
+ description: tool.userDescription ?? tool.modelDescription
143
+ });
144
+ }
145
+ }
146
+ for (const toolSet of toolSets) {
147
+ data.push({
148
+ name: toolSet.referenceName,
149
+ sourceLabel: ToolDataSource.classify(toolSet.source).label,
150
+ sourceOrdinal: ToolDataSource.classify(toolSet.source).ordinal,
151
+ description: toolSet.description
152
+ });
153
+ }
154
+ toolEnumValues.length = 0;
155
+ toolEnumDescriptions.length = 0;
156
+ data.sort((a, b) => {
157
+ if (a.sourceOrdinal !== b.sourceOrdinal) {
158
+ return a.sourceOrdinal - b.sourceOrdinal;
159
+ }
160
+ if (a.sourceLabel !== b.sourceLabel) {
161
+ return a.sourceLabel.localeCompare(b.sourceLabel);
162
+ }
163
+ return a.name.localeCompare(b.name);
164
+ });
165
+ for (const item of data) {
166
+ toolEnumValues.push(item.name);
167
+ toolEnumDescriptions.push(( localize(5084, "{1} ({0})\n\n{2}", item.sourceLabel, item.name, item.description)));
168
+ }
169
+ store.clear();
170
+ reg.registerSchema(toolSetSchemaId, toolSetsSchema, store);
171
+ }));
172
+ }
173
+ _initToolSets() {
174
+ const promptFolder = observableFromEvent(this, this._userDataProfileService.onDidChangeCurrentProfile, () => this._userDataProfileService.currentProfile.promptsHome);
175
+ const toolsSig = observableSignalFromEvent(this, this._languageModelToolsService.onDidChangeTools);
176
+ const fileEventSig = observableSignalFromEvent(this, Event.filter(this._fileService.onDidFilesChange, e => e.affects(promptFolder.get())));
177
+ const store = this._store.add(( new DisposableStore()));
178
+ const getFilesInFolder = async (folder) => {
179
+ try {
180
+ return (await this._fileService.resolve(folder)).children ?? [];
181
+ }
182
+ catch (err) {
183
+ return [];
184
+ }
185
+ };
186
+ this._store.add(autorun(async (r) => {
187
+ store.clear();
188
+ toolsSig.read(r);
189
+ fileEventSig.read(r);
190
+ const uri = promptFolder.read(r);
191
+ const cts = ( new CancellationTokenSource());
192
+ store.add(toDisposable(() => cts.dispose(true)));
193
+ const entries = await getFilesInFolder(uri);
194
+ if (cts.token.isCancellationRequested) {
195
+ store.clear();
196
+ return;
197
+ }
198
+ for (const entry of entries) {
199
+ if (!entry.isFile || !RawToolSetsShape.isToolSetFileName(entry.resource)) {
200
+ continue;
201
+ }
202
+ store.add(this._fileService.watch(entry.resource));
203
+ let data;
204
+ try {
205
+ const content = await this._fileService.readFile(entry.resource, undefined, cts.token);
206
+ const rawObj = parse(( content.value.toString()));
207
+ data = RawToolSetsShape.from(rawObj, this._logService);
208
+ }
209
+ catch (err) {
210
+ this._logService.error(`Error reading tool set file ${( entry.resource.toString())}:`, err);
211
+ continue;
212
+ }
213
+ if (cts.token.isCancellationRequested) {
214
+ store.dispose();
215
+ break;
216
+ }
217
+ for (const [name, value] of data.entries) {
218
+ const tools = [];
219
+ const toolSets = [];
220
+ value.tools.forEach(name => {
221
+ const tool = this._languageModelToolsService.getToolByName(name);
222
+ if (tool) {
223
+ tools.push(tool);
224
+ return;
225
+ }
226
+ const toolSet = this._languageModelToolsService.getToolSetByName(name);
227
+ if (toolSet) {
228
+ toolSets.push(toolSet);
229
+ return;
230
+ }
231
+ });
232
+ if (tools.length === 0 && toolSets.length === 0) {
233
+ continue;
234
+ }
235
+ const toolset = this._languageModelToolsService.createToolSet({ type: 'user', file: entry.resource, label: basename(entry.resource) }, `user/${( entry.resource.toString())}/${name}`, name, {
236
+ icon: value.icon ? ThemeIcon.fromId(value.icon) : undefined,
237
+ description: value.description
238
+ });
239
+ transaction(tx => {
240
+ store.add(toolset);
241
+ tools.forEach(tool => store.add(toolset.addTool(tool, tx)));
242
+ toolSets.forEach(toolSet => store.add(toolset.addToolSet(toolSet, tx)));
243
+ });
244
+ }
245
+ }
246
+ }));
247
+ }
248
+ };
249
+ UserToolSetsContributions = ( __decorate([
250
+ ( __param(0, IExtensionService)),
251
+ ( __param(1, ILifecycleService)),
252
+ ( __param(2, ILanguageModelToolsService)),
253
+ ( __param(3, IUserDataProfileService)),
254
+ ( __param(4, IFileService)),
255
+ ( __param(5, ILogService))
256
+ ], UserToolSetsContributions));
257
+ class ConfigureToolSets extends Action2 {
258
+ static { this.ID = 'chat.configureToolSets'; }
259
+ constructor() {
260
+ super({
261
+ id: ConfigureToolSets.ID,
262
+ title: ( localize2(5085, 'Configure Tool Sets')),
263
+ category: CHAT_CATEGORY,
264
+ f1: true,
265
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ChatContextKeys.Tools.toolsCount.greater(0))),
266
+ menu: {
267
+ id: MenuId.ViewTitle,
268
+ when: ( ContextKeyExpr.equals('view', ChatViewId)),
269
+ order: 11,
270
+ group: '2_manage'
271
+ },
272
+ });
273
+ }
274
+ async run(accessor) {
275
+ const toolsService = accessor.get(ILanguageModelToolsService);
276
+ const quickInputService = accessor.get(IQuickInputService);
277
+ const editorService = accessor.get(IEditorService);
278
+ const userDataProfileService = accessor.get(IUserDataProfileService);
279
+ const fileService = accessor.get(IFileService);
280
+ const textFileService = accessor.get(ITextFileService);
281
+ const picks = [];
282
+ picks.push({
283
+ label: ( localize(5086, 'Create new tool sets file...')),
284
+ alwaysShow: true,
285
+ iconClass: ThemeIcon.asClassName(Codicon.plus)
286
+ });
287
+ for (const toolSet of toolsService.toolSets.get()) {
288
+ if (toolSet.source.type !== 'user') {
289
+ continue;
290
+ }
291
+ picks.push({
292
+ label: toolSet.referenceName,
293
+ toolset: toolSet,
294
+ tooltip: toolSet.description,
295
+ iconClass: ThemeIcon.asClassName(toolSet.icon)
296
+ });
297
+ }
298
+ const pick = await quickInputService.pick(picks, {
299
+ canPickMany: false,
300
+ placeHolder: ( localize(5087, 'Select a tool set to configure')),
301
+ });
302
+ if (!pick) {
303
+ return;
304
+ }
305
+ let resource;
306
+ if (!pick.toolset) {
307
+ const name = await quickInputService.input({
308
+ placeHolder: ( localize(5088, "Type tool sets file name")),
309
+ validateInput: async (input) => {
310
+ if (!input) {
311
+ return localize(5089, "Invalid file name");
312
+ }
313
+ if (!isValidBasename(input)) {
314
+ return localize(5090, "'{0}' is not a valid file name", input);
315
+ }
316
+ return undefined;
317
+ }
318
+ });
319
+ if (isFalsyOrWhitespace(name)) {
320
+ return;
321
+ }
322
+ resource = joinPath(userDataProfileService.currentProfile.promptsHome, `${name}${RawToolSetsShape.suffix}`);
323
+ if (!(await fileService.exists(resource))) {
324
+ await textFileService.write(resource, [
325
+ '// Place your tool sets here...',
326
+ '// Example:',
327
+ '// {',
328
+ '// \t"toolSetName": {',
329
+ '// \t\t"tools": [',
330
+ '// \t\t\t"someTool",',
331
+ '// \t\t\t"anotherTool"',
332
+ '// \t\t],',
333
+ '// \t\t"description": "description",',
334
+ '// \t\t"icon": "tools"',
335
+ '// \t}',
336
+ '// }',
337
+ ].join('\n'));
338
+ }
339
+ }
340
+ else {
341
+ assertType(pick.toolset.source.type === 'user');
342
+ resource = pick.toolset.source.file;
343
+ }
344
+ await editorService.openEditor({ resource, options: { pinned: true } });
345
+ }
346
+ }
347
+
348
+ export { ConfigureToolSets, UserToolSetsContributions };
@@ -13,7 +13,7 @@ import { ChatViewsWelcomeExtensions } from '@codingame/monaco-vscode-c465110a-57
13
13
  const chatViewsWelcomeExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
14
14
  extensionPoint: 'chatViewsWelcome',
15
15
  jsonSchema: {
16
- description: ( localize(4993, 'Contributes a welcome message to a chat view')),
16
+ description: ( localize(5092, 'Contributes a welcome message to a chat view')),
17
17
  type: 'array',
18
18
  items: {
19
19
  additionalProperties: false,
@@ -21,22 +21,22 @@ const chatViewsWelcomeExtensionPoint = ExtensionsRegistry.registerExtensionPoint
21
21
  properties: {
22
22
  icon: {
23
23
  type: 'string',
24
- description: ( localize(4994, 'The icon for the welcome message.')),
24
+ description: ( localize(5093, 'The icon for the welcome message.')),
25
25
  },
26
26
  title: {
27
27
  type: 'string',
28
- description: ( localize(4995, 'The title of the welcome message.')),
28
+ description: ( localize(5094, 'The title of the welcome message.')),
29
29
  },
30
30
  content: {
31
31
  type: 'string',
32
32
  description: ( localize(
33
- 4996,
33
+ 5095,
34
34
  'The content of the welcome message. The first command link will be rendered as a button.'
35
35
  )),
36
36
  },
37
37
  when: {
38
38
  type: 'string',
39
- description: ( localize(4997, 'Condition when the welcome message is shown.')),
39
+ description: ( localize(5096, 'Condition when the welcome message is shown.')),
40
40
  }
41
41
  }
42
42
  },
@@ -1,6 +1,6 @@
1
1
  import { DeferredPromise } from "@codingame/monaco-vscode-api/vscode/vs/base/common/async";
2
2
  import { IMarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent";
3
- import { IChatTerminalToolInvocationData, IChatToolInputInvocationData, IChatToolInvocation, IChatToolInvocationSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService";
3
+ import { IChatExtensionsContent, IChatTerminalToolInvocationData, IChatToolInputInvocationData, IChatToolInvocation, IChatToolInvocationSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService";
4
4
  import { IPreparedToolInvocation, IToolConfirmationMessages, IToolData, IToolProgressStep, IToolResult } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
5
5
  export declare class ChatToolInvocation implements IChatToolInvocation {
6
6
  readonly toolCallId: string;
@@ -21,7 +21,7 @@ export declare class ChatToolInvocation implements IChatToolInvocation {
21
21
  private _confirmationMessages;
22
22
  readonly presentation: IPreparedToolInvocation["presentation"];
23
23
  readonly toolId: string;
24
- readonly toolSpecificData?: IChatTerminalToolInvocationData | IChatToolInputInvocationData;
24
+ readonly toolSpecificData?: IChatTerminalToolInvocationData | IChatToolInputInvocationData | IChatExtensionsContent;
25
25
  readonly progress: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<{
26
26
  message?: string | IMarkdownString;
27
27
  progress: number;
@@ -2,7 +2,7 @@
2
2
  import { DeferredPromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
3
3
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
4
4
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
5
- import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/base';
5
+ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
6
6
 
7
7
  class ChatToolInvocation {
8
8
  get isComplete() {
@@ -27,7 +27,7 @@ class ChatToolInvocation {
27
27
  this._isCompleteDeferred = ( new DeferredPromise());
28
28
  this._confirmDeferred = ( new DeferredPromise());
29
29
  this.progress = observableValue(this, { progress: 0 });
30
- const defaultMessage = ( localize(5053, "Using {0}", `"${toolData.displayName}"`));
30
+ const defaultMessage = ( localize(5161, "Using {0}", `"${toolData.displayName}"`));
31
31
  const invocationMessage = preparedInvocation?.invocationMessage ?? defaultMessage;
32
32
  this.invocationMessage = invocationMessage;
33
33
  this.pastTenseMessage = preparedInvocation?.pastTenseMessage;
@@ -0,0 +1,30 @@
1
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
2
+ import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { ReadableStreamEvents } from "@codingame/monaco-vscode-api/vscode/vs/base/common/stream";
4
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
5
+ import { FileSystemProviderCapabilities, FileType, IFileSystemProviderWithFileAtomicReadCapability, IFileSystemProviderWithFileReadStreamCapability, IFileSystemProviderWithFileReadWriteCapability, IStat } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files";
6
+ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
7
+ import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
8
+ import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service";
9
+ export declare class ChatResponseResourceFileSystemProvider extends Disposable implements IWorkbenchContribution, IFileSystemProviderWithFileReadWriteCapability, IFileSystemProviderWithFileAtomicReadCapability, IFileSystemProviderWithFileReadStreamCapability {
10
+ private readonly chatService;
11
+ private readonly _fileService;
12
+ static readonly ID = "workbench.contrib.chatResponseResourceFileSystemProvider";
13
+ readonly onDidChangeCapabilities: Event<any>;
14
+ readonly onDidChangeFile: Event<any>;
15
+ readonly capabilities: FileSystemProviderCapabilities;
16
+ constructor(chatService: IChatService, _fileService: IFileService);
17
+ readFile(resource: URI): Promise<Uint8Array>;
18
+ readFileStream(resource: URI): ReadableStreamEvents<Uint8Array>;
19
+ stat(resource: URI): Promise<IStat>;
20
+ delete(): Promise<void>;
21
+ watch(): IDisposable;
22
+ mkdir(): Promise<void>;
23
+ readdir(): Promise<[
24
+ string,
25
+ FileType
26
+ ][]>;
27
+ rename(): Promise<void>;
28
+ writeFile(): Promise<void>;
29
+ private lookupURI;
30
+ }