@codingame/monaco-vscode-chat-service-override 20.5.0 → 21.0.1

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 (200) hide show
  1. package/index.js +15 -7
  2. package/package.json +38 -36
  3. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +2 -0
  4. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +60 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +56 -46
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +18 -16
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +52 -11
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +28 -26
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +19 -13
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +2 -2
  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 +2 -2
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +15 -12
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +11 -11
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +10 -10
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +68 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +433 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -18
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +7 -3
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +205 -551
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +7 -5
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +52 -29
  24. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +277 -163
  25. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +1 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +20 -5
  27. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +17 -17
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +11 -14
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +32 -6
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +22 -3
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +2 -1
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +22 -9
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +6 -8
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +1 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +47 -15
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +12 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +8 -2
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +33 -8
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +3 -3
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +3 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +74 -19
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +1 -1
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +2 -2
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +19 -19
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +3 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +23 -19
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.d.ts +12 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatLayoutService.js +36 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +36 -35
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +6 -6
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +2 -2
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +1 -1
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +37 -9
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +238 -52
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +23 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +257 -148
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +3 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +126 -77
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +2 -3
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +3 -13
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +4 -2
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +55 -45
  67. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +6 -3
  68. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +1 -1
  69. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +13 -7
  70. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +130 -47
  71. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-dark.svg +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-light.svg +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +5 -3
  74. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatus.css +6 -6
  75. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +9 -9
  76. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +4 -4
  77. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +39 -35
  78. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +9 -9
  79. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +18 -18
  80. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +12 -12
  81. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  82. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +2 -2
  83. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  84. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +7 -7
  85. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +2 -2
  86. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +14 -14
  87. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  88. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +5 -4
  89. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +7 -4
  90. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +4 -8
  91. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +153 -168
  92. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +127 -1
  93. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +111 -1
  94. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +3 -3
  95. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +2 -1
  96. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +6 -3
  97. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.d.ts +20 -0
  98. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +66 -0
  99. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +38 -0
  100. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +143 -0
  101. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +3 -1
  102. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +12 -3
  103. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.d.ts +8 -3
  104. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.js +41 -8
  105. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.d.ts +4 -1
  106. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.js +55 -22
  107. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.js +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/basePromptParser.js +1 -1
  109. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.js +4 -4
  110. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.js +2 -2
  111. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.d.ts +2 -0
  112. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.js +5 -2
  113. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.d.ts +3 -3
  114. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.js +3 -4
  115. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.js +4 -4
  116. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.d.ts +0 -5
  117. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.js +8 -23
  118. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.js +9 -9
  119. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +4 -5
  120. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +11 -5
  121. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +28 -28
  122. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  123. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +12 -0
  124. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +54 -0
  125. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +4 -4
  126. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +33 -31
  127. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +9 -9
  128. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.d.ts +1 -3
  129. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +9 -13
  130. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  131. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +20 -18
  132. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +2 -1
  133. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +11 -4
  134. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +1 -1
  135. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +1 -2
  136. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +1 -6
  137. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.d.ts +16 -1
  138. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +84 -25
  139. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +10 -0
  140. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +55 -0
  141. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +8 -2
  142. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +15 -7
  143. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +23 -0
  144. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +72 -1
  145. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +8 -2
  146. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +19 -9
  147. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +5 -0
  148. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +7 -5
  149. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +12 -8
  150. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +6 -0
  151. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +85 -1
  152. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +35 -0
  153. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +448 -0
  154. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -1
  155. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +30 -77
  156. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +62 -0
  157. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +174 -0
  158. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +75 -10
  159. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +15 -2
  160. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +81 -38
  161. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.d.ts +11 -0
  162. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +106 -0
  163. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.js → tools/getTerminalOutputTool.js} +5 -3
  164. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.d.ts +11 -0
  165. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +59 -0
  166. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +57 -0
  167. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +452 -0
  168. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +45 -0
  169. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
  170. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +2 -0
  171. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +31 -0
  172. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.d.ts → tools/runInTerminalTool.d.ts} +11 -13
  173. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{runInTerminalTool.js → tools/runInTerminalTool.js} +282 -133
  174. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.d.ts +5 -5
  175. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/createAndRunTaskTool.js +51 -50
  176. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/getTaskOutputTool.d.ts +6 -1
  177. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +117 -0
  178. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.d.ts +3 -5
  179. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{task → tools/task}/runTaskTool.js +54 -50
  180. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +19 -0
  181. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +36 -0
  182. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.d.ts +3 -0
  183. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminal.chatAgentTools.js +8 -0
  184. package/vscode/src/vs/base/common/policy.d.ts +0 -41
  185. package/vscode/src/vs/base/common/policy.js +0 -11
  186. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.d.ts +0 -12
  187. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.js +0 -738
  188. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +0 -42
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.d.ts +0 -67
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.js +0 -167
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.d.ts +0 -23
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.js +0 -63
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.d.ts +0 -55
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.js +0 -163
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.js +0 -88
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.d.ts +0 -35
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.js +0 -80
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.d.ts +0 -1
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.js +0 -40
  200. /package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{getTerminalOutputTool.d.ts → tools/getTerminalOutputTool.d.ts} +0 -0
@@ -8,6 +8,7 @@ import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/ite
8
8
  import { Disposable, dispose, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
9
9
  import { LinkedList } from '@codingame/monaco-vscode-api/vscode/vs/base/common/linkedList';
10
10
  import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
11
+ import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
11
12
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
12
13
  import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
13
14
  import { compare } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
@@ -32,7 +33,7 @@ import { IMultiDiffSourceResolverService } from '@codingame/monaco-vscode-api/vs
32
33
  import { CellUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
33
34
  import { INotebookService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookService.service';
34
35
  import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
35
- import { chatEditingSnapshotScheme, chatEditingAgentSupportsReadonlyReferencesContextKey, ChatEditingSessionState, ModifiedFileEntryState, CHAT_EDITING_MULTI_DIFF_SOURCE_RESOLVER_SCHEME, parseChatMultiDiffUri, chatEditingResourceContextKey, inChatEditingSessionContextKey } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
36
+ import { chatEditingAgentSupportsReadonlyReferencesContextKey, ChatEditingSessionState, ModifiedFileEntryState, CHAT_EDITING_MULTI_DIFF_SOURCE_RESOLVER_SCHEME, parseChatMultiDiffUri, chatEditingResourceContextKey, inChatEditingSessionContextKey } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
36
37
  import { isCellTextEditOperation } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel';
37
38
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
38
39
  import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
@@ -64,7 +65,7 @@ let ChatEditingService = class ChatEditingService extends Disposable {
64
65
  this._register(decorationsService.registerDecorationsProvider(_instantiationService.createInstance(ChatDecorationsProvider, this.editingSessionsObs)));
65
66
  this._register(multiDiffSourceResolverService.registerResolver(_instantiationService.createInstance(ChatEditingMultiDiffSourceResolver, this.editingSessionsObs)));
66
67
  this._register(textModelService.registerTextModelContentProvider(ChatEditingTextModelContentProvider.scheme, _instantiationService.createInstance(ChatEditingTextModelContentProvider, this)));
67
- this._register(textModelService.registerTextModelContentProvider(chatEditingSnapshotScheme, _instantiationService.createInstance(ChatEditingSnapshotTextModelContentProvider, this)));
68
+ this._register(textModelService.registerTextModelContentProvider(Schemas.chatEditingSnapshotScheme, _instantiationService.createInstance(ChatEditingSnapshotTextModelContentProvider, this)));
68
69
  this._register(this._chatService.onDidDisposeSession((e) => {
69
70
  if (e.reason === 'cleared') {
70
71
  this.getEditingSession(e.sessionId)?.stop();
@@ -97,7 +98,7 @@ let ChatEditingService = class ChatEditingService extends Disposable {
97
98
  }
98
99
  e.join(storageTask, {
99
100
  id: 'join.chatEditingSession',
100
- label: ( localize(4961, "Saving chat edits history"))
101
+ label: ( localize(5053, "Saving chat edits history"))
101
102
  });
102
103
  }));
103
104
  }
@@ -196,9 +197,6 @@ let ChatEditingService = class ChatEditingService extends Disposable {
196
197
  for (const remaining of editsSeen) {
197
198
  remaining?.streaming.complete();
198
199
  }
199
- if (responseModel.result?.errorDetails && !responseModel.result.errorDetails.responseIsIncomplete) {
200
- session.restoreSnapshot(responseModel.requestId, undefined);
201
- }
202
200
  editsSeen.length = 0;
203
201
  editedFilesExist.clear();
204
202
  editorListener.dispose();
@@ -328,7 +326,7 @@ let ChatDecorationsProvider = class ChatDecorationsProvider extends Disposable {
328
326
  super();
329
327
  this._sessions = _sessions;
330
328
  this._chatAgentService = _chatAgentService;
331
- this.label = ( localize(4962, "Chat Editing"));
329
+ this.label = ( localize(5054, "Chat Editing"));
332
330
  this._currentEntries = derived(this, (r) => {
333
331
  const sessions = this._sessions.read(r);
334
332
  if (!sessions) {
@@ -368,7 +366,7 @@ let ChatDecorationsProvider = class ChatDecorationsProvider extends Disposable {
368
366
  return {
369
367
  weight: 1000,
370
368
  letter: Codicon.diffModified,
371
- tooltip: defaultAgentName ? ( localize(4963, "Pending changes from {0}", defaultAgentName)) : ( localize(4964, "Pending changes from chat")),
369
+ tooltip: defaultAgentName ? ( localize(5055, "Pending changes from {0}", defaultAgentName)) : ( localize(5056, "Pending changes from chat")),
372
370
  bubble: true
373
371
  };
374
372
  }
@@ -51,6 +51,7 @@ export declare class ChatEditingSession extends Disposable implements IChatEditi
51
51
  storeState(): Promise<void>;
52
52
  private _ensurePendingSnapshot;
53
53
  getEntryDiffBetweenStops(uri: URI, requestId: string | undefined, stopId: string | undefined): IObservable<import("@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService").IEditSessionEntryDiff | undefined>;
54
+ getEntryDiffBetweenRequests(uri: URI, startRequestId: string, stopRequestId: string): IObservable<import("@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService").IEditSessionEntryDiff | undefined>;
54
55
  createSnapshot(requestId: string, undoStop: string | undefined, makeEmpty?: boolean): void;
55
56
  private _createSnapshot;
56
57
  getSnapshot(requestId: string, undoStop: string | undefined, snapshotUri: URI): ISnapshotEntry | undefined;
@@ -26,6 +26,7 @@ import { CellUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contri
26
26
  import { INotebookService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookService.service';
27
27
  import { ChatEditingSessionState, ModifiedFileEntryState, getMultiDiffSourceUri, ChatEditKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
28
28
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
29
+ import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
29
30
  import { ChatEditingModifiedDocumentEntry } from './chatEditingModifiedDocumentEntry.js';
30
31
  import { AbstractChatEditingModifiedFileEntry } from './chatEditingModifiedFileEntry.js';
31
32
  import { ChatEditingModifiedNotebookEntry } from './chatEditingModifiedNotebookEntry.js';
@@ -36,6 +37,11 @@ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/com
36
37
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
37
38
  import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
38
39
 
40
+ var NotExistBehavior;
41
+ (function (NotExistBehavior) {
42
+ NotExistBehavior[NotExistBehavior["Create"] = 0] = "Create";
43
+ NotExistBehavior[NotExistBehavior["Abort"] = 1] = "Abort";
44
+ })(NotExistBehavior || (NotExistBehavior = {}));
39
45
  class ThrottledSequencer extends Sequencer {
40
46
  constructor(_minDuration, _maxOverallDelay) {
41
47
  super();
@@ -180,6 +186,9 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
180
186
  getEntryDiffBetweenStops(uri, requestId, stopId) {
181
187
  return this._timeline.getEntryDiffBetweenStops(uri, requestId, stopId);
182
188
  }
189
+ getEntryDiffBetweenRequests(uri, startRequestId, stopRequestId) {
190
+ return this._timeline.getEntryDiffBetweenRequests(uri, startRequestId, stopRequestId);
191
+ }
183
192
  createSnapshot(requestId, undoStop, makeEmpty = undoStop !== undefined) {
184
193
  this._timeline.pushSnapshot(requestId, undoStop, makeEmpty ? ChatEditingTimeline.createEmptySnapshot(undoStop) : this._createSnapshot(requestId, undoStop));
185
194
  }
@@ -235,10 +244,12 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
235
244
  }
236
245
  const entriesArr = [];
237
246
  for (const snapshotEntry of ( entries.values())) {
238
- const entry = await this._getOrCreateModifiedFileEntry(snapshotEntry.resource, snapshotEntry.telemetryInfo);
239
- const restoreToDisk = snapshotEntry.state === ModifiedFileEntryState.Modified || restoreResolvedToDisk;
240
- await entry.restoreFromSnapshot(snapshotEntry, restoreToDisk);
241
- entriesArr.push(entry);
247
+ const entry = await this._getOrCreateModifiedFileEntry(snapshotEntry.resource, restoreResolvedToDisk ? NotExistBehavior.Create : NotExistBehavior.Abort, snapshotEntry.telemetryInfo);
248
+ if (entry) {
249
+ const restoreToDisk = snapshotEntry.state === ModifiedFileEntryState.Modified || restoreResolvedToDisk;
250
+ await entry.restoreFromSnapshot(snapshotEntry, restoreToDisk);
251
+ entriesArr.push(entry);
252
+ }
242
253
  }
243
254
  this._entriesObs.set(entriesArr, undefined);
244
255
  }
@@ -286,7 +297,7 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
286
297
  }
287
298
  const input = MultiDiffEditorInput.fromResourceMultiDiffEditorInput({
288
299
  multiDiffSource: getMultiDiffSourceUri(this, previousChanges),
289
- label: ( localize(4965, "Suggested Edits"))
300
+ label: ( localize(5057, "Suggested Edits"))
290
301
  }, this._instantiationService);
291
302
  this._editorPane = await this._editorGroupsService.activeGroup.openEditor(input, { pinned: true, activation: EditorActivation.ACTIVATE });
292
303
  }
@@ -394,7 +405,7 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
394
405
  }
395
406
  }
396
407
  async _acceptStreamingEditsStart(responseModel, undoStop, resource) {
397
- const entry = await this._getOrCreateModifiedFileEntry(resource, this._getTelemetryInfoForModel(responseModel));
408
+ const entry = await this._getOrCreateModifiedFileEntry(resource, NotExistBehavior.Create, this._getTelemetryInfoForModel(responseModel));
398
409
  transaction((tx) => {
399
410
  this._state.set(ChatEditingSessionState.StreamingEdits, tx);
400
411
  entry.acceptStreamingEditsStart(responseModel, tx);
@@ -402,16 +413,28 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
402
413
  });
403
414
  }
404
415
  async _acceptEdits(resource, textEdits, isLastEdits, responseModel) {
405
- const entry = await this._getOrCreateModifiedFileEntry(resource, this._getTelemetryInfoForModel(responseModel));
416
+ const entry = await this._getOrCreateModifiedFileEntry(resource, NotExistBehavior.Create, this._getTelemetryInfoForModel(responseModel));
406
417
  await entry.acceptAgentEdits(resource, textEdits, isLastEdits, responseModel);
407
418
  }
408
419
  _getTelemetryInfoForModel(responseModel) {
409
420
  return new class {
410
421
  get agentId() { return responseModel.agent?.id; }
422
+ get modelId() { return responseModel.request?.modelId; }
423
+ get modeId() { return responseModel.request?.modeInfo?.modeId; }
411
424
  get command() { return responseModel.slashCommand?.name; }
412
425
  get sessionId() { return responseModel.session.sessionId; }
413
426
  get requestId() { return responseModel.requestId; }
414
427
  get result() { return responseModel.result; }
428
+ get applyCodeBlockSuggestionId() { return responseModel.request?.modeInfo?.applyCodeBlockSuggestionId; }
429
+ get feature() {
430
+ if (responseModel.session.initialLocation === ChatAgentLocation.Panel) {
431
+ return 'sideBarChat';
432
+ }
433
+ else if (responseModel.session.initialLocation === ChatAgentLocation.Editor) {
434
+ return 'inlineChat';
435
+ }
436
+ return responseModel.session.initialLocation;
437
+ }
415
438
  };
416
439
  }
417
440
  async _resolve(requestId, undoStop, resource) {
@@ -426,7 +449,7 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
426
449
  this._timeline.ensureEditInUndoStopMatches(requestId, undoStop, entry, true, undefined);
427
450
  return entry.acceptStreamingEditsEnd();
428
451
  }
429
- async _getOrCreateModifiedFileEntry(resource, telemetryInfo) {
452
+ async _getOrCreateModifiedFileEntry(resource, ifNotExists, telemetryInfo) {
430
453
  resource = CellUri.parse(resource)?.notebook ?? resource;
431
454
  const existingEntry = this._entriesObs.get().find(e => isEqual(e.modifiedURI, resource));
432
455
  if (existingEntry) {
@@ -439,10 +462,17 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
439
462
  const existingExternalEntry = this._lookupExternalEntry(resource);
440
463
  if (existingExternalEntry) {
441
464
  entry = existingExternalEntry;
465
+ if (telemetryInfo.requestId !== entry.telemetryInfo.requestId) {
466
+ entry.updateTelemetryInfo(telemetryInfo);
467
+ }
442
468
  }
443
469
  else {
444
470
  const initialContent = this._initialFileContents.get(resource);
445
- entry = await this._createModifiedFileEntry(resource, telemetryInfo, false, initialContent);
471
+ const maybeEntry = await this._createModifiedFileEntry(resource, telemetryInfo, ifNotExists, initialContent);
472
+ if (!maybeEntry) {
473
+ return undefined;
474
+ }
475
+ entry = maybeEntry;
446
476
  if (!initialContent) {
447
477
  this._initialFileContents.set(resource, entry.initialContent);
448
478
  }
@@ -461,11 +491,10 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
461
491
  this._entriesObs.set(entriesArr, undefined);
462
492
  return entry;
463
493
  }
464
- async _createModifiedFileEntry(resource, telemetryInfo, mustExist = false, initialContent) {
494
+ async _createModifiedFileEntry(resource, telemetryInfo, ifNotExists, initialContent) {
465
495
  const multiDiffEntryDelegate = { collapse: (transaction) => this._collapse(resource, transaction) };
466
- const chatKind = mustExist ? ChatEditKind.Created : ChatEditKind.Modified;
467
496
  const notebookUri = CellUri.parse(resource)?.notebook || resource;
468
- try {
497
+ const doCreate = async (chatKind) => {
469
498
  if (this._notebookService.hasSupportedNotebooks(notebookUri)) {
470
499
  return await ChatEditingModifiedNotebookEntry.create(notebookUri, multiDiffEntryDelegate, telemetryInfo, chatKind, initialContent, this._instantiationService);
471
500
  }
@@ -473,10 +502,13 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
473
502
  const ref = await this._textModelService.createModelReference(resource);
474
503
  return this._instantiationService.createInstance(ChatEditingModifiedDocumentEntry, ref, multiDiffEntryDelegate, telemetryInfo, chatKind, initialContent);
475
504
  }
505
+ };
506
+ try {
507
+ return await doCreate(ChatEditKind.Modified);
476
508
  }
477
509
  catch (err) {
478
- if (mustExist) {
479
- throw err;
510
+ if (ifNotExists === NotExistBehavior.Abort) {
511
+ return undefined;
480
512
  }
481
513
  await this._bulkEditService.apply({ edits: [{ newResource: resource }] });
482
514
  this._editorService.openEditor({ resource, options: { inactive: true, preserveFocus: true, pinned: true } });
@@ -484,7 +516,7 @@ let ChatEditingSession = class ChatEditingSession extends Disposable {
484
516
  return await ChatEditingModifiedNotebookEntry.create(resource, multiDiffEntryDelegate, telemetryInfo, ChatEditKind.Created, initialContent, this._instantiationService);
485
517
  }
486
518
  else {
487
- return this._createModifiedFileEntry(resource, telemetryInfo, true, initialContent);
519
+ return await doCreate(ChatEditKind.Created);
488
520
  }
489
521
  }
490
522
  }
@@ -65,7 +65,17 @@ let ChatEditingSessionStorage = class ChatEditingSessionStorage {
65
65
  current: await getFileContent(entry.currentHash),
66
66
  state: entry.state,
67
67
  snapshotUri: ( URI.parse(entry.snapshotUri)),
68
- telemetryInfo: { requestId: entry.telemetryInfo.requestId, agentId: entry.telemetryInfo.agentId, command: entry.telemetryInfo.command, sessionId: this.chatSessionId, result: undefined }
68
+ telemetryInfo: {
69
+ requestId: entry.telemetryInfo.requestId,
70
+ agentId: entry.telemetryInfo.agentId,
71
+ command: entry.telemetryInfo.command,
72
+ sessionId: this.chatSessionId,
73
+ result: undefined,
74
+ modelId: entry.telemetryInfo.modelId,
75
+ modeId: entry.telemetryInfo.modeId,
76
+ applyCodeBlockSuggestionId: entry.telemetryInfo.applyCodeBlockSuggestionId,
77
+ feature: entry.telemetryInfo.feature,
78
+ }
69
79
  };
70
80
  };
71
81
  try {
@@ -167,7 +177,7 @@ let ChatEditingSessionStorage = class ChatEditingSessionStorage {
167
177
  currentHash: await addFileContent(entry.current),
168
178
  state: entry.state,
169
179
  snapshotUri: ( entry.snapshotUri.toString()),
170
- telemetryInfo: { requestId: entry.telemetryInfo.requestId, agentId: entry.telemetryInfo.agentId, command: entry.telemetryInfo.command }
180
+ telemetryInfo: { requestId: entry.telemetryInfo.requestId, agentId: entry.telemetryInfo.agentId, command: entry.telemetryInfo.command, modelId: entry.telemetryInfo.modelId, modeId: entry.telemetryInfo.modeId }
171
181
  };
172
182
  };
173
183
  try {
@@ -9,11 +9,15 @@ import { IAccessibilitySignalService } from "@codingame/monaco-vscode-api/vscode
9
9
  import { ICellEditOperation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon";
10
10
  import { ModifiedFileEntryState } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService";
11
11
  import { IChatResponseModel } from "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel";
12
- type acceptedOrRejectedLines = {
13
- state: "accepted" | "rejected";
12
+ type affectedLines = {
13
+ linesAdded: number;
14
+ linesRemoved: number;
14
15
  lineCount: number;
15
16
  hasRemainingEdits: boolean;
16
17
  };
18
+ type acceptedOrRejectedLines = affectedLines & {
19
+ state: "accepted" | "rejected";
20
+ };
17
21
  export declare class ChatEditingTextModelChangeService extends Disposable {
18
22
  private readonly originalModel;
19
23
  private readonly modifiedModel;
@@ -51,6 +55,8 @@ export declare class ChatEditingTextModelChangeService extends Disposable {
51
55
  readonly onDidUserEditModel: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
52
56
  private _originalToModifiedEdit;
53
57
  private lineChangeCount;
58
+ private linesAdded;
59
+ private linesRemoved;
54
60
  constructor(originalModel: ITextModel, modifiedModel: ITextModel, state: IObservable<ModifiedFileEntryState>, _editorWorkerService: IEditorWorkerService, _accessibilitySignalService: IAccessibilitySignalService);
55
61
  private updateLineChangeCount;
56
62
  clearCurrentEditLineDecoration(): void;
@@ -13,7 +13,7 @@ import { EditOperation } from '@codingame/monaco-vscode-api/vscode/vs/editor/com
13
13
  import { StringEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/edits/stringEdit';
14
14
  import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
15
15
  import { nullDocumentDiff } from '../../../../../editor/common/diff/documentDiffProvider.js';
16
- import { TextEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
16
+ import { TextEdit, VersionedExtensionId } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
17
17
  import { OverviewRulerLane, MinimapPosition } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model';
18
18
  import { ModelDecorationOptions } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModel';
19
19
  import { offsetEditFromContentChanges, offsetEditToEditOperations, offsetEditFromLineRangeMapping } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModelStringEdit';
@@ -85,9 +85,9 @@ let ChatEditingTextModelChangeService = class ChatEditingTextModelChangeService
85
85
  };
86
86
  }));
87
87
  }
88
- notifyHunkAction(state, lineCount, hasRemainingEdits) {
89
- if (lineCount > 0) {
90
- this._didAcceptOrRejectLines.fire({ state, lineCount, hasRemainingEdits });
88
+ notifyHunkAction(state, affectedLines) {
89
+ if (affectedLines.lineCount > 0) {
90
+ this._didAcceptOrRejectLines.fire({ state, ...affectedLines });
91
91
  }
92
92
  }
93
93
  constructor(originalModel, modifiedModel, state, _editorWorkerService, _accessibilitySignalService) {
@@ -114,6 +114,8 @@ let ChatEditingTextModelChangeService = class ChatEditingTextModelChangeService
114
114
  this.onDidUserEditModel = this._didUserEditModel.event;
115
115
  this._originalToModifiedEdit = StringEdit.empty;
116
116
  this.lineChangeCount = 0;
117
+ this.linesAdded = 0;
118
+ this.linesRemoved = 0;
117
119
  this._register(this.modifiedModel.onDidChangeContent(e => {
118
120
  this._mirrorEdits(e);
119
121
  }));
@@ -124,9 +126,13 @@ let ChatEditingTextModelChangeService = class ChatEditingTextModelChangeService
124
126
  }
125
127
  updateLineChangeCount(diff) {
126
128
  this.lineChangeCount = 0;
129
+ this.linesAdded = 0;
130
+ this.linesRemoved = 0;
127
131
  for (const change of diff.changes) {
128
132
  const modifiedRange = change.modified.endLineNumberExclusive - change.modified.startLineNumber;
133
+ this.linesAdded += Math.max(0, modifiedRange);
129
134
  const originalRange = change.original.endLineNumberExclusive - change.original.startLineNumber;
135
+ this.linesRemoved += Math.max(0, originalRange);
130
136
  this.lineChangeCount += Math.max(modifiedRange, originalRange);
131
137
  }
132
138
  }
@@ -145,7 +151,18 @@ let ChatEditingTextModelChangeService = class ChatEditingTextModelChangeService
145
151
  let rewriteRatio = 0;
146
152
  const sessionId = responseModel.session.sessionId;
147
153
  const request = responseModel.session.getRequests().at(-1);
148
- const source = EditSources.chatApplyEdits({ modelId: request?.modelId, requestId: request?.id, sessionId: sessionId });
154
+ const languageId = this.modifiedModel.getLanguageId();
155
+ const agent = responseModel.agent;
156
+ const extensionId = VersionedExtensionId.tryCreate(agent?.extensionId.value, agent?.extensionVersion);
157
+ const source = EditSources.chatApplyEdits({
158
+ modelId: request?.modelId,
159
+ requestId: request?.id,
160
+ sessionId: sessionId,
161
+ languageId,
162
+ mode: request?.modeInfo?.modeId,
163
+ extensionId,
164
+ codeBlockSuggestionId: request?.modeInfo?.applyCodeBlockSuggestionId,
165
+ });
149
166
  if (isAtomicEdits) {
150
167
  const minimalEdits = (await this._editorWorkerService.computeMoreMinimalEdits(this.modifiedModel.uri, textEdits)) ?? textEdits;
151
168
  const ops = ( minimalEdits.map(TextEdit.asEditOperation));
@@ -218,13 +235,13 @@ let ChatEditingTextModelChangeService = class ChatEditingTextModelChangeService
218
235
  }
219
236
  }
220
237
  keep() {
221
- this.notifyHunkAction('accepted', this.lineChangeCount, false);
238
+ this.notifyHunkAction('accepted', { linesAdded: this.linesAdded, linesRemoved: this.linesRemoved, lineCount: this.lineChangeCount, hasRemainingEdits: false });
222
239
  this.originalModel.setValue(this.modifiedModel.createSnapshot());
223
240
  this._diffInfo.set(nullDocumentDiff, undefined);
224
241
  this._originalToModifiedEdit = StringEdit.empty;
225
242
  }
226
243
  undo() {
227
- this.notifyHunkAction('rejected', this.lineChangeCount, false);
244
+ this.notifyHunkAction('rejected', { linesAdded: this.linesAdded, linesRemoved: this.linesRemoved, lineCount: this.lineChangeCount, hasRemainingEdits: false });
228
245
  this.modifiedModel.pushStackElement();
229
246
  this._applyEdits([(EditOperation.replace(this.modifiedModel.getFullModelRange(), this.originalModel.getValue()))], EditSources.chatUndoEdits());
230
247
  this.modifiedModel.pushStackElement();
@@ -309,12 +326,20 @@ let ChatEditingTextModelChangeService = class ChatEditingTextModelChangeService
309
326
  const myDiffOperationId = ++this._diffOperationIds;
310
327
  await Promise.resolve(this._diffOperation);
311
328
  const previousCount = this.lineChangeCount;
329
+ const previousAdded = this.linesAdded;
330
+ const previousRemoved = this.linesRemoved;
312
331
  if (this._diffOperationIds === myDiffOperationId) {
313
332
  const thisDiffOperation = this._updateDiffInfo();
314
333
  this._diffOperation = thisDiffOperation;
315
334
  await thisDiffOperation;
316
335
  if (notifyAction) {
317
- this.notifyHunkAction(notifyAction, previousCount - this.lineChangeCount, this.lineChangeCount > 0);
336
+ const affectedLines = {
337
+ linesAdded: previousAdded - this.linesAdded,
338
+ linesRemoved: previousRemoved - this.linesRemoved,
339
+ lineCount: previousCount - this.lineChangeCount,
340
+ hasRemainingEdits: this.lineChangeCount > 0
341
+ };
342
+ this.notifyHunkAction(notifyAction, affectedLines);
318
343
  }
319
344
  }
320
345
  }
@@ -1,13 +1,13 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
3
4
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
4
5
  import { IModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service';
5
- import { chatEditingSnapshotScheme } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
6
6
 
7
7
  var ChatEditingTextModelContentProvider_1;
8
8
  let ChatEditingTextModelContentProvider = class ChatEditingTextModelContentProvider {
9
9
  static { ChatEditingTextModelContentProvider_1 = this; }
10
- static { this.scheme = 'chat-editing-text-model'; }
10
+ static { this.scheme = Schemas.chatEditingModel; }
11
11
  static getFileURI(chatSessionId, documentId, path) {
12
12
  return ( URI.from({
13
13
  scheme: ChatEditingTextModelContentProvider_1.scheme,
@@ -39,7 +39,7 @@ ChatEditingTextModelContentProvider = ChatEditingTextModelContentProvider_1 = (
39
39
  let ChatEditingSnapshotTextModelContentProvider = class ChatEditingSnapshotTextModelContentProvider {
40
40
  static getSnapshotFileURI(chatSessionId, requestId, undoStop, path) {
41
41
  return ( URI.from({
42
- scheme: chatEditingSnapshotScheme,
42
+ scheme: Schemas.chatEditingSnapshotScheme,
43
43
  path,
44
44
  query: JSON.stringify({ sessionId: chatSessionId, requestId: requestId ?? '', undoStop: undoStop ?? '' }),
45
45
  }));
@@ -96,4 +96,7 @@ export declare class ChatEditingTimeline {
96
96
  private _entryDiffBetweenTextStops;
97
97
  private _createDiffBetweenStopsObservable;
98
98
  getEntryDiffBetweenStops(uri: URI, requestId: string | undefined, stopId: string | undefined): IObservable<IEditSessionEntryDiff | undefined>;
99
+ getEntryDiffBetweenRequests(uri: URI, startRequestId: string, stopRequestId: string): IObservable<IEditSessionEntryDiff | undefined>;
100
+ private _computeDiff;
101
+ private _getFirstSnapshotForUriAfterRequest;
99
102
  }
@@ -1,11 +1,11 @@
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 { equals as equals$1 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/objects';
5
4
  import { findLast } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arraysFind';
6
5
  import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
7
- import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
+ import { DisposableStore, thenRegisterOrDispose } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
7
  import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
8
+ import { equals as equals$1 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/objects';
9
9
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
10
10
  import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
11
11
  import { IEditorWorkerService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service';
@@ -239,23 +239,7 @@ let ChatEditingTimeline = class ChatEditingTimeline {
239
239
  return ( new ObservablePromise(diffService.computeDiff()));
240
240
  }
241
241
  const ignoreTrimWhitespace = this._ignoreTrimWhitespaceObservable.read(reader);
242
- const promise = this._editorWorkerService.computeDiff(refs[0].object.textEditorModel.uri, refs[1].object.textEditorModel.uri, { ignoreTrimWhitespace, computeMoves: false, maxComputationTimeMs: 3000 }, 'advanced').then((diff) => {
243
- const entryDiff = {
244
- originalURI: refs[0].object.textEditorModel.uri,
245
- modifiedURI: refs[1].object.textEditorModel.uri,
246
- identical: !!diff?.identical,
247
- quitEarly: !diff || diff.quitEarly,
248
- added: 0,
249
- removed: 0,
250
- };
251
- if (diff) {
252
- for (const change of diff.changes) {
253
- entryDiff.removed += change.original.endLineNumberExclusive - change.original.startLineNumber;
254
- entryDiff.added += change.modified.endLineNumberExclusive - change.modified.startLineNumber;
255
- }
256
- }
257
- return entryDiff;
258
- });
242
+ const promise = this._computeDiff(refs[0].object.textEditorModel.uri, refs[1].object.textEditorModel.uri, ignoreTrimWhitespace);
259
243
  return ( new ObservablePromise(promise));
260
244
  });
261
245
  }
@@ -308,6 +292,77 @@ let ChatEditingTimeline = class ChatEditingTimeline {
308
292
  return observable;
309
293
  }
310
294
  }
295
+ getEntryDiffBetweenRequests(uri, startRequestId, stopRequestId) {
296
+ const snapshotUris = derivedOpts({ equalsFn: (a, b) => equals(a, b, isEqual) }, reader => {
297
+ const history = this._linearHistory.read(reader);
298
+ const firstSnapshotUri = this._getFirstSnapshotForUriAfterRequest(history, uri, startRequestId, true);
299
+ const lastSnapshotUri = this._getFirstSnapshotForUriAfterRequest(history, uri, stopRequestId, false);
300
+ return [firstSnapshotUri, lastSnapshotUri];
301
+ });
302
+ const modelRefs = derived((reader) => {
303
+ const snapshots = snapshotUris.read(reader);
304
+ const firstSnapshotUri = snapshots[0];
305
+ const lastSnapshotUri = snapshots[1];
306
+ if (!firstSnapshotUri || !lastSnapshotUri) {
307
+ return;
308
+ }
309
+ const store = ( new DisposableStore());
310
+ reader.store.add(store);
311
+ const referencesPromise = Promise.all(( [firstSnapshotUri, lastSnapshotUri].map(u => {
312
+ return thenRegisterOrDispose(this._textModelService.createModelReference(u), store);
313
+ })));
314
+ return ( new ObservablePromise(referencesPromise));
315
+ });
316
+ const diff = derived((reader) => {
317
+ const references = modelRefs.read(reader)?.promiseResult.read(reader);
318
+ const refs = references?.data;
319
+ if (!refs) {
320
+ return;
321
+ }
322
+ const ignoreTrimWhitespace = this._ignoreTrimWhitespaceObservable.read(reader);
323
+ const promise = this._computeDiff(refs[0].object.textEditorModel.uri, refs[1].object.textEditorModel.uri, ignoreTrimWhitespace);
324
+ return ( new ObservablePromise(promise));
325
+ });
326
+ return derived(reader => {
327
+ return diff.read(reader)?.promiseResult.read(reader)?.data || undefined;
328
+ });
329
+ }
330
+ _computeDiff(originalUri, modifiedUri, ignoreTrimWhitespace) {
331
+ return this._editorWorkerService.computeDiff(originalUri, modifiedUri, { ignoreTrimWhitespace, computeMoves: false, maxComputationTimeMs: 3000 }, 'advanced').then((diff) => {
332
+ const entryDiff = {
333
+ originalURI: originalUri,
334
+ modifiedURI: modifiedUri,
335
+ identical: !!diff?.identical,
336
+ quitEarly: !diff || diff.quitEarly,
337
+ added: 0,
338
+ removed: 0,
339
+ };
340
+ if (diff) {
341
+ for (const change of diff.changes) {
342
+ entryDiff.removed += change.original.endLineNumberExclusive - change.original.startLineNumber;
343
+ entryDiff.added += change.modified.endLineNumberExclusive - change.modified.startLineNumber;
344
+ }
345
+ }
346
+ return entryDiff;
347
+ });
348
+ }
349
+ _getFirstSnapshotForUriAfterRequest(history, uri, requestId, inclusive) {
350
+ const requestIndex = history.findIndex(s => s.requestId === requestId);
351
+ if (requestIndex === -1) {
352
+ return undefined;
353
+ }
354
+ const processedIndex = requestIndex + (inclusive ? 0 : 1);
355
+ for (let i = processedIndex; i < history.length; i++) {
356
+ const snapshot = history[i];
357
+ for (const stop of snapshot.stops) {
358
+ const entry = stop.entries.get(uri);
359
+ if (entry) {
360
+ return entry.snapshotUri;
361
+ }
362
+ }
363
+ }
364
+ return uri;
365
+ }
311
366
  };
312
367
  ChatEditingTimeline = ChatEditingTimeline_1 = ( __decorate([
313
368
  ( __param(0, IEditorWorkerService)),
@@ -2,7 +2,7 @@
2
2
  import { VSBuffer, encodeBase64, decodeBase64 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
3
3
  import { filter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/objects';
4
4
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
5
- import { SnapshotContext } from '@codingame/monaco-vscode-6f931a91-88ea-5232-897f-a17ec3929ba5-common/vscode/vs/workbench/services/workingCopy/common/fileWorkingCopy';
5
+ import { SnapshotContext } from '@codingame/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common/vscode/vs/workbench/services/workingCopy/common/fileWorkingCopy';
6
6
  import { NotebookCellTextModel } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/notebook/common/model/notebookCellTextModel';
7
7
  import { NotebookSetting, CellEditType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
8
8
 
@@ -553,12 +553,12 @@ let ChatEditingNotebookEditorWidgetIntegration = class ChatEditingNotebookEditor
553
553
  modified: { resource: this._entry.modifiedURI },
554
554
  label: defaultAgentName
555
555
  ? ( localize(
556
- 4966,
556
+ 5058,
557
557
  '{0} (changes from {1})',
558
558
  basename(this._entry.modifiedURI),
559
559
  defaultAgentName
560
560
  ))
561
- : ( localize(4967, '{0} (changes from chat)', basename(this._entry.modifiedURI)))
561
+ : ( localize(5059, '{0} (changes from chat)', basename(this._entry.modifiedURI)))
562
562
  };
563
563
  await this._editorService.openEditor(diffInput);
564
564
  }