@codingame/monaco-vscode-chat-service-override 17.2.0 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +7 -4
- package/package.json +36 -30
- package/vscode/src/vs/base/common/objectCache.d.ts +2 -2
- package/vscode/src/vs/base/common/objectCache.js +3 -3
- package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +10 -0
- package/vscode/src/vs/platform/browserElements/common/browserElements.js +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +40 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +158 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +256 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +234 -572
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +29 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +107 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +344 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +84 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatAttachInstructionsAction.d.ts +18 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatAttachInstructionsAction.js +137 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatModeActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatModeActions.js +54 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatRunPromptAction.js +40 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatSaveToPromptAction.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatSaveToPromptAction.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/promptFilePickers.d.ts +15 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/promptFilePickers.js +171 -101
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/attachInstructions.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/attachInstructions.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/runPrompt.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/index.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/index.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +176 -69
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +15 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +22 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +35 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +80 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +11 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +12 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +13 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +15 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +3 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +10 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +18 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +118 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +46 -48
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +49 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +379 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +31 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +382 -152
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +99 -56
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +9 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +10 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +18 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +95 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSetup.css +92 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/media/github.svg +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/google.svg +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +10 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.js +111 -111
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.d.ts +3 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.js +36 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.d.ts +5 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.js +91 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/errors.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/utils/createPromptFile.d.ts +1 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/utils/createPromptFile.js +4 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +95 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +348 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +93 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +46 -36
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.js +21 -11
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/index.js +6 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/index.js +3 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptHeaderDiagnosticsProvider.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptHeaderDiagnosticsProvider.js +12 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkDiagnosticsProvider.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkDiagnosticsProvider.js +1 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptPathAutocompletion.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceBase.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceBase.js +9 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceManagerBase.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceManagerBase.js +12 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +21 -10
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +111 -124
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +22 -8
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +159 -97
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/treeUtils.d.ts +15 -3
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/treeUtils.js +2 -14
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +8 -2
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +198 -33
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +7 -7
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +28 -18
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/attachInstructionsCommand.d.ts +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/attachInstructionsCommand.js +0 -73
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterDecoration.d.ts +0 -29
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterDecoration.js +0 -74
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterMarkerDecoration.d.ts +0 -14
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterMarkerDecoration.js +0 -40
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/decorationBase.d.ts +0 -23
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/decorationBase.js +0 -40
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/index.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/index.js +0 -9
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/reactiveDecorationBase.d.ts +0 -23
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/reactiveDecorationBase.js +0 -68
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/types.d.ts +0 -13
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/promptDecorationsProvider.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/promptDecorationsProvider.js +0 -121
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/types.d.ts +0 -13
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/types.js +0 -13
package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Emitter } from "@codingame/monaco-vscode-api/vscode/vs/base/common/even
|
|
|
3
3
|
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
4
4
|
import { IObservable, ITransaction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
5
5
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
6
|
-
import {
|
|
6
|
+
import { StringEdit } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/edits/stringEdit";
|
|
7
7
|
import { TextEdit } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages";
|
|
8
8
|
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
9
9
|
import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
|
|
@@ -39,11 +39,13 @@ export declare abstract class AbstractChatEditingModifiedFileEntry extends Dispo
|
|
|
39
39
|
readonly onDidDelete: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
|
|
40
40
|
protected readonly _stateObs: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<ModifiedFileEntryState, void>;
|
|
41
41
|
readonly state: IObservable<ModifiedFileEntryState>;
|
|
42
|
+
protected readonly _waitsForLastEdits: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<boolean, void>;
|
|
43
|
+
readonly waitsForLastEdits: IObservable<boolean>;
|
|
42
44
|
protected readonly _isCurrentlyBeingModifiedByObs: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<IChatResponseModel | undefined, void>;
|
|
43
45
|
readonly isCurrentlyBeingModifiedBy: IObservable<IChatResponseModel | undefined>;
|
|
44
46
|
protected readonly _lastModifyingResponseObs: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<IChatResponseModel | undefined, void>;
|
|
45
47
|
readonly lastModifyingResponse: IObservable<IChatResponseModel | undefined>;
|
|
46
|
-
protected readonly _lastModifyingResponseInProgressObs: IObservable<boolean
|
|
48
|
+
protected readonly _lastModifyingResponseInProgressObs: IObservable<boolean>;
|
|
47
49
|
protected readonly _rewriteRatioObs: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<number, void>;
|
|
48
50
|
readonly rewriteRatio: IObservable<number>;
|
|
49
51
|
private readonly _reviewModeTempObs;
|
|
@@ -96,7 +98,7 @@ export interface ISnapshotEntry {
|
|
|
96
98
|
readonly snapshotUri: URI;
|
|
97
99
|
readonly original: string;
|
|
98
100
|
readonly current: string;
|
|
99
|
-
readonly originalToCurrentEdit:
|
|
101
|
+
readonly originalToCurrentEdit: StringEdit;
|
|
100
102
|
readonly state: ModifiedFileEntryState;
|
|
101
103
|
telemetryInfo: IModifiedEntryTelemetryInfo;
|
|
102
104
|
}
|
package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js
CHANGED
|
@@ -26,11 +26,10 @@ import { IUndoRedoService } from '@codingame/monaco-vscode-api/vscode/vs/platfor
|
|
|
26
26
|
import { IFilesConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/filesConfiguration/common/filesConfigurationService.service';
|
|
27
27
|
import { ModifiedFileEntryState, ChatEditKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
|
|
28
28
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
|
|
29
|
-
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/
|
|
30
|
-
import { observableValueOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
|
|
29
|
+
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
30
|
+
import { observableValueOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValueOpts';
|
|
31
|
+
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
32
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
34
33
|
|
|
35
34
|
var AbstractChatEditingModifiedFileEntry_1;
|
|
36
35
|
class AutoAcceptControl {
|
|
@@ -40,7 +39,7 @@ class AutoAcceptControl {
|
|
|
40
39
|
this.cancel = cancel;
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
|
-
const pendingRewriteMinimap = registerColor('minimap.chatEditHighlight', ( transparent(editorBackground, 0.6)), ( localize(
|
|
42
|
+
const pendingRewriteMinimap = registerColor('minimap.chatEditHighlight', ( transparent(editorBackground, 0.6)), ( localize(4794, "Color of pending edit regions in the minimap")));
|
|
44
43
|
let AbstractChatEditingModifiedFileEntry = class AbstractChatEditingModifiedFileEntry extends Disposable {
|
|
45
44
|
static { AbstractChatEditingModifiedFileEntry_1 = this; }
|
|
46
45
|
static { this.scheme = 'modified-file-entry'; }
|
|
@@ -65,12 +64,14 @@ let AbstractChatEditingModifiedFileEntry = class AbstractChatEditingModifiedFile
|
|
|
65
64
|
this.onDidDelete = this._onDidDelete.event;
|
|
66
65
|
this._stateObs = observableValue(this, ModifiedFileEntryState.Modified);
|
|
67
66
|
this.state = this._stateObs;
|
|
67
|
+
this._waitsForLastEdits = observableValue(this, false);
|
|
68
|
+
this.waitsForLastEdits = this._waitsForLastEdits;
|
|
68
69
|
this._isCurrentlyBeingModifiedByObs = observableValue(this, undefined);
|
|
69
70
|
this.isCurrentlyBeingModifiedBy = this._isCurrentlyBeingModifiedByObs;
|
|
70
71
|
this._lastModifyingResponseObs = observableValueOpts({ equalsFn: (a, b) => a?.requestId === b?.requestId }, undefined);
|
|
71
72
|
this.lastModifyingResponse = this._lastModifyingResponseObs;
|
|
72
73
|
this._lastModifyingResponseInProgressObs = ( this._lastModifyingResponseObs.map((value, r) => {
|
|
73
|
-
return value
|
|
74
|
+
return value?.isInProgress.read(r) ?? false;
|
|
74
75
|
}));
|
|
75
76
|
this._rewriteRatioObs = observableValue(this, 0);
|
|
76
77
|
this.rewriteRatio = this._rewriteRatioObs;
|
|
@@ -104,7 +105,7 @@ let AbstractChatEditingModifiedFileEntry = class AbstractChatEditingModifiedFile
|
|
|
104
105
|
this._store.add(toDisposable(() => this._lastModifyingResponseObs.set(undefined, undefined)));
|
|
105
106
|
const autoSaveOff = this._store.add(( new MutableDisposable()));
|
|
106
107
|
this._store.add(autorun(r => {
|
|
107
|
-
if (this.
|
|
108
|
+
if (this._waitsForLastEdits.read(r)) {
|
|
108
109
|
autoSaveOff.value = _fileConfigService.disableAutoSave(this.modifiedURI);
|
|
109
110
|
}
|
|
110
111
|
else {
|
|
@@ -210,12 +211,13 @@ let AbstractChatEditingModifiedFileEntry = class AbstractChatEditingModifiedFile
|
|
|
210
211
|
async acceptStreamingEditsEnd(tx) {
|
|
211
212
|
this._resetEditsState(tx);
|
|
212
213
|
if (await this._areOriginalAndModifiedIdentical()) {
|
|
213
|
-
this.accept(tx);
|
|
214
|
+
await this.accept(tx);
|
|
214
215
|
}
|
|
215
216
|
}
|
|
216
217
|
_resetEditsState(tx) {
|
|
217
218
|
this._isCurrentlyBeingModifiedByObs.set(undefined, tx);
|
|
218
219
|
this._rewriteRatioObs.set(0, tx);
|
|
220
|
+
this._waitsForLastEdits.set(false, tx);
|
|
219
221
|
}
|
|
220
222
|
};
|
|
221
223
|
AbstractChatEditingModifiedFileEntry = AbstractChatEditingModifiedFileEntry_1 = ( __decorate([
|
package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js
CHANGED
|
@@ -10,8 +10,8 @@ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/in
|
|
|
10
10
|
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
11
11
|
import { assertType } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
12
12
|
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
13
|
-
import { LineRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/lineRange';
|
|
14
|
-
import {
|
|
13
|
+
import { LineRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/lineRange';
|
|
14
|
+
import { StringEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/edits/stringEdit';
|
|
15
15
|
import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
|
|
16
16
|
import { nullDocumentDiff } from '../../../../../editor/common/diff/documentDiffProvider.js';
|
|
17
17
|
import { RangeMapping, DetailedLineRangeMapping } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/diff/rangeMapping';
|
|
@@ -28,7 +28,7 @@ import { SaveReason } from '@codingame/monaco-vscode-api/vscode/vs/workbench/com
|
|
|
28
28
|
import { IFilesConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/filesConfiguration/common/filesConfigurationService.service';
|
|
29
29
|
import { SnapshotContext } from '@codingame/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common/vscode/vs/workbench/services/workingCopy/common/fileWorkingCopy';
|
|
30
30
|
import { NotebookTextDiffEditor } from '@codingame/monaco-vscode-e4d0fd26-1b26-5583-b3f7-582e08d7b389-common/vscode/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor';
|
|
31
|
-
import { getNotebookEditorFromEditorPane } from '@codingame/monaco-vscode-
|
|
31
|
+
import { getNotebookEditorFromEditorPane } from '@codingame/monaco-vscode-4372ad43-a220-5e78-83e6-95a9cfd64384-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
|
|
32
32
|
import { CellEditType, NotebookCellsChangeType, NotebookSetting } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
|
|
33
33
|
import { computeDiff } from '@codingame/monaco-vscode-e4d0fd26-1b26-5583-b3f7-582e08d7b389-common/vscode/vs/workbench/contrib/notebook/common/notebookDiff';
|
|
34
34
|
import { INotebookEditorModelResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookEditorModelResolverService.service';
|
|
@@ -44,9 +44,10 @@ import { ChatEditingNotebookDiffEditorIntegration, ChatEditingNotebookEditorInte
|
|
|
44
44
|
import { ChatEditingNotebookFileSystemProvider } from './notebook/chatEditingNotebookFileSystemProvider.js';
|
|
45
45
|
import { isTransientIPyNbExtensionEvent, adjustCellDiffAndOriginalModelBasedOnCellMovements, getCorrespondingOriginalCellIndex, adjustCellDiffAndOriginalModelBasedOnCellAddDelete, calculateNotebookRewriteRatio, adjustCellDiffForRevertingAnInsertedCell, adjustCellDiffForKeepingAnInsertedCell, adjustCellDiffForRevertingADeletedCell } from './notebook/helpers.js';
|
|
46
46
|
import { countChanges, sortCellChanges } from './notebook/notebookCellChanges.js';
|
|
47
|
-
import { observableValue
|
|
48
|
-
import {
|
|
49
|
-
import {
|
|
47
|
+
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
48
|
+
import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
|
|
49
|
+
import { ObservablePromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/promise';
|
|
50
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
50
51
|
|
|
51
52
|
var ChatEditingModifiedNotebookEntry_1;
|
|
52
53
|
const SnapshotLanguageId = 'VSCodeChatNotebookSnapshotLanguage';
|
|
@@ -391,11 +392,11 @@ let ChatEditingModifiedNotebookEntry = class ChatEditingModifiedNotebookEntry ex
|
|
|
391
392
|
}
|
|
392
393
|
_resetEditsState(tx) {
|
|
393
394
|
super._resetEditsState(tx);
|
|
394
|
-
this.cellEntryMap.forEach(entry => !entry.
|
|
395
|
+
this.cellEntryMap.forEach(entry => !entry.isDisposed && entry.clearCurrentEditLineDecoration());
|
|
395
396
|
}
|
|
396
397
|
_createUndoRedoElement(response) {
|
|
397
398
|
const request = response.session.getRequests().find(req => req.id === response.requestId);
|
|
398
|
-
const label = request?.message.text ? ( localize(
|
|
399
|
+
const label = request?.message.text ? ( localize(4795, "Chat Edit: '{0}'", request.message.text)) : ( localize(4796, "Chat Edit"));
|
|
399
400
|
const transientOptions = this.transientOptions;
|
|
400
401
|
const outputSizeLimit = this.configurationService.getValue(NotebookSetting.outputBackupSizeLimit) * 1024;
|
|
401
402
|
let initial = createSnapshot(this.modifiedModel, transientOptions, outputSizeLimit);
|
|
@@ -479,9 +480,9 @@ let ChatEditingModifiedNotebookEntry = class ChatEditingModifiedNotebookEntry ex
|
|
|
479
480
|
notebookEdits.forEach(edit => this.acceptNotebookEdit(edit));
|
|
480
481
|
}
|
|
481
482
|
transaction((tx) => {
|
|
483
|
+
this._stateObs.set(ModifiedFileEntryState.Modified, tx);
|
|
484
|
+
this._isCurrentlyBeingModifiedByObs.set(responseModel, tx);
|
|
482
485
|
if (!isLastEdits) {
|
|
483
|
-
this._stateObs.set(ModifiedFileEntryState.Modified, tx);
|
|
484
|
-
this._isCurrentlyBeingModifiedByObs.set(responseModel, tx);
|
|
485
486
|
const newRewriteRation = Math.max(this._rewriteRatioObs.get(), calculateNotebookRewriteRatio(this._cellsDiffInfo.get(), this.originalModel, this.modifiedModel));
|
|
486
487
|
this._rewriteRatioObs.set(Math.min(1, newRewriteRation), tx);
|
|
487
488
|
}
|
|
@@ -745,7 +746,7 @@ let ChatEditingModifiedNotebookEntry = class ChatEditingModifiedNotebookEntry ex
|
|
|
745
746
|
snapshotUri: getNotebookSnapshotFileURI(this._telemetryInfo.sessionId, requestId, undoStop, this.modifiedURI.path, this.modifiedModel.viewType),
|
|
746
747
|
original: createSnapshot(this.originalModel, this.transientOptions, this.configurationService),
|
|
747
748
|
current: createSnapshot(this.modifiedModel, this.transientOptions, this.configurationService),
|
|
748
|
-
originalToCurrentEdit:
|
|
749
|
+
originalToCurrentEdit: StringEdit.empty,
|
|
749
750
|
state: this.state.get(),
|
|
750
751
|
telemetryInfo: this.telemetryInfo,
|
|
751
752
|
};
|
|
@@ -35,13 +35,14 @@ import { chatEditingSnapshotScheme, chatEditingAgentSupportsReadonlyReferencesCo
|
|
|
35
35
|
import { isCellTextEditOperation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModel';
|
|
36
36
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
|
|
37
37
|
import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
38
|
-
import { ChatEditorInput } from '@codingame/monaco-vscode-
|
|
38
|
+
import { ChatEditorInput } from '@codingame/monaco-vscode-3a35f433-1297-5707-ab58-c261b8180e6d-common/vscode/vs/workbench/contrib/chat/browser/chatEditorInput';
|
|
39
39
|
import { AbstractChatEditingModifiedFileEntry } from './chatEditingModifiedFileEntry.js';
|
|
40
40
|
import { ChatEditingSession } from './chatEditingSession.js';
|
|
41
41
|
import { ChatEditingTextModelContentProvider, ChatEditingSnapshotTextModelContentProvider } from './chatEditingTextModelContentProviders.js';
|
|
42
|
-
import { observableValueOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/
|
|
43
|
-
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/derived';
|
|
44
|
-
import { runOnChange
|
|
42
|
+
import { observableValueOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValueOpts';
|
|
43
|
+
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
44
|
+
import { runOnChange } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/runOnChange';
|
|
45
|
+
import { ValueWithChangeEventFromObservable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/valueWithChangeEvent';
|
|
45
46
|
|
|
46
47
|
let ChatEditingService = class ChatEditingService extends Disposable {
|
|
47
48
|
constructor(_instantiationService, multiDiffSourceResolverService, textModelService, contextKeyService, _chatService, _editorService, decorationsService, _fileService, lifecycleService, storageService, logService, extensionService, productService, notebookService) {
|
|
@@ -94,7 +95,7 @@ let ChatEditingService = class ChatEditingService extends Disposable {
|
|
|
94
95
|
}
|
|
95
96
|
e.join(storageTask, {
|
|
96
97
|
id: 'join.chatEditingSession',
|
|
97
|
-
label: ( localize(
|
|
98
|
+
label: ( localize(4797, "Saving chat edits history"))
|
|
98
99
|
});
|
|
99
100
|
}));
|
|
100
101
|
}
|
|
@@ -223,20 +224,21 @@ let ChatEditingService = class ChatEditingService extends Disposable {
|
|
|
223
224
|
entry.seen = part.edits.length;
|
|
224
225
|
if (newEdits.length > 0 || isFirst) {
|
|
225
226
|
if (part.kind === 'notebookEditGroup') {
|
|
226
|
-
newEdits.forEach(edit => {
|
|
227
|
+
newEdits.forEach((edit, idx) => {
|
|
228
|
+
const done = part.done ? idx === newEdits.length - 1 : false;
|
|
227
229
|
if (TextEdit.isTextEdit(edit)) {
|
|
228
230
|
return;
|
|
229
231
|
}
|
|
230
232
|
else if (isCellTextEditOperation(edit)) {
|
|
231
|
-
entry.streaming.pushNotebookCellText(edit.uri, [edit.edit]);
|
|
233
|
+
entry.streaming.pushNotebookCellText(edit.uri, [edit.edit], done);
|
|
232
234
|
}
|
|
233
235
|
else {
|
|
234
|
-
entry.streaming.pushNotebook([edit]);
|
|
236
|
+
entry.streaming.pushNotebook([edit], done);
|
|
235
237
|
}
|
|
236
238
|
});
|
|
237
239
|
}
|
|
238
240
|
else if (part.kind === 'textEditGroup') {
|
|
239
|
-
entry.streaming.pushText(newEdits);
|
|
241
|
+
entry.streaming.pushText(newEdits, part.done ?? false);
|
|
240
242
|
}
|
|
241
243
|
}
|
|
242
244
|
if (part.done) {
|
|
@@ -321,7 +323,7 @@ let ChatDecorationsProvider = class ChatDecorationsProvider extends Disposable {
|
|
|
321
323
|
super();
|
|
322
324
|
this._sessions = _sessions;
|
|
323
325
|
this._chatAgentService = _chatAgentService;
|
|
324
|
-
this.label = ( localize(
|
|
326
|
+
this.label = ( localize(4798, "Chat Editing"));
|
|
325
327
|
this._currentEntries = derived(this, (r) => {
|
|
326
328
|
const sessions = this._sessions.read(r);
|
|
327
329
|
if (!sessions) {
|
|
@@ -361,7 +363,7 @@ let ChatDecorationsProvider = class ChatDecorationsProvider extends Disposable {
|
|
|
361
363
|
return {
|
|
362
364
|
weight: 1000,
|
|
363
365
|
letter: Codicon.diffModified,
|
|
364
|
-
tooltip: defaultAgentName ? ( localize(
|
|
366
|
+
tooltip: defaultAgentName ? ( localize(4799, "Pending changes from {0}", defaultAgentName)) : ( localize(4800, "Pending changes from chat")),
|
|
365
367
|
bubble: true
|
|
366
368
|
};
|
|
367
369
|
}
|
|
@@ -41,8 +41,8 @@ export declare class ChatEditingSession extends Disposable implements IChatEditi
|
|
|
41
41
|
get entries(): IObservable<readonly IModifiedFileEntry[]>;
|
|
42
42
|
private _editorPane;
|
|
43
43
|
get state(): IObservable<ChatEditingSessionState>;
|
|
44
|
-
readonly canUndo:
|
|
45
|
-
readonly canRedo:
|
|
44
|
+
readonly canUndo: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").IObservableWithChange<boolean, void>;
|
|
45
|
+
readonly canRedo: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").IObservableWithChange<boolean, void>;
|
|
46
46
|
private readonly _onDidDispose;
|
|
47
47
|
get onDidDispose(): import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
|
|
48
48
|
constructor(chatSessionId: string, isGlobalEditingSession: boolean, _lookupExternalEntry: (uri: URI) => AbstractChatEditingModifiedFileEntry | undefined, _instantiationService: IInstantiationService, _modelService: IModelService, _languageService: ILanguageService, _textModelService: ITextModelService, _bulkEditService: IBulkEditService, _editorGroupsService: IEditorGroupsService, _editorService: IEditorService, _chatService: IChatService, _notebookService: INotebookService, _editorWorkerService: IEditorWorkerService, _configurationService: IConfigurationService, _accessibilitySignalService: IAccessibilitySignalService);
|
|
@@ -7,7 +7,7 @@ import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/c
|
|
|
7
7
|
import { BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
8
8
|
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
9
9
|
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
10
|
-
import { Disposable, dispose } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
10
|
+
import { Disposable, DisposableStore, dispose } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
11
11
|
import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
|
|
12
12
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
13
13
|
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
@@ -37,10 +37,11 @@ import { ChatEditingModifiedNotebookEntry } from './chatEditingModifiedNotebookE
|
|
|
37
37
|
import { ChatEditingSessionStorage } from './chatEditingSessionStorage.js';
|
|
38
38
|
import { ChatEditingTextModelContentProvider } from './chatEditingTextModelContentProviders.js';
|
|
39
39
|
import { ChatEditingModifiedNotebookDiff } from './notebook/chatEditingModifiedNotebookDiff.js';
|
|
40
|
-
import { observableValue
|
|
41
|
-
import { derived,
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
40
|
+
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
41
|
+
import { derived, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
42
|
+
import { asyncTransaction, transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
|
|
43
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
44
|
+
import { ObservablePromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/promise';
|
|
44
45
|
|
|
45
46
|
const POST_EDIT_STOP_ID = 'd19944f6-f46c-4e17-911b-79a8e843c7c0';
|
|
46
47
|
class ThrottledSequencer extends Sequencer {
|
|
@@ -239,11 +240,12 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
|
|
|
239
240
|
this._pendingSnapshot ??= this._createSnapshot(undefined, undefined);
|
|
240
241
|
}
|
|
241
242
|
_entryDiffBetweenTextStops(entriesContent, modelUrisObservable) {
|
|
242
|
-
const modelRefsPromise =
|
|
243
|
+
const modelRefsPromise = derived(this, (reader) => {
|
|
243
244
|
const modelUris = modelUrisObservable.read(reader);
|
|
244
245
|
if (!modelUris) {
|
|
245
246
|
return undefined;
|
|
246
247
|
}
|
|
248
|
+
const store = reader.store.add(( new DisposableStore()));
|
|
247
249
|
const promise = Promise.all(( modelUris.map(u => this._textModelService.createModelReference(u)))).then(refs => {
|
|
248
250
|
if (store.isDisposed) {
|
|
249
251
|
refs.forEach(r => r.dispose());
|
|
@@ -496,7 +498,7 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
|
|
|
496
498
|
}
|
|
497
499
|
const input = MultiDiffEditorInput.fromResourceMultiDiffEditorInput({
|
|
498
500
|
multiDiffSource: getMultiDiffSourceUri(this, previousChanges),
|
|
499
|
-
label: ( localize(
|
|
501
|
+
label: ( localize(4801, "Suggested Edits"))
|
|
500
502
|
}, this._instantiationService);
|
|
501
503
|
this._editorPane = await this._editorGroupsService.activeGroup.openEditor(input, { pinned: true, activation: EditorActivation.ACTIVATE });
|
|
502
504
|
}
|
|
@@ -544,24 +546,24 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
|
|
|
544
546
|
});
|
|
545
547
|
let didComplete = false;
|
|
546
548
|
return {
|
|
547
|
-
pushText: (edits) => {
|
|
549
|
+
pushText: (edits, isLastEdits) => {
|
|
548
550
|
sequencer.queue(async () => {
|
|
549
551
|
if (!this.isDisposed) {
|
|
550
|
-
await this._acceptEdits(resource, edits,
|
|
552
|
+
await this._acceptEdits(resource, edits, isLastEdits, responseModel);
|
|
551
553
|
}
|
|
552
554
|
});
|
|
553
555
|
},
|
|
554
|
-
pushNotebookCellText: (cell, edits) => {
|
|
556
|
+
pushNotebookCellText: (cell, edits, isLastEdits) => {
|
|
555
557
|
sequencer.queue(async () => {
|
|
556
558
|
if (!this.isDisposed) {
|
|
557
|
-
await this._acceptEdits(cell, edits,
|
|
559
|
+
await this._acceptEdits(cell, edits, isLastEdits, responseModel);
|
|
558
560
|
}
|
|
559
561
|
});
|
|
560
562
|
},
|
|
561
|
-
pushNotebook: edits => {
|
|
563
|
+
pushNotebook: (edits, isLastEdits) => {
|
|
562
564
|
sequencer.queue(async () => {
|
|
563
565
|
if (!this.isDisposed) {
|
|
564
|
-
await this._acceptEdits(resource, edits,
|
|
566
|
+
await this._acceptEdits(resource, edits, isLastEdits, responseModel);
|
|
565
567
|
}
|
|
566
568
|
});
|
|
567
569
|
},
|
package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js
CHANGED
|
@@ -5,7 +5,7 @@ import { StringSHA1 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/h
|
|
|
5
5
|
import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
|
|
6
6
|
import { joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
7
7
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
8
|
-
import {
|
|
8
|
+
import { StringEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/edits/stringEdit';
|
|
9
9
|
import { IEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service';
|
|
10
10
|
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
11
11
|
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
@@ -64,7 +64,7 @@ let ChatEditingSessionStorage = class ChatEditingSessionStorage {
|
|
|
64
64
|
languageId: entry.languageId,
|
|
65
65
|
original: await getFileContent(entry.originalHash),
|
|
66
66
|
current: await getFileContent(entry.currentHash),
|
|
67
|
-
originalToCurrentEdit:
|
|
67
|
+
originalToCurrentEdit: StringEdit.fromJson(entry.originalToCurrentEdit),
|
|
68
68
|
state: entry.state,
|
|
69
69
|
snapshotUri: ( URI.parse(entry.snapshotUri)),
|
|
70
70
|
telemetryInfo: { requestId: entry.telemetryInfo.requestId, agentId: entry.telemetryInfo.agentId, command: entry.telemetryInfo.command, sessionId: this.chatSessionId, result: undefined }
|
|
@@ -159,9 +159,7 @@ let ChatEditingSessionStorage = class ChatEditingSessionStorage {
|
|
|
159
159
|
languageId: entry.languageId,
|
|
160
160
|
originalHash: addFileContent(entry.original),
|
|
161
161
|
currentHash: addFileContent(entry.current),
|
|
162
|
-
originalToCurrentEdit:
|
|
163
|
-
edit => ({ pos: edit.replaceRange.start, len: edit.replaceRange.length, txt: edit.newText })
|
|
164
|
-
)),
|
|
162
|
+
originalToCurrentEdit: entry.originalToCurrentEdit.toJson(),
|
|
165
163
|
state: entry.state,
|
|
166
164
|
snapshotUri: ( entry.snapshotUri.toString()),
|
|
167
165
|
telemetryInfo: { requestId: entry.telemetryInfo.requestId, agentId: entry.telemetryInfo.agentId, command: entry.telemetryInfo.command }
|
|
@@ -6,13 +6,13 @@ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/in
|
|
|
6
6
|
import { ObservableDisposable } from '@codingame/monaco-vscode-fab30422-b487-5f4e-8d30-8b4d266e3fcd-common/vscode/vs/base/common/observableDisposable';
|
|
7
7
|
import { themeColorFromId } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
8
8
|
import { EditOperation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/editOperation';
|
|
9
|
-
import {
|
|
9
|
+
import { StringEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/edits/stringEdit';
|
|
10
10
|
import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
|
|
11
11
|
import { nullDocumentDiff } from '../../../../../../editor/common/diff/documentDiffProvider.js';
|
|
12
12
|
import { TextEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
|
|
13
13
|
import { OverviewRulerLane, MinimapPosition } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model';
|
|
14
14
|
import { ModelDecorationOptions } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModel';
|
|
15
|
-
import {
|
|
15
|
+
import { offsetEditFromContentChanges, offsetEditToEditOperations, offsetEditFromLineRangeMapping } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModelStringEdit';
|
|
16
16
|
import { IEditorWorkerService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service';
|
|
17
17
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
18
18
|
import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
|
|
@@ -27,13 +27,14 @@ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/mini
|
|
|
27
27
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/miscColors';
|
|
28
28
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
29
29
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
|
|
30
|
-
import { CellEditState } from '@codingame/monaco-vscode-
|
|
30
|
+
import { CellEditState } from '@codingame/monaco-vscode-4372ad43-a220-5e78-83e6-95a9cfd64384-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
|
|
31
31
|
import { INotebookEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/browser/services/notebookEditorService.service';
|
|
32
32
|
import { CellKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
|
|
33
33
|
import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
|
|
34
34
|
import { pendingRewriteMinimap } from '../chatEditingModifiedFileEntry.js';
|
|
35
|
-
import { observableValue
|
|
36
|
-
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
|
|
35
|
+
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
36
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
37
|
+
import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
|
|
37
38
|
|
|
38
39
|
var ChatEditingNotebookCellEntry_1;
|
|
39
40
|
let ChatEditingNotebookCellEntry = class ChatEditingNotebookCellEntry extends ObservableDisposable {
|
|
@@ -74,7 +75,7 @@ let ChatEditingNotebookCellEntry = class ChatEditingNotebookCellEntry extends Ob
|
|
|
74
75
|
this.originalModel = originalModel;
|
|
75
76
|
this._editorWorkerService = _editorWorkerService;
|
|
76
77
|
this.notebookEditorService = notebookEditorService;
|
|
77
|
-
this._edit =
|
|
78
|
+
this._edit = StringEdit.empty;
|
|
78
79
|
this._isEditFromUs = false;
|
|
79
80
|
this._allEditsAreFromUs = true;
|
|
80
81
|
this._diffOperationIds = 0;
|
|
@@ -111,7 +112,7 @@ let ChatEditingNotebookCellEntry = class ChatEditingNotebookCellEntry extends Ob
|
|
|
111
112
|
this._editDecorations = this.modifiedModel.deltaDecorations(this._editDecorations, []);
|
|
112
113
|
}
|
|
113
114
|
_mirrorEdits(event) {
|
|
114
|
-
const edit =
|
|
115
|
+
const edit = offsetEditFromContentChanges(event.changes);
|
|
115
116
|
if (this._isEditFromUs) {
|
|
116
117
|
const e_sum = this._edit;
|
|
117
118
|
const e_ai = edit;
|
|
@@ -125,7 +126,7 @@ let ChatEditingNotebookCellEntry = class ChatEditingNotebookCellEntry extends Ob
|
|
|
125
126
|
this._edit = e_ai.compose(e_user);
|
|
126
127
|
}
|
|
127
128
|
else {
|
|
128
|
-
const edits =
|
|
129
|
+
const edits = offsetEditToEditOperations(e_user_r, this.originalModel);
|
|
129
130
|
this.originalModel.applyEdits(edits);
|
|
130
131
|
this._edit = e_ai.tryRebase(e_user_r);
|
|
131
132
|
}
|
|
@@ -287,7 +288,7 @@ let ChatEditingNotebookCellEntry = class ChatEditingNotebookCellEntry extends Ob
|
|
|
287
288
|
if (this.modifiedModel.getVersionId() === docVersionNow && this.originalModel.getVersionId() === snapshotVersionNow) {
|
|
288
289
|
const diff2 = diff ?? nullDocumentDiff;
|
|
289
290
|
this._diffInfo.set(diff2, undefined);
|
|
290
|
-
this._edit =
|
|
291
|
+
this._edit = offsetEditFromLineRangeMapping(this.originalModel, this.modifiedModel, diff2.changes);
|
|
291
292
|
}
|
|
292
293
|
}
|
|
293
294
|
};
|
|
@@ -4,7 +4,7 @@ import { Disposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs
|
|
|
4
4
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
5
5
|
import { basename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
6
6
|
import { assertType } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
7
|
-
import { LineRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/lineRange';
|
|
7
|
+
import { LineRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/lineRange';
|
|
8
8
|
import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
|
|
9
9
|
import { nullDocumentDiff } from '../../../../../../editor/common/diff/documentDiffProvider.js';
|
|
10
10
|
import { PrefixSumComputer } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/prefixSumComputer';
|
|
@@ -18,7 +18,7 @@ import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench
|
|
|
18
18
|
import { NotebookDeletedCellDecorator } from '@codingame/monaco-vscode-e4d0fd26-1b26-5583-b3f7-582e08d7b389-common/vscode/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookDeletedCellDecorator';
|
|
19
19
|
import { NotebookInsertedCellDecorator } from '@codingame/monaco-vscode-e4d0fd26-1b26-5583-b3f7-582e08d7b389-common/vscode/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInsertedCellDecorator';
|
|
20
20
|
import { NotebookModifiedCellDecorator } from '../../../../notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js';
|
|
21
|
-
import { getNotebookEditorFromEditorPane, CellEditState } from '@codingame/monaco-vscode-
|
|
21
|
+
import { getNotebookEditorFromEditorPane, CellEditState } from '@codingame/monaco-vscode-4372ad43-a220-5e78-83e6-95a9cfd64384-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
|
|
22
22
|
import { INotebookEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/browser/services/notebookEditorService.service';
|
|
23
23
|
import { CellKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
|
|
24
24
|
import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
|
|
@@ -26,9 +26,10 @@ import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
26
26
|
import { ChatEditingCodeEditorIntegration } from '../chatEditingCodeEditorIntegration.js';
|
|
27
27
|
import { sortCellChanges, countChanges } from './notebookCellChanges.js';
|
|
28
28
|
import { OverlayToolbarDecorator } from './overlayToolbarDecorator.js';
|
|
29
|
-
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/
|
|
30
|
-
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
|
|
31
|
-
import { debouncedObservable
|
|
29
|
+
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
30
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
31
|
+
import { debouncedObservable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/utils';
|
|
32
|
+
import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
|
|
32
33
|
|
|
33
34
|
let ChatEditingNotebookEditorIntegration = class ChatEditingNotebookEditorIntegration extends Disposable {
|
|
34
35
|
constructor(_entry, editor, notebookModel, originalModel, cellChanges, instantiationService) {
|
|
@@ -132,7 +133,16 @@ let ChatEditingNotebookEditorWidgetIntegration = class ChatEditingNotebookEditor
|
|
|
132
133
|
&& lastModifyingRequestId !== _entry.lastModifyingRequestId
|
|
133
134
|
&& ( cellChanges.read(r).some(c => c.type !== 'unchanged' && !c.diff.read(r).identical))) {
|
|
134
135
|
lastModifyingRequestId = _entry.lastModifyingRequestId;
|
|
135
|
-
this.
|
|
136
|
+
const visibleChange = this.sortedCellChanges.find(c => {
|
|
137
|
+
if (c.type === 'unchanged') {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
const index = c.modifiedCellIndex ?? c.originalCellIndex;
|
|
141
|
+
return ( this.notebookEditor.visibleRanges.some(range => index >= range.start && index < range.end));
|
|
142
|
+
});
|
|
143
|
+
if (!visibleChange) {
|
|
144
|
+
this.reveal(true);
|
|
145
|
+
}
|
|
136
146
|
}
|
|
137
147
|
}));
|
|
138
148
|
this._register(autorun(r => {
|
|
@@ -543,12 +553,12 @@ let ChatEditingNotebookEditorWidgetIntegration = class ChatEditingNotebookEditor
|
|
|
543
553
|
modified: { resource: this._entry.modifiedURI },
|
|
544
554
|
label: defaultAgentName
|
|
545
555
|
? ( localize(
|
|
546
|
-
|
|
556
|
+
4802,
|
|
547
557
|
'{0} (changes from {1})',
|
|
548
558
|
basename(this._entry.modifiedURI),
|
|
549
559
|
defaultAgentName
|
|
550
560
|
))
|
|
551
|
-
: ( localize(
|
|
561
|
+
: ( localize(4803, '{0} (changes from chat)', basename(this._entry.modifiedURI)))
|
|
552
562
|
};
|
|
553
563
|
await this._editorService.openEditor(diffInput);
|
|
554
564
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
2
|
import { IAccessibilitySignalService } from "@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service";
|
|
3
3
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
4
|
-
import { INotebookEditor } from "@codingame/monaco-vscode-
|
|
4
|
+
import { INotebookEditor } from "@codingame/monaco-vscode-4372ad43-a220-5e78-83e6-95a9cfd64384-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser";
|
|
5
5
|
import { NotebookTextModel } from "@codingame/monaco-vscode-notebook-service-override/vscode/vs/workbench/contrib/notebook/common/model/notebookTextModel";
|
|
6
6
|
import { ICellDiffInfo } from "./notebookCellChanges.js";
|
|
7
7
|
export declare class OverlayToolbarDecorator extends Disposable {
|
package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js
CHANGED
|
@@ -8,7 +8,7 @@ import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/
|
|
|
8
8
|
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
9
9
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
10
10
|
import { ServiceCollection } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/serviceCollection';
|
|
11
|
-
import { CellEditState } from '@codingame/monaco-vscode-
|
|
11
|
+
import { CellEditState } from '@codingame/monaco-vscode-4372ad43-a220-5e78-83e6-95a9cfd64384-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
|
|
12
12
|
import { CellKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
|
|
13
13
|
|
|
14
14
|
let OverlayToolbarDecorator = class OverlayToolbarDecorator extends Disposable {
|