@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.
Files changed (159) hide show
  1. package/index.js +7 -4
  2. package/package.json +36 -30
  3. package/vscode/src/vs/base/common/objectCache.d.ts +2 -2
  4. package/vscode/src/vs/base/common/objectCache.js +3 -3
  5. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +10 -0
  6. package/vscode/src/vs/platform/browserElements/common/browserElements.js +9 -0
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +40 -40
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.d.ts +6 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +158 -0
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +1 -1
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +13 -13
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.d.ts +8 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +256 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +3 -4
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +234 -572
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +4 -4
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +4 -3
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +1 -1
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +5 -5
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +29 -19
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +11 -11
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +1 -0
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +107 -0
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +3 -0
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +344 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +4 -3
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +84 -37
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatAttachInstructionsAction.d.ts +18 -3
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatAttachInstructionsAction.js +137 -14
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatModeActions.d.ts +1 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatModeActions.js +54 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatRunPromptAction.js +40 -10
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatSaveToPromptAction.d.ts +1 -1
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/chatSaveToPromptAction.js +3 -3
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/promptFilePickers.d.ts +15 -5
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/promptFilePickers.js +171 -101
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/attachInstructions.d.ts +2 -2
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/attachInstructions.js +2 -2
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/dialogs/askToSelectPrompt/utils/runPrompt.d.ts +1 -1
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/index.d.ts +0 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/promptActions/index.js +2 -1
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +176 -69
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +1 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +15 -29
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +2 -2
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +22 -22
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +35 -29
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +1 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +80 -32
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +5 -3
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +11 -9
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +12 -11
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +13 -11
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +2 -2
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +15 -13
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +3 -5
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +10 -9
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +18 -8
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +1 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +118 -33
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +2 -2
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +5 -5
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.d.ts +1 -3
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +46 -48
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +49 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +379 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +31 -10
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +2 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +382 -152
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +1 -1
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +99 -56
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +2 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +11 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +1 -3
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +9 -21
  82. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
  83. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +10 -6
  84. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
  85. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +18 -5
  86. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +95 -24
  87. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSetup.css +92 -5
  88. package/vscode/src/vs/workbench/contrib/chat/browser/media/github.svg +1 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/media/google.svg +6 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +10 -4
  91. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.d.ts +1 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/createPromptCommand.js +111 -111
  93. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.d.ts +3 -4
  94. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptName.js +36 -10
  95. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.d.ts +5 -17
  96. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/dialogs/askForPromptSourceFolder.js +91 -17
  97. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/errors.js +2 -2
  98. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/utils/createPromptFile.d.ts +1 -4
  99. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/createPromptCommand/utils/createPromptFile.js +4 -5
  100. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.d.ts +1 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +95 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +24 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +348 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  105. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +2 -2
  106. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +2 -2
  107. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.d.ts +30 -0
  108. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +93 -0
  109. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +5 -2
  110. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +46 -36
  111. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +2 -2
  112. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.d.ts +5 -1
  113. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/configMigration.js +21 -11
  114. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/index.js +6 -1
  115. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/index.js +3 -2
  116. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptHeaderDiagnosticsProvider.d.ts +4 -3
  117. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptHeaderDiagnosticsProvider.js +12 -8
  118. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkDiagnosticsProvider.d.ts +3 -3
  119. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkDiagnosticsProvider.js +1 -2
  120. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptLinkProvider.js +3 -3
  121. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/promptPathAutocompletion.js +5 -5
  122. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceBase.d.ts +2 -1
  123. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceBase.js +9 -5
  124. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceManagerBase.d.ts +3 -2
  125. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/providerInstanceManagerBase.js +12 -8
  126. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.d.ts +1 -1
  127. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.js +3 -3
  128. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +21 -10
  129. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +111 -124
  130. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +22 -8
  131. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +159 -97
  132. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/treeUtils.d.ts +15 -3
  133. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/treeUtils.js +2 -14
  134. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +8 -2
  135. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +198 -33
  136. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  137. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +7 -7
  138. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +1 -1
  139. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +28 -18
  140. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  142. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/attachInstructionsCommand.d.ts +0 -6
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/contributions/attachInstructionsCommand.js +0 -73
  145. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterDecoration.d.ts +0 -29
  146. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterDecoration.js +0 -74
  147. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterMarkerDecoration.d.ts +0 -14
  148. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/frontMatterMarkerDecoration.js +0 -40
  149. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/decorationBase.d.ts +0 -23
  150. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/decorationBase.js +0 -40
  151. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/index.d.ts +0 -5
  152. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/index.js +0 -9
  153. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/reactiveDecorationBase.d.ts +0 -23
  154. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/reactiveDecorationBase.js +0 -68
  155. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/decorations/utils/types.d.ts +0 -13
  156. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/promptDecorationsProvider.d.ts +0 -19
  157. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/promptDecorationsProvider.js +0 -121
  158. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/types.d.ts +0 -13
  159. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contributions/languageFeatures/providers/decorationsProvider/types.js +0 -13
@@ -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 { OffsetEdit } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/offsetEdit";
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 | undefined>;
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: OffsetEdit;
101
+ readonly originalToCurrentEdit: StringEdit;
100
102
  readonly state: ModifiedFileEntryState;
101
103
  telemetryInfo: IModifiedEntryTelemetryInfo;
102
104
  }
@@ -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/base';
30
- import { observableValueOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/api';
31
- import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils';
32
- import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/derived';
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(4751, "Color of pending edit regions in the minimap")));
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 && observableFromEvent(this, value.onDidChange, () => !value.isComplete && !value.isPendingConfirmation).read(r);
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._lastModifyingResponseInProgressObs.read(r)) {
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([
@@ -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 { OffsetEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/offsetEdit';
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-324f9a6e-6231-5bfc-af17-e147abd2dfd2-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
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, transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/base';
48
- import { ObservablePromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/promise';
49
- import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
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.disposed && entry.clearCurrentEditLineDecoration());
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(4752, "Chat Edit: '{0}'", request.message.text)) : ( localize(4753, "Chat Edit"));
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: OffsetEdit.empty,
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-fab30422-b487-5f4e-8d30-8b4d266e3fcd-common/vscode/vs/workbench/contrib/chat/browser/chatEditorInput';
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/api';
43
- import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/derived';
44
- import { runOnChange, ValueWithChangeEventFromObservable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils';
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(4754, "Saving chat edits history"))
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(4755, "Chat Editing"));
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(4756, "Pending changes from {0}", defaultAgentName)) : ( localize(4757, "Pending changes from chat")),
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: IObservable<boolean>;
45
- readonly canRedo: IObservable<boolean>;
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, asyncTransaction, transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/base';
41
- import { derived, derivedWithStore, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/derived';
42
- import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
43
- import { ObservablePromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/promise';
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 = derivedWithStore(this, (reader, store) => {
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(4758, "Suggested Edits"))
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, false, responseModel);
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, false, responseModel);
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, false, responseModel);
566
+ await this._acceptEdits(resource, edits, isLastEdits, responseModel);
565
567
  }
566
568
  });
567
569
  },
@@ -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 { OffsetEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/offsetEdit';
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: OffsetEdit.fromJson(entry.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: ( entry.originalToCurrentEdit.edits.map(
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 { OffsetEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/offsetEdit';
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 { OffsetEdits } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModelOffsetEdit';
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-324f9a6e-6231-5bfc-af17-e147abd2dfd2-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
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, transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/base';
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 = OffsetEdit.empty;
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 = OffsetEdits.fromContentChanges(event.changes);
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 = OffsetEdits.asEditOperations(e_user_r, this.originalModel);
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 = OffsetEdits.fromLineRangeMapping(this.originalModel, this.modifiedModel, diff2.changes);
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-324f9a6e-6231-5bfc-af17-e147abd2dfd2-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
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/base';
30
- import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
31
- import { debouncedObservable, observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils';
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.reveal(true);
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
- 4759,
556
+ 4802,
547
557
  '{0} (changes from {1})',
548
558
  basename(this._entry.modifiedURI),
549
559
  defaultAgentName
550
560
  ))
551
- : ( localize(4760, '{0} (changes from chat)', basename(this._entry.modifiedURI)))
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-324f9a6e-6231-5bfc-af17-e147abd2dfd2-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser";
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 {
@@ -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-324f9a6e-6231-5bfc-af17-e147abd2dfd2-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
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 {