@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
@@ -1,55 +1,47 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { equals, binarySearch2 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
4
+ import { findLast } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arraysFind';
4
5
  import { Sequencer, timeout, SequencerByKey, DeferredPromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
5
- import { VSBuffer } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
6
+ import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
6
7
  import { BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
7
8
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
8
- import { StringSHA1 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/hash';
9
9
  import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
10
10
  import { Disposable, 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
- import { isEqual, joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
14
- import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
13
+ import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
15
14
  import { IBulkEditService } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/bulkEditService.service';
16
- import { OffsetEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/offsetEdit';
17
15
  import { ILanguageService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service';
18
16
  import { IEditorWorkerService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service';
19
17
  import { IModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service';
20
18
  import { ITextModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service';
21
19
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
20
+ import { AccessibilitySignal } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService';
21
+ import { IAccessibilitySignalService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service';
22
22
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
23
23
  import { EditorActivation } from '@codingame/monaco-vscode-api/vscode/vs/platform/editor/common/editor';
24
- import { IEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service';
25
- import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
26
24
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
27
- import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
28
25
  import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
29
- import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
30
- import { DiffEditorInput } from '@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common/vscode/vs/workbench/common/editor/diffEditorInput';
26
+ import { DiffEditorInput } from '@codingame/monaco-vscode-9c72783f-914c-50be-b9ef-da16356d81a8-common/vscode/vs/workbench/common/editor/diffEditorInput';
31
27
  import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
32
28
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
33
29
  import { MultiDiffEditorInput } from '@codingame/monaco-vscode-1cc4ea0a-c5b6-54ed-bb60-078a99119b55-common/vscode/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput';
30
+ import { CellUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
34
31
  import { INotebookService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookService.service';
35
- import { ChatEditingSessionState, ChatEditingSessionChangeType, WorkingSetEntryState, getMultiDiffSourceUri, ChatEditKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
32
+ import { ChatEditingSessionState, ModifiedFileEntryState, getMultiDiffSourceUri, ChatEditKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
36
33
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
37
- import { AbstractChatEditingModifiedFileEntry } from './chatEditingModifiedFileEntry.js';
38
34
  import { ChatEditingModifiedDocumentEntry } from './chatEditingModifiedDocumentEntry.js';
39
- import { ChatEditingTextModelContentProvider } from './chatEditingTextModelContentProviders.js';
40
- import { CellUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
35
+ import { AbstractChatEditingModifiedFileEntry } from './chatEditingModifiedFileEntry.js';
41
36
  import { ChatEditingModifiedNotebookEntry } from './chatEditingModifiedNotebookEntry.js';
42
- import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
37
+ import { ChatEditingSessionStorage } from './chatEditingSessionStorage.js';
38
+ import { ChatEditingTextModelContentProvider } from './chatEditingTextModelContentProviders.js';
43
39
  import { ChatEditingModifiedNotebookDiff } from './notebook/chatEditingModifiedNotebookDiff.js';
44
- import { AccessibilitySignal } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService';
45
- import { IAccessibilitySignalService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service';
46
40
  import { observableValue, asyncTransaction, transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/base';
47
41
  import { derived, derivedWithStore, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/derived';
48
42
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
49
- import { ObservablePromise } from '@codingame/monaco-vscode-ae8a8ca1-f243-508b-9c37-c88ebbd295fa-common/vscode/vs/base/common/observableInternal/promise';
43
+ import { ObservablePromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/promise';
50
44
 
51
- const STORAGE_CONTENTS_FOLDER = 'contents';
52
- const STORAGE_STATE_FILE = 'state.json';
53
45
  const POST_EDIT_STOP_ID = 'd19944f6-f46c-4e17-911b-79a8e843c7c0';
54
46
  class ThrottledSequencer extends Sequencer {
55
47
  constructor(_minDuration, _maxOverallDelay) {
@@ -105,6 +97,33 @@ function getCurrentAndNextStop(requestId, stopId, history) {
105
97
  }
106
98
  return { current, next };
107
99
  }
100
+ function getFirstAndLastStop(uri, history) {
101
+ let firstStopWithUri;
102
+ for (const snapshot of history) {
103
+ const stop = snapshot.stops.find(s => ( s.entries.has(uri)));
104
+ if (stop) {
105
+ firstStopWithUri = stop;
106
+ break;
107
+ }
108
+ }
109
+ let lastStopWithUri;
110
+ for (let i = history.length - 1; i >= 0; i--) {
111
+ const snapshot = history[i];
112
+ if (snapshot.postEdit?.has(uri)) {
113
+ lastStopWithUri = snapshot.postEdit;
114
+ break;
115
+ }
116
+ const stop = findLast(snapshot.stops, s => ( s.entries.has(uri)));
117
+ if (stop) {
118
+ lastStopWithUri = stop.entries;
119
+ break;
120
+ }
121
+ }
122
+ if (!firstStopWithUri || !lastStopWithUri) {
123
+ return undefined;
124
+ }
125
+ return { current: firstStopWithUri.entries, next: lastStopWithUri };
126
+ }
108
127
  let ChatEditingSession = class ChatEditingSession extends Disposable {
109
128
  get entries() {
110
129
  this._assertNotDisposed();
@@ -113,10 +132,6 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
113
132
  get state() {
114
133
  return this._state;
115
134
  }
116
- get onDidChange() {
117
- this._assertNotDisposed();
118
- return this._onDidChange.event;
119
- }
120
135
  get onDidDispose() {
121
136
  this._assertNotDisposed();
122
137
  return this._onDidDispose.event;
@@ -143,7 +158,6 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
143
158
  this._linearHistoryIndex = observableValue(this, 0);
144
159
  this._initialFileContents = ( new ResourceMap());
145
160
  this._entriesObs = observableValue(this, []);
146
- this._workingSet = ( new ResourceMap());
147
161
  this.canUndo = derived((r) => {
148
162
  if (this.state.read(r) !== ChatEditingSessionState.Idle) {
149
163
  return false;
@@ -158,11 +172,11 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
158
172
  const linearHistoryIndex = this._linearHistoryIndex.read(r);
159
173
  return linearHistoryIndex < getMaxHistoryIndex(this._linearHistory.read(r));
160
174
  });
161
- this._onDidChange = this._register(( new Emitter()));
162
175
  this._onDidDispose = ( new Emitter());
163
176
  this._diffsBetweenStops = ( new Map());
164
- this._ignoreTrimWhitespaceObservable = observableConfigValue('diffEditor.ignoreTrimWhitespace', true, this._configurationService);
177
+ this._fullDiffs = ( new Map());
165
178
  this._streamingEditLocks = ( new SequencerByKey());
179
+ this._ignoreTrimWhitespaceObservable = observableConfigValue('diffEditor.ignoreTrimWhitespace', true, this._configurationService);
166
180
  }
167
181
  async init() {
168
182
  const restoredSessionState = await this._instantiationService.createInstance(ChatEditingSessionStorage, this.chatSessionId).restoreState();
@@ -186,7 +200,6 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
186
200
  entries.forEach(entry => {
187
201
  entry.state.read(reader);
188
202
  });
189
- this._onDidChange.fire(ChatEditingSessionChangeType.WorkingSet);
190
203
  }));
191
204
  }
192
205
  _getEntry(uri) {
@@ -243,7 +256,8 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
243
256
  return ( new ObservablePromise(promise));
244
257
  });
245
258
  return derived((reader) => {
246
- const refs = modelRefsPromise.read(reader)?.promiseResult.read(reader)?.data;
259
+ const refs2 = modelRefsPromise.read(reader)?.promiseResult.read(reader);
260
+ const refs = refs2?.data;
247
261
  if (!refs) {
248
262
  return;
249
263
  }
@@ -277,7 +291,9 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
277
291
  const entries = derivedOpts({
278
292
  equalsFn: (a, b) => snapshotsEqualForDiff(a?.before, b?.before) && snapshotsEqualForDiff(a?.after, b?.after),
279
293
  }, reader => {
280
- const stops = getCurrentAndNextStop(requestId, stopId, this._linearHistory.read(reader));
294
+ const stops = requestId ?
295
+ getCurrentAndNextStop(requestId, stopId, this._linearHistory.read(reader)) :
296
+ getFirstAndLastStop(uri, this._linearHistory.read(reader));
281
297
  if (!stops) {
282
298
  return undefined;
283
299
  }
@@ -301,19 +317,27 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
301
317
  });
302
318
  }
303
319
  getEntryDiffBetweenStops(uri, requestId, stopId) {
304
- const key = `${uri}\0${requestId}\0${stopId}`;
305
- let observable = this._diffsBetweenStops.get(key);
306
- if (!observable) {
307
- observable = this._createDiffBetweenStopsObservable(uri, requestId, stopId);
308
- this._diffsBetweenStops.set(key, observable);
320
+ if (requestId) {
321
+ const key = `${uri}\0${requestId}\0${stopId}`;
322
+ let observable = this._diffsBetweenStops.get(key);
323
+ if (!observable) {
324
+ observable = this._createDiffBetweenStopsObservable(uri, requestId, stopId);
325
+ this._diffsBetweenStops.set(key, observable);
326
+ }
327
+ return observable;
309
328
  }
310
- return observable;
311
- }
312
- createSnapshot(requestId, undoStop) {
313
- const snapshot = this._createSnapshot(requestId, undoStop);
314
- for (const [uri, _] of this._workingSet) {
315
- this._workingSet.set(uri, { state: WorkingSetEntryState.Sent });
329
+ else {
330
+ const key = ( uri.toString());
331
+ let observable = this._fullDiffs.get(key);
332
+ if (!observable) {
333
+ observable = this._createDiffBetweenStopsObservable(uri, requestId, stopId);
334
+ this._fullDiffs.set(key, observable);
335
+ }
336
+ return observable;
316
337
  }
338
+ }
339
+ createSnapshot(requestId, undoStop, makeEmpty = undoStop !== undefined) {
340
+ const snapshot = makeEmpty ? this._createEmptySnapshot(undoStop) : this._createSnapshot(requestId, undoStop);
317
341
  const linearHistoryPtr = this._linearHistoryIndex.get();
318
342
  const newLinearHistory = [];
319
343
  for (const entry of this._linearHistory.get()) {
@@ -337,15 +361,19 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
337
361
  this._linearHistoryIndex.set(last.startIndex + last.stops.length, tx);
338
362
  });
339
363
  }
364
+ _createEmptySnapshot(undoStop) {
365
+ return {
366
+ stopId: undoStop,
367
+ entries: ( new ResourceMap()),
368
+ };
369
+ }
340
370
  _createSnapshot(requestId, undoStop) {
341
- const workingSet = ( new ResourceMap(this._workingSet));
342
371
  const entries = ( new ResourceMap());
343
372
  for (const entry of this._entriesObs.get()) {
344
373
  entries.set(entry.modifiedURI, entry.createSnapshot(requestId, undoStop));
345
374
  }
346
375
  return {
347
376
  stopId: undoStop,
348
- workingSet,
349
377
  entries,
350
378
  };
351
379
  }
@@ -387,8 +415,7 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
387
415
  await this._restoreSnapshot(pendingSnapshot, undefined);
388
416
  }
389
417
  }
390
- async _restoreSnapshot({ workingSet, entries }, tx, restoreResolvedToDisk = true) {
391
- this._workingSet = ( new ResourceMap(workingSet));
418
+ async _restoreSnapshot({ entries }, tx, restoreResolvedToDisk = true) {
392
419
  for (const entry of this._entriesObs.get()) {
393
420
  const snapshotEntry = entries.get(entry.modifiedURI);
394
421
  if (!snapshotEntry) {
@@ -399,13 +426,13 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
399
426
  const entriesArr = [];
400
427
  for (const snapshotEntry of ( entries.values())) {
401
428
  const entry = await this._getOrCreateModifiedFileEntry(snapshotEntry.resource, snapshotEntry.telemetryInfo);
402
- const restoreToDisk = snapshotEntry.state === WorkingSetEntryState.Modified || restoreResolvedToDisk;
429
+ const restoreToDisk = snapshotEntry.state === ModifiedFileEntryState.Modified || restoreResolvedToDisk;
403
430
  entry.restoreFromSnapshot(snapshotEntry, restoreToDisk);
404
431
  entriesArr.push(entry);
405
432
  }
406
433
  this._entriesObs.set(entriesArr, tx);
407
434
  }
408
- remove(reason, ...uris) {
435
+ remove(...uris) {
409
436
  this._assertNotDisposed();
410
437
  let didRemoveUris = false;
411
438
  for (const uri of uris) {
@@ -416,15 +443,10 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
416
443
  this._entriesObs.set(newEntries, undefined);
417
444
  didRemoveUris = true;
418
445
  }
419
- const state = this._workingSet.get(uri);
420
- if (state !== undefined) {
421
- didRemoveUris = this._workingSet.delete(uri) || didRemoveUris;
422
- }
423
446
  }
424
447
  if (!didRemoveUris) {
425
448
  return;
426
449
  }
427
- this._onDidChange.fire(ChatEditingSessionChangeType.WorkingSet);
428
450
  }
429
451
  _assertNotDisposed() {
430
452
  if (this._state.get() === ChatEditingSessionState.Disposed) {
@@ -445,7 +467,6 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
445
467
  }
446
468
  });
447
469
  this._accessibilitySignalService.playSignal(AccessibilitySignal.editsKept, { allowManyInParallel: true });
448
- this._onDidChange.fire(ChatEditingSessionChangeType.Other);
449
470
  }
450
471
  async reject(...uris) {
451
472
  this._assertNotDisposed();
@@ -461,9 +482,8 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
461
482
  }
462
483
  });
463
484
  this._accessibilitySignalService.playSignal(AccessibilitySignal.editsUndone, { allowManyInParallel: true });
464
- this._onDidChange.fire(ChatEditingSessionChangeType.Other);
465
485
  }
466
- async show() {
486
+ async show(previousChanges) {
467
487
  this._assertNotDisposed();
468
488
  if (this._editorPane) {
469
489
  if (this._editorPane.isVisible()) {
@@ -475,8 +495,8 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
475
495
  }
476
496
  }
477
497
  const input = MultiDiffEditorInput.fromResourceMultiDiffEditorInput({
478
- multiDiffSource: getMultiDiffSourceUri(this),
479
- label: ( localize(4694, "Suggested Edits"))
498
+ multiDiffSource: getMultiDiffSourceUri(this, previousChanges),
499
+ label: ( localize(4758, "Suggested Edits"))
480
500
  }, this._instantiationService);
481
501
  this._editorPane = await this._editorGroupsService.activeGroup.openEditor(input, { pinned: true, activation: EditorActivation.ACTIVATE });
482
502
  }
@@ -637,7 +657,7 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
637
657
  }
638
658
  if (next) {
639
659
  if (stopIndex === snap.stops.length - 1) {
640
- const postEdit = ( new ResourceMap(snap.postEdit || this._createSnapshot(undefined, undefined).entries));
660
+ const postEdit = ( new ResourceMap(snap.postEdit || this._createEmptySnapshot(undefined).entries));
641
661
  if (!snap.postEdit || !entry.equalsSnapshot(postEdit.get(entry.modifiedURI))) {
642
662
  postEdit.set(entry.modifiedURI, entry.createSnapshot(requestId, POST_EDIT_STOP_ID));
643
663
  const newHistory = history.slice();
@@ -661,6 +681,7 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
661
681
  this._linearHistory.set(newHistory, tx);
662
682
  }
663
683
  async _acceptEdits(resource, textEdits, isLastEdits, responseModel) {
684
+ this._fullDiffs.delete(( resource.toString()));
664
685
  const entry = await this._getOrCreateModifiedFileEntry(resource, this._getTelemetryInfoForModel(responseModel));
665
686
  await entry.acceptAgentEdits(resource, textEdits, isLastEdits, responseModel);
666
687
  }
@@ -686,7 +707,6 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
686
707
  this.ensureEditInUndoStopMatches(requestId, undoStop, entry, true, tx);
687
708
  return entry.acceptStreamingEditsEnd(tx);
688
709
  });
689
- this._onDidChange.fire(ChatEditingSessionChangeType.Other);
690
710
  }
691
711
  async _getOrCreateModifiedFileEntry(resource, telemetryInfo) {
692
712
  resource = CellUri.parse(resource)?.notebook ?? resource;
@@ -712,18 +732,15 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
712
732
  const listener = entry.onDidDelete(() => {
713
733
  const newEntries = this._entriesObs.get().filter(e => !isEqual(e.modifiedURI, entry.modifiedURI));
714
734
  this._entriesObs.set(newEntries, undefined);
715
- this._workingSet.delete(entry.modifiedURI);
716
735
  this._editorService.closeEditors(this._editorService.findEditors(entry.modifiedURI));
717
736
  if (!existingExternalEntry) {
718
737
  entry.dispose();
719
738
  }
720
739
  this._store.delete(listener);
721
- this._onDidChange.fire(ChatEditingSessionChangeType.WorkingSet);
722
740
  });
723
741
  this._store.add(listener);
724
742
  const entriesArr = [...this._entriesObs.get(), entry];
725
743
  this._entriesObs.set(entriesArr, undefined);
726
- this._onDidChange.fire(ChatEditingSessionChangeType.WorkingSet);
727
744
  return entry;
728
745
  }
729
746
  async _createModifiedFileEntry(resource, telemetryInfo, mustExist = false, initialContent) {
@@ -731,7 +748,7 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
731
748
  const chatKind = mustExist ? ChatEditKind.Created : ChatEditKind.Modified;
732
749
  const notebookUri = CellUri.parse(resource)?.notebook || resource;
733
750
  try {
734
- if (this._notebookService.hasSupportedNotebooks(notebookUri) && (this._notebookService.getNotebookTextModel(notebookUri) || ChatEditingModifiedNotebookEntry.canHandleSnapshotContent(initialContent))) {
751
+ if (this._notebookService.hasSupportedNotebooks(notebookUri)) {
735
752
  return await ChatEditingModifiedNotebookEntry.create(notebookUri, multiDiffEntryDelegate, telemetryInfo, chatKind, initialContent, this._instantiationService);
736
753
  }
737
754
  else {
@@ -776,210 +793,5 @@ ChatEditingSession = ( __decorate([
776
793
  ( __param(13, IConfigurationService)),
777
794
  ( __param(14, IAccessibilitySignalService))
778
795
  ], ChatEditingSession));
779
- let ChatEditingSessionStorage = class ChatEditingSessionStorage {
780
- constructor(chatSessionId, _fileService, _environmentService, _logService, _workspaceContextService) {
781
- this.chatSessionId = chatSessionId;
782
- this._fileService = _fileService;
783
- this._environmentService = _environmentService;
784
- this._logService = _logService;
785
- this._workspaceContextService = _workspaceContextService;
786
- }
787
- _getStorageLocation() {
788
- const workspaceId = this._workspaceContextService.getWorkspace().id;
789
- return joinPath(this._environmentService.workspaceStorageHome, workspaceId, 'chatEditingSessions', this.chatSessionId);
790
- }
791
- async restoreState() {
792
- const storageLocation = this._getStorageLocation();
793
- const fileContents = ( new Map());
794
- const getFileContent = (hash) => {
795
- let readPromise = fileContents.get(hash);
796
- if (!readPromise) {
797
- readPromise = this._fileService.readFile(joinPath(storageLocation, STORAGE_CONTENTS_FOLDER, hash)).then(content => ( content.value.toString()));
798
- fileContents.set(hash, readPromise);
799
- }
800
- return readPromise;
801
- };
802
- const deserializeResourceMap = (resourceMap, deserialize, result) => {
803
- resourceMap.forEach(([resourceURI, value]) => {
804
- result.set(( URI.parse(resourceURI)), deserialize(value));
805
- });
806
- return result;
807
- };
808
- const deserializeSnapshotEntriesDTO = async (dtoEntries) => {
809
- const entries = ( new ResourceMap());
810
- for (const entryDTO of dtoEntries) {
811
- const entry = await deserializeSnapshotEntry(entryDTO);
812
- entries.set(entry.resource, entry);
813
- }
814
- return entries;
815
- };
816
- const deserializeChatEditingStopDTO = async (stopDTO) => {
817
- const entries = await deserializeSnapshotEntriesDTO(stopDTO.entries);
818
- const workingSet = deserializeResourceMap(stopDTO.workingSet, (value) => value, ( new ResourceMap()));
819
- return { stopId: 'stopId' in stopDTO ? stopDTO.stopId : undefined, workingSet, entries };
820
- };
821
- const normalizeSnapshotDtos = (snapshot) => {
822
- if ('stops' in snapshot) {
823
- return snapshot;
824
- }
825
- return { requestId: snapshot.requestId, stops: [{ stopId: undefined, entries: snapshot.entries, workingSet: snapshot.workingSet }], postEdit: undefined };
826
- };
827
- const deserializeChatEditingSessionSnapshot = async (startIndex, snapshot) => {
828
- const stops = await Promise.all(( snapshot.stops.map(deserializeChatEditingStopDTO)));
829
- return { startIndex, requestId: snapshot.requestId, stops, postEdit: snapshot.postEdit && (await deserializeSnapshotEntriesDTO(snapshot.postEdit)) };
830
- };
831
- const deserializeSnapshotEntry = async (entry) => {
832
- return {
833
- resource: ( URI.parse(entry.resource)),
834
- languageId: entry.languageId,
835
- original: await getFileContent(entry.originalHash),
836
- current: await getFileContent(entry.currentHash),
837
- originalToCurrentEdit: OffsetEdit.fromJson(entry.originalToCurrentEdit),
838
- state: entry.state,
839
- snapshotUri: ( URI.parse(entry.snapshotUri)),
840
- telemetryInfo: { requestId: entry.telemetryInfo.requestId, agentId: entry.telemetryInfo.agentId, command: entry.telemetryInfo.command, sessionId: this.chatSessionId, result: undefined }
841
- };
842
- };
843
- try {
844
- const stateFilePath = joinPath(storageLocation, STORAGE_STATE_FILE);
845
- if (!(await this._fileService.exists(stateFilePath))) {
846
- this._logService.debug(`chatEditingSession: No editing session state found at ${( stateFilePath.toString())}`);
847
- return undefined;
848
- }
849
- this._logService.debug(`chatEditingSession: Restoring editing session at ${( stateFilePath.toString())}`);
850
- const stateFileContent = await this._fileService.readFile(stateFilePath);
851
- const data = JSON.parse(( stateFileContent.value.toString()));
852
- if (!COMPATIBLE_STORAGE_VERSIONS.includes(data.version)) {
853
- return undefined;
854
- }
855
- let linearHistoryIndex = 0;
856
- const linearHistory = await Promise.all(( data.linearHistory.map(snapshot => {
857
- const norm = normalizeSnapshotDtos(snapshot);
858
- const result = deserializeChatEditingSessionSnapshot(linearHistoryIndex, norm);
859
- linearHistoryIndex += norm.stops.length;
860
- return result;
861
- })));
862
- const initialFileContents = ( new ResourceMap());
863
- for (const fileContentDTO of data.initialFileContents) {
864
- initialFileContents.set(( URI.parse(fileContentDTO[0])), await getFileContent(fileContentDTO[1]));
865
- }
866
- const pendingSnapshot = data.pendingSnapshot ? await deserializeChatEditingStopDTO(data.pendingSnapshot) : undefined;
867
- const recentSnapshot = await deserializeChatEditingStopDTO(data.recentSnapshot);
868
- return {
869
- initialFileContents,
870
- pendingSnapshot,
871
- recentSnapshot,
872
- linearHistoryIndex: data.linearHistoryIndex,
873
- linearHistory
874
- };
875
- }
876
- catch (e) {
877
- this._logService.error(`Error restoring chat editing session from ${( storageLocation.toString())}`, e);
878
- }
879
- return undefined;
880
- }
881
- async storeState(state) {
882
- const storageFolder = this._getStorageLocation();
883
- const contentsFolder = URI.joinPath(storageFolder, STORAGE_CONTENTS_FOLDER);
884
- const existingContents = ( new Set());
885
- try {
886
- const stat = await this._fileService.resolve(contentsFolder);
887
- stat.children?.forEach(child => {
888
- if (child.isFile) {
889
- existingContents.add(child.name);
890
- }
891
- });
892
- }
893
- catch (e) {
894
- try {
895
- await this._fileService.createFolder(contentsFolder);
896
- }
897
- catch (e) {
898
- this._logService.error(`Error creating chat editing session content folder ${( contentsFolder.toString())}`, e);
899
- return;
900
- }
901
- }
902
- const fileContents = ( new Map());
903
- const addFileContent = (content) => {
904
- const shaComputer = ( new StringSHA1());
905
- shaComputer.update(content);
906
- const sha = shaComputer.digest().substring(0, 7);
907
- fileContents.set(sha, content);
908
- return sha;
909
- };
910
- const serializeResourceMap = (resourceMap, serialize) => {
911
- return ( Array.from(resourceMap.entries()).map(([resourceURI, value]) => [( resourceURI.toString()), serialize(value)]));
912
- };
913
- const serializeChatEditingSessionStop = (stop) => {
914
- return {
915
- stopId: stop.stopId,
916
- workingSet: serializeResourceMap(stop.workingSet, value => value),
917
- entries: ( Array.from(( stop.entries.values())).map(serializeSnapshotEntry))
918
- };
919
- };
920
- const serializeChatEditingSessionSnapshot = (snapshot) => {
921
- return {
922
- requestId: snapshot.requestId,
923
- stops: ( snapshot.stops.map(serializeChatEditingSessionStop)),
924
- postEdit: snapshot.postEdit ? ( Array.from(( snapshot.postEdit.values())).map(serializeSnapshotEntry)) : undefined
925
- };
926
- };
927
- const serializeSnapshotEntry = (entry) => {
928
- return {
929
- resource: ( entry.resource.toString()),
930
- languageId: entry.languageId,
931
- originalHash: addFileContent(entry.original),
932
- currentHash: addFileContent(entry.current),
933
- originalToCurrentEdit: ( entry.originalToCurrentEdit.edits.map(
934
- edit => ({ pos: edit.replaceRange.start, len: edit.replaceRange.length, txt: edit.newText })
935
- )),
936
- state: entry.state,
937
- snapshotUri: ( entry.snapshotUri.toString()),
938
- telemetryInfo: { requestId: entry.telemetryInfo.requestId, agentId: entry.telemetryInfo.agentId, command: entry.telemetryInfo.command }
939
- };
940
- };
941
- try {
942
- const data = {
943
- version: STORAGE_VERSION,
944
- sessionId: this.chatSessionId,
945
- linearHistory: ( state.linearHistory.map(serializeChatEditingSessionSnapshot)),
946
- linearHistoryIndex: state.linearHistoryIndex,
947
- initialFileContents: serializeResourceMap(state.initialFileContents, value => addFileContent(value)),
948
- pendingSnapshot: state.pendingSnapshot ? serializeChatEditingSessionStop(state.pendingSnapshot) : undefined,
949
- recentSnapshot: serializeChatEditingSessionStop(state.recentSnapshot),
950
- };
951
- this._logService.debug(`chatEditingSession: Storing editing session at ${( storageFolder.toString())}: ${fileContents.size} files`);
952
- for (const [hash, content] of fileContents) {
953
- if (!( existingContents.has(hash))) {
954
- await this._fileService.writeFile(joinPath(contentsFolder, hash), VSBuffer.fromString(content));
955
- }
956
- }
957
- await this._fileService.writeFile(joinPath(storageFolder, STORAGE_STATE_FILE), VSBuffer.fromString(JSON.stringify(data, undefined, 2)));
958
- }
959
- catch (e) {
960
- this._logService.debug(`Error storing chat editing session to ${( storageFolder.toString())}`, e);
961
- }
962
- }
963
- async clearState() {
964
- const storageFolder = this._getStorageLocation();
965
- if (await this._fileService.exists(storageFolder)) {
966
- this._logService.debug(`chatEditingSession: Clearing editing session at ${( storageFolder.toString())}`);
967
- try {
968
- await this._fileService.del(storageFolder, { recursive: true });
969
- }
970
- catch (e) {
971
- this._logService.debug(`Error clearing chat editing session from ${( storageFolder.toString())}`, e);
972
- }
973
- }
974
- }
975
- };
976
- ChatEditingSessionStorage = ( __decorate([
977
- ( __param(1, IFileService)),
978
- ( __param(2, IEnvironmentService)),
979
- ( __param(3, ILogService)),
980
- ( __param(4, IWorkspaceContextService))
981
- ], ChatEditingSessionStorage));
982
- const COMPATIBLE_STORAGE_VERSIONS = [1, 2];
983
- const STORAGE_VERSION = 2;
984
796
 
985
797
  export { ChatEditingSession };
@@ -0,0 +1,36 @@
1
+ import { ResourceMap } from "@codingame/monaco-vscode-api/vscode/vs/base/common/map";
2
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
3
+ import { IEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service";
4
+ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
5
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
6
+ import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
7
+ import { ISnapshotEntry } from "./chatEditingModifiedFileEntry.js";
8
+ export interface StoredSessionState {
9
+ readonly initialFileContents: ResourceMap<string>;
10
+ readonly pendingSnapshot?: IChatEditingSessionStop;
11
+ readonly recentSnapshot: IChatEditingSessionStop;
12
+ readonly linearHistoryIndex: number;
13
+ readonly linearHistory: readonly IChatEditingSessionSnapshot[];
14
+ }
15
+ export declare class ChatEditingSessionStorage {
16
+ private readonly chatSessionId;
17
+ private readonly _fileService;
18
+ private readonly _environmentService;
19
+ private readonly _logService;
20
+ private readonly _workspaceContextService;
21
+ constructor(chatSessionId: string, _fileService: IFileService, _environmentService: IEnvironmentService, _logService: ILogService, _workspaceContextService: IWorkspaceContextService);
22
+ protected _getStorageLocation(): URI;
23
+ restoreState(): Promise<StoredSessionState | undefined>;
24
+ storeState(state: StoredSessionState): Promise<void>;
25
+ clearState(): Promise<void>;
26
+ }
27
+ export interface IChatEditingSessionSnapshot {
28
+ readonly startIndex: number;
29
+ readonly requestId: string | undefined;
30
+ readonly stops: IChatEditingSessionStop[];
31
+ readonly postEdit: ResourceMap<ISnapshotEntry> | undefined;
32
+ }
33
+ export interface IChatEditingSessionStop {
34
+ stopId: string | undefined;
35
+ readonly entries: ResourceMap<ISnapshotEntry>;
36
+ }