@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
package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js
CHANGED
|
@@ -2,24 +2,21 @@
|
|
|
2
2
|
import { registerCss } from '@codingame/monaco-vscode-api/css';
|
|
3
3
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
4
4
|
import * as chatEditingEditorOverlay from '../media/chatEditingEditorOverlay.css';
|
|
5
|
-
import {
|
|
5
|
+
import { Disposable, DisposableStore, toDisposable, MutableDisposable, DisposableMap, combinedDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
6
6
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
7
7
|
import { MenuWorkbenchToolBar, HiddenItemStrategy } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/toolbar';
|
|
8
8
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
9
|
-
import {
|
|
9
|
+
import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
|
|
10
10
|
import { IChatEditingService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService.service';
|
|
11
11
|
import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
12
12
|
import { ActionViewItem } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/actionbar/actionViewItems';
|
|
13
|
-
import { append, addDisposableGenericMouseMoveListener
|
|
14
|
-
import { renderIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabels';
|
|
15
|
-
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
16
|
-
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
13
|
+
import { append, $, addDisposableGenericMouseMoveListener } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
17
14
|
import { assertType } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
18
15
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
19
16
|
import { navigationBearingFakeActionId, AcceptAction, RejectAction } from './chatEditingEditorActions.js';
|
|
20
17
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
|
|
21
18
|
import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
|
|
22
|
-
import { EditorGroupView } from '@codingame/monaco-vscode-
|
|
19
|
+
import { EditorGroupView } from '@codingame/monaco-vscode-c3c61c00-c254-5856-9dc9-d7929c1f9062-common/vscode/vs/workbench/browser/parts/editor/editorGroupView';
|
|
23
20
|
import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
24
21
|
import { ServiceCollection } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/serviceCollection';
|
|
25
22
|
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
@@ -27,31 +24,118 @@ import { EditorResourceAccessor, SideBySideEditor } from '@codingame/monaco-vsco
|
|
|
27
24
|
import { IInlineChatSessionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.service';
|
|
28
25
|
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
29
26
|
import { ObservableEditorSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys';
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
27
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
28
|
+
import { renderIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabels';
|
|
29
|
+
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
30
|
+
import { equals } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
|
|
31
|
+
import { renderStringAsPlaintext } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
|
|
32
|
+
import { observableFromEvent, observableFromEventOpts, observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils';
|
|
32
33
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
|
|
33
34
|
import { derived, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/derived';
|
|
34
35
|
import { observableValue, transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/base';
|
|
35
36
|
|
|
36
37
|
registerCss(chatEditingEditorOverlay);
|
|
37
|
-
let ChatEditorOverlayWidget = class ChatEditorOverlayWidget {
|
|
38
|
-
constructor(_editor, _chatService,
|
|
38
|
+
let ChatEditorOverlayWidget = class ChatEditorOverlayWidget extends Disposable {
|
|
39
|
+
constructor(_editor, _chatService, _instaService) {
|
|
40
|
+
super();
|
|
39
41
|
this._editor = _editor;
|
|
40
42
|
this._chatService = _chatService;
|
|
41
|
-
this.
|
|
43
|
+
this._instaService = _instaService;
|
|
44
|
+
this._showStore = this._store.add(( new DisposableStore()));
|
|
42
45
|
this._session = observableValue(this, undefined);
|
|
43
46
|
this._entry = observableValue(this, undefined);
|
|
44
47
|
this._navigationBearings = observableValue(this, { changeCount: -1, activeIdx: -1, entriesCount: -1 });
|
|
45
48
|
this._domNode = document.createElement('div');
|
|
46
49
|
this._domNode.classList.add('chat-editor-overlay-widget');
|
|
50
|
+
this._isBusy = derived(r => {
|
|
51
|
+
const session = this._session.read(r);
|
|
52
|
+
const chatModel = session && _chatService.getSession(session?.chatSessionId);
|
|
53
|
+
const lastResponse = chatModel
|
|
54
|
+
? observableFromEvent(this, chatModel.onDidChange, () => chatModel.getRequests().at(-1)?.response).read(r)
|
|
55
|
+
: undefined;
|
|
56
|
+
return lastResponse
|
|
57
|
+
? observableFromEvent(this, lastResponse.onDidChange, () => !lastResponse.isPendingConfirmation && !lastResponse.isComplete).read(r)
|
|
58
|
+
: false;
|
|
59
|
+
});
|
|
60
|
+
const requestMessage = derived(r => {
|
|
61
|
+
const session = this._session.read(r);
|
|
62
|
+
const chatModel = this._chatService.getSession(session?.chatSessionId ?? '');
|
|
63
|
+
if (!session || !chatModel) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
const response = this._entry.read(r)?.lastModifyingResponse.read(r);
|
|
67
|
+
if (!response) {
|
|
68
|
+
return { message: ( localize(4739, "Working...")) };
|
|
69
|
+
}
|
|
70
|
+
if (response.isPaused.read(r)) {
|
|
71
|
+
return { message: ( localize(4740, "Paused")), paused: true };
|
|
72
|
+
}
|
|
73
|
+
const lastPart = observableFromEventOpts({ equalsFn: equals }, response.onDidChange, () => response.response.value)
|
|
74
|
+
.read(r)
|
|
75
|
+
.filter(part => part.kind === 'progressMessage' || part.kind === 'toolInvocation')
|
|
76
|
+
.at(-1);
|
|
77
|
+
if (lastPart?.kind === 'toolInvocation') {
|
|
78
|
+
return { message: lastPart.invocationMessage };
|
|
79
|
+
}
|
|
80
|
+
else if (lastPart?.kind === 'progressMessage') {
|
|
81
|
+
return { message: lastPart.content };
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return { message: ( localize(4739, "Working...")) };
|
|
85
|
+
}
|
|
86
|
+
});
|
|
47
87
|
const progressNode = document.createElement('div');
|
|
48
88
|
progressNode.classList.add('chat-editor-overlay-progress');
|
|
49
89
|
append(progressNode, renderIcon(ThemeIcon.modify(Codicon.loading, 'spin')));
|
|
90
|
+
const textProgress = append(progressNode, $('span.progress-message'));
|
|
50
91
|
this._domNode.appendChild(progressNode);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
92
|
+
this._store.add(autorun(r => {
|
|
93
|
+
const value = requestMessage.read(r);
|
|
94
|
+
const busy = this._isBusy.read(r) && !value?.paused;
|
|
95
|
+
this._domNode.classList.toggle('busy', busy);
|
|
96
|
+
if (!busy || !value || this._session.read(r)?.isGlobalEditingSession) {
|
|
97
|
+
textProgress.innerText = '';
|
|
98
|
+
}
|
|
99
|
+
else if (value) {
|
|
100
|
+
textProgress.innerText = renderStringAsPlaintext(value.message);
|
|
101
|
+
}
|
|
102
|
+
}));
|
|
103
|
+
this._toolbarNode = document.createElement('div');
|
|
104
|
+
this._toolbarNode.classList.add('chat-editor-overlay-toolbar');
|
|
105
|
+
}
|
|
106
|
+
dispose() {
|
|
107
|
+
this.hide();
|
|
108
|
+
super.dispose();
|
|
109
|
+
}
|
|
110
|
+
getDomNode() {
|
|
111
|
+
return this._domNode;
|
|
112
|
+
}
|
|
113
|
+
show(session, entry, indicies) {
|
|
114
|
+
this._showStore.clear();
|
|
115
|
+
transaction(tx => {
|
|
116
|
+
this._session.set(session, tx);
|
|
117
|
+
this._entry.set(entry, tx);
|
|
118
|
+
});
|
|
119
|
+
this._showStore.add(autorun(r => {
|
|
120
|
+
const entryIndex = indicies.entryIndex.read(r);
|
|
121
|
+
const changeIndex = indicies.changeIndex.read(r);
|
|
122
|
+
const entries = session.entries.read(r);
|
|
123
|
+
let activeIdx = entryIndex !== undefined && changeIndex !== undefined
|
|
124
|
+
? changeIndex
|
|
125
|
+
: -1;
|
|
126
|
+
let totalChangesCount = 0;
|
|
127
|
+
for (let i = 0; i < entries.length; i++) {
|
|
128
|
+
const changesCount = entries[i].changesCount.read(r);
|
|
129
|
+
totalChangesCount += changesCount;
|
|
130
|
+
if (entryIndex !== undefined && i < entryIndex) {
|
|
131
|
+
activeIdx += changesCount;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
this._navigationBearings.set({ changeCount: totalChangesCount, activeIdx, entriesCount: entries.length }, undefined);
|
|
135
|
+
}));
|
|
136
|
+
this._domNode.appendChild(this._toolbarNode);
|
|
137
|
+
this._showStore.add(toDisposable(() => this._toolbarNode.remove()));
|
|
138
|
+
this._showStore.add(this._instaService.createInstance(MenuWorkbenchToolBar, this._toolbarNode, MenuId.ChatEditingEditorContent, {
|
|
55
139
|
telemetrySource: 'chatEditor.overlayToolbar',
|
|
56
140
|
hiddenItemStrategy: HiddenItemStrategy.Ignore,
|
|
57
141
|
toolbarOptions: {
|
|
@@ -74,10 +158,10 @@ let ChatEditorOverlayWidget = class ChatEditorOverlayWidget {
|
|
|
74
158
|
const { changeCount, activeIdx } = that._navigationBearings.read(r);
|
|
75
159
|
if (changeCount > 0) {
|
|
76
160
|
const n = activeIdx === -1 ? '1' : `${activeIdx + 1}`;
|
|
77
|
-
this.label.innerText = ( localize(
|
|
161
|
+
this.label.innerText = ( localize(4741, "{0} of {1}", n, changeCount));
|
|
78
162
|
}
|
|
79
163
|
else {
|
|
80
|
-
this.label.innerText = ( localize(
|
|
164
|
+
this.label.innerText = ( localize(4742, "—"));
|
|
81
165
|
}
|
|
82
166
|
this.updateTooltip();
|
|
83
167
|
}));
|
|
@@ -87,18 +171,23 @@ let ChatEditorOverlayWidget = class ChatEditorOverlayWidget {
|
|
|
87
171
|
if (changeCount === -1 || entriesCount === -1) {
|
|
88
172
|
return undefined;
|
|
89
173
|
}
|
|
90
|
-
|
|
91
|
-
|
|
174
|
+
let result;
|
|
175
|
+
if (changeCount === 1 && entriesCount === 1) {
|
|
176
|
+
result = ( localize(4743, "1 change in 1 file"));
|
|
92
177
|
}
|
|
93
178
|
else if (changeCount === 1) {
|
|
94
|
-
|
|
179
|
+
result = ( localize(4744, "1 change in {0} files", entriesCount));
|
|
95
180
|
}
|
|
96
181
|
else if (entriesCount === 1) {
|
|
97
|
-
|
|
182
|
+
result = ( localize(4745, "{0} changes in 1 file", changeCount));
|
|
98
183
|
}
|
|
99
184
|
else {
|
|
100
|
-
|
|
185
|
+
result = ( localize(4746, "{0} changes in {1} files", changeCount, entriesCount));
|
|
186
|
+
}
|
|
187
|
+
if (!that._isBusy.get()) {
|
|
188
|
+
return result;
|
|
101
189
|
}
|
|
190
|
+
return localize(4747, "{0} - Working...", result);
|
|
102
191
|
}
|
|
103
192
|
});
|
|
104
193
|
}
|
|
@@ -140,106 +229,8 @@ let ChatEditorOverlayWidget = class ChatEditorOverlayWidget {
|
|
|
140
229
|
}
|
|
141
230
|
});
|
|
142
231
|
}
|
|
143
|
-
if (action.id === 'inlineChat2.reveal' || action.id === 'workbench.action.chat.openEditSession') {
|
|
144
|
-
return new (class extends ActionViewItem {
|
|
145
|
-
constructor() {
|
|
146
|
-
super(undefined, action, options);
|
|
147
|
-
this._requestMessage = derived(r => {
|
|
148
|
-
const session = that._session.read(r);
|
|
149
|
-
const chatModel = that._chatService.getSession(session?.chatSessionId ?? '');
|
|
150
|
-
if (!session || !chatModel) {
|
|
151
|
-
return undefined;
|
|
152
|
-
}
|
|
153
|
-
const response = that._entry.read(r)?.isCurrentlyBeingModifiedBy.read(r);
|
|
154
|
-
if (response) {
|
|
155
|
-
if (response?.isPaused.read(r)) {
|
|
156
|
-
return { message: ( localize(4681, "Edits Paused")), paused: true };
|
|
157
|
-
}
|
|
158
|
-
const entry = that._entry.read(r);
|
|
159
|
-
if (entry) {
|
|
160
|
-
const progress = entry?.rewriteRatio.read(r);
|
|
161
|
-
const message = progress === 0
|
|
162
|
-
? ( localize(4682, "Generating edits"))
|
|
163
|
-
: ( localize(4683, "{0}% Applying edits", Math.round(progress * 100)));
|
|
164
|
-
return { message };
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
if (session.isGlobalEditingSession) {
|
|
168
|
-
return undefined;
|
|
169
|
-
}
|
|
170
|
-
const request = observableFromEvent(this, chatModel.onDidChange, () => chatModel.getRequests().at(-1)).read(r);
|
|
171
|
-
if (!request || request.response?.isComplete) {
|
|
172
|
-
return undefined;
|
|
173
|
-
}
|
|
174
|
-
return { message: request.message.text };
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
render(container) {
|
|
178
|
-
super.render(container);
|
|
179
|
-
container.classList.add('label-item');
|
|
180
|
-
this._store.add(autorun(r => {
|
|
181
|
-
assertType(this.label);
|
|
182
|
-
const value = this._requestMessage.read(r);
|
|
183
|
-
if (!value) {
|
|
184
|
-
this.options.icon = true;
|
|
185
|
-
this.options.label = false;
|
|
186
|
-
reset(this.label);
|
|
187
|
-
this.updateClass();
|
|
188
|
-
this.updateLabel();
|
|
189
|
-
this.updateTooltip();
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
this.options.icon = false;
|
|
193
|
-
this.options.label = true;
|
|
194
|
-
this.updateClass();
|
|
195
|
-
this.updateTooltip();
|
|
196
|
-
const message = rcut(value.message, 47);
|
|
197
|
-
reset(this.label, message);
|
|
198
|
-
}
|
|
199
|
-
const busy = Boolean(value && !value.paused);
|
|
200
|
-
that._domNode.classList.toggle('busy', busy);
|
|
201
|
-
this.label.classList.toggle('busy', busy);
|
|
202
|
-
}));
|
|
203
|
-
}
|
|
204
|
-
getTooltip() {
|
|
205
|
-
return this._requestMessage.get()?.message || super.getTooltip();
|
|
206
|
-
}
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
232
|
return undefined;
|
|
210
233
|
}
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
dispose() {
|
|
214
|
-
this.hide();
|
|
215
|
-
this._showStore.dispose();
|
|
216
|
-
this._toolbar.dispose();
|
|
217
|
-
}
|
|
218
|
-
getDomNode() {
|
|
219
|
-
return this._domNode;
|
|
220
|
-
}
|
|
221
|
-
show(session, entry, indicies) {
|
|
222
|
-
this._showStore.clear();
|
|
223
|
-
transaction(tx => {
|
|
224
|
-
this._session.set(session, tx);
|
|
225
|
-
this._entry.set(entry, tx);
|
|
226
|
-
});
|
|
227
|
-
this._showStore.add(autorun(r => {
|
|
228
|
-
const entryIndex = indicies.entryIndex.read(r);
|
|
229
|
-
const changeIndex = indicies.changeIndex.read(r);
|
|
230
|
-
const entries = session.entries.read(r);
|
|
231
|
-
let activeIdx = entryIndex !== undefined && changeIndex !== undefined
|
|
232
|
-
? changeIndex
|
|
233
|
-
: -1;
|
|
234
|
-
let totalChangesCount = 0;
|
|
235
|
-
for (let i = 0; i < entries.length; i++) {
|
|
236
|
-
const changesCount = entries[i].changesCount.read(r);
|
|
237
|
-
totalChangesCount += changesCount;
|
|
238
|
-
if (entryIndex !== undefined && i < entryIndex) {
|
|
239
|
-
activeIdx += changesCount;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
this._navigationBearings.set({ changeCount: totalChangesCount, activeIdx, entriesCount: entries.length }, undefined);
|
|
243
234
|
}));
|
|
244
235
|
}
|
|
245
236
|
hide() {
|
|
@@ -305,7 +296,7 @@ let ChatEditingOverlayController = class ChatEditingOverlayController {
|
|
|
305
296
|
if (!response) {
|
|
306
297
|
return false;
|
|
307
298
|
}
|
|
308
|
-
return observableFromEvent(this, response.onDidChange, () => !response.isComplete).read(r);
|
|
299
|
+
return observableFromEvent(this, response.onDidChange, () => !response.isComplete && !response.isPendingConfirmation).read(r);
|
|
309
300
|
});
|
|
310
301
|
this._store.add(autorun(r => {
|
|
311
302
|
const data = sessionAndEntry.read(r);
|
|
@@ -314,7 +305,11 @@ let ChatEditingOverlayController = class ChatEditingOverlayController {
|
|
|
314
305
|
return;
|
|
315
306
|
}
|
|
316
307
|
const { session, entry } = data;
|
|
317
|
-
if (
|
|
308
|
+
if (!session.isGlobalEditingSession && !inlineChatService.hideOnRequest.read(r)) {
|
|
309
|
+
hide();
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
if (entry?.state.read(r) === ModifiedFileEntryState.Modified
|
|
318
313
|
|| (!session.isGlobalEditingSession && isInProgress.read(r))
|
|
319
314
|
) {
|
|
320
315
|
const editorPane = group.activeEditorPane;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IReference } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
-
import {
|
|
2
|
+
import { ITransaction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
3
3
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
4
4
|
import { TextEdit } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages";
|
|
5
5
|
import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
|
|
@@ -16,11 +16,10 @@ import { IUndoRedoElement } from "@codingame/monaco-vscode-api/vscode/vs/platfor
|
|
|
16
16
|
import { IUndoRedoService } from "@codingame/monaco-vscode-api/vscode/vs/platform/undoRedo/common/undoRedo.service";
|
|
17
17
|
import { IEditorPane } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor";
|
|
18
18
|
import { IFilesConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/filesConfiguration/common/filesConfigurationService.service";
|
|
19
|
-
import { IResolvedTextFileEditorModel } from "@codingame/monaco-vscode-4893679b-56e5-52c5-a8fb-c366cce9660f-common/vscode/vs/workbench/services/textfile/common/textfiles";
|
|
20
19
|
import { ITextFileService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/textfile/common/textfiles.service";
|
|
21
20
|
import { ICellEditOperation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon";
|
|
22
|
-
import {
|
|
23
|
-
import { IChatResponseModel } from "@codingame/monaco-vscode-
|
|
21
|
+
import { ChatEditKind, IModifiedFileEntry, IModifiedFileEntryEditorIntegration } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService";
|
|
22
|
+
import { IChatResponseModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModel";
|
|
24
23
|
import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service";
|
|
25
24
|
import { AbstractChatEditingModifiedFileEntry, IModifiedEntryTelemetryInfo, ISnapshotEntry } from "./chatEditingModifiedFileEntry.js";
|
|
26
25
|
export declare class ChatEditingModifiedDocumentEntry extends AbstractChatEditingModifiedFileEntry implements IModifiedFileEntry {
|
|
@@ -33,17 +32,16 @@ export declare class ChatEditingModifiedDocumentEntry extends AbstractChatEditin
|
|
|
33
32
|
readonly initialContent: string;
|
|
34
33
|
private readonly originalModel;
|
|
35
34
|
private readonly modifiedModel;
|
|
36
|
-
readonly
|
|
35
|
+
private readonly _docFileEditorModel;
|
|
37
36
|
private _edit;
|
|
38
37
|
private _isEditFromUs;
|
|
39
38
|
private _allEditsAreFromUs;
|
|
40
39
|
private _diffOperation;
|
|
41
40
|
private _diffOperationIds;
|
|
42
41
|
private readonly _diffInfo;
|
|
43
|
-
readonly changesCount: IObservable<number>;
|
|
42
|
+
readonly changesCount: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").IObservable<number>;
|
|
44
43
|
private readonly _editDecorationClear;
|
|
45
44
|
private _editDecorations;
|
|
46
|
-
private readonly _diffTrimWhitespace;
|
|
47
45
|
readonly originalURI: URI;
|
|
48
46
|
constructor(resourceRef: IReference<IResolvedTextEditorModel>, _multiDiffEntryDelegate: {
|
|
49
47
|
collapse: (transaction: ITransaction | undefined) => void;
|
package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js
CHANGED
|
@@ -21,6 +21,7 @@ import { OffsetEdits } from '@codingame/monaco-vscode-api/vscode/vs/editor/commo
|
|
|
21
21
|
import { IEditorWorkerService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service';
|
|
22
22
|
import { IModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service';
|
|
23
23
|
import { ITextModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service';
|
|
24
|
+
import { TextModelChangeRecorder } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/inlineCompletions/browser/model/changeRecorder';
|
|
24
25
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
25
26
|
import { AccessibilitySignal } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService';
|
|
26
27
|
import { IAccessibilitySignalService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service';
|
|
@@ -28,7 +29,6 @@ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/pl
|
|
|
28
29
|
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
29
30
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
30
31
|
import { IMarkerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markers/common/markers.service';
|
|
31
|
-
import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
|
|
32
32
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colorUtils';
|
|
33
33
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/baseColors';
|
|
34
34
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
@@ -43,9 +43,9 @@ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/sear
|
|
|
43
43
|
import { IUndoRedoService } from '@codingame/monaco-vscode-api/vscode/vs/platform/undoRedo/common/undoRedo.service';
|
|
44
44
|
import { SaveReason } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
|
|
45
45
|
import { IFilesConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/filesConfiguration/common/filesConfigurationService.service';
|
|
46
|
-
import { stringToSnapshot } from '@codingame/monaco-vscode-
|
|
46
|
+
import { stringToSnapshot, isTextFileEditorModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/textfile/common/textfiles';
|
|
47
47
|
import { ITextFileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/textfile/common/textfiles.service';
|
|
48
|
-
import {
|
|
48
|
+
import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
|
|
49
49
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
|
|
50
50
|
import { ChatEditingCodeEditorIntegration } from './chatEditingCodeEditorIntegration.js';
|
|
51
51
|
import { AbstractChatEditingModifiedFileEntry, pendingRewriteMinimap } from './chatEditingModifiedFileEntry.js';
|
|
@@ -92,7 +92,7 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
92
92
|
500
|
|
93
93
|
)));
|
|
94
94
|
this._editDecorations = [];
|
|
95
|
-
this.
|
|
95
|
+
this._docFileEditorModel = this._register(resourceRef).object;
|
|
96
96
|
this.modifiedModel = resourceRef.object.textEditorModel;
|
|
97
97
|
this.originalURI = ChatEditingTextModelContentProvider.getFileURI(telemetryInfo.sessionId, this.entryId, this.modifiedURI.path);
|
|
98
98
|
this.initialContent = initialContent ?? this.modifiedModel.getValue();
|
|
@@ -109,17 +109,13 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
109
109
|
this._register(toDisposable(() => {
|
|
110
110
|
this._clearCurrentEditLineDecoration();
|
|
111
111
|
}));
|
|
112
|
-
this._diffTrimWhitespace = observableConfigValue('diffEditor.ignoreTrimWhitespace', true, configService);
|
|
113
|
-
this._register(autorun(r => {
|
|
114
|
-
this._diffTrimWhitespace.read(r);
|
|
115
|
-
this._updateDiffInfoSeq();
|
|
116
|
-
}));
|
|
117
112
|
const resourceFilter = this._register(( new MutableDisposable()));
|
|
118
113
|
this._register(autorun(r => {
|
|
119
|
-
const
|
|
120
|
-
if (
|
|
121
|
-
const
|
|
122
|
-
|
|
114
|
+
const inProgress = this._lastModifyingResponseInProgressObs.read(r);
|
|
115
|
+
if (inProgress) {
|
|
116
|
+
const res = this._lastModifyingResponseObs.read(r);
|
|
117
|
+
const req = res && res.session.getRequests().find(value => value.id === res.requestId);
|
|
118
|
+
resourceFilter.value = markerService.installResourceFilter(this.modifiedURI, req?.message.text || ( localize(4748, "Chat Edits")));
|
|
123
119
|
}
|
|
124
120
|
else {
|
|
125
121
|
resourceFilter.clear();
|
|
@@ -190,13 +186,14 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
190
186
|
this._edit = e_ai.tryRebase(e_user_r);
|
|
191
187
|
}
|
|
192
188
|
this._allEditsAreFromUs = false;
|
|
189
|
+
this._userEditScheduler.schedule();
|
|
193
190
|
this._updateDiffInfoSeq();
|
|
194
191
|
const didResetToOriginalContent = this.modifiedModel.getValue() === this.initialContent;
|
|
195
192
|
const currentState = this._stateObs.get();
|
|
196
193
|
switch (currentState) {
|
|
197
|
-
case
|
|
194
|
+
case ModifiedFileEntryState.Modified:
|
|
198
195
|
if (didResetToOriginalContent) {
|
|
199
|
-
this._stateObs.set(
|
|
196
|
+
this._stateObs.set(ModifiedFileEntryState.Rejected, undefined);
|
|
200
197
|
break;
|
|
201
198
|
}
|
|
202
199
|
}
|
|
@@ -204,7 +201,7 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
204
201
|
}
|
|
205
202
|
_createUndoRedoElement(response) {
|
|
206
203
|
const request = response.session.getRequests().find(req => req.id === response.requestId);
|
|
207
|
-
const label = request?.message.text ? ( localize(
|
|
204
|
+
const label = request?.message.text ? ( localize(4749, "Chat Edit: '{0}'", request.message.text)) : ( localize(4750, "Chat Edit"));
|
|
208
205
|
return ( new SingleModelEditStackElement(label, 'chat.edit', this.modifiedModel, null));
|
|
209
206
|
}
|
|
210
207
|
async acceptAgentEdits(resource, textEdits, isLastEdits, responseModel) {
|
|
@@ -228,7 +225,7 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
228
225
|
this._editDecorations = this.modifiedModel.deltaDecorations(this._editDecorations, newDecorations);
|
|
229
226
|
transaction((tx) => {
|
|
230
227
|
if (!isLastEdits) {
|
|
231
|
-
this._stateObs.set(
|
|
228
|
+
this._stateObs.set(ModifiedFileEntryState.Modified, tx);
|
|
232
229
|
this._isCurrentlyBeingModifiedByObs.set(responseModel, tx);
|
|
233
230
|
const lineCount = this.modifiedModel.getLineCount();
|
|
234
231
|
this._rewriteRatioObs.set(Math.min(1, maxLineNumber / lineCount), tx);
|
|
@@ -240,6 +237,12 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
240
237
|
this._editDecorationClear.schedule();
|
|
241
238
|
}
|
|
242
239
|
});
|
|
240
|
+
if (isLastEdits) {
|
|
241
|
+
await this._textFileService.save(this.modifiedModel.uri, {
|
|
242
|
+
reason: SaveReason.AUTO,
|
|
243
|
+
skipSaveParticipants: true,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
243
246
|
}
|
|
244
247
|
async _acceptHunk(change) {
|
|
245
248
|
if (!this._diffInfo.get().changes.includes(change)) {
|
|
@@ -253,7 +256,8 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
253
256
|
this.originalModel.pushEditOperations(null, edits, _ => null);
|
|
254
257
|
await this._updateDiffInfoSeq();
|
|
255
258
|
if (this._diffInfo.get().identical) {
|
|
256
|
-
this._stateObs.set(
|
|
259
|
+
this._stateObs.set(ModifiedFileEntryState.Accepted, undefined);
|
|
260
|
+
this._notifyAction('accepted');
|
|
257
261
|
}
|
|
258
262
|
this._accessibilitySignalService.playSignal(AccessibilitySignal.editsKept, { allowManyInParallel: true });
|
|
259
263
|
return true;
|
|
@@ -270,7 +274,8 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
270
274
|
this.modifiedModel.pushEditOperations(null, edits, _ => null);
|
|
271
275
|
await this._updateDiffInfoSeq();
|
|
272
276
|
if (this._diffInfo.get().identical) {
|
|
273
|
-
this._stateObs.set(
|
|
277
|
+
this._stateObs.set(ModifiedFileEntryState.Rejected, undefined);
|
|
278
|
+
this._notifyAction('rejected');
|
|
274
279
|
}
|
|
275
280
|
this._accessibilitySignalService.playSignal(AccessibilitySignal.editsUndone, { allowManyInParallel: true });
|
|
276
281
|
return true;
|
|
@@ -279,9 +284,11 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
279
284
|
this._isEditFromUs = true;
|
|
280
285
|
try {
|
|
281
286
|
let result = [];
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
287
|
+
TextModelChangeRecorder.editWithMetadata({ source: 'Chat.applyEdits' }, () => {
|
|
288
|
+
this.modifiedModel.pushEditOperations(null, edits, (undoEdits) => {
|
|
289
|
+
result = undoEdits;
|
|
290
|
+
return null;
|
|
291
|
+
});
|
|
285
292
|
});
|
|
286
293
|
return result;
|
|
287
294
|
}
|
|
@@ -302,10 +309,17 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
302
309
|
if (this.originalModel.isDisposed() || this.modifiedModel.isDisposed()) {
|
|
303
310
|
return undefined;
|
|
304
311
|
}
|
|
312
|
+
if (this.state.get() !== ModifiedFileEntryState.Modified) {
|
|
313
|
+
this._diffInfo.set(nullDocumentDiff, undefined);
|
|
314
|
+
return nullDocumentDiff;
|
|
315
|
+
}
|
|
305
316
|
const docVersionNow = this.modifiedModel.getVersionId();
|
|
306
317
|
const snapshotVersionNow = this.originalModel.getVersionId();
|
|
307
|
-
const
|
|
308
|
-
|
|
318
|
+
const diff = await this._editorWorkerService.computeDiff(this.originalModel.uri, this.modifiedModel.uri, {
|
|
319
|
+
ignoreTrimWhitespace: false,
|
|
320
|
+
computeMoves: false,
|
|
321
|
+
maxComputationTimeMs: 3000
|
|
322
|
+
}, 'advanced');
|
|
309
323
|
if (this.originalModel.isDisposed() || this.modifiedModel.isDisposed()) {
|
|
310
324
|
return undefined;
|
|
311
325
|
}
|
|
@@ -337,14 +351,16 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
337
351
|
}
|
|
338
352
|
async _doReject(tx) {
|
|
339
353
|
if (this.createdInRequestId === this._telemetryInfo.requestId) {
|
|
340
|
-
|
|
341
|
-
|
|
354
|
+
if (isTextFileEditorModel(this._docFileEditorModel)) {
|
|
355
|
+
await this._docFileEditorModel.revert({ soft: true });
|
|
356
|
+
await this._fileService.del(this.modifiedURI);
|
|
357
|
+
}
|
|
342
358
|
this._onDidDelete.fire();
|
|
343
359
|
}
|
|
344
360
|
else {
|
|
345
361
|
this._setDocValue(this.originalModel.getValue());
|
|
346
|
-
if (this._allEditsAreFromUs) {
|
|
347
|
-
await this.
|
|
362
|
+
if (this._allEditsAreFromUs && isTextFileEditorModel(this._docFileEditorModel)) {
|
|
363
|
+
await this._docFileEditorModel.save({ reason: SaveReason.EXPLICIT, skipSaveParticipants: true });
|
|
348
364
|
}
|
|
349
365
|
await this._collapse(tx);
|
|
350
366
|
}
|
|
@@ -373,7 +389,7 @@ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry ex
|
|
|
373
389
|
undo: changes => this._rejectHunk(changes)
|
|
374
390
|
};
|
|
375
391
|
}));
|
|
376
|
-
return this._instantiationService.createInstance(ChatEditingCodeEditorIntegration, this, codeEditor, diffInfo);
|
|
392
|
+
return this._instantiationService.createInstance(ChatEditingCodeEditorIntegration, this, codeEditor, diffInfo, false);
|
|
377
393
|
}
|
|
378
394
|
};
|
|
379
395
|
ChatEditingModifiedDocumentEntry = ChatEditingModifiedDocumentEntry_1 = ( __decorate([
|
package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RunOnceScheduler } from "@codingame/monaco-vscode-api/vscode/vs/base/common/async";
|
|
1
2
|
import { Emitter } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
2
3
|
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
4
|
import { IObservable, ITransaction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
@@ -12,9 +13,9 @@ import { IUndoRedoService } from "@codingame/monaco-vscode-api/vscode/vs/platfor
|
|
|
12
13
|
import { IEditorPane } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor";
|
|
13
14
|
import { IFilesConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/filesConfiguration/common/filesConfigurationService.service";
|
|
14
15
|
import { ICellEditOperation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon";
|
|
15
|
-
import { IChatAgentResult } from "@codingame/monaco-vscode-
|
|
16
|
-
import { ChatEditKind, IModifiedFileEntry, IModifiedFileEntryEditorIntegration,
|
|
17
|
-
import { IChatResponseModel } from "@codingame/monaco-vscode-
|
|
16
|
+
import { IChatAgentResult } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents";
|
|
17
|
+
import { ChatEditKind, IModifiedFileEntry, IModifiedFileEntryEditorIntegration, ModifiedFileEntryState } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService";
|
|
18
|
+
import { IChatResponseModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModel";
|
|
18
19
|
import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service";
|
|
19
20
|
declare class AutoAcceptControl {
|
|
20
21
|
readonly total: number;
|
|
@@ -36,10 +37,13 @@ export declare abstract class AbstractChatEditingModifiedFileEntry extends Dispo
|
|
|
36
37
|
readonly entryId: string;
|
|
37
38
|
protected readonly _onDidDelete: Emitter<void>;
|
|
38
39
|
readonly onDidDelete: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
|
|
39
|
-
protected readonly _stateObs: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<
|
|
40
|
-
readonly state: IObservable<
|
|
40
|
+
protected readonly _stateObs: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<ModifiedFileEntryState, void>;
|
|
41
|
+
readonly state: IObservable<ModifiedFileEntryState>;
|
|
41
42
|
protected readonly _isCurrentlyBeingModifiedByObs: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<IChatResponseModel | undefined, void>;
|
|
42
43
|
readonly isCurrentlyBeingModifiedBy: IObservable<IChatResponseModel | undefined>;
|
|
44
|
+
protected readonly _lastModifyingResponseObs: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<IChatResponseModel | undefined, void>;
|
|
45
|
+
readonly lastModifyingResponse: IObservable<IChatResponseModel | undefined>;
|
|
46
|
+
protected readonly _lastModifyingResponseInProgressObs: IObservable<boolean | undefined>;
|
|
43
47
|
protected readonly _rewriteRatioObs: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<number, void>;
|
|
44
48
|
readonly rewriteRatio: IObservable<number>;
|
|
45
49
|
private readonly _reviewModeTempObs;
|
|
@@ -52,6 +56,7 @@ export declare abstract class AbstractChatEditingModifiedFileEntry extends Dispo
|
|
|
52
56
|
get lastModifyingRequestId(): string;
|
|
53
57
|
private _refCounter;
|
|
54
58
|
readonly abstract originalURI: URI;
|
|
59
|
+
protected readonly _userEditScheduler: RunOnceScheduler;
|
|
55
60
|
constructor(modifiedURI: URI, _telemetryInfo: IModifiedEntryTelemetryInfo, kind: ChatEditKind, configService: IConfigurationService, _fileConfigService: IFilesConfigurationService, _chatService: IChatService, _fileService: IFileService, _undoRedoService: IUndoRedoService, _instantiationService: IInstantiationService);
|
|
56
61
|
dispose(): void;
|
|
57
62
|
acquire(): this;
|
|
@@ -61,7 +66,7 @@ export declare abstract class AbstractChatEditingModifiedFileEntry extends Dispo
|
|
|
61
66
|
protected abstract _doAccept(tx: ITransaction | undefined): Promise<void>;
|
|
62
67
|
reject(tx: ITransaction | undefined): Promise<void>;
|
|
63
68
|
protected abstract _doReject(tx: ITransaction | undefined): Promise<void>;
|
|
64
|
-
|
|
69
|
+
protected _notifyAction(outcome: "accepted" | "rejected" | "userModified"): void;
|
|
65
70
|
private readonly _editorIntegrations;
|
|
66
71
|
getEditorIntegration(pane: IEditorPane): IModifiedFileEntryEditorIntegration;
|
|
67
72
|
protected abstract _createEditorIntegration(editor: IEditorPane): IModifiedFileEntryEditorIntegration;
|
|
@@ -92,7 +97,7 @@ export interface ISnapshotEntry {
|
|
|
92
97
|
readonly original: string;
|
|
93
98
|
readonly current: string;
|
|
94
99
|
readonly originalToCurrentEdit: OffsetEdit;
|
|
95
|
-
readonly state:
|
|
100
|
+
readonly state: ModifiedFileEntryState;
|
|
96
101
|
telemetryInfo: IModifiedEntryTelemetryInfo;
|
|
97
102
|
}
|
|
98
103
|
export {};
|