@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.
- package/index.js +7 -4
- package/package.json +36 -30
- package/vscode/src/vs/base/common/objectCache.d.ts +2 -2
- package/vscode/src/vs/base/common/objectCache.js +3 -3
- package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +10 -0
- package/vscode/src/vs/platform/browserElements/common/browserElements.js +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +40 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +158 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +256 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +234 -572
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +29 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +107 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +344 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +84 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatAttachInstructionsAction.d.ts +18 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatAttachInstructionsAction.js +137 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatModeActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatModeActions.js +54 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatRunPromptAction.js +40 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatSaveToPromptAction.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatSaveToPromptAction.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/promptFilePickers.d.ts +15 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/promptFilePickers.js +171 -101
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/attachInstructions.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/attachInstructions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/runPrompt.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/index.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/index.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +176 -69
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +15 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +22 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +35 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +80 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +11 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +12 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +13 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +15 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +3 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +10 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +18 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +118 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +46 -48
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +49 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +379 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +31 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +382 -152
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +99 -56
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +9 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +10 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +18 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +95 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSetup.css +92 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/media/github.svg +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/google.svg +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +10 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.js +111 -111
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.d.ts +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.js +36 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.d.ts +5 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.js +91 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/errors.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/utils/createPromptFile.d.ts +1 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/utils/createPromptFile.js +4 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +95 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +348 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +93 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +46 -36
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.js +21 -11
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/index.js +6 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/index.js +3 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptHeaderDiagnosticsProvider.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptHeaderDiagnosticsProvider.js +12 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkDiagnosticsProvider.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkDiagnosticsProvider.js +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptPathAutocompletion.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceBase.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceBase.js +9 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceManagerBase.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceManagerBase.js +12 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +21 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +111 -124
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +22 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +159 -97
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/treeUtils.d.ts +15 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/treeUtils.js +2 -14
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +8 -2
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +198 -33
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +28 -18
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/attachInstructionsCommand.d.ts +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/attachInstructionsCommand.js +0 -73
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterDecoration.d.ts +0 -29
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterDecoration.js +0 -74
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterMarkerDecoration.d.ts +0 -14
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterMarkerDecoration.js +0 -40
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/decorationBase.d.ts +0 -23
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/decorationBase.js +0 -40
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/index.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/index.js +0 -9
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/reactiveDecorationBase.d.ts +0 -23
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/reactiveDecorationBase.js +0 -68
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/types.d.ts +0 -13
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/promptDecorationsProvider.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/promptDecorationsProvider.js +0 -121
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/types.d.ts +0 -13
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
119
|
+
description: ( localize(5212, 'Icon path when a light theme is used')),
|
|
116
120
|
type: 'string'
|
|
117
121
|
},
|
|
118
122
|
dark: {
|
|
119
|
-
description: ( localize(
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
211
|
+
constructor(productService, languageModelToolsService) {
|
|
153
212
|
this._registrationDisposables = ( new DisposableMap());
|
|
154
|
-
languageModelToolsExtensionPoint.setHandler((
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
204
|
-
|
|
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,
|
|
217
|
-
( __param(1,
|
|
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(
|
|
235
|
-
( localize(
|
|
236
|
-
( localize(
|
|
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(
|
|
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(
|
|
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-
|
|
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-
|
|
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-
|
|
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(
|
|
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(
|
|
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(
|
|
61
|
-
shortTitle: ( localize(
|
|
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-
|
|
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-
|
|
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-
|
|
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 {
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
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
|
|
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(
|
|
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(
|
|
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 =
|
|
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 (
|
|
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(
|
|
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(
|
|
243
|
+
content = '\u00a0' + ( localize(7397, "{0} to edit with {1}", kb, agentName));
|
|
234
244
|
}
|
|
235
245
|
else if (isEol) {
|
|
236
|
-
content = '\u00a0' + ( localize(
|
|
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(
|
|
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(
|
|
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-
|
|
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-
|
|
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-
|
|
4
|
-
import { overviewRulerModifiedForeground } from '@codingame/monaco-vscode-
|
|
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) {
|