@codingame/monaco-vscode-chat-service-override 16.1.0 → 17.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 +6 -6
- package/package.json +30 -27
- package/vscode/src/vs/base/common/objectCache.d.ts +1 -1
- package/vscode/src/vs/base/common/objectCache.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +41 -41
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +16 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +4 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +410 -443
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +1 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +3 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +9 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +32 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatAttachInstructionsAction.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatAttachInstructionsAction.js +61 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatRunPromptAction.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatRunPromptAction.js +159 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatSaveToPromptAction.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatSaveToPromptAction.js +140 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/promptFilePickers.d.ts +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/promptFilePickers.js +244 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/attachInstructions.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/attachInstructions.js +30 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/runPrompt.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/runPrompt.js +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/index.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/index.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +171 -168
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEdinputInputContentProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +48 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +46 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +118 -123
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +5 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +45 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +12 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +48 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +53 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +32 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +9 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +80 -268
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +36 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +214 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +7 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +26 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +186 -106
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +129 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +313 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +4 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +12 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.d.ts +0 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +42 -181
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +15 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +2 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +484 -384
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +187 -101
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusItemService.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +3 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +8 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +53 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +264 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +28 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +41 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +8 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSetup.css +2 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatus.css +20 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +67 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/attachInstructionsCommand.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/attachInstructionsCommand.js +73 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.js +82 -67
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.js +44 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.d.ts +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.js +24 -14
- 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.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatCodeMapperService.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +14 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +8 -7
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +84 -80
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatTransferService.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatTransferService.js +27 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.js +62 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/index.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/index.js +16 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/index.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/index.js +17 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterDecoration.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterDecoration.js +74 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterMarkerDecoration.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterMarkerDecoration.js +40 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/decorationBase.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/decorationBase.js +40 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/index.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/index.js +9 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/reactiveDecorationBase.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/reactiveDecorationBase.js +68 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/types.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/promptDecorationsProvider.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/promptDecorationsProvider.js +121 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/types.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/types.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptHeaderDiagnosticsProvider.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptHeaderDiagnosticsProvider.js +62 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkDiagnosticsProvider.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkDiagnosticsProvider.js +65 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/{languageFeatures → contributions/languageFeatures/providers}/promptLinkProvider.js +3 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/{languageFeatures → contributions/languageFeatures/providers}/promptPathAutocompletion.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/{languageFeatures → contributions/languageFeatures/providers}/promptPathAutocompletion.js +14 -19
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceBase.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceBase.js +22 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceManagerBase.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceManagerBase.js +83 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.js +8 -6
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +17 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +223 -21
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +5 -4
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +28 -22
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/treeUtils.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/treeUtils.js +25 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +20 -31
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +15 -12
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +12 -12
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
- package/vscode/src/vs/workbench/services/workspaces/common/workspaceUtils.d.ts +0 -2
- package/vscode/src/vs/workbench/services/workspaces/common/workspaceUtils.js +1 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/chatAttachPromptAction.d.ts +0 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/chatAttachPromptAction.js +0 -54
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/askToSelectPrompt.d.ts +0 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/askToSelectPrompt.js +0 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/constants.d.ts +0 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/constants.js +0 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/attachPrompts.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/attachPrompts.js +0 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/createPlaceholderText.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/createPlaceholderText.js +0 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/createPromptPickItem.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/createPromptPickItem.js +0 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/handleButtonClick.d.ts +0 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/handleButtonClick.js +0 -49
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/usePromptCommand.d.ts +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/usePromptCommand.js +0 -80
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/constants.d.ts +0 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/constants.js +0 -13
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/textModelContentsProvider.d.ts +0 -21
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/textModelContentsProvider.js +0 -64
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageFeatures/promptLinkDiagnosticsProvider.d.ts +0 -9
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageFeatures/promptLinkDiagnosticsProvider.js +0 -117
- /package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/{languageFeatures → contributions/languageFeatures/providers}/promptLinkProvider.d.ts +0 -0
|
@@ -25,13 +25,13 @@ import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs
|
|
|
25
25
|
import { IWorkbenchAssignmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service';
|
|
26
26
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
27
27
|
import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
|
|
28
|
-
import { normalizeSerializableChatData, ChatModel, ChatRequestRemovalReason, updateRanges, toChatHistoryContent, ChatRequestModel } from '@codingame/monaco-vscode-
|
|
29
|
-
import { ChatRequestAgentPart, ChatRequestAgentSubcommandPart, chatSubcommandLeader, chatAgentLeader, ChatRequestSlashCommandPart, getPromptText } from '@codingame/monaco-vscode-
|
|
30
|
-
import { ChatRequestParser } from '@codingame/monaco-vscode-
|
|
28
|
+
import { normalizeSerializableChatData, ChatModel, ChatRequestRemovalReason, updateRanges, isImageVariableEntry, toChatHistoryContent, ChatRequestModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModel';
|
|
29
|
+
import { ChatRequestAgentPart, ChatRequestAgentSubcommandPart, chatSubcommandLeader, chatAgentLeader, ChatRequestSlashCommandPart, getPromptText } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatParserTypes';
|
|
30
|
+
import { ChatRequestParser } from '@codingame/monaco-vscode-fab30422-b487-5f4e-8d30-8b4d266e3fcd-common/vscode/vs/workbench/contrib/chat/common/chatRequestParser';
|
|
31
31
|
import { ChatServiceTelemetry } from './chatServiceTelemetry.js';
|
|
32
32
|
import { ChatSessionStore } from './chatSessionStore.js';
|
|
33
33
|
import { IChatSlashCommandService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSlashCommands.service';
|
|
34
|
-
import {
|
|
34
|
+
import { IChatTransferService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatTransferService.service';
|
|
35
35
|
import { ChatConfiguration, ChatAgentLocation, ChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
36
36
|
import { ChatMessageRole } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
37
37
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
|
|
@@ -63,17 +63,17 @@ let ChatService = class ChatService extends Disposable {
|
|
|
63
63
|
get transferredSessionData() {
|
|
64
64
|
return this._transferredSessionData;
|
|
65
65
|
}
|
|
66
|
-
get unifiedViewEnabled() {
|
|
67
|
-
return !!this.configurationService.getValue(ChatConfiguration.UnifiedChatView);
|
|
68
|
-
}
|
|
69
66
|
get useFileStorage() {
|
|
70
67
|
return this.configurationService.getValue(ChatConfiguration.UseFileStorage);
|
|
71
68
|
}
|
|
69
|
+
get edits2Enabled() {
|
|
70
|
+
return this.configurationService.getValue(ChatConfiguration.Edits2Enabled);
|
|
71
|
+
}
|
|
72
72
|
get isEmptyWindow() {
|
|
73
73
|
const workspace = this.workspaceContextService.getWorkspace();
|
|
74
74
|
return !workspace.configuration && workspace.folders.length === 0;
|
|
75
75
|
}
|
|
76
|
-
constructor(storageService, logService, extensionService, instantiationService, telemetryService, workspaceContextService, chatSlashCommandService,
|
|
76
|
+
constructor(storageService, logService, extensionService, instantiationService, telemetryService, workspaceContextService, chatSlashCommandService, chatAgentService, configurationService, experimentService, chatTransferService) {
|
|
77
77
|
super();
|
|
78
78
|
this.storageService = storageService;
|
|
79
79
|
this.logService = logService;
|
|
@@ -82,10 +82,10 @@ let ChatService = class ChatService extends Disposable {
|
|
|
82
82
|
this.telemetryService = telemetryService;
|
|
83
83
|
this.workspaceContextService = workspaceContextService;
|
|
84
84
|
this.chatSlashCommandService = chatSlashCommandService;
|
|
85
|
-
this.chatVariablesService = chatVariablesService;
|
|
86
85
|
this.chatAgentService = chatAgentService;
|
|
87
86
|
this.configurationService = configurationService;
|
|
88
87
|
this.experimentService = experimentService;
|
|
88
|
+
this.chatTransferService = chatTransferService;
|
|
89
89
|
this._sessionModels = this._register(( new DisposableMap()));
|
|
90
90
|
this._pendingRequests = this._register(( new DisposableMap()));
|
|
91
91
|
this._deletedChatIds = ( new Set());
|
|
@@ -131,7 +131,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
131
131
|
}
|
|
132
132
|
saveState() {
|
|
133
133
|
const liveChats = Array.from(( this._sessionModels.values()))
|
|
134
|
-
.filter(session => session.initialLocation === ChatAgentLocation.Panel
|
|
134
|
+
.filter(session => session.initialLocation === ChatAgentLocation.Panel);
|
|
135
135
|
if (this.useFileStorage) {
|
|
136
136
|
this._chatSessionStore.storeSessions(liveChats);
|
|
137
137
|
}
|
|
@@ -145,19 +145,6 @@ let ChatService = class ChatService extends Disposable {
|
|
|
145
145
|
.filter(session => !( this._sessionModels.has(session.sessionId)))
|
|
146
146
|
.filter(session => session.requests.length));
|
|
147
147
|
allSessions.sort((a, b) => (b.creationDate ?? 0) - (a.creationDate ?? 0));
|
|
148
|
-
let hasPersistedEditSession = false;
|
|
149
|
-
allSessions = allSessions.filter(s => {
|
|
150
|
-
if (s.initialLocation === ChatAgentLocation.EditingSession) {
|
|
151
|
-
if (hasPersistedEditSession) {
|
|
152
|
-
return false;
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
hasPersistedEditSession = true;
|
|
156
|
-
return true;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return true;
|
|
160
|
-
});
|
|
161
148
|
allSessions = allSessions.slice(0, maxPersistedSessions);
|
|
162
149
|
if (allSessions.length) {
|
|
163
150
|
this.trace('onWillSaveState', `Persisting ${allSessions.length} sessions`);
|
|
@@ -210,6 +197,12 @@ let ChatService = class ChatService extends Disposable {
|
|
|
210
197
|
notifyUserAction(action) {
|
|
211
198
|
this._chatServiceTelemetry.notifyUserAction(action);
|
|
212
199
|
this._onDidPerformUserAction.fire(action);
|
|
200
|
+
if (action.action.kind === 'chatEditingSessionAction') {
|
|
201
|
+
const model = this._sessionModels.get(action.sessionId);
|
|
202
|
+
if (model) {
|
|
203
|
+
model.notifyEditingAction(action.action);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
213
206
|
}
|
|
214
207
|
async setChatSessionTitle(sessionId, title) {
|
|
215
208
|
const model = this._sessionModels.get(sessionId);
|
|
@@ -283,9 +276,9 @@ let ChatService = class ChatService extends Disposable {
|
|
|
283
276
|
async getHistory() {
|
|
284
277
|
if (this.useFileStorage) {
|
|
285
278
|
const liveSessionItems = ( Array.from(( this._sessionModels.values()))
|
|
286
|
-
.filter(session => !session.isImported
|
|
279
|
+
.filter(session => !session.isImported)
|
|
287
280
|
.map(session => {
|
|
288
|
-
const title = session.title || ( localize(
|
|
281
|
+
const title = session.title || ( localize(5054, "New Chat"));
|
|
289
282
|
return {
|
|
290
283
|
sessionId: session.sessionId,
|
|
291
284
|
title,
|
|
@@ -306,7 +299,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
306
299
|
.filter(session => session.requests.length > 0)
|
|
307
300
|
.filter(session => !( this._sessionModels.has(session.sessionId)));
|
|
308
301
|
const persistedSessionItems = ( persistedSessions
|
|
309
|
-
.filter(session => !session.isImported
|
|
302
|
+
.filter(session => !session.isImported)
|
|
310
303
|
.map(session => {
|
|
311
304
|
const title = session.customTitle ?? ChatModel.getDefaultTitle(session.requests);
|
|
312
305
|
return {
|
|
@@ -317,9 +310,9 @@ let ChatService = class ChatService extends Disposable {
|
|
|
317
310
|
};
|
|
318
311
|
}));
|
|
319
312
|
const liveSessionItems = ( Array.from(( this._sessionModels.values()))
|
|
320
|
-
.filter(session => !session.isImported
|
|
313
|
+
.filter(session => !session.isImported)
|
|
321
314
|
.map(session => {
|
|
322
|
-
const title = session.title || ( localize(
|
|
315
|
+
const title = session.title || ( localize(5054, "New Chat"));
|
|
323
316
|
return {
|
|
324
317
|
sessionId: session.sessionId,
|
|
325
318
|
title,
|
|
@@ -355,7 +348,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
355
348
|
}
|
|
356
349
|
_startSession(someSessionHistory, location, isGlobalEditingSession, token) {
|
|
357
350
|
const model = this.instantiationService.createInstance(ChatModel, someSessionHistory, location);
|
|
358
|
-
if (location === ChatAgentLocation.
|
|
351
|
+
if (location === ChatAgentLocation.Panel) {
|
|
359
352
|
model.startEditingSession(isGlobalEditingSession);
|
|
360
353
|
}
|
|
361
354
|
this._sessionModels.set(model.sessionId, model);
|
|
@@ -366,21 +359,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
366
359
|
try {
|
|
367
360
|
this.trace('initializeSession', `Initialize session ${model.sessionId}`);
|
|
368
361
|
model.startInitialize();
|
|
369
|
-
|
|
370
|
-
const defaultAgentData = this.chatAgentService.getContributedDefaultAgent(model.initialLocation) ?? this.chatAgentService.getContributedDefaultAgent(ChatAgentLocation.Panel);
|
|
371
|
-
if (!defaultAgentData) {
|
|
372
|
-
throw ( new ErrorNoTelemetry('No default agent contributed'));
|
|
373
|
-
}
|
|
374
|
-
if (this.configurationService.getValue('chat.setupFromDialog')) {
|
|
375
|
-
this.extensionService.activateByEvent(`onChatParticipant:${defaultAgentData.id}`);
|
|
376
|
-
}
|
|
377
|
-
else {
|
|
378
|
-
await this.extensionService.activateByEvent(`onChatParticipant:${defaultAgentData.id}`);
|
|
379
|
-
const defaultAgent = this.chatAgentService.getActivatedAgents().find(agent => agent.id === defaultAgentData.id);
|
|
380
|
-
if (!defaultAgent) {
|
|
381
|
-
throw ( new ErrorNoTelemetry('No default agent registered'));
|
|
382
|
-
}
|
|
383
|
-
}
|
|
362
|
+
this.activateDefaultAgent(model.initialLocation).catch(e => this.logService.error(e));
|
|
384
363
|
model.initialize();
|
|
385
364
|
}
|
|
386
365
|
catch (err) {
|
|
@@ -390,6 +369,18 @@ let ChatService = class ChatService extends Disposable {
|
|
|
390
369
|
this._onDidDisposeSession.fire({ sessionId: model.sessionId, reason: 'initializationFailed' });
|
|
391
370
|
}
|
|
392
371
|
}
|
|
372
|
+
async activateDefaultAgent(location) {
|
|
373
|
+
await this.extensionService.whenInstalledExtensionsRegistered();
|
|
374
|
+
const defaultAgentData = this.chatAgentService.getContributedDefaultAgent(location) ?? this.chatAgentService.getContributedDefaultAgent(ChatAgentLocation.Panel);
|
|
375
|
+
if (!defaultAgentData) {
|
|
376
|
+
throw ( new ErrorNoTelemetry('No default agent contributed'));
|
|
377
|
+
}
|
|
378
|
+
await this.extensionService.activateByEvent(`onChatParticipant:${defaultAgentData.id}`);
|
|
379
|
+
const defaultAgent = this.chatAgentService.getActivatedAgents().find(agent => agent.id === defaultAgentData.id);
|
|
380
|
+
if (!defaultAgent) {
|
|
381
|
+
throw ( new ErrorNoTelemetry('No default agent registered'));
|
|
382
|
+
}
|
|
383
|
+
}
|
|
393
384
|
getSession(sessionId) {
|
|
394
385
|
return this._sessionModels.get(sessionId);
|
|
395
386
|
}
|
|
@@ -400,11 +391,11 @@ let ChatService = class ChatService extends Disposable {
|
|
|
400
391
|
return model;
|
|
401
392
|
}
|
|
402
393
|
let sessionData;
|
|
403
|
-
if (this.useFileStorage) {
|
|
404
|
-
sessionData = revive(
|
|
394
|
+
if (!this.useFileStorage || this.transferredSessionData?.sessionId === sessionId) {
|
|
395
|
+
sessionData = revive(this._persistedSessions[sessionId]);
|
|
405
396
|
}
|
|
406
397
|
else {
|
|
407
|
-
sessionData = revive(this.
|
|
398
|
+
sessionData = revive(await this._chatSessionStore.readSession(sessionId));
|
|
408
399
|
}
|
|
409
400
|
if (!sessionData) {
|
|
410
401
|
return undefined;
|
|
@@ -446,16 +437,12 @@ let ChatService = class ChatService extends Disposable {
|
|
|
446
437
|
...options,
|
|
447
438
|
locationData: request.locationData,
|
|
448
439
|
attachedContext: request.attachedContext,
|
|
449
|
-
hasInstructionAttachments: options?.hasInstructionAttachments ?? false,
|
|
450
440
|
};
|
|
451
441
|
await this._sendRequestAsync(model, model.sessionId, request.message, attempt, enableCommandDetection, defaultAgent, location, resendOptions).responseCompletePromise;
|
|
452
442
|
}
|
|
453
443
|
async sendRequest(sessionId, request, options) {
|
|
454
444
|
this.trace('sendRequest', `sessionId: ${sessionId}, message: ${request.substring(0, 20)}${request.length > 20 ? '[...]' : ''}}`);
|
|
455
|
-
if (!request.trim() && options?.
|
|
456
|
-
request = 'Follow these instructions.';
|
|
457
|
-
}
|
|
458
|
-
if (!request.trim() && !options?.slashCommand && !options?.agentId && !options?.hasInstructionAttachments) {
|
|
445
|
+
if (!request.trim() && !options?.slashCommand && !options?.agentId) {
|
|
459
446
|
this.trace('sendRequest', 'Rejected empty message');
|
|
460
447
|
return;
|
|
461
448
|
}
|
|
@@ -574,7 +561,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
574
561
|
let agentOrCommandFollowups = undefined;
|
|
575
562
|
let chatTitlePromise;
|
|
576
563
|
if (agentPart || (defaultAgent && !commandPart)) {
|
|
577
|
-
const prepareChatAgentRequest =
|
|
564
|
+
const prepareChatAgentRequest = (agent, command, enableCommandDetection, chatRequest, isParticipantDetected) => {
|
|
578
565
|
const initVariableData = { variables: [] };
|
|
579
566
|
request = chatRequest ?? model.addRequest(parsedRequest, initVariableData, attempt, agent, command, options?.confirmation, options?.locationData, options?.attachedContext, undefined, options?.userSelectedModelId);
|
|
580
567
|
let variableData;
|
|
@@ -584,7 +571,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
584
571
|
message = getPromptText(request.message).message;
|
|
585
572
|
}
|
|
586
573
|
else {
|
|
587
|
-
variableData = this.
|
|
574
|
+
variableData = { variables: this.prepareContext(request.attachedContext) };
|
|
588
575
|
model.updateRequest(request, variableData);
|
|
589
576
|
const promptTextResult = getPromptText(request.message);
|
|
590
577
|
variableData = updateRanges(variableData, promptTextResult.diff);
|
|
@@ -605,12 +592,15 @@ let ChatService = class ChatService extends Disposable {
|
|
|
605
592
|
acceptedConfirmationData: options?.acceptedConfirmationData,
|
|
606
593
|
rejectedConfirmationData: options?.rejectedConfirmationData,
|
|
607
594
|
userSelectedModelId: options?.userSelectedModelId,
|
|
608
|
-
userSelectedTools: options?.userSelectedTools
|
|
595
|
+
userSelectedTools: options?.userSelectedTools,
|
|
596
|
+
userSelectedTools2: options?.userSelectedTools2,
|
|
597
|
+
toolSelectionIsExclusive: options?.toolSelectionIsExclusive,
|
|
598
|
+
editedFileEvents: request.editedFileEvents
|
|
609
599
|
};
|
|
610
600
|
};
|
|
611
601
|
if (this.configurationService.getValue('chat.detectParticipant.enabled') !== false && this.chatAgentService.hasChatParticipantDetectionProviders() && !agentPart && !commandPart && !agentSlashCommandPart && enableCommandDetection && options?.mode !== ChatMode.Agent && options?.mode !== ChatMode.Edit) {
|
|
612
602
|
const defaultAgentHistory = this.getHistoryEntriesFromModel(requests, model.sessionId, location, defaultAgent.id);
|
|
613
|
-
const chatAgentRequest =
|
|
603
|
+
const chatAgentRequest = prepareChatAgentRequest(defaultAgent, undefined, enableCommandDetection, undefined, false);
|
|
614
604
|
const result = await this.chatAgentService.detectAgentOrCommand(chatAgentRequest, defaultAgentHistory, { location }, token);
|
|
615
605
|
if (result && this.chatAgentService.getAgent(result.agent.id)?.locations?.includes(location)) {
|
|
616
606
|
request.response?.setAgent(result.agent, result.command);
|
|
@@ -623,7 +613,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
623
613
|
await this.extensionService.activateByEvent(`onChatParticipant:${agent.id}`);
|
|
624
614
|
await this.checkAgentAllowed(agent);
|
|
625
615
|
const history = this.getHistoryEntriesFromModel(requests, model.sessionId, location, agent.id);
|
|
626
|
-
const requestProps =
|
|
616
|
+
const requestProps = prepareChatAgentRequest(agent, command, enableCommandDetection, request , !!detectedAgent);
|
|
627
617
|
const pendingRequest = this._pendingRequests.get(sessionId);
|
|
628
618
|
if (pendingRequest && !pendingRequest.requestId) {
|
|
629
619
|
pendingRequest.requestId = requestProps.requestId;
|
|
@@ -635,15 +625,17 @@ let ChatService = class ChatService extends Disposable {
|
|
|
635
625
|
chatTitlePromise = model.getRequests().length === 1 && !model.customTitle ? this.chatAgentService.getChatTitle(defaultAgent.id, this.getHistoryEntriesFromModel(model.getRequests(), model.sessionId, location, agent.id), CancellationToken.None) : undefined;
|
|
636
626
|
}
|
|
637
627
|
else if (commandPart && this.chatSlashCommandService.hasCommand(commandPart.slashCommand.command)) {
|
|
638
|
-
|
|
639
|
-
|
|
628
|
+
if (commandPart.slashCommand.silent !== true) {
|
|
629
|
+
request = model.addRequest(parsedRequest, { variables: [] }, attempt);
|
|
630
|
+
completeResponseCreated();
|
|
631
|
+
}
|
|
640
632
|
const history = [];
|
|
641
|
-
for (const
|
|
642
|
-
if (!
|
|
633
|
+
for (const modelRequest of model.getRequests()) {
|
|
634
|
+
if (!modelRequest.response) {
|
|
643
635
|
continue;
|
|
644
636
|
}
|
|
645
|
-
history.push({ role: ChatMessageRole.User, content: [{ type: 'text', value:
|
|
646
|
-
history.push({ role: ChatMessageRole.Assistant, content: [{ type: 'text', value: (
|
|
637
|
+
history.push({ role: ChatMessageRole.User, content: [{ type: 'text', value: modelRequest.message.text }] });
|
|
638
|
+
history.push({ role: ChatMessageRole.Assistant, content: [{ type: 'text', value: ( modelRequest.response.response.toString()) }] });
|
|
647
639
|
}
|
|
648
640
|
const message = parsedRequest.text;
|
|
649
641
|
const commandResult = await this.chatSlashCommandService.executeCommand(commandPart.slashCommand.command, message.substring(commandPart.slashCommand.command.length + 1).trimStart(), ( new Progress(p => {
|
|
@@ -661,7 +653,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
661
653
|
else {
|
|
662
654
|
if (!rawResult) {
|
|
663
655
|
this.trace('sendRequest', `Provider returned no response for session ${model.sessionId}`);
|
|
664
|
-
rawResult = { errorDetails: { message: ( localize(
|
|
656
|
+
rawResult = { errorDetails: { message: ( localize(5055, "Provider returned null response")) } };
|
|
665
657
|
}
|
|
666
658
|
const result = rawResult.errorDetails?.responseIsFiltered ? 'filtered' :
|
|
667
659
|
rawResult.errorDetails && gotProgress ? 'errorWithOutput' :
|
|
@@ -742,8 +734,24 @@ let ChatService = class ChatService extends Disposable {
|
|
|
742
734
|
responseCompletePromise: rawResponsePromise,
|
|
743
735
|
};
|
|
744
736
|
}
|
|
737
|
+
prepareContext(attachedContextVariables) {
|
|
738
|
+
attachedContextVariables ??= [];
|
|
739
|
+
attachedContextVariables.sort((a, b) => {
|
|
740
|
+
if (!a.range && !b.range) {
|
|
741
|
+
return 0;
|
|
742
|
+
}
|
|
743
|
+
if (!a.range) {
|
|
744
|
+
return 1;
|
|
745
|
+
}
|
|
746
|
+
if (!b.range) {
|
|
747
|
+
return -1;
|
|
748
|
+
}
|
|
749
|
+
return b.range.start - a.range.start;
|
|
750
|
+
});
|
|
751
|
+
return attachedContextVariables;
|
|
752
|
+
}
|
|
745
753
|
async checkAgentAllowed(agent) {
|
|
746
|
-
if (agent.
|
|
754
|
+
if (agent.modes.includes(ChatMode.Agent)) {
|
|
747
755
|
const enabled = await this.experimentService.getTreatment('chatAgentEnabled');
|
|
748
756
|
if (enabled === false) {
|
|
749
757
|
throw ( new Error('Agent is currently disabled'));
|
|
@@ -756,7 +764,7 @@ let ChatService = class ChatService extends Disposable {
|
|
|
756
764
|
return 'implicit';
|
|
757
765
|
}
|
|
758
766
|
else if (v.range) {
|
|
759
|
-
if (v.
|
|
767
|
+
if (v.kind === 'tool') {
|
|
760
768
|
return 'toolInPrompt';
|
|
761
769
|
}
|
|
762
770
|
else {
|
|
@@ -769,13 +777,13 @@ let ChatService = class ChatService extends Disposable {
|
|
|
769
777
|
else if (v.kind === 'symbol') {
|
|
770
778
|
return 'symbol';
|
|
771
779
|
}
|
|
772
|
-
else if (v
|
|
780
|
+
else if (isImageVariableEntry(v)) {
|
|
773
781
|
return 'image';
|
|
774
782
|
}
|
|
775
|
-
else if (v.
|
|
783
|
+
else if (v.kind === 'directory') {
|
|
776
784
|
return 'directory';
|
|
777
785
|
}
|
|
778
|
-
else if (v.
|
|
786
|
+
else if (v.kind === 'tool') {
|
|
779
787
|
return 'tool';
|
|
780
788
|
}
|
|
781
789
|
else {
|
|
@@ -809,7 +817,8 @@ let ChatService = class ChatService extends Disposable {
|
|
|
809
817
|
message: promptTextResult.message,
|
|
810
818
|
command: request.response.slashCommand?.name,
|
|
811
819
|
variables: updateRanges(request.variableData, promptTextResult.diff),
|
|
812
|
-
location: ChatAgentLocation.Panel
|
|
820
|
+
location: ChatAgentLocation.Panel,
|
|
821
|
+
editedFileEvents: request.editedFileEvents,
|
|
813
822
|
};
|
|
814
823
|
history.push({ request: historyRequest, response: toChatHistoryContent(request.response.response.value), result: request.response.result ?? {} });
|
|
815
824
|
}
|
|
@@ -933,11 +942,9 @@ let ChatService = class ChatService extends Disposable {
|
|
|
933
942
|
mode: transferredSessionData.mode,
|
|
934
943
|
});
|
|
935
944
|
this.storageService.store(globalChatKey, JSON.stringify(existingRaw), StorageScope.PROFILE, StorageTarget.MACHINE);
|
|
945
|
+
this.chatTransferService.addWorkspaceToTransferred(toWorkspace);
|
|
936
946
|
this.trace('transferChatSession', `Transferred session ${model.sessionId} to workspace ${( toWorkspace.toString())}`);
|
|
937
947
|
}
|
|
938
|
-
isEditingLocation(location) {
|
|
939
|
-
return location === ChatAgentLocation.EditingSession || this.unifiedViewEnabled;
|
|
940
|
-
}
|
|
941
948
|
getChatStorageFolder() {
|
|
942
949
|
return this._chatSessionStore.getChatStorageFolder();
|
|
943
950
|
}
|
|
@@ -945,9 +952,6 @@ let ChatService = class ChatService extends Disposable {
|
|
|
945
952
|
this._chatSessionStore.logIndex();
|
|
946
953
|
}
|
|
947
954
|
};
|
|
948
|
-
ChatService.__decorator = ( __decorate([
|
|
949
|
-
memoize
|
|
950
|
-
], ChatService.prototype, "unifiedViewEnabled", null));
|
|
951
955
|
ChatService.__decorator = ( __decorate([
|
|
952
956
|
memoize
|
|
953
957
|
], ChatService.prototype, "useFileStorage", null));
|
|
@@ -959,10 +963,10 @@ ChatService = ( __decorate([
|
|
|
959
963
|
( __param(4, ITelemetryService)),
|
|
960
964
|
( __param(5, IWorkspaceContextService)),
|
|
961
965
|
( __param(6, IChatSlashCommandService)),
|
|
962
|
-
( __param(7,
|
|
963
|
-
( __param(8,
|
|
964
|
-
( __param(9,
|
|
965
|
-
( __param(10,
|
|
966
|
+
( __param(7, IChatAgentService)),
|
|
967
|
+
( __param(8, IConfigurationService)),
|
|
968
|
+
( __param(9, IWorkbenchAssignmentService)),
|
|
969
|
+
( __param(10, IChatTransferService))
|
|
966
970
|
], ChatService));
|
|
967
971
|
function getCodeBlocks(text) {
|
|
968
972
|
const lines = text.split('\n');
|
|
@@ -8,7 +8,7 @@ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platfo
|
|
|
8
8
|
import { IUserDataProfilesService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service";
|
|
9
9
|
import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
|
|
10
10
|
import { ILifecycleService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service";
|
|
11
|
-
import { ChatModel, ISerializableChatData, ISerializableChatsData } from "@codingame/monaco-vscode-
|
|
11
|
+
import { ChatModel, ISerializableChatData, ISerializableChatsData } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModel";
|
|
12
12
|
import { ChatAgentLocation, ChatMode } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
13
13
|
export declare class ChatSessionStore extends Disposable {
|
|
14
14
|
private readonly fileService;
|
|
@@ -18,7 +18,7 @@ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platfo
|
|
|
18
18
|
import { IUserDataProfilesService } from '@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service';
|
|
19
19
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
20
20
|
import { ILifecycleService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
|
|
21
|
-
import { normalizeSerializableChatData, ChatModel } from '@codingame/monaco-vscode-
|
|
21
|
+
import { normalizeSerializableChatData, ChatModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModel';
|
|
22
22
|
|
|
23
23
|
const maxPersistedSessions = 25;
|
|
24
24
|
const ChatIndexStorageKey = 'chat.ChatSessionStore.index';
|
|
@@ -51,7 +51,7 @@ let ChatSessionStore = class ChatSessionStore extends Disposable {
|
|
|
51
51
|
}
|
|
52
52
|
e.join(this.storeTask, {
|
|
53
53
|
id: 'join.chatSessionStore',
|
|
54
|
-
label: ( localize(
|
|
54
|
+
label: ( localize(5056, "Saving chat history"))
|
|
55
55
|
});
|
|
56
56
|
}));
|
|
57
57
|
}
|
|
@@ -324,7 +324,7 @@ function isChatSessionIndex(data) {
|
|
|
324
324
|
}
|
|
325
325
|
function getSessionMetadata(session) {
|
|
326
326
|
const title = session instanceof ChatModel ?
|
|
327
|
-
(session.title || ( localize(
|
|
327
|
+
(session.title || ( localize(5057, "New Chat"))) :
|
|
328
328
|
session.customTitle ?? ChatModel.getDefaultTitle(session.requests);
|
|
329
329
|
return {
|
|
330
330
|
sessionId: session.sessionId,
|
|
@@ -2,6 +2,7 @@ import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs
|
|
|
2
2
|
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
3
3
|
import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
|
|
4
4
|
import { IWorkspaceTrustManagementService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service";
|
|
5
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
5
6
|
import { IChatTransferService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatTransferService.service";
|
|
6
7
|
export declare class ChatTransferService implements IChatTransferService {
|
|
7
8
|
private readonly workspaceService;
|
|
@@ -10,5 +11,8 @@ export declare class ChatTransferService implements IChatTransferService {
|
|
|
10
11
|
private readonly workspaceTrustManagementService;
|
|
11
12
|
_serviceBrand: undefined;
|
|
12
13
|
constructor(workspaceService: IWorkspaceContextService, storageService: IStorageService, fileService: IFileService, workspaceTrustManagementService: IWorkspaceTrustManagementService);
|
|
13
|
-
|
|
14
|
+
deleteWorkspaceFromTransferredList(workspace: URI): void;
|
|
15
|
+
addWorkspaceToTransferred(workspace: URI): void;
|
|
16
|
+
checkAndSetTransferredWorkspaceTrust(): Promise<void>;
|
|
17
|
+
isChatTransferredWorkspace(workspace: URI, storageService: IStorageService): boolean;
|
|
14
18
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
3
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
4
|
+
import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
|
|
4
5
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
5
6
|
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
6
7
|
import { IWorkspaceTrustManagementService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspaceTrust.service';
|
|
7
|
-
import {
|
|
8
|
+
import { areWorkspaceFoldersEmpty } from '../../../services/workspaces/common/workspaceUtils.js';
|
|
8
9
|
|
|
10
|
+
const transferredWorkspacesKey = 'chat.transferedWorkspaces';
|
|
9
11
|
let ChatTransferService = class ChatTransferService {
|
|
10
12
|
constructor(workspaceService, storageService, fileService, workspaceTrustManagementService) {
|
|
11
13
|
this.workspaceService = workspaceService;
|
|
@@ -13,11 +15,33 @@ let ChatTransferService = class ChatTransferService {
|
|
|
13
15
|
this.fileService = fileService;
|
|
14
16
|
this.workspaceTrustManagementService = workspaceTrustManagementService;
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
deleteWorkspaceFromTransferredList(workspace) {
|
|
19
|
+
const transferredWorkspaces = this.storageService.getObject(transferredWorkspacesKey, StorageScope.PROFILE, []);
|
|
20
|
+
const updatedWorkspaces = transferredWorkspaces.filter(uri => uri !== ( workspace.toString()));
|
|
21
|
+
this.storageService.store(transferredWorkspacesKey, updatedWorkspaces, StorageScope.PROFILE, StorageTarget.MACHINE);
|
|
22
|
+
}
|
|
23
|
+
addWorkspaceToTransferred(workspace) {
|
|
24
|
+
const transferredWorkspaces = this.storageService.getObject(transferredWorkspacesKey, StorageScope.PROFILE, []);
|
|
25
|
+
transferredWorkspaces.push(( workspace.toString()));
|
|
26
|
+
this.storageService.store(transferredWorkspacesKey, transferredWorkspaces, StorageScope.PROFILE, StorageTarget.MACHINE);
|
|
27
|
+
}
|
|
28
|
+
async checkAndSetTransferredWorkspaceTrust() {
|
|
17
29
|
const workspace = this.workspaceService.getWorkspace();
|
|
18
|
-
|
|
30
|
+
const currentWorkspaceUri = workspace.folders[0]?.uri;
|
|
31
|
+
if (!currentWorkspaceUri) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (this.isChatTransferredWorkspace(currentWorkspaceUri, this.storageService) && (await areWorkspaceFoldersEmpty(workspace, this.fileService))) {
|
|
19
35
|
await this.workspaceTrustManagementService.setWorkspaceTrust(true);
|
|
36
|
+
this.deleteWorkspaceFromTransferredList(currentWorkspaceUri);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
isChatTransferredWorkspace(workspace, storageService) {
|
|
40
|
+
if (!workspace) {
|
|
41
|
+
return false;
|
|
20
42
|
}
|
|
43
|
+
const chatWorkspaceTransfer = storageService.getObject(transferredWorkspacesKey, StorageScope.PROFILE, []);
|
|
44
|
+
return ( chatWorkspaceTransfer.some(item => ( item.toString()) === ( workspace.toString())));
|
|
21
45
|
}
|
|
22
46
|
};
|
|
23
47
|
ChatTransferService = ( __decorate([
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
|
|
2
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
3
|
+
export declare class ConfigMigration implements IWorkbenchContribution {
|
|
4
|
+
constructor(configService: IConfigurationService);
|
|
5
|
+
}
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { assert } from '@codingame/monaco-vscode-api/vscode/vs/base/common/assert';
|
|
4
|
+
import { asBoolean } from '@codingame/monaco-vscode-51fed910-d648-5620-9b80-9232cd79d116-common/vscode/vs/platform/prompts/common/config';
|
|
5
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
6
|
+
import { CONFIG_KEY, PROMPT_LOCATIONS_CONFIG_KEY } from '@codingame/monaco-vscode-51fed910-d648-5620-9b80-9232cd79d116-common/vscode/vs/platform/prompts/common/constants';
|
|
7
|
+
|
|
8
|
+
let ConfigMigration = class ConfigMigration {
|
|
9
|
+
constructor(configService) {
|
|
10
|
+
const value = configService.getValue(CONFIG_KEY);
|
|
11
|
+
if ((value === undefined) || (value === null)) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if ((typeof value === 'boolean') || (asBoolean(value) !== undefined)) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (Array.isArray(value)) {
|
|
18
|
+
const locationsValue = {};
|
|
19
|
+
for (const filePath of value) {
|
|
20
|
+
if (typeof filePath !== 'string') {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
const trimmedValue = filePath.trim();
|
|
24
|
+
if (!trimmedValue) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
locationsValue[trimmedValue] = true;
|
|
28
|
+
}
|
|
29
|
+
configService.updateValue(CONFIG_KEY, true);
|
|
30
|
+
configService.updateValue(PROMPT_LOCATIONS_CONFIG_KEY, locationsValue);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (typeof value === 'object') {
|
|
34
|
+
assert(value !== null, 'Object value must not be a null.');
|
|
35
|
+
const locationsValue = {};
|
|
36
|
+
for (const [location, enabled] of Object.entries(value)) {
|
|
37
|
+
if ((typeof enabled !== 'boolean') || (asBoolean(enabled) === undefined)) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const trimmedValue = location.trim();
|
|
41
|
+
if (!trimmedValue) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
locationsValue[trimmedValue] = enabled;
|
|
45
|
+
}
|
|
46
|
+
configService.updateValue(CONFIG_KEY, true);
|
|
47
|
+
configService.updateValue(PROMPT_LOCATIONS_CONFIG_KEY, locationsValue);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (typeof value === 'string') {
|
|
51
|
+
assert(asBoolean(value) === undefined, `String value must not be a boolean, got '${value}'.`);
|
|
52
|
+
configService.updateValue(CONFIG_KEY, true);
|
|
53
|
+
configService.updateValue(PROMPT_LOCATIONS_CONFIG_KEY, { [value]: true });
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
ConfigMigration = ( __decorate([
|
|
59
|
+
( __param(0, IConfigurationService))
|
|
60
|
+
], ConfigMigration));
|
|
61
|
+
|
|
62
|
+
export { ConfigMigration };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
|
|
2
|
+
import { ConfigMigration } from './configMigration.js';
|
|
3
|
+
import './languageFeatures/index.js';
|
|
4
|
+
import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
|
|
5
|
+
import { LifecyclePhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
6
|
+
import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
|
|
7
|
+
|
|
8
|
+
const registerPromptFileContributions = () => {
|
|
9
|
+
registerContribution(ConfigMigration);
|
|
10
|
+
};
|
|
11
|
+
const registerContribution = (contribution) => {
|
|
12
|
+
( Registry.as(Extensions.Workbench))
|
|
13
|
+
.registerWorkbenchContribution(contribution, LifecyclePhase.Eventually);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { registerPromptFileContributions };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
import { PromptLinkProvider } from './providers/promptLinkProvider.js';
|
|
3
|
+
import { isWindows } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
4
|
+
import { PromptPathAutocompletion } from './providers/promptPathAutocompletion.js';
|
|
5
|
+
import { PromptLinkDiagnosticsInstanceManager } from './providers/promptLinkDiagnosticsProvider.js';
|
|
6
|
+
import { PromptHeaderDiagnosticsInstanceManager } from './providers/promptHeaderDiagnosticsProvider.js';
|
|
7
|
+
import { PromptDecorationsProviderInstanceManager } from './providers/decorationsProvider/promptDecorationsProvider.js';
|
|
8
|
+
|
|
9
|
+
const CONTRIBUTIONS = [
|
|
10
|
+
PromptLinkProvider,
|
|
11
|
+
PromptLinkDiagnosticsInstanceManager,
|
|
12
|
+
PromptHeaderDiagnosticsInstanceManager,
|
|
13
|
+
PromptDecorationsProviderInstanceManager,
|
|
14
|
+
];
|
|
15
|
+
if (isWindows === false) {
|
|
16
|
+
CONTRIBUTIONS.push(PromptPathAutocompletion);
|
|
17
|
+
}
|