@codingame/monaco-vscode-chat-service-override 15.0.2 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/index.js +11 -8
  2. package/package.json +29 -20
  3. package/vscode/src/vs/editor/common/diff/documentDiffProvider.d.ts +22 -0
  4. package/vscode/src/vs/editor/common/diff/documentDiffProvider.js +10 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.d.ts +9 -2
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +80 -55
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/chatAttachPromptAction.d.ts +2 -2
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/chatAttachPromptAction.js +17 -3
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/{askToSelectPrompt.d.ts → askToSelectPrompt/askToSelectPrompt.d.ts} +9 -1
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/askToSelectPrompt.js +79 -0
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/constants.d.ts +7 -0
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/constants.js +27 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/attachPrompts.d.ts +5 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/attachPrompts.js +53 -0
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/createPlaceholderText.d.ts +2 -0
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/createPlaceholderText.js +19 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/createPromptPickItem.d.ts +5 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/createPromptPickItem.js +27 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/handleButtonClick.d.ts +13 -0
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt/utils/handleButtonClick.js +49 -0
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +11 -11
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +6 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +163 -72
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +2 -2
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +22 -2
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +4 -1
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +3 -3
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +17 -17
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +9 -8
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.d.ts +7 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.js +17 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +15 -15
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +242 -74
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditing.d.ts +4 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditing.js +15 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +47 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +688 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +28 -0
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +355 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +11 -11
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +71 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +395 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +98 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +216 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +97 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +831 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +7 -4
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +32 -47
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +110 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +985 -0
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +20 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +69 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.d.ts +15 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.js +67 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.d.ts +26 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +147 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +56 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +284 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +38 -0
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +578 -0
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.d.ts +45 -0
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +122 -0
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.d.ts +15 -0
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.js +320 -0
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.d.ts +31 -0
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +50 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +5 -3
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +22 -5
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.d.ts +4 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +166 -62
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +6 -104
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +704 -732
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +10 -25
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +329 -236
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusItemService.d.ts +19 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatusItemService.js +27 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +4 -2
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +14 -6
  81. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +3 -3
  82. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
  83. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
  84. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/editorHoverWrapper.d.ts +1 -1
  85. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/editorHoverWrapper.js +1 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/media/editorHoverWrapper.css +3 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +17 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +217 -18
  89. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +114 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditorController.css +30 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSetup.css +56 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatus.css +90 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.js +65 -19
  94. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.js +2 -2
  95. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.js +4 -4
  96. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/errors.js +2 -2
  97. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/utils/createPromptFile.d.ts +2 -2
  98. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/utils/createPromptFile.js +3 -3
  99. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/usePromptCommand.js +14 -12
  100. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  101. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +5 -3
  102. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +5 -2
  103. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +16 -8
  104. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +175 -57
  105. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +66 -0
  106. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +313 -0
  107. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.d.ts +3 -2
  108. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +4 -2
  109. package/vscode/src/vs/workbench/contrib/chat/common/chatTransferService.d.ts +14 -0
  110. package/vscode/src/vs/workbench/contrib/chat/common/chatTransferService.js +30 -0
  111. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/constants.d.ts +2 -3
  112. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/constants.js +6 -2
  113. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/textModelContentsProvider.d.ts +10 -2
  114. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/textModelContentsProvider.js +18 -3
  115. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageFeatures/promptLinkDiagnosticsProvider.d.ts +9 -0
  116. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageFeatures/promptLinkDiagnosticsProvider.js +117 -0
  117. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageFeatures/promptPathAutocompletion.js +3 -4
  118. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.js +2 -2
  119. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +2 -2
  120. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +6 -4
  121. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +157 -65
  122. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +2 -1
  123. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +39 -21
  124. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +0 -1
  125. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -3
  126. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
  127. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +11 -10
  128. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -1
  129. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +10 -0
  130. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +47 -0
  131. package/vscode/src/vs/workbench/services/workspaces/common/workspaceUtils.d.ts +5 -0
  132. package/vscode/src/vs/workbench/services/workspaces/common/workspaceUtils.js +26 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAttachPromptAction/dialogs/askToSelectPrompt.js +0 -142
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +0 -52
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +0 -331
  136. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputRelatedFilesContrib.d.ts +0 -15
  137. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputRelatedFilesContrib.js +0 -110
  138. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/media/editorHoverWrapper.css.js +0 -6
  139. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css.js +0 -6
  140. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatus.css.js +0 -6
  141. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewSetup.css.js +0 -6
  142. package/vscode/src/vs/workbench/contrib/chat/common/chatEntitlementsService.d.ts +0 -19
  143. package/vscode/src/vs/workbench/contrib/chat/common/chatEntitlementsService.js +0 -13
  144. package/vscode/src/vs/workbench/contrib/chat/common/chatQuotasService.d.ts +0 -31
  145. package/vscode/src/vs/workbench/contrib/chat/common/chatQuotasService.js +0 -85
  146. package/vscode/src/vs/workbench/contrib/chat/common/tools/tools.d.ts +0 -11
  147. package/vscode/src/vs/workbench/contrib/chat/common/tools/tools.js +0 -22
@@ -0,0 +1,395 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { assert } from '@codingame/monaco-vscode-api/vscode/vs/base/common/assert';
4
+ import { RunOnceScheduler } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
5
+ import { toDisposable, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
7
+ import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
8
+ import { themeColorFromId } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
9
+ import { assertType } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
10
+ import { getCodeEditor } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorBrowser';
11
+ import { EditOperation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/editOperation';
12
+ import { OffsetEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/offsetEdit';
13
+ import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
14
+ import { nullDocumentDiff } from '../../../../../editor/common/diff/documentDiffProvider.js';
15
+ import { TextEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
16
+ import { ILanguageService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service';
17
+ import { OverviewRulerLane, MinimapPosition } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model';
18
+ import { SingleModelEditStackElement } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/editStack';
19
+ import { ModelDecorationOptions, createTextBufferFactoryFromSnapshot } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModel';
20
+ import { OffsetEdits } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModelOffsetEdit';
21
+ import { IEditorWorkerService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service';
22
+ import { IModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service';
23
+ import { ITextModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service';
24
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
25
+ import { AccessibilitySignal } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService';
26
+ import { IAccessibilitySignalService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service';
27
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
28
+ import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
29
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
30
+ 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
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colorUtils';
33
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/baseColors';
34
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/chartsColors';
35
+ import { editorSelectionBackground } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/editorColors';
36
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/inputColors';
37
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/listColors';
38
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/menuColors';
39
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/minimapColors';
40
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/miscColors';
41
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quickpickColors';
42
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
43
+ import { IUndoRedoService } from '@codingame/monaco-vscode-api/vscode/vs/platform/undoRedo/common/undoRedo.service';
44
+ import { SaveReason } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
45
+ import { IFilesConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/filesConfiguration/common/filesConfigurationService.service';
46
+ import { stringToSnapshot } from '@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common/vscode/vs/workbench/services/textfile/common/textfiles';
47
+ import { ITextFileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/textfile/common/textfiles.service';
48
+ import { WorkingSetEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
49
+ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
50
+ import { ChatEditingCodeEditorIntegration } from './chatEditingCodeEditorIntegration.js';
51
+ import { AbstractChatEditingModifiedFileEntry, pendingRewriteMinimap } from './chatEditingModifiedFileEntry.js';
52
+ import { ChatEditingTextModelContentProvider, ChatEditingSnapshotTextModelContentProvider } from './chatEditingTextModelContentProviders.js';
53
+ import { observableValue, transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/base';
54
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
55
+
56
+ var ChatEditingModifiedDocumentEntry_1;
57
+ let ChatEditingModifiedDocumentEntry = class ChatEditingModifiedDocumentEntry extends AbstractChatEditingModifiedFileEntry {
58
+ static { ChatEditingModifiedDocumentEntry_1 = this; }
59
+ static { this._lastEditDecorationOptions = ModelDecorationOptions.register({
60
+ isWholeLine: true,
61
+ description: 'chat-last-edit',
62
+ className: 'chat-editing-last-edit-line',
63
+ marginClassName: 'chat-editing-last-edit',
64
+ overviewRuler: {
65
+ position: OverviewRulerLane.Full,
66
+ color: themeColorFromId(editorSelectionBackground)
67
+ },
68
+ }); }
69
+ static { this._pendingEditDecorationOptions = ModelDecorationOptions.register({
70
+ isWholeLine: true,
71
+ description: 'chat-pending-edit',
72
+ className: 'chat-editing-pending-edit',
73
+ minimap: {
74
+ position: MinimapPosition.Inline,
75
+ color: themeColorFromId(pendingRewriteMinimap)
76
+ }
77
+ }); }
78
+ constructor(resourceRef, _multiDiffEntryDelegate, telemetryInfo, kind, initialContent, markerService, modelService, textModelService, languageService, configService, fileConfigService, chatService, _editorWorkerService, _textFileService, fileService, undoRedoService, instantiationService, _accessibilitySignalService) {
79
+ super(resourceRef.object.textEditorModel.uri, telemetryInfo, kind, configService, fileConfigService, chatService, fileService, undoRedoService, instantiationService);
80
+ this._multiDiffEntryDelegate = _multiDiffEntryDelegate;
81
+ this._editorWorkerService = _editorWorkerService;
82
+ this._textFileService = _textFileService;
83
+ this._accessibilitySignalService = _accessibilitySignalService;
84
+ this._edit = OffsetEdit.empty;
85
+ this._isEditFromUs = false;
86
+ this._allEditsAreFromUs = true;
87
+ this._diffOperationIds = 0;
88
+ this._diffInfo = observableValue(this, nullDocumentDiff);
89
+ this.changesCount = ( this._diffInfo.map(diff => diff.changes.length));
90
+ this._editDecorationClear = this._register(( new RunOnceScheduler(
91
+ () => { this._editDecorations = this.modifiedModel.deltaDecorations(this._editDecorations, []); },
92
+ 500
93
+ )));
94
+ this._editDecorations = [];
95
+ this.docFileEditorModel = this._register(resourceRef).object;
96
+ this.modifiedModel = resourceRef.object.textEditorModel;
97
+ this.originalURI = ChatEditingTextModelContentProvider.getFileURI(telemetryInfo.sessionId, this.entryId, this.modifiedURI.path);
98
+ this.initialContent = initialContent ?? this.modifiedModel.getValue();
99
+ const docSnapshot = this.originalModel = this._register(modelService.createModel(createTextBufferFactoryFromSnapshot(initialContent ? stringToSnapshot(initialContent) : this.modifiedModel.createSnapshot()), languageService.createById(this.modifiedModel.getLanguageId()), this.originalURI, false));
100
+ (async () => {
101
+ const reference = await textModelService.createModelReference(docSnapshot.uri);
102
+ if (this._store.isDisposed) {
103
+ reference.dispose();
104
+ return;
105
+ }
106
+ this._register(reference);
107
+ })();
108
+ this._register(this.modifiedModel.onDidChangeContent(e => this._mirrorEdits(e)));
109
+ this._register(toDisposable(() => {
110
+ this._clearCurrentEditLineDecoration();
111
+ }));
112
+ this._diffTrimWhitespace = observableConfigValue('diffEditor.ignoreTrimWhitespace', true, configService);
113
+ this._register(autorun(r => {
114
+ this._diffTrimWhitespace.read(r);
115
+ this._updateDiffInfoSeq();
116
+ }));
117
+ const resourceFilter = this._register(( new MutableDisposable()));
118
+ this._register(autorun(r => {
119
+ const res = this.isCurrentlyBeingModifiedBy.read(r);
120
+ if (res) {
121
+ const req = res.session.getRequests().find(value => value.id === res.requestId);
122
+ resourceFilter.value = markerService.installResourceFilter(this.modifiedURI, req?.message.text || ( localize(4684, "Chat Edits")));
123
+ }
124
+ else {
125
+ resourceFilter.clear();
126
+ }
127
+ }));
128
+ }
129
+ _clearCurrentEditLineDecoration() {
130
+ this._editDecorations = this.modifiedModel.deltaDecorations(this._editDecorations, []);
131
+ }
132
+ equalsSnapshot(snapshot) {
133
+ return !!snapshot &&
134
+ ( this.modifiedURI.toString()) === ( snapshot.resource.toString()) &&
135
+ this.modifiedModel.getLanguageId() === snapshot.languageId &&
136
+ this.originalModel.getValue() === snapshot.original &&
137
+ this.modifiedModel.getValue() === snapshot.current &&
138
+ this._edit.equals(snapshot.originalToCurrentEdit) &&
139
+ this.state.get() === snapshot.state;
140
+ }
141
+ createSnapshot(requestId, undoStop) {
142
+ return {
143
+ resource: this.modifiedURI,
144
+ languageId: this.modifiedModel.getLanguageId(),
145
+ snapshotUri: ChatEditingSnapshotTextModelContentProvider.getSnapshotFileURI(this._telemetryInfo.sessionId, requestId, undoStop, this.modifiedURI.path),
146
+ original: this.originalModel.getValue(),
147
+ current: this.modifiedModel.getValue(),
148
+ originalToCurrentEdit: this._edit,
149
+ state: this.state.get(),
150
+ telemetryInfo: this._telemetryInfo
151
+ };
152
+ }
153
+ restoreFromSnapshot(snapshot, restoreToDisk = true) {
154
+ this._stateObs.set(snapshot.state, undefined);
155
+ this.originalModel.setValue(snapshot.original);
156
+ if (restoreToDisk) {
157
+ this._setDocValue(snapshot.current);
158
+ }
159
+ this._edit = snapshot.originalToCurrentEdit;
160
+ this._updateDiffInfoSeq();
161
+ }
162
+ resetToInitialContent() {
163
+ this._setDocValue(this.initialContent);
164
+ }
165
+ async _areOriginalAndModifiedIdentical() {
166
+ const diff = await this._diffOperation;
167
+ return diff ? diff.identical : false;
168
+ }
169
+ _resetEditsState(tx) {
170
+ super._resetEditsState(tx);
171
+ this._clearCurrentEditLineDecoration();
172
+ }
173
+ _mirrorEdits(event) {
174
+ const edit = OffsetEdits.fromContentChanges(event.changes);
175
+ if (this._isEditFromUs) {
176
+ const e_sum = this._edit;
177
+ const e_ai = edit;
178
+ this._edit = e_sum.compose(e_ai);
179
+ }
180
+ else {
181
+ const e_ai = this._edit;
182
+ const e_user = edit;
183
+ const e_user_r = e_user.tryRebase(e_ai.inverse(this.originalModel.getValue()), true);
184
+ if (e_user_r === undefined) {
185
+ this._edit = e_ai.compose(e_user);
186
+ }
187
+ else {
188
+ const edits = OffsetEdits.asEditOperations(e_user_r, this.originalModel);
189
+ this.originalModel.applyEdits(edits);
190
+ this._edit = e_ai.tryRebase(e_user_r);
191
+ }
192
+ this._allEditsAreFromUs = false;
193
+ this._updateDiffInfoSeq();
194
+ const didResetToOriginalContent = this.modifiedModel.getValue() === this.initialContent;
195
+ const currentState = this._stateObs.get();
196
+ switch (currentState) {
197
+ case WorkingSetEntryState.Modified:
198
+ if (didResetToOriginalContent) {
199
+ this._stateObs.set(WorkingSetEntryState.Rejected, undefined);
200
+ break;
201
+ }
202
+ }
203
+ }
204
+ }
205
+ _createUndoRedoElement(response) {
206
+ const request = response.session.getRequests().find(req => req.id === response.requestId);
207
+ const label = request?.message.text ? ( localize(4685, "Chat Edit: '{0}'", request.message.text)) : ( localize(4686, "Chat Edit"));
208
+ return ( new SingleModelEditStackElement(label, 'chat.edit', this.modifiedModel, null));
209
+ }
210
+ async acceptAgentEdits(resource, textEdits, isLastEdits, responseModel) {
211
+ assertType(textEdits.every(TextEdit.isTextEdit), 'INVALID args, can only handle text edits');
212
+ assert(isEqual(resource, this.modifiedURI), ' INVALID args, can only edit THIS document');
213
+ const ops = ( textEdits.map(TextEdit.asEditOperation));
214
+ const undoEdits = this._applyEdits(ops);
215
+ const maxLineNumber = undoEdits.reduce((max, op) => Math.max(max, op.range.startLineNumber), 0);
216
+ const newDecorations = [
217
+ {
218
+ options: ChatEditingModifiedDocumentEntry_1._pendingEditDecorationOptions,
219
+ range: ( new Range(maxLineNumber + 1, 1, Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER))
220
+ }
221
+ ];
222
+ if (maxLineNumber > 0) {
223
+ newDecorations.push({
224
+ options: ChatEditingModifiedDocumentEntry_1._lastEditDecorationOptions,
225
+ range: ( new Range(maxLineNumber, 1, maxLineNumber, Number.MAX_SAFE_INTEGER))
226
+ });
227
+ }
228
+ this._editDecorations = this.modifiedModel.deltaDecorations(this._editDecorations, newDecorations);
229
+ transaction((tx) => {
230
+ if (!isLastEdits) {
231
+ this._stateObs.set(WorkingSetEntryState.Modified, tx);
232
+ this._isCurrentlyBeingModifiedByObs.set(responseModel, tx);
233
+ const lineCount = this.modifiedModel.getLineCount();
234
+ this._rewriteRatioObs.set(Math.min(1, maxLineNumber / lineCount), tx);
235
+ }
236
+ else {
237
+ this._resetEditsState(tx);
238
+ this._updateDiffInfoSeq();
239
+ this._rewriteRatioObs.set(1, tx);
240
+ this._editDecorationClear.schedule();
241
+ }
242
+ });
243
+ }
244
+ async _acceptHunk(change) {
245
+ if (!this._diffInfo.get().changes.includes(change)) {
246
+ return false;
247
+ }
248
+ const edits = [];
249
+ for (const edit of change.innerChanges ?? []) {
250
+ const newText = this.modifiedModel.getValueInRange(edit.modifiedRange);
251
+ edits.push(EditOperation.replace(edit.originalRange, newText));
252
+ }
253
+ this.originalModel.pushEditOperations(null, edits, _ => null);
254
+ await this._updateDiffInfoSeq();
255
+ if (this._diffInfo.get().identical) {
256
+ this._stateObs.set(WorkingSetEntryState.Accepted, undefined);
257
+ }
258
+ this._accessibilitySignalService.playSignal(AccessibilitySignal.editsKept, { allowManyInParallel: true });
259
+ return true;
260
+ }
261
+ async _rejectHunk(change) {
262
+ if (!this._diffInfo.get().changes.includes(change)) {
263
+ return false;
264
+ }
265
+ const edits = [];
266
+ for (const edit of change.innerChanges ?? []) {
267
+ const newText = this.originalModel.getValueInRange(edit.originalRange);
268
+ edits.push(EditOperation.replace(edit.modifiedRange, newText));
269
+ }
270
+ this.modifiedModel.pushEditOperations(null, edits, _ => null);
271
+ await this._updateDiffInfoSeq();
272
+ if (this._diffInfo.get().identical) {
273
+ this._stateObs.set(WorkingSetEntryState.Rejected, undefined);
274
+ }
275
+ this._accessibilitySignalService.playSignal(AccessibilitySignal.editsUndone, { allowManyInParallel: true });
276
+ return true;
277
+ }
278
+ _applyEdits(edits) {
279
+ this._isEditFromUs = true;
280
+ try {
281
+ let result = [];
282
+ this.modifiedModel.pushEditOperations(null, edits, (undoEdits) => {
283
+ result = undoEdits;
284
+ return null;
285
+ });
286
+ return result;
287
+ }
288
+ finally {
289
+ this._isEditFromUs = false;
290
+ }
291
+ }
292
+ async _updateDiffInfoSeq() {
293
+ const myDiffOperationId = ++this._diffOperationIds;
294
+ await Promise.resolve(this._diffOperation);
295
+ if (this._diffOperationIds === myDiffOperationId) {
296
+ const thisDiffOperation = this._updateDiffInfo();
297
+ this._diffOperation = thisDiffOperation;
298
+ await thisDiffOperation;
299
+ }
300
+ }
301
+ async _updateDiffInfo() {
302
+ if (this.originalModel.isDisposed() || this.modifiedModel.isDisposed()) {
303
+ return undefined;
304
+ }
305
+ const docVersionNow = this.modifiedModel.getVersionId();
306
+ const snapshotVersionNow = this.originalModel.getVersionId();
307
+ const ignoreTrimWhitespace = this._diffTrimWhitespace.get();
308
+ const diff = await this._editorWorkerService.computeDiff(this.originalModel.uri, this.modifiedModel.uri, { ignoreTrimWhitespace, computeMoves: false, maxComputationTimeMs: 3000 }, 'advanced');
309
+ if (this.originalModel.isDisposed() || this.modifiedModel.isDisposed()) {
310
+ return undefined;
311
+ }
312
+ if (this.modifiedModel.getVersionId() === docVersionNow && this.originalModel.getVersionId() === snapshotVersionNow) {
313
+ const diff2 = diff ?? nullDocumentDiff;
314
+ this._diffInfo.set(diff2, undefined);
315
+ this._edit = OffsetEdits.fromLineRangeMapping(this.originalModel, this.modifiedModel, diff2.changes);
316
+ return diff2;
317
+ }
318
+ return undefined;
319
+ }
320
+ async _doAccept(tx) {
321
+ this.originalModel.setValue(this.modifiedModel.createSnapshot());
322
+ this._diffInfo.set(nullDocumentDiff, tx);
323
+ this._edit = OffsetEdit.empty;
324
+ await this._collapse(tx);
325
+ const config = this._fileConfigService.getAutoSaveConfiguration(this.modifiedURI);
326
+ if (!config.autoSave || !this._textFileService.isDirty(this.modifiedURI)) {
327
+ try {
328
+ await this._textFileService.save(this.modifiedURI, {
329
+ reason: SaveReason.EXPLICIT,
330
+ force: true,
331
+ ignoreErrorHandler: true
332
+ });
333
+ }
334
+ catch {
335
+ }
336
+ }
337
+ }
338
+ async _doReject(tx) {
339
+ if (this.createdInRequestId === this._telemetryInfo.requestId) {
340
+ await this.docFileEditorModel.revert({ soft: true });
341
+ await this._fileService.del(this.modifiedURI);
342
+ this._onDidDelete.fire();
343
+ }
344
+ else {
345
+ this._setDocValue(this.originalModel.getValue());
346
+ if (this._allEditsAreFromUs) {
347
+ await this.docFileEditorModel.save({ reason: SaveReason.EXPLICIT, skipSaveParticipants: true });
348
+ }
349
+ await this._collapse(tx);
350
+ }
351
+ }
352
+ _setDocValue(value) {
353
+ if (this.modifiedModel.getValue() !== value) {
354
+ this.modifiedModel.pushStackElement();
355
+ const edit = EditOperation.replace(this.modifiedModel.getFullModelRange(), value);
356
+ this._applyEdits([edit]);
357
+ this._updateDiffInfoSeq();
358
+ this.modifiedModel.pushStackElement();
359
+ }
360
+ }
361
+ async _collapse(transaction) {
362
+ this._multiDiffEntryDelegate.collapse(transaction);
363
+ }
364
+ _createEditorIntegration(editor) {
365
+ const codeEditor = getCodeEditor(editor.getControl());
366
+ assertType(codeEditor);
367
+ const diffInfo = ( this._diffInfo.map(value => {
368
+ return {
369
+ ...value,
370
+ originalModel: this.originalModel,
371
+ modifiedModel: this.modifiedModel,
372
+ keep: changes => this._acceptHunk(changes),
373
+ undo: changes => this._rejectHunk(changes)
374
+ };
375
+ }));
376
+ return this._instantiationService.createInstance(ChatEditingCodeEditorIntegration, this, codeEditor, diffInfo);
377
+ }
378
+ };
379
+ ChatEditingModifiedDocumentEntry = ChatEditingModifiedDocumentEntry_1 = ( __decorate([
380
+ ( __param(5, IMarkerService)),
381
+ ( __param(6, IModelService)),
382
+ ( __param(7, ITextModelService)),
383
+ ( __param(8, ILanguageService)),
384
+ ( __param(9, IConfigurationService)),
385
+ ( __param(10, IFilesConfigurationService)),
386
+ ( __param(11, IChatService)),
387
+ ( __param(12, IEditorWorkerService)),
388
+ ( __param(13, ITextFileService)),
389
+ ( __param(14, IFileService)),
390
+ ( __param(15, IUndoRedoService)),
391
+ ( __param(16, IInstantiationService)),
392
+ ( __param(17, IAccessibilitySignalService))
393
+ ], ChatEditingModifiedDocumentEntry));
394
+
395
+ export { ChatEditingModifiedDocumentEntry };
@@ -0,0 +1,98 @@
1
+ import { Emitter } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
2
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { IObservable, ITransaction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
4
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
5
+ import { OffsetEdit } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/offsetEdit";
6
+ import { TextEdit } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages";
7
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
8
+ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
9
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
10
+ import { IUndoRedoElement } from "@codingame/monaco-vscode-api/vscode/vs/platform/undoRedo/common/undoRedo";
11
+ import { IUndoRedoService } from "@codingame/monaco-vscode-api/vscode/vs/platform/undoRedo/common/undoRedo.service";
12
+ import { IEditorPane } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor";
13
+ import { IFilesConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/filesConfiguration/common/filesConfigurationService.service";
14
+ import { ICellEditOperation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon";
15
+ import { IChatAgentResult } from "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common/vscode/vs/workbench/contrib/chat/common/chatAgents";
16
+ import { ChatEditKind, IModifiedFileEntry, IModifiedFileEntryEditorIntegration, WorkingSetEntryState } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService";
17
+ import { IChatResponseModel } from "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common/vscode/vs/workbench/contrib/chat/common/chatModel";
18
+ import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service";
19
+ declare class AutoAcceptControl {
20
+ readonly total: number;
21
+ readonly remaining: number;
22
+ readonly cancel: () => void;
23
+ constructor(total: number, remaining: number, cancel: () => void);
24
+ }
25
+ export declare const pendingRewriteMinimap: string;
26
+ export declare abstract class AbstractChatEditingModifiedFileEntry extends Disposable implements IModifiedFileEntry {
27
+ readonly modifiedURI: URI;
28
+ protected _telemetryInfo: IModifiedEntryTelemetryInfo;
29
+ protected _fileConfigService: IFilesConfigurationService;
30
+ protected readonly _chatService: IChatService;
31
+ protected readonly _fileService: IFileService;
32
+ private readonly _undoRedoService;
33
+ protected readonly _instantiationService: IInstantiationService;
34
+ static readonly scheme = "modified-file-entry";
35
+ private static lastEntryId;
36
+ readonly entryId: string;
37
+ protected readonly _onDidDelete: Emitter<void>;
38
+ 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<WorkingSetEntryState, void>;
40
+ readonly state: IObservable<WorkingSetEntryState>;
41
+ protected readonly _isCurrentlyBeingModifiedByObs: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<IChatResponseModel | undefined, void>;
42
+ readonly isCurrentlyBeingModifiedBy: IObservable<IChatResponseModel | undefined>;
43
+ protected readonly _rewriteRatioObs: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").ISettableObservable<number, void>;
44
+ readonly rewriteRatio: IObservable<number>;
45
+ private readonly _reviewModeTempObs;
46
+ readonly reviewMode: IObservable<boolean>;
47
+ private readonly _autoAcceptCtrl;
48
+ readonly autoAcceptController: IObservable<AutoAcceptControl | undefined>;
49
+ protected readonly _autoAcceptTimeout: IObservable<number>;
50
+ get telemetryInfo(): IModifiedEntryTelemetryInfo;
51
+ readonly createdInRequestId: string | undefined;
52
+ get lastModifyingRequestId(): string;
53
+ private _refCounter;
54
+ readonly abstract originalURI: URI;
55
+ constructor(modifiedURI: URI, _telemetryInfo: IModifiedEntryTelemetryInfo, kind: ChatEditKind, configService: IConfigurationService, _fileConfigService: IFilesConfigurationService, _chatService: IChatService, _fileService: IFileService, _undoRedoService: IUndoRedoService, _instantiationService: IInstantiationService);
56
+ dispose(): void;
57
+ acquire(): this;
58
+ enableReviewModeUntilSettled(): void;
59
+ updateTelemetryInfo(telemetryInfo: IModifiedEntryTelemetryInfo): void;
60
+ accept(tx: ITransaction | undefined): Promise<void>;
61
+ protected abstract _doAccept(tx: ITransaction | undefined): Promise<void>;
62
+ reject(tx: ITransaction | undefined): Promise<void>;
63
+ protected abstract _doReject(tx: ITransaction | undefined): Promise<void>;
64
+ private _notifyAction;
65
+ private readonly _editorIntegrations;
66
+ getEditorIntegration(pane: IEditorPane): IModifiedFileEntryEditorIntegration;
67
+ protected abstract _createEditorIntegration(editor: IEditorPane): IModifiedFileEntryEditorIntegration;
68
+ abstract readonly changesCount: IObservable<number>;
69
+ acceptStreamingEditsStart(responseModel: IChatResponseModel, tx: ITransaction): void;
70
+ protected abstract _createUndoRedoElement(response: IChatResponseModel): IUndoRedoElement | undefined;
71
+ abstract acceptAgentEdits(uri: URI, edits: (TextEdit | ICellEditOperation)[], isLastEdits: boolean, responseModel: IChatResponseModel): Promise<void>;
72
+ acceptStreamingEditsEnd(tx: ITransaction): Promise<void>;
73
+ protected abstract _areOriginalAndModifiedIdentical(): Promise<boolean>;
74
+ protected _resetEditsState(tx: ITransaction): void;
75
+ abstract createSnapshot(requestId: string | undefined, undoStop: string | undefined): ISnapshotEntry;
76
+ abstract equalsSnapshot(snapshot: ISnapshotEntry | undefined): boolean;
77
+ abstract restoreFromSnapshot(snapshot: ISnapshotEntry, restoreToDisk?: boolean): void;
78
+ abstract resetToInitialContent(): void;
79
+ abstract initialContent: string;
80
+ }
81
+ export interface IModifiedEntryTelemetryInfo {
82
+ readonly agentId: string | undefined;
83
+ readonly command: string | undefined;
84
+ readonly sessionId: string;
85
+ readonly requestId: string;
86
+ readonly result: IChatAgentResult | undefined;
87
+ }
88
+ export interface ISnapshotEntry {
89
+ readonly resource: URI;
90
+ readonly languageId: string;
91
+ readonly snapshotUri: URI;
92
+ readonly original: string;
93
+ readonly current: string;
94
+ readonly originalToCurrentEdit: OffsetEdit;
95
+ readonly state: WorkingSetEntryState;
96
+ telemetryInfo: IModifiedEntryTelemetryInfo;
97
+ }
98
+ export {};