@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,284 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { RunOnceScheduler } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
4
+ import { toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
6
+ import { ObservableDisposable } from '@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common/vscode/vs/base/common/observableDisposable';
7
+ import { themeColorFromId } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
8
+ import { EditOperation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/editOperation';
9
+ import { OffsetEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/offsetEdit';
10
+ import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
11
+ import { nullDocumentDiff } from '../../../../../../editor/common/diff/documentDiffProvider.js';
12
+ import { TextEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
13
+ import { OverviewRulerLane, MinimapPosition } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model';
14
+ import { ModelDecorationOptions } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModel';
15
+ import { OffsetEdits } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModelOffsetEdit';
16
+ import { IEditorWorkerService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service';
17
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
18
+ import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
19
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colorUtils';
20
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/baseColors';
21
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/chartsColors';
22
+ import { editorSelectionBackground } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/editorColors';
23
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/inputColors';
24
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/listColors';
25
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/menuColors';
26
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/minimapColors';
27
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/miscColors';
28
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quickpickColors';
29
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
30
+ import { CellEditState } from '@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
31
+ import { INotebookEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/browser/services/notebookEditorService.service';
32
+ import { WorkingSetEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
33
+ import { pendingRewriteMinimap } from '../chatEditingModifiedFileEntry.js';
34
+ import { observableValue, transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/base';
35
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
36
+
37
+ var ChatEditingNotebookCellEntry_1;
38
+ let ChatEditingNotebookCellEntry = class ChatEditingNotebookCellEntry extends ObservableDisposable {
39
+ static { ChatEditingNotebookCellEntry_1 = this; }
40
+ static { this._lastEditDecorationOptions = ModelDecorationOptions.register({
41
+ isWholeLine: true,
42
+ description: 'chat-last-edit',
43
+ className: 'chat-editing-last-edit-line',
44
+ marginClassName: 'chat-editing-last-edit',
45
+ overviewRuler: {
46
+ position: OverviewRulerLane.Full,
47
+ color: themeColorFromId(editorSelectionBackground)
48
+ },
49
+ }); }
50
+ static { this._pendingEditDecorationOptions = ModelDecorationOptions.register({
51
+ isWholeLine: true,
52
+ description: 'chat-pending-edit',
53
+ className: 'chat-editing-pending-edit',
54
+ minimap: {
55
+ position: MinimapPosition.Inline,
56
+ color: themeColorFromId(pendingRewriteMinimap)
57
+ }
58
+ }); }
59
+ get isEditFromUs() {
60
+ return this._isEditFromUs;
61
+ }
62
+ get allEditsAreFromUs() {
63
+ return this._allEditsAreFromUs;
64
+ }
65
+ get diffInfo() {
66
+ return this._diffInfo;
67
+ }
68
+ constructor(notebookUri, cell, modifiedModel, originalModel, disposables, configService, _editorWorkerService, notebookEditorService) {
69
+ super();
70
+ this.notebookUri = notebookUri;
71
+ this.cell = cell;
72
+ this.modifiedModel = modifiedModel;
73
+ this.originalModel = originalModel;
74
+ this._editorWorkerService = _editorWorkerService;
75
+ this.notebookEditorService = notebookEditorService;
76
+ this._edit = OffsetEdit.empty;
77
+ this._isEditFromUs = false;
78
+ this._allEditsAreFromUs = true;
79
+ this._diffOperationIds = 0;
80
+ this._diffInfo = observableValue(this, nullDocumentDiff);
81
+ this._maxModifiedLineNumber = observableValue(this, 0);
82
+ this.maxModifiedLineNumber = this._maxModifiedLineNumber;
83
+ this._editDecorationClear = this._register(( new RunOnceScheduler(
84
+ () => { this._editDecorations = this.modifiedModel.deltaDecorations(this._editDecorations, []); },
85
+ 500
86
+ )));
87
+ this._editDecorations = [];
88
+ this._stateObs = observableValue(this, WorkingSetEntryState.Modified);
89
+ this.state = this._stateObs;
90
+ this._isCurrentlyBeingModifiedByObs = observableValue(this, undefined);
91
+ this.isCurrentlyBeingModifiedBy = this._isCurrentlyBeingModifiedByObs;
92
+ this.initialContent = this.originalModel.getValue();
93
+ this._register(disposables);
94
+ this._register(this.modifiedModel.onDidChangeContent(e => {
95
+ this._mirrorEdits(e);
96
+ }));
97
+ this._register(toDisposable(() => {
98
+ this.clearCurrentEditLineDecoration();
99
+ }));
100
+ this._diffTrimWhitespace = observableConfigValue('diffEditor.ignoreTrimWhitespace', true, configService);
101
+ this._register(autorun(r => {
102
+ this._diffTrimWhitespace.read(r);
103
+ this._updateDiffInfoSeq();
104
+ }));
105
+ }
106
+ clearCurrentEditLineDecoration() {
107
+ if (this.modifiedModel.isDisposed()) {
108
+ return;
109
+ }
110
+ this._editDecorations = this.modifiedModel.deltaDecorations(this._editDecorations, []);
111
+ }
112
+ _mirrorEdits(event) {
113
+ const edit = OffsetEdits.fromContentChanges(event.changes);
114
+ if (this._isEditFromUs) {
115
+ const e_sum = this._edit;
116
+ const e_ai = edit;
117
+ this._edit = e_sum.compose(e_ai);
118
+ }
119
+ else {
120
+ const e_ai = this._edit;
121
+ const e_user = edit;
122
+ const e_user_r = e_user.tryRebase(e_ai.inverse(this.originalModel.getValue()), true);
123
+ if (e_user_r === undefined) {
124
+ this._edit = e_ai.compose(e_user);
125
+ }
126
+ else {
127
+ const edits = OffsetEdits.asEditOperations(e_user_r, this.originalModel);
128
+ this.originalModel.applyEdits(edits);
129
+ this._edit = e_ai.tryRebase(e_user_r);
130
+ }
131
+ this._allEditsAreFromUs = false;
132
+ this._updateDiffInfoSeq();
133
+ const didResetToOriginalContent = this.modifiedModel.getValue() === this.initialContent;
134
+ const currentState = this._stateObs.get();
135
+ switch (currentState) {
136
+ case WorkingSetEntryState.Modified:
137
+ if (didResetToOriginalContent) {
138
+ this._stateObs.set(WorkingSetEntryState.Rejected, undefined);
139
+ break;
140
+ }
141
+ }
142
+ }
143
+ }
144
+ acceptAgentEdits(textEdits, isLastEdits, responseModel) {
145
+ const notebookEditor = this.notebookEditorService.retrieveExistingWidgetFromURI(this.notebookUri)?.value;
146
+ if (notebookEditor) {
147
+ const vm = notebookEditor.getCellByHandle(this.cell.handle);
148
+ vm?.updateEditState(CellEditState.Editing, 'chatEdit');
149
+ }
150
+ const ops = ( textEdits.map(TextEdit.asEditOperation));
151
+ const undoEdits = this._applyEdits(ops);
152
+ const maxLineNumber = undoEdits.reduce((max, op) => Math.max(max, op.range.startLineNumber), 0);
153
+ const newDecorations = [
154
+ {
155
+ options: ChatEditingNotebookCellEntry_1._pendingEditDecorationOptions,
156
+ range: ( new Range(maxLineNumber + 1, 1, Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER))
157
+ }
158
+ ];
159
+ if (maxLineNumber > 0) {
160
+ newDecorations.push({
161
+ options: ChatEditingNotebookCellEntry_1._lastEditDecorationOptions,
162
+ range: ( new Range(maxLineNumber, 1, maxLineNumber, Number.MAX_SAFE_INTEGER))
163
+ });
164
+ }
165
+ this._editDecorations = this.modifiedModel.deltaDecorations(this._editDecorations, newDecorations);
166
+ transaction((tx) => {
167
+ if (!isLastEdits) {
168
+ this._stateObs.set(WorkingSetEntryState.Modified, tx);
169
+ this._isCurrentlyBeingModifiedByObs.set(responseModel, tx);
170
+ this._maxModifiedLineNumber.set(maxLineNumber, tx);
171
+ }
172
+ else {
173
+ this._resetEditsState(tx);
174
+ this._updateDiffInfoSeq();
175
+ this._maxModifiedLineNumber.set(0, tx);
176
+ this._editDecorationClear.schedule();
177
+ }
178
+ });
179
+ }
180
+ scheduleEditDecorations() {
181
+ this._editDecorationClear.schedule();
182
+ }
183
+ _resetEditsState(tx) {
184
+ this._isCurrentlyBeingModifiedByObs.set(undefined, tx);
185
+ this._maxModifiedLineNumber.set(0, tx);
186
+ }
187
+ async keep(change) {
188
+ return this._acceptHunk(change);
189
+ }
190
+ async _acceptHunk(change) {
191
+ this._isEditFromUs = true;
192
+ try {
193
+ if (!this._diffInfo.get().changes.includes(change)) {
194
+ return false;
195
+ }
196
+ const edits = [];
197
+ for (const edit of change.innerChanges ?? []) {
198
+ const newText = this.modifiedModel.getValueInRange(edit.modifiedRange);
199
+ edits.push(EditOperation.replace(edit.originalRange, newText));
200
+ }
201
+ this.originalModel.pushEditOperations(null, edits, _ => null);
202
+ }
203
+ finally {
204
+ this._isEditFromUs = false;
205
+ }
206
+ await this._updateDiffInfoSeq();
207
+ if (this._diffInfo.get().identical) {
208
+ this._stateObs.set(WorkingSetEntryState.Accepted, undefined);
209
+ }
210
+ return true;
211
+ }
212
+ async undo(change) {
213
+ return this._rejectHunk(change);
214
+ }
215
+ async _rejectHunk(change) {
216
+ this._isEditFromUs = true;
217
+ try {
218
+ if (!this._diffInfo.get().changes.includes(change)) {
219
+ return false;
220
+ }
221
+ const edits = [];
222
+ for (const edit of change.innerChanges ?? []) {
223
+ const newText = this.originalModel.getValueInRange(edit.originalRange);
224
+ edits.push(EditOperation.replace(edit.modifiedRange, newText));
225
+ }
226
+ this.modifiedModel.pushEditOperations(null, edits, _ => null);
227
+ }
228
+ finally {
229
+ this._isEditFromUs = false;
230
+ }
231
+ await this._updateDiffInfoSeq();
232
+ if (this._diffInfo.get().identical) {
233
+ this._stateObs.set(WorkingSetEntryState.Rejected, undefined);
234
+ }
235
+ return true;
236
+ }
237
+ _applyEdits(edits) {
238
+ this._isEditFromUs = true;
239
+ try {
240
+ let result = [];
241
+ this.modifiedModel.pushEditOperations(null, edits, (undoEdits) => {
242
+ result = undoEdits;
243
+ return null;
244
+ });
245
+ return result;
246
+ }
247
+ finally {
248
+ this._isEditFromUs = false;
249
+ }
250
+ }
251
+ async _updateDiffInfoSeq() {
252
+ const myDiffOperationId = ++this._diffOperationIds;
253
+ await Promise.resolve(this._diffOperation);
254
+ if (this._diffOperationIds === myDiffOperationId) {
255
+ const thisDiffOperation = this._updateDiffInfo();
256
+ this._diffOperation = thisDiffOperation;
257
+ await thisDiffOperation;
258
+ }
259
+ }
260
+ async _updateDiffInfo() {
261
+ if (this.originalModel.isDisposed() || this.modifiedModel.isDisposed()) {
262
+ return;
263
+ }
264
+ const docVersionNow = this.modifiedModel.getVersionId();
265
+ const snapshotVersionNow = this.originalModel.getVersionId();
266
+ const ignoreTrimWhitespace = this._diffTrimWhitespace.get();
267
+ const diff = await this._editorWorkerService.computeDiff(this.originalModel.uri, this.modifiedModel.uri, { ignoreTrimWhitespace, computeMoves: false, maxComputationTimeMs: 3000 }, 'advanced');
268
+ if (this.originalModel.isDisposed() || this.modifiedModel.isDisposed()) {
269
+ return;
270
+ }
271
+ if (this.modifiedModel.getVersionId() === docVersionNow && this.originalModel.getVersionId() === snapshotVersionNow) {
272
+ const diff2 = diff ?? nullDocumentDiff;
273
+ this._diffInfo.set(diff2, undefined);
274
+ this._edit = OffsetEdits.fromLineRangeMapping(this.originalModel, this.modifiedModel, diff2.changes);
275
+ }
276
+ }
277
+ };
278
+ ChatEditingNotebookCellEntry = ChatEditingNotebookCellEntry_1 = ( __decorate([
279
+ ( __param(5, IConfigurationService)),
280
+ ( __param(6, IEditorWorkerService)),
281
+ ( __param(7, INotebookEditorService))
282
+ ], ChatEditingNotebookCellEntry));
283
+
284
+ export { ChatEditingNotebookCellEntry };
@@ -0,0 +1,38 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
4
+ import { IEditorPane } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor";
5
+ import { INotebookTextDiffEditor } from "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common/vscode/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser";
6
+ import { NotebookTextModel } from "@codingame/monaco-vscode-notebook-service-override/vscode/vs/workbench/contrib/notebook/common/model/notebookTextModel";
7
+ import { IModifiedFileEntryChangeHunk, IModifiedFileEntryEditorIntegration } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService";
8
+ import { ChatEditingModifiedNotebookEntry } from "../chatEditingModifiedNotebookEntry.js";
9
+ import { ICellDiffInfo } from "./notebookCellChanges.js";
10
+ export declare class ChatEditingNotebookEditorIntegration extends Disposable implements IModifiedFileEntryEditorIntegration {
11
+ private readonly instantiationService;
12
+ private integration;
13
+ private notebookEditor;
14
+ constructor(_entry: ChatEditingModifiedNotebookEntry, editor: IEditorPane, notebookModel: NotebookTextModel, originalModel: NotebookTextModel, cellChanges: IObservable<ICellDiffInfo[]>, instantiationService: IInstantiationService);
15
+ get currentIndex(): IObservable<number>;
16
+ reveal(firstOrLast: boolean): void;
17
+ next(wrap: boolean): boolean;
18
+ previous(wrap: boolean): boolean;
19
+ enableAccessibleDiffView(): void;
20
+ acceptNearestChange(change: IModifiedFileEntryChangeHunk): void;
21
+ rejectNearestChange(change: IModifiedFileEntryChangeHunk): void;
22
+ toggleDiff(change: IModifiedFileEntryChangeHunk | undefined): Promise<void>;
23
+ dispose(): void;
24
+ }
25
+ export declare class ChatEditingNotebookDiffEditorIntegration extends Disposable implements IModifiedFileEntryEditorIntegration {
26
+ private readonly notebookDiffEditor;
27
+ private readonly cellChanges;
28
+ private readonly _currentIndex;
29
+ readonly currentIndex: IObservable<number>;
30
+ constructor(notebookDiffEditor: INotebookTextDiffEditor, cellChanges: IObservable<ICellDiffInfo[]>);
31
+ reveal(firstOrLast: boolean): void;
32
+ next(_wrap: boolean): boolean;
33
+ previous(_wrap: boolean): boolean;
34
+ enableAccessibleDiffView(): void;
35
+ acceptNearestChange(change: IModifiedFileEntryChangeHunk): void;
36
+ rejectNearestChange(change: IModifiedFileEntryChangeHunk): void;
37
+ toggleDiff(_change: IModifiedFileEntryChangeHunk | undefined): Promise<void>;
38
+ }