@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,21 +1,25 @@
1
1
 
2
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';
3
4
  import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
4
- import { DisposableMap, Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { DisposableMap, DisposableStore, Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
5
7
  import { joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
8
+ import { isFalsyOrWhitespace } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
6
9
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
7
10
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
8
11
  import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
9
12
  import { ExtensionIdentifier } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
10
13
  import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/descriptors';
11
- import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
12
14
  import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
13
15
  import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
14
16
  import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensionManagement/common/extensionFeatures';
15
17
  import { isProposedApiEnabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions';
16
18
  import { ExtensionsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
19
+ import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
17
20
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
18
21
  import { toolsParametersSchemaSchemaId } from './languageModelToolsParametersSchema.js';
22
+ import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
19
23
 
20
24
  const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
21
25
  extensionPoint: 'languageModelTools',
@@ -26,7 +30,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
26
30
  },
27
31
  jsonSchema: {
28
32
  description: ( localize(
29
- 5093,
33
+ 5203,
30
34
  'Contributes a tool that can be invoked by a language model in a chat session, or from a standalone command. Registered tools can be used by all extensions.'
31
35
  )),
32
36
  type: 'array',
@@ -52,7 +56,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
52
56
  properties: {
53
57
  name: {
54
58
  description: ( localize(
55
- 5094,
59
+ 5204,
56
60
  "A unique name for this tool. This name must be a globally unique identifier, and is also used as a name when presenting this tool to a language model."
57
61
  )),
58
62
  type: 'string',
@@ -60,7 +64,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
60
64
  },
61
65
  toolReferenceName: {
62
66
  markdownDescription: ( localize(
63
- 5095,
67
+ 5205,
64
68
  "If {0} is enabled for this tool, the user may use '#' with this name to invoke the tool in a query. Otherwise, the name is not required. Name must not contain whitespace.",
65
69
  '`canBeReferencedInPrompt`'
66
70
  )),
@@ -69,32 +73,32 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
69
73
  },
70
74
  displayName: {
71
75
  description: ( localize(
72
- 5096,
76
+ 5206,
73
77
  "A human-readable name for this tool that may be used to describe it in the UI."
74
78
  )),
75
79
  type: 'string'
76
80
  },
77
81
  userDescription: {
78
- description: ( localize(5097, "A description of this tool that may be shown to the user.")),
82
+ description: ( localize(5207, "A description of this tool that may be shown to the user.")),
79
83
  type: 'string'
80
84
  },
81
85
  modelDescription: {
82
86
  description: ( localize(
83
- 5098,
87
+ 5208,
84
88
  "A description of this tool that may be used by a language model to select it."
85
89
  )),
86
90
  type: 'string'
87
91
  },
88
92
  inputSchema: {
89
93
  description: ( localize(
90
- 5099,
94
+ 5209,
91
95
  "A JSON schema for the input this tool accepts. The input must be an object at the top level. A particular language model may not support all JSON schema features. See the documentation for the language model family you are using for more information."
92
96
  )),
93
97
  $ref: toolsParametersSchemaSchemaId
94
98
  },
95
99
  canBeReferencedInPrompt: {
96
100
  markdownDescription: ( localize(
97
- 5100,
101
+ 5210,
98
102
  "If true, this tool shows up as an attachment that the user can add manually to their request. Chat participants will receive the tool in {0}.",
99
103
  '`ChatRequest#toolReferences`'
100
104
  )),
@@ -102,7 +106,7 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
102
106
  },
103
107
  icon: {
104
108
  markdownDescription: ( localize(
105
- 5101,
109
+ 5211,
106
110
  "An icon that represents this tool. Either a file path, an object with file paths for dark and light themes, or a theme icon reference, like `$(zap)`"
107
111
  )),
108
112
  anyOf: [{
@@ -112,11 +116,11 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
112
116
  type: 'object',
113
117
  properties: {
114
118
  light: {
115
- description: ( localize(5102, 'Icon path when a light theme is used')),
119
+ description: ( localize(5212, 'Icon path when a light theme is used')),
116
120
  type: 'string'
117
121
  },
118
122
  dark: {
119
- description: ( localize(5103, 'Icon path when a dark theme is used')),
123
+ description: ( localize(5213, 'Icon path when a dark theme is used')),
120
124
  type: 'string'
121
125
  }
122
126
  }
@@ -124,14 +128,14 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
124
128
  },
125
129
  when: {
126
130
  markdownDescription: ( localize(
127
- 5104,
131
+ 5214,
128
132
  "Condition which must be true for this tool to be enabled. Note that a tool may still be invoked by another extension even when its `when` condition is false."
129
133
  )),
130
134
  type: 'string'
131
135
  },
132
136
  tags: {
133
137
  description: ( localize(
134
- 5105,
138
+ 5215,
135
139
  "A set of tags that roughly describe the tool's capabilities. A tool user may use these to filter the set of tools to just ones that are relevant for the task at hand, or they may want to pick a tag that can be used to identify just the tools contributed by this extension."
136
140
  )),
137
141
  type: 'array',
@@ -144,34 +148,89 @@ const languageModelToolsExtensionPoint = ExtensionsRegistry.registerExtensionPoi
144
148
  }
145
149
  }
146
150
  });
151
+ const languageModelToolSetsExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
152
+ extensionPoint: 'languageModelToolSets',
153
+ deps: [languageModelToolsExtensionPoint],
154
+ jsonSchema: {
155
+ description: ( localize(
156
+ 5216,
157
+ 'Contributes a set of language model tools that can be used together.'
158
+ )),
159
+ type: 'array',
160
+ items: {
161
+ additionalProperties: false,
162
+ type: 'object',
163
+ defaultSnippets: [{
164
+ body: {
165
+ name: '${1}',
166
+ description: '${2}',
167
+ tools: ['${3}']
168
+ }
169
+ }],
170
+ required: ['name', 'description', 'tools'],
171
+ properties: {
172
+ name: {
173
+ description: ( localize(
174
+ 5217,
175
+ "A name for this tool set. Used as reference and should not contain whitespace."
176
+ )),
177
+ type: 'string',
178
+ pattern: '^[\\w-]+$'
179
+ },
180
+ description: {
181
+ description: ( localize(5218, "A description of this tool set.")),
182
+ type: 'string'
183
+ },
184
+ icon: {
185
+ markdownDescription: ( localize(5219, "An icon that represents this tool set, like `$(zap)`")),
186
+ type: 'string'
187
+ },
188
+ tools: {
189
+ markdownDescription: ( localize(
190
+ 5220,
191
+ "A list of tools or tool sets to include in this tool set. Cannot be empty and must reference tools by their `toolReferenceName`."
192
+ )),
193
+ type: 'array',
194
+ minItems: 1,
195
+ items: {
196
+ type: 'string'
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
202
+ });
147
203
  function toToolKey(extensionIdentifier, toolName) {
148
204
  return `${extensionIdentifier.value}/${toolName}`;
149
205
  }
206
+ function toToolSetKey(extensionIdentifier, toolName) {
207
+ return `toolset:${extensionIdentifier.value}/${toolName}`;
208
+ }
150
209
  let LanguageModelToolsExtensionPointHandler = class LanguageModelToolsExtensionPointHandler {
151
210
  static { this.ID = 'workbench.contrib.toolsExtensionPointHandler'; }
152
- constructor(languageModelToolsService, logService, productService) {
211
+ constructor(productService, languageModelToolsService) {
153
212
  this._registrationDisposables = ( new DisposableMap());
154
- languageModelToolsExtensionPoint.setHandler((extensions, delta) => {
213
+ languageModelToolsExtensionPoint.setHandler((_extensions, delta) => {
155
214
  for (const extension of delta.added) {
156
215
  for (const rawTool of extension.value) {
157
216
  if (!rawTool.name || !rawTool.modelDescription || !rawTool.displayName) {
158
- logService.error(`Extension '${extension.description.identifier.value}' CANNOT register tool without name, modelDescription, and displayName: ${JSON.stringify(rawTool)}`);
217
+ extension.collector.error(`Extension '${extension.description.identifier.value}' CANNOT register tool without name, modelDescription, and displayName: ${JSON.stringify(rawTool)}`);
159
218
  continue;
160
219
  }
161
220
  if (!rawTool.name.match(/^[\w-]+$/)) {
162
- logService.error(`Extension '${extension.description.identifier.value}' CANNOT register tool with invalid id: ${rawTool.name}. The id must match /^[\\w-]+$/.`);
221
+ extension.collector.error(`Extension '${extension.description.identifier.value}' CANNOT register tool with invalid id: ${rawTool.name}. The id must match /^[\\w-]+$/.`);
163
222
  continue;
164
223
  }
165
224
  if (rawTool.canBeReferencedInPrompt && !rawTool.toolReferenceName) {
166
- logService.error(`Extension '${extension.description.identifier.value}' CANNOT register tool with 'canBeReferencedInPrompt' set without a 'toolReferenceName': ${JSON.stringify(rawTool)}`);
225
+ extension.collector.error(`Extension '${extension.description.identifier.value}' CANNOT register tool with 'canBeReferencedInPrompt' set without a 'toolReferenceName': ${JSON.stringify(rawTool)}`);
167
226
  continue;
168
227
  }
169
228
  if ((rawTool.name.startsWith('copilot_') || rawTool.name.startsWith('vscode_')) && !isProposedApiEnabled(extension.description, 'chatParticipantPrivate')) {
170
- logService.error(`Extension '${extension.description.identifier.value}' CANNOT register tool with name starting with "vscode_" or "copilot_"`);
229
+ extension.collector.error(`Extension '${extension.description.identifier.value}' CANNOT register tool with name starting with "vscode_" or "copilot_"`);
171
230
  continue;
172
231
  }
173
232
  if (rawTool.tags?.some(tag => tag.startsWith('copilot_') || tag.startsWith('vscode_')) && !isProposedApiEnabled(extension.description, 'chatParticipantPrivate')) {
174
- logService.error(`Extension '${extension.description.identifier.value}' CANNOT register tool with tags starting with "vscode_" or "copilot_"`);
233
+ extension.collector.error(`Extension '${extension.description.identifier.value}' CANNOT register tool with tags starting with "vscode_" or "copilot_"`);
175
234
  }
176
235
  const rawIcon = rawTool.icon;
177
236
  let icon;
@@ -190,18 +249,25 @@ let LanguageModelToolsExtensionPointHandler = class LanguageModelToolsExtensionP
190
249
  const isBuiltinTool = productService.defaultChatAgent?.chatExtensionId ?
191
250
  ExtensionIdentifier.equals(extension.description.identifier, productService.defaultChatAgent.chatExtensionId) :
192
251
  isProposedApiEnabled(extension.description, 'chatParticipantPrivate');
252
+ const source = isBuiltinTool
253
+ ? ToolDataSource.Internal
254
+ : { type: 'extension', label: extension.description.displayName ?? extension.description.name, extensionId: extension.description.identifier };
193
255
  const tool = {
194
256
  ...rawTool,
195
- source: { type: 'extension', label: extension.description.displayName ?? extension.description.name, extensionId: extension.description.identifier, isExternalTool: !isBuiltinTool },
257
+ source,
196
258
  inputSchema: rawTool.inputSchema,
197
259
  id: rawTool.name,
198
260
  icon,
199
261
  when: rawTool.when ? ContextKeyExpr.deserialize(rawTool.when) : undefined,
200
262
  alwaysDisplayInputOutput: !isBuiltinTool,
201
- supportsToolPicker: rawTool.canBeReferencedInPrompt
202
263
  };
203
- const disposable = languageModelToolsService.registerToolData(tool);
204
- this._registrationDisposables.set(toToolKey(extension.description.identifier, rawTool.name), disposable);
264
+ try {
265
+ const disposable = languageModelToolsService.registerToolData(tool);
266
+ this._registrationDisposables.set(toToolKey(extension.description.identifier, rawTool.name), disposable);
267
+ }
268
+ catch (e) {
269
+ extension.collector.error(`Failed to register tool '${rawTool.name}': ${e}`);
270
+ }
205
271
  }
206
272
  }
207
273
  for (const extension of delta.removed) {
@@ -210,12 +276,67 @@ let LanguageModelToolsExtensionPointHandler = class LanguageModelToolsExtensionP
210
276
  }
211
277
  }
212
278
  });
279
+ languageModelToolSetsExtensionPoint.setHandler((_extensions, delta) => {
280
+ for (const extension of delta.added) {
281
+ if (!isProposedApiEnabled(extension.description, 'contribLanguageModelToolSets')) {
282
+ extension.collector.error(`Extension '${extension.description.identifier.value}' CANNOT register language model tools because the 'contribLanguageModelToolSets' API proposal is not enabled.`);
283
+ continue;
284
+ }
285
+ const isBuiltinTool = productService.defaultChatAgent?.chatExtensionId ?
286
+ ExtensionIdentifier.equals(extension.description.identifier, productService.defaultChatAgent.chatExtensionId) :
287
+ isProposedApiEnabled(extension.description, 'chatParticipantPrivate');
288
+ const source = isBuiltinTool
289
+ ? ToolDataSource.Internal
290
+ : { type: 'extension', label: extension.description.displayName ?? extension.description.name, extensionId: extension.description.identifier };
291
+ for (const toolSet of extension.value) {
292
+ if (isFalsyOrWhitespace(toolSet.name)) {
293
+ extension.collector.error(`Tool set '${toolSet.name}' CANNOT have an empty name`);
294
+ continue;
295
+ }
296
+ if (isFalsyOrEmpty(toolSet.tools)) {
297
+ extension.collector.error(`Tool set '${toolSet.name}' CANNOT have an empty tools array`);
298
+ continue;
299
+ }
300
+ const tools = [];
301
+ const toolSets = [];
302
+ for (const toolName of toolSet.tools) {
303
+ const toolObj = languageModelToolsService.getToolByName(toolName, true);
304
+ if (toolObj) {
305
+ tools.push(toolObj);
306
+ continue;
307
+ }
308
+ const toolSetObj = languageModelToolsService.getToolSetByName(toolName);
309
+ if (toolSetObj) {
310
+ toolSets.push(toolSetObj);
311
+ continue;
312
+ }
313
+ extension.collector.warn(`Tool set '${toolSet.name}' CANNOT find tool or tool set by name: ${toolName}`);
314
+ }
315
+ if (toolSets.length === 0 && tools.length === 0) {
316
+ extension.collector.error(`Tool set '${toolSet.name}' CANNOT have an empty tools array (none of the tools were found)`);
317
+ continue;
318
+ }
319
+ const store = ( new DisposableStore());
320
+ const obj = languageModelToolsService.createToolSet(source, toToolSetKey(extension.description.identifier, toolSet.name), toolSet.referenceName ?? toolSet.name, { icon: toolSet.icon ? ThemeIcon.fromString(toolSet.icon) : undefined, description: toolSet.description });
321
+ transaction(tx => {
322
+ store.add(obj);
323
+ tools.forEach(tool => store.add(obj.addTool(tool, tx)));
324
+ toolSets.forEach(toolSet => store.add(obj.addToolSet(toolSet, tx)));
325
+ });
326
+ this._registrationDisposables.set(toToolSetKey(extension.description.identifier, toolSet.name), store);
327
+ }
328
+ }
329
+ for (const extension of delta.removed) {
330
+ for (const toolSet of extension.value) {
331
+ this._registrationDisposables.deleteAndDispose(toToolSetKey(extension.description.identifier, toolSet.name));
332
+ }
333
+ }
334
+ });
213
335
  }
214
336
  };
215
337
  LanguageModelToolsExtensionPointHandler = ( __decorate([
216
- ( __param(0, ILanguageModelToolsService)),
217
- ( __param(1, ILogService)),
218
- ( __param(2, IProductService))
338
+ ( __param(0, IProductService)),
339
+ ( __param(1, ILanguageModelToolsService))
219
340
  ], LanguageModelToolsExtensionPointHandler));
220
341
  class LanguageModelToolDataRenderer extends Disposable {
221
342
  constructor() {
@@ -231,9 +352,9 @@ class LanguageModelToolDataRenderer extends Disposable {
231
352
  return { data: { headers: [], rows: [] }, dispose: () => { } };
232
353
  }
233
354
  const headers = [
234
- ( localize(5106, "Name")),
235
- ( localize(5107, "Display Name")),
236
- ( localize(5108, "Description")),
355
+ ( localize(5221, "Name")),
356
+ ( localize(5222, "Display Name")),
357
+ ( localize(5223, "Description")),
237
358
  ];
238
359
  const rows = ( contribs.map(t => {
239
360
  return [
@@ -253,11 +374,55 @@ class LanguageModelToolDataRenderer extends Disposable {
253
374
  }
254
375
  ( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
255
376
  id: 'languageModelTools',
256
- label: ( localize(5109, "Language Model Tools")),
377
+ label: ( localize(5224, "Language Model Tools")),
257
378
  access: {
258
379
  canToggle: false
259
380
  },
260
381
  renderer: ( new SyncDescriptor(LanguageModelToolDataRenderer)),
261
382
  });
383
+ class LanguageModelToolSetDataRenderer extends Disposable {
384
+ constructor() {
385
+ super(...arguments);
386
+ this.type = 'table';
387
+ }
388
+ shouldRender(manifest) {
389
+ return !!manifest.contributes?.languageModelToolSets;
390
+ }
391
+ render(manifest) {
392
+ const contribs = manifest.contributes?.languageModelToolSets ?? [];
393
+ if (!contribs.length) {
394
+ return { data: { headers: [], rows: [] }, dispose: () => { } };
395
+ }
396
+ const headers = [
397
+ ( localize(5225, "Name")),
398
+ ( localize(5226, "Reference Name")),
399
+ ( localize(5227, "Tools")),
400
+ ( localize(5228, "Description")),
401
+ ];
402
+ const rows = ( contribs.map(t => {
403
+ return [
404
+ ( new MarkdownString(`\`${t.name}\``)),
405
+ t.referenceName ? ( new MarkdownString(`\`#${t.referenceName}\``)) : 'none',
406
+ t.tools.join(', '),
407
+ t.description,
408
+ ];
409
+ }));
410
+ return {
411
+ data: {
412
+ headers,
413
+ rows
414
+ },
415
+ dispose: () => { }
416
+ };
417
+ }
418
+ }
419
+ ( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
420
+ id: 'languageModelToolSets',
421
+ label: ( localize(5229, "Language Model Tool Sets")),
422
+ access: {
423
+ canToggle: false
424
+ },
425
+ renderer: ( new SyncDescriptor(LanguageModelToolSetDataRenderer)),
426
+ });
262
427
 
263
428
  export { LanguageModelToolsExtensionPointHandler };
@@ -21,7 +21,7 @@ var PhraseTextType;
21
21
  const VoiceChatInProgress = ( new RawContextKey(
22
22
  'voiceChatInProgress',
23
23
  false,
24
- { type: 'boolean', description: ( localize(5110, "A speech-to-text session is in progress for chat.")) }
24
+ { type: 'boolean', description: ( localize(5230, "A speech-to-text session is in progress for chat.")) }
25
25
  ));
26
26
  let VoiceChatService = class VoiceChatService extends Disposable {
27
27
  static { VoiceChatService_1 = this; }
@@ -1,8 +1,8 @@
1
1
 
2
2
  import { registerEditorContribution, EditorContributionInstantiation } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorExtensions';
3
3
  import { registerAction2, MenuRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
4
- import { InlineChatController2, InlineChatController1, InlineChatController } from '@codingame/monaco-vscode-9f229325-8261-585c-a552-16085958c680-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
5
- import { KeepSessionAction2, UndoSessionAction2, CloseSessionAction2, RevealWidget, CancelRequestAction, StartSessionAction, CloseAction, ConfigureInlineChatAction, UnstashSessionAction, DiscardHunkAction, RerunAction, MoveToNextHunk, MoveToPreviousHunk, ArrowOutUpAction, ArrowOutDownAction, FocusInlineChat, ViewInChatAction, ToggleDiffForChange, AcceptChanges } from '@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatActions';
4
+ import { InlineChatController2, InlineChatController1, InlineChatController } from '@codingame/monaco-vscode-6c0f93b9-169c-58c3-a9cb-7d60698eb52c-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
5
+ import { KeepSessionAction2, UndoSessionAction2, CloseSessionAction2, RevealWidget, CancelRequestAction, StartSessionAction, CloseAction, ConfigureInlineChatAction, UnstashSessionAction, DiscardHunkAction, RerunAction, MoveToNextHunk, MoveToPreviousHunk, ArrowOutUpAction, ArrowOutDownAction, FocusInlineChat, ViewInChatAction, ToggleDiffForChange, AcceptChanges } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatActions';
6
6
  import { INLINE_CHAT_ID, CTX_INLINE_CHAT_REQUEST_IN_PROGRESS, CTX_INLINE_CHAT_EDITING, CTX_INLINE_CHAT_HAS_AGENT, MENU_INLINE_CHAT_WIDGET_STATUS } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
7
7
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
8
8
  import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
@@ -11,7 +11,7 @@ import { InlineChatNotebookContribution } from './inlineChatNotebook.js';
11
11
  import { Extensions, registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
12
12
  import { InlineChatAccessibleView } from './inlineChatAccessibleView.js';
13
13
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
14
- import { InlineChatEnabler } from '@codingame/monaco-vscode-9f229325-8261-585c-a552-16085958c680-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl';
14
+ import { InlineChatEnabler } from '@codingame/monaco-vscode-6c0f93b9-169c-58c3-a9cb-7d60698eb52c-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl';
15
15
  import { AccessibleViewRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/browser/accessibleViewRegistry';
16
16
  import { ChatSubmitAction, CancelAction } from '@codingame/monaco-vscode-fab30422-b487-5f4e-8d30-8b4d266e3fcd-common/vscode/vs/workbench/contrib/chat/browser/actions/chatExecuteActions';
17
17
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
@@ -37,7 +37,7 @@ const editActionMenuItem = {
37
37
  order: 0,
38
38
  command: {
39
39
  id: ChatSubmitAction.ID,
40
- title: ( localize(7227, "Edit Code")),
40
+ title: ( localize(7361, "Edit Code")),
41
41
  },
42
42
  when: ( ContextKeyExpr.and(ChatContextKeys.inputHasText, ( CTX_INLINE_CHAT_REQUEST_IN_PROGRESS.toNegated()), CTX_INLINE_CHAT_EDITING, CTX_INLINE_CHAT_HAS_AGENT)),
43
43
  };
@@ -46,7 +46,7 @@ const generateActionMenuItem = {
46
46
  order: 0,
47
47
  command: {
48
48
  id: ChatSubmitAction.ID,
49
- title: ( localize(7228, "Generate")),
49
+ title: ( localize(7362, "Generate")),
50
50
  },
51
51
  when: ( ContextKeyExpr.and(ChatContextKeys.inputHasText, ( CTX_INLINE_CHAT_REQUEST_IN_PROGRESS.toNegated()), ( CTX_INLINE_CHAT_EDITING.toNegated()), CTX_INLINE_CHAT_HAS_AGENT)),
52
52
  };
@@ -57,8 +57,8 @@ const cancelActionMenuItem = {
57
57
  order: 0,
58
58
  command: {
59
59
  id: CancelAction.ID,
60
- title: ( localize(7229, "Cancel Request")),
61
- shortTitle: ( localize(7230, "Cancel")),
60
+ title: ( localize(7363, "Cancel Request")),
61
+ shortTitle: ( localize(7364, "Cancel")),
62
62
  },
63
63
  when: ( ContextKeyExpr.and(CTX_INLINE_CHAT_REQUEST_IN_PROGRESS)),
64
64
  };
@@ -1,5 +1,5 @@
1
1
 
2
- import { InlineChatController } from '@codingame/monaco-vscode-9f229325-8261-585c-a552-16085958c680-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
2
+ import { InlineChatController } from '@codingame/monaco-vscode-6c0f93b9-169c-58c3-a9cb-7d60698eb52c-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
3
3
  import { CTX_INLINE_CHAT_FOCUSED, CTX_INLINE_CHAT_RESPONSE_FOCUSED } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
4
4
  import { ICodeEditorService } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/codeEditorService.service';
5
5
  import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
@@ -6,13 +6,13 @@ import { MouseTargetType } from '@codingame/monaco-vscode-api/vscode/vs/editor/b
6
6
  import { localize, localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
7
  import { RawContextKey, ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
8
8
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
9
- import { InlineChatController } from '@codingame/monaco-vscode-9f229325-8261-585c-a552-16085958c680-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
9
+ import { InlineChatController } from '@codingame/monaco-vscode-6c0f93b9-169c-58c3-a9cb-7d60698eb52c-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
10
10
  import { CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_HAS_AGENT, ACTION_START, InlineChatConfigKeys } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
11
11
  import { EditorAction2 } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorExtensions';
12
12
  import { EditOperation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/editOperation';
13
13
  import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
14
14
  import { Position } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/position';
15
- import { AbstractInline1ChatAction } from '@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatActions';
15
+ import { AbstractInline1ChatAction } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatActions';
16
16
  import { EditorContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/editorContextKeys';
17
17
  import { TrackedRangeStickiness } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model';
18
18
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
@@ -37,21 +37,31 @@ import { stringValue } from '@codingame/monaco-vscode-api/vscode/vs/base/browser
37
37
  import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
38
38
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
39
39
  import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
40
- import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/base';
41
- import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils';
42
- import { derivedWithStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/derived';
43
- import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
40
+ import { INSTRUCTIONS_LANGUAGE_ID, PROMPT_LANGUAGE_ID } from '@codingame/monaco-vscode-fab30422-b487-5f4e-8d30-8b4d266e3fcd-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/constants';
41
+ import { MODE_FILE_EXTENSION } from '@codingame/monaco-vscode-47472025-cc45-5680-86cd-09ceaba921a1-common/vscode/vs/platform/prompts/common/prompts';
42
+ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
43
+ import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
44
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
45
+ import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
44
46
 
45
47
  var InlineChatHintsController_1;
46
48
  registerCss(inlineChat);
47
- const CTX_INLINE_CHAT_SHOWING_HINT = ( new RawContextKey('inlineChatShowingHint', false, ( localize(7259, "Whether inline chat shows a contextual hint"))));
49
+ const IGNORED_LANGUAGE_IDS = ( new Set([
50
+ PLAINTEXT_LANGUAGE_ID,
51
+ 'markdown',
52
+ 'search-result',
53
+ INSTRUCTIONS_LANGUAGE_ID,
54
+ PROMPT_LANGUAGE_ID,
55
+ MODE_FILE_EXTENSION
56
+ ]));
57
+ const CTX_INLINE_CHAT_SHOWING_HINT = ( new RawContextKey('inlineChatShowingHint', false, ( localize(7393, "Whether inline chat shows a contextual hint"))));
48
58
  const _inlineChatActionId = 'inlineChat.startWithCurrentLine';
49
59
  class InlineChatExpandLineAction extends EditorAction2 {
50
60
  constructor() {
51
61
  super({
52
62
  id: _inlineChatActionId,
53
63
  category: AbstractInline1ChatAction.category,
54
- title: ( localize2(7260, "Start in Editor with Current Line")),
64
+ title: ( localize2(7394, "Start in Editor with Current Line")),
55
65
  f1: true,
56
66
  precondition: ( ContextKeyExpr.and(( CTX_INLINE_CHAT_VISIBLE.negate()), CTX_INLINE_CHAT_HAS_AGENT, EditorContextKeys.writable)),
57
67
  keybinding: [{
@@ -94,7 +104,7 @@ class ShowInlineChatHintAction extends EditorAction2 {
94
104
  super({
95
105
  id: 'inlineChat.showHint',
96
106
  category: AbstractInline1ChatAction.category,
97
- title: ( localize2(7261, "Show Inline Chat Hint")),
107
+ title: ( localize2(7395, "Show Inline Chat Hint")),
98
108
  f1: false,
99
109
  precondition: ( ContextKeyExpr.and(( CTX_INLINE_CHAT_VISIBLE.negate()), CTX_INLINE_CHAT_HAS_AGENT, EditorContextKeys.writable)),
100
110
  });
@@ -186,7 +196,7 @@ let InlineChatHintsController = class InlineChatHintsController extends Disposab
186
196
  const keyObs = observableFromEvent(keybindingService.onDidUpdateKeybindings, _ => keybindingService.lookupKeybinding(ACTION_START)?.getLabel());
187
197
  const configHintEmpty = observableConfigValue(InlineChatConfigKeys.LineEmptyHint, false, this._configurationService);
188
198
  const configHintNL = observableConfigValue(InlineChatConfigKeys.LineNLHint, false, this._configurationService);
189
- const showDataObs = derivedWithStore((r, store) => {
199
+ const showDataObs = derived((r) => {
190
200
  const ghostState = ghostCtrl?.model.read(r)?.state.read(r);
191
201
  const textFocus = editorObs.isTextFocused.read(r);
192
202
  let position = editorObs.cursorPosition.read(r);
@@ -195,11 +205,11 @@ let InlineChatHintsController = class InlineChatHintsController extends Disposab
195
205
  if (ghostState !== undefined || !kb || !position || !model || !textFocus) {
196
206
  return undefined;
197
207
  }
198
- if (model.getLanguageId() === PLAINTEXT_LANGUAGE_ID || model.getLanguageId() === 'markdown' || model.getLanguageId() === 'search-result') {
208
+ if (( IGNORED_LANGUAGE_IDS.has(model.getLanguageId()))) {
199
209
  return undefined;
200
210
  }
201
- const emitter = store.add(( new Emitter()));
202
- store.add(model.onDidChangeContent(() => emitter.fire()));
211
+ const emitter = r.store.add(( new Emitter()));
212
+ r.store.add(model.onDidChangeContent(() => emitter.fire()));
203
213
  observableFromEvent(emitter.event, () => model.getVersionId()).read(r);
204
214
  position = model.validatePosition(position);
205
215
  const visible = this._visibilityObs.read(r);
@@ -225,15 +235,15 @@ let InlineChatHintsController = class InlineChatHintsController extends Disposab
225
235
  this._ctxShowingHint.reset();
226
236
  return;
227
237
  }
228
- const agentName = chatAgentService.getDefaultAgent(ChatAgentLocation.Editor)?.name ?? ( localize(7262, "Chat"));
238
+ const agentName = chatAgentService.getDefaultAgent(ChatAgentLocation.Editor)?.name ?? ( localize(7396, "Chat"));
229
239
  const { position, isEol, isWhitespace, kb, model } = showData;
230
240
  const inlineClassName = ['a' , 'inline-chat-hint', 'inline-chat-hint-text'];
231
241
  let content;
232
242
  if (isWhitespace) {
233
- content = '\u00a0' + ( localize(7263, "{0} to edit with {1}", kb, agentName));
243
+ content = '\u00a0' + ( localize(7397, "{0} to edit with {1}", kb, agentName));
234
244
  }
235
245
  else if (isEol) {
236
- content = '\u00a0' + ( localize(7264, "{0} to continue with {1}", kb, agentName));
246
+ content = '\u00a0' + ( localize(7398, "{0} to continue with {1}", kb, agentName));
237
247
  }
238
248
  else {
239
249
  content = '\u200a' + kb + '\u200a';
@@ -262,7 +272,7 @@ let InlineChatHintsController = class InlineChatHintsController extends Disposab
262
272
  getActions: () => [
263
273
  toAction({
264
274
  id: 'inlineChat.disableHint',
265
- label: ( localize(7265, "Disable Inline Chat Hint")),
275
+ label: ( localize(7399, "Disable Inline Chat Hint")),
266
276
  run: async () => {
267
277
  await this._configurationService.updateValue(setting, false);
268
278
  }
@@ -290,7 +300,7 @@ class HideInlineChatHintAction extends EditorAction2 {
290
300
  constructor() {
291
301
  super({
292
302
  id: 'inlineChat.hideHint',
293
- title: ( localize2(7266, "Hide Inline Chat Hint")),
303
+ title: ( localize2(7400, "Hide Inline Chat Hint")),
294
304
  precondition: CTX_INLINE_CHAT_SHOWING_HINT,
295
305
  keybinding: {
296
306
  weight: KeybindingWeight.EditorContrib - 10,
@@ -4,7 +4,7 @@ import { illegalState } from '@codingame/monaco-vscode-api/vscode/vs/base/common
4
4
  import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
5
  import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
6
6
  import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
7
- import { InlineChatController } from '@codingame/monaco-vscode-9f229325-8261-585c-a552-16085958c680-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
7
+ import { InlineChatController } from '@codingame/monaco-vscode-6c0f93b9-169c-58c3-a9cb-7d60698eb52c-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
8
8
  import { IInlineChatSessionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.service';
9
9
  import { INotebookEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/browser/services/notebookEditorService.service';
10
10
  import { CellUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
@@ -1,6 +1,6 @@
1
1
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
2
  import { CellDiffInfo } from "@codingame/monaco-vscode-e4d0fd26-1b26-5583-b3f7-582e08d7b389-common/vscode/vs/workbench/contrib/notebook/browser/diff/notebookDiffViewModel";
3
- import { INotebookEditor } from "@codingame/monaco-vscode-324f9a6e-6231-5bfc-af17-e147abd2dfd2-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser";
3
+ import { INotebookEditor } from "@codingame/monaco-vscode-4372ad43-a220-5e78-83e6-95a9cfd64384-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser";
4
4
  export declare class NotebookModifiedCellDecorator extends Disposable {
5
5
  private readonly notebookEditor;
6
6
  private readonly decorators;
@@ -1,7 +1,7 @@
1
1
 
2
2
  import { Disposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
3
- import { NotebookOverviewRulerLane } from '@codingame/monaco-vscode-324f9a6e-6231-5bfc-af17-e147abd2dfd2-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
4
- import { overviewRulerModifiedForeground } from '@codingame/monaco-vscode-bb83fe45-f4c7-5673-b9f1-5c409a63f19c-common/vscode/vs/workbench/contrib/scm/common/quickDiff';
3
+ import { NotebookOverviewRulerLane } from '@codingame/monaco-vscode-4372ad43-a220-5e78-83e6-95a9cfd64384-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
4
+ import { overviewRulerModifiedForeground } from '@codingame/monaco-vscode-f338ac19-278c-5fe1-bec8-b588de04a788-common/vscode/vs/workbench/contrib/scm/common/quickDiff';
5
5
 
6
6
  class NotebookModifiedCellDecorator extends Disposable {
7
7
  constructor(notebookEditor) {