@codingame/monaco-vscode-chat-service-override 16.1.0 → 17.0.0

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