@codingame/monaco-vscode-chat-service-override 19.1.4 → 20.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 (211) hide show
  1. package/index.js +20 -8
  2. package/package.json +36 -31
  3. package/vscode/src/vs/base/common/policy.d.ts +14 -0
  4. package/vscode/src/vs/base/common/policy.js +11 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +53 -43
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +54 -24
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +14 -14
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +15 -15
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +37 -25
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +4 -4
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +1 -1
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +6 -6
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +23 -11
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +9 -9
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +1 -1
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +11 -11
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +83 -14
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +421 -21
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +1 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +20 -20
  24. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +215 -104
  25. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +3 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +9 -3
  27. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +3 -1
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +18 -6
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +4 -4
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +20 -20
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +14 -14
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +1 -1
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +6 -3
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +4 -2
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +9 -6
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +1 -1
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +11 -8
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +5 -3
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +16 -11
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +7 -23
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +58 -326
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +0 -1
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +33 -30
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +12 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +39 -17
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +55 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +380 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +3 -2
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +5 -5
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +4 -2
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +1 -1
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +22 -22
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +9 -4
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +44 -10
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +38 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +145 -0
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +34 -34
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +7 -7
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +3 -3
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +36 -11
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +49 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +407 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.d.ts +12 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.js +738 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +1 -1
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +142 -151
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.d.ts +1 -1
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +54 -54
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +20 -0
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +4 -3
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +5 -4
  78. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +23 -7
  80. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
  82. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +1 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +13 -8
  84. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-dark.svg +3 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/media/apple-light.svg +3 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +28 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSetup.css +7 -7
  88. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.d.ts +2 -2
  89. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +14 -14
  90. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +8 -8
  91. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +10 -10
  92. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts +1 -1
  93. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +11 -11
  94. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.d.ts +1 -1
  95. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +19 -19
  96. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.d.ts +1 -1
  97. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +14 -14
  98. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
  99. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +3 -3
  100. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +4 -4
  101. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +10 -10
  102. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +11 -11
  103. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.d.ts +1 -7
  104. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +52 -90
  105. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +15 -15
  106. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +6 -6
  107. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +2 -2
  108. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +6 -2
  109. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +9 -6
  110. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +11 -6
  111. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +137 -30
  112. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +8 -0
  113. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +1 -1
  114. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +3 -3
  115. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +27 -0
  116. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +44 -0
  117. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/configMigration.js +1 -1
  118. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/filePromptContentsProvider.js +2 -2
  119. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/promptContentsProviderBase.d.ts +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/promptContentsProviderBase.js +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.js +3 -5
  123. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.js +14 -14
  124. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.js +1 -1
  125. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.js +1 -1
  126. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/providerInstanceManagerBase.js +2 -2
  127. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/basePromptParser.js +1 -1
  128. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.js +4 -4
  129. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/instructionsHeader.d.ts +1 -1
  130. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.js +3 -3
  131. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.js +1 -1
  132. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.js +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.js +4 -4
  134. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/modeHeader.d.ts +1 -1
  135. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.d.ts +1 -1
  136. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.js +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.js +9 -9
  138. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +1 -1
  139. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +8 -8
  140. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +1 -1
  141. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +2 -2
  142. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +27 -27
  143. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +1 -1
  144. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -2
  145. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +9 -9
  146. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
  147. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +4 -4
  148. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +104 -0
  149. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +667 -0
  150. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +14 -14
  151. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -1
  152. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  153. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
  154. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  155. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css +56 -0
  156. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.d.ts +1 -0
  157. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +14 -0
  158. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.d.ts +11 -0
  159. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +111 -0
  160. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.d.ts +10 -0
  161. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +52 -0
  162. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.d.ts +1 -0
  163. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +262 -0
  164. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +35 -0
  165. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +129 -0
  166. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatControllerHolder.d.ts +3 -0
  167. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatControllerHolder.js +8 -0
  168. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.d.ts +9 -0
  169. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +30 -0
  170. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +72 -0
  171. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +411 -0
  172. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +3 -0
  173. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +59 -0
  174. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.d.ts +51 -0
  175. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.js +163 -0
  176. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.d.ts +24 -0
  177. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +164 -0
  178. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +14 -0
  179. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +101 -0
  180. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +16 -0
  181. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +52 -0
  182. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +12 -0
  183. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +71 -0
  184. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +14 -0
  185. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +94 -0
  186. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/getTerminalOutputTool.d.ts +11 -0
  187. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/getTerminalOutputTool.js +44 -0
  188. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +3 -0
  189. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +18 -0
  190. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +3 -0
  191. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +13 -0
  192. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalTool.d.ts +55 -0
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalTool.js +603 -0
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +3 -0
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +113 -0
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/createAndRunTaskTool.d.ts +21 -0
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/createAndRunTaskTool.js +227 -0
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.d.ts +19 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/getTaskOutputTool.js +88 -0
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/runTaskTool.d.ts +21 -0
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/runTaskTool.js +140 -0
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.d.ts +22 -0
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.js +80 -0
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.d.ts +1 -0
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task.chatAgentTools.contribution.js +40 -0
  206. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.d.ts +1 -0
  207. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +36 -0
  208. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +20 -0
  209. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +114 -0
  210. package/vscode/src/vs/workbench/contrib/chat/browser/media/google-mono-dark.svg +0 -3
  211. package/vscode/src/vs/workbench/contrib/chat/browser/media/google-mono-light.svg +0 -3
@@ -0,0 +1,380 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
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
+ import { findLast } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arraysFind';
6
+ 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';
8
+ import { ResourceMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/map';
9
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
10
+ import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
11
+ import { IEditorWorkerService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service';
12
+ import { ITextModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service';
13
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
14
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
15
+ import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
16
+ import { ChatEditingModifiedNotebookEntry } from './chatEditingModifiedNotebookEntry.js';
17
+ import { ChatEditingModifiedNotebookDiff } from './notebook/chatEditingModifiedNotebookDiff.js';
18
+ import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
19
+ import { derivedOpts, derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
20
+ import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
21
+ import { ObservablePromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/promise';
22
+
23
+ var ChatEditingTimeline_1;
24
+ let ChatEditingTimeline = class ChatEditingTimeline {
25
+ static { ChatEditingTimeline_1 = this; }
26
+ static { this.POST_EDIT_STOP_ID = 'd19944f6-f46c-4e17-911b-79a8e843c7c0'; }
27
+ static createEmptySnapshot(undoStop) {
28
+ return {
29
+ stopId: undoStop,
30
+ entries: ( new ResourceMap()),
31
+ };
32
+ }
33
+ constructor(_editorWorkerService, _instantiationService, configurationService, _textModelService) {
34
+ this._editorWorkerService = _editorWorkerService;
35
+ this._instantiationService = _instantiationService;
36
+ this._textModelService = _textModelService;
37
+ this._linearHistory = observableValue(this, []);
38
+ this._linearHistoryIndex = observableValue(this, 0);
39
+ this._diffsBetweenStops = ( new Map());
40
+ this._fullDiffs = ( new Map());
41
+ this.requestDisablement = derivedOpts({ equalsFn: (a, b) => equals(a, b, equals$1) }, reader => {
42
+ const history = this._linearHistory.read(reader);
43
+ const index = this._linearHistoryIndex.read(reader);
44
+ const undoRequests = [];
45
+ for (const entry of history) {
46
+ if (!entry.requestId) ;
47
+ else if (entry.startIndex >= index) {
48
+ undoRequests.push({ requestId: entry.requestId });
49
+ }
50
+ else if (entry.startIndex + entry.stops.length > index) {
51
+ undoRequests.push({ requestId: entry.requestId, afterUndoStop: entry.stops[(index - 1) - entry.startIndex].stopId });
52
+ }
53
+ }
54
+ return undoRequests;
55
+ });
56
+ this._ignoreTrimWhitespaceObservable = observableConfigValue('diffEditor.ignoreTrimWhitespace', true, configurationService);
57
+ this.canUndo = derived(r => {
58
+ const linearHistoryIndex = this._linearHistoryIndex.read(r);
59
+ return linearHistoryIndex > 1;
60
+ });
61
+ this.canRedo = derived(r => {
62
+ const linearHistoryIndex = this._linearHistoryIndex.read(r);
63
+ return linearHistoryIndex < getMaxHistoryIndex(this._linearHistory.read(r));
64
+ });
65
+ }
66
+ restoreFromState(state, tx) {
67
+ this._linearHistory.set(state.history, tx);
68
+ this._linearHistoryIndex.set(state.index, tx);
69
+ }
70
+ getSnapshotForRestore(requestId, stopId) {
71
+ if (requestId === undefined) {
72
+ return undefined;
73
+ }
74
+ const stopRef = this.findEditStop(requestId, stopId);
75
+ if (!stopRef) {
76
+ return undefined;
77
+ }
78
+ const toIndex = stopRef.stop.stopId === undefined ? stopRef.historyIndex : stopRef.historyIndex + 1;
79
+ return {
80
+ stop: stopRef.stop,
81
+ apply: () => this._linearHistoryIndex.set(toIndex, undefined)
82
+ };
83
+ }
84
+ ensureEditInUndoStopMatches(requestId, undoStop, entry, next, tx) {
85
+ const history = this._linearHistory.get();
86
+ const snapIndex = history.findIndex((s) => s.requestId === requestId);
87
+ if (snapIndex === -1) {
88
+ return;
89
+ }
90
+ const snap = { ...history[snapIndex] };
91
+ let stopIndex = snap.stops.findIndex((s) => s.stopId === undoStop);
92
+ if (stopIndex === -1) {
93
+ return;
94
+ }
95
+ let linearHistoryIndexIncr = 0;
96
+ if (next) {
97
+ if (stopIndex === snap.stops.length - 1) {
98
+ if (snap.stops[stopIndex].stopId === ChatEditingTimeline_1.POST_EDIT_STOP_ID) {
99
+ throw ( new Error('cannot duplicate post-edit stop'));
100
+ }
101
+ snap.stops = snap.stops.concat(ChatEditingTimeline_1.createEmptySnapshot(ChatEditingTimeline_1.POST_EDIT_STOP_ID));
102
+ linearHistoryIndexIncr++;
103
+ }
104
+ stopIndex++;
105
+ }
106
+ const stop = snap.stops[stopIndex];
107
+ if (entry.equalsSnapshot(stop.entries.get(entry.modifiedURI))) {
108
+ return;
109
+ }
110
+ const newMap = ( new ResourceMap(stop.entries));
111
+ newMap.set(entry.modifiedURI, entry.createSnapshot(requestId, stop.stopId));
112
+ const newStop = snap.stops.slice();
113
+ newStop[stopIndex] = { ...stop, entries: newMap };
114
+ snap.stops = newStop;
115
+ const newHistory = history.slice();
116
+ newHistory[snapIndex] = snap;
117
+ this._linearHistory.set(newHistory, tx);
118
+ if (linearHistoryIndexIncr) {
119
+ this._linearHistoryIndex.set(this._linearHistoryIndex.get() + linearHistoryIndexIncr, tx);
120
+ }
121
+ }
122
+ getUndoSnapshot() {
123
+ return this.getUndoRedoSnapshot(-1);
124
+ }
125
+ getRedoSnapshot() {
126
+ return this.getUndoRedoSnapshot(1);
127
+ }
128
+ getUndoRedoSnapshot(direction) {
129
+ let idx = this._linearHistoryIndex.get() - 1;
130
+ const max = getMaxHistoryIndex(this._linearHistory.get());
131
+ const startEntry = this.getHistoryEntryByLinearIndex(idx);
132
+ let entry = startEntry;
133
+ if (!startEntry) {
134
+ return undefined;
135
+ }
136
+ do {
137
+ idx += direction;
138
+ entry = this.getHistoryEntryByLinearIndex(idx);
139
+ } while (idx + direction < max &&
140
+ idx + direction >= 0 &&
141
+ entry &&
142
+ !(direction === -1 && entry.entry.requestId !== startEntry.entry.requestId) &&
143
+ !stopProvidesNewData(startEntry.stop, entry.stop));
144
+ if (entry) {
145
+ return { stop: entry.stop, apply: () => this._linearHistoryIndex.set(idx + 1, undefined) };
146
+ }
147
+ return undefined;
148
+ }
149
+ getStateForPersistence() {
150
+ return { history: this._linearHistory.get(), index: this._linearHistoryIndex.get() };
151
+ }
152
+ findSnapshot(requestId) {
153
+ return this._linearHistory.get().find((s) => s.requestId === requestId);
154
+ }
155
+ findEditStop(requestId, undoStop) {
156
+ const snapshot = this.findSnapshot(requestId);
157
+ if (!snapshot) {
158
+ return undefined;
159
+ }
160
+ const idx = snapshot.stops.findIndex((s) => s.stopId === undoStop);
161
+ return idx === -1 ? undefined : { stop: snapshot.stops[idx], snapshot, historyIndex: snapshot.startIndex + idx };
162
+ }
163
+ getHistoryEntryByLinearIndex(index) {
164
+ const history = this._linearHistory.get();
165
+ const searchedIndex = binarySearch2(history.length, (e) => history[e].startIndex - index);
166
+ const entry = history[searchedIndex < 0 ? (~searchedIndex) - 1 : searchedIndex];
167
+ if (!entry || index - entry.startIndex >= entry.stops.length) {
168
+ return undefined;
169
+ }
170
+ return {
171
+ entry,
172
+ stop: entry.stops[index - entry.startIndex]
173
+ };
174
+ }
175
+ pushSnapshot(requestId, undoStop, snapshot) {
176
+ const linearHistoryPtr = this._linearHistoryIndex.get();
177
+ const newLinearHistory = [];
178
+ for (const entry of this._linearHistory.get()) {
179
+ if (entry.startIndex >= linearHistoryPtr) {
180
+ break;
181
+ }
182
+ else if (linearHistoryPtr - entry.startIndex < entry.stops.length) {
183
+ newLinearHistory.push({ requestId: entry.requestId, stops: entry.stops.slice(0, linearHistoryPtr - entry.startIndex), startIndex: entry.startIndex });
184
+ }
185
+ else {
186
+ newLinearHistory.push(entry);
187
+ }
188
+ }
189
+ const lastEntry = newLinearHistory.at(-1);
190
+ if (requestId && lastEntry?.requestId === requestId) {
191
+ const hadPostEditStop = lastEntry.stops.at(-1)?.stopId === ChatEditingTimeline_1.POST_EDIT_STOP_ID && undoStop;
192
+ if (hadPostEditStop) {
193
+ const rebaseUri = (uri) => uri.with({ query: uri.query.replace(ChatEditingTimeline_1.POST_EDIT_STOP_ID, undoStop) });
194
+ for (const [uri, prev] of lastEntry.stops.at(-1).entries) {
195
+ snapshot.entries.set(uri, { ...prev, snapshotUri: rebaseUri(prev.snapshotUri), resource: rebaseUri(prev.resource) });
196
+ }
197
+ }
198
+ newLinearHistory[newLinearHistory.length - 1] = {
199
+ ...lastEntry,
200
+ stops: [...(hadPostEditStop ? lastEntry.stops.slice(0, -1) : lastEntry.stops), snapshot]
201
+ };
202
+ }
203
+ else {
204
+ newLinearHistory.push({ requestId, startIndex: lastEntry ? lastEntry.startIndex + lastEntry.stops.length : 0, stops: [snapshot] });
205
+ }
206
+ transaction((tx) => {
207
+ const last = newLinearHistory[newLinearHistory.length - 1];
208
+ this._linearHistory.set(newLinearHistory, tx);
209
+ this._linearHistoryIndex.set(last.startIndex + last.stops.length, tx);
210
+ });
211
+ }
212
+ _entryDiffBetweenTextStops(entriesContent, modelUrisObservable) {
213
+ const modelRefsPromise = derived(this, (reader) => {
214
+ const modelUris = modelUrisObservable.read(reader);
215
+ if (!modelUris) {
216
+ return undefined;
217
+ }
218
+ const store = reader.store.add(( new DisposableStore()));
219
+ const promise = Promise.all(( modelUris.map(u => this._textModelService.createModelReference(u)))).then(refs => {
220
+ if (store.isDisposed) {
221
+ refs.forEach(r => r.dispose());
222
+ }
223
+ else {
224
+ refs.forEach(r => store.add(r));
225
+ }
226
+ return refs;
227
+ });
228
+ return ( new ObservablePromise(promise));
229
+ });
230
+ return derived((reader) => {
231
+ const refs2 = modelRefsPromise.read(reader)?.promiseResult.read(reader);
232
+ const refs = refs2?.data;
233
+ if (!refs) {
234
+ return;
235
+ }
236
+ const entries = entriesContent.read(reader);
237
+ if (entries?.before && ChatEditingModifiedNotebookEntry.canHandleSnapshot(entries.before)) {
238
+ const diffService = this._instantiationService.createInstance(ChatEditingModifiedNotebookDiff, entries.before, entries.after);
239
+ return ( new ObservablePromise(diffService.computeDiff()));
240
+ }
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
+ });
259
+ return ( new ObservablePromise(promise));
260
+ });
261
+ }
262
+ _createDiffBetweenStopsObservable(uri, requestId, stopId) {
263
+ const entries = derivedOpts({
264
+ equalsFn: (a, b) => snapshotsEqualForDiff(a?.before, b?.before) && snapshotsEqualForDiff(a?.after, b?.after),
265
+ }, reader => {
266
+ const stops = requestId ?
267
+ getCurrentAndNextStop(requestId, stopId, this._linearHistory.read(reader)) :
268
+ getFirstAndLastStop(uri, this._linearHistory.read(reader));
269
+ if (!stops) {
270
+ return undefined;
271
+ }
272
+ const before = stops.current.get(uri);
273
+ const after = stops.next.get(uri);
274
+ if (!before || !after) {
275
+ return undefined;
276
+ }
277
+ return { before, after };
278
+ });
279
+ const modelUrisObservable = derivedOpts({ equalsFn: (a, b) => equals(a, b, isEqual) }, reader => {
280
+ const entriesValue = entries.read(reader);
281
+ if (!entriesValue) {
282
+ return undefined;
283
+ }
284
+ return [entriesValue.before.snapshotUri, entriesValue.after.snapshotUri];
285
+ });
286
+ const diff = this._entryDiffBetweenTextStops(entries, modelUrisObservable);
287
+ return derived(reader => {
288
+ return diff.read(reader)?.promiseResult.read(reader)?.data || undefined;
289
+ });
290
+ }
291
+ getEntryDiffBetweenStops(uri, requestId, stopId) {
292
+ if (requestId) {
293
+ const key = `${uri}\0${requestId}\0${stopId}`;
294
+ let observable = this._diffsBetweenStops.get(key);
295
+ if (!observable) {
296
+ observable = this._createDiffBetweenStopsObservable(uri, requestId, stopId);
297
+ this._diffsBetweenStops.set(key, observable);
298
+ }
299
+ return observable;
300
+ }
301
+ else {
302
+ const key = ( uri.toString());
303
+ let observable = this._fullDiffs.get(key);
304
+ if (!observable) {
305
+ observable = this._createDiffBetweenStopsObservable(uri, requestId, stopId);
306
+ this._fullDiffs.set(key, observable);
307
+ }
308
+ return observable;
309
+ }
310
+ }
311
+ };
312
+ ChatEditingTimeline = ChatEditingTimeline_1 = ( __decorate([
313
+ ( __param(0, IEditorWorkerService)),
314
+ ( __param(1, IInstantiationService)),
315
+ ( __param(2, IConfigurationService)),
316
+ ( __param(3, ITextModelService))
317
+ ], ChatEditingTimeline));
318
+ function stopProvidesNewData(origin, target) {
319
+ return ( Iterable.some(
320
+ target.entries,
321
+ ([uri, e]) => origin.entries.get(uri)?.current !== e.current
322
+ ));
323
+ }
324
+ function getMaxHistoryIndex(history) {
325
+ const lastHistory = history.at(-1);
326
+ return lastHistory ? lastHistory.startIndex + lastHistory.stops.length : 0;
327
+ }
328
+ function snapshotsEqualForDiff(a, b) {
329
+ if (!a || !b) {
330
+ return a === b;
331
+ }
332
+ return isEqual(a.snapshotUri, b.snapshotUri) && a.current === b.current;
333
+ }
334
+ function getCurrentAndNextStop(requestId, stopId, history) {
335
+ const snapshotIndex = history.findIndex(s => s.requestId === requestId);
336
+ if (snapshotIndex === -1) {
337
+ return undefined;
338
+ }
339
+ const snapshot = history[snapshotIndex];
340
+ const stopIndex = snapshot.stops.findIndex(s => s.stopId === stopId);
341
+ if (stopIndex === -1) {
342
+ return undefined;
343
+ }
344
+ const currentStop = snapshot.stops[stopIndex];
345
+ const current = currentStop.entries;
346
+ const nextStop = stopIndex < snapshot.stops.length - 1
347
+ ? snapshot.stops[stopIndex + 1]
348
+ : undefined;
349
+ if (!nextStop) {
350
+ return undefined;
351
+ }
352
+ return { current, currentStopId: currentStop.stopId, next: nextStop.entries, nextStopId: nextStop.stopId };
353
+ }
354
+ function getFirstAndLastStop(uri, history) {
355
+ let firstStopWithUri;
356
+ for (const snapshot of history) {
357
+ const stop = snapshot.stops.find(s => ( s.entries.has(uri)));
358
+ if (stop) {
359
+ firstStopWithUri = stop;
360
+ break;
361
+ }
362
+ }
363
+ let lastStopWithUri;
364
+ let lastStopWithUriId;
365
+ for (let i = history.length - 1; i >= 0; i--) {
366
+ const snapshot = history[i];
367
+ const stop = findLast(snapshot.stops, s => ( s.entries.has(uri)));
368
+ if (stop) {
369
+ lastStopWithUri = stop.entries;
370
+ lastStopWithUriId = stop.stopId;
371
+ break;
372
+ }
373
+ }
374
+ if (!firstStopWithUri || !lastStopWithUri) {
375
+ return undefined;
376
+ }
377
+ return { current: firstStopWithUri.entries, currentStopId: firstStopWithUri.stopId, next: lastStopWithUri, nextStopId: lastStopWithUriId };
378
+ }
379
+
380
+ export { ChatEditingTimeline };
@@ -38,8 +38,9 @@ function restoreSnapshot(notebook, snapshot) {
38
38
  }
39
39
  class SnapshotComparer {
40
40
  constructor(initialCotent) {
41
- this.transientOptions = deserializeSnapshot(initialCotent).transientOptions;
42
- this.data = deserializeSnapshot(initialCotent).data;
41
+ const { transientOptions, data } = deserializeSnapshot(initialCotent);
42
+ this.transientOptions = transientOptions;
43
+ this.data = data;
43
44
  }
44
45
  isEqual(notebook) {
45
46
  if (notebook.cells.length !== this.data.cells.length) {
@@ -9,7 +9,7 @@ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/pl
9
9
  import { INotebookEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/browser/services/notebookEditorService.service";
10
10
  import { NotebookCellTextModel } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/notebook/common/model/notebookCellTextModel";
11
11
  import { ModifiedFileEntryState } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService";
12
- import { IChatResponseModel } from "@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/common/chatModel";
12
+ import { IChatResponseModel } from "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel";
13
13
  export declare class ChatEditingNotebookCellEntry extends Disposable {
14
14
  readonly notebookUri: URI;
15
15
  readonly cell: NotebookCellTextModel;
@@ -3,7 +3,7 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
3
3
  import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
4
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
5
5
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
6
- import { CellEditState } from '@codingame/monaco-vscode-271a23cd-c7d7-5761-ae35-a923a42987b8-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
6
+ import { CellEditState } from '@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
7
7
  import { INotebookEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/browser/services/notebookEditorService.service';
8
8
  import { CellKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
9
9
  import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService';
@@ -18,7 +18,7 @@ import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench
18
18
  import { NotebookDeletedCellDecorator } from '@codingame/monaco-vscode-e4d0fd26-1b26-5583-b3f7-582e08d7b389-common/vscode/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookDeletedCellDecorator';
19
19
  import { NotebookInsertedCellDecorator } from '@codingame/monaco-vscode-e4d0fd26-1b26-5583-b3f7-582e08d7b389-common/vscode/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookInsertedCellDecorator';
20
20
  import { NotebookModifiedCellDecorator } from '../../../../notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js';
21
- import { getNotebookEditorFromEditorPane, CellEditState } from '@codingame/monaco-vscode-271a23cd-c7d7-5761-ae35-a923a42987b8-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
21
+ import { getNotebookEditorFromEditorPane, CellEditState } from '@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
22
22
  import { INotebookEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/browser/services/notebookEditorService.service';
23
23
  import { CellKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
24
24
  import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
@@ -111,8 +111,8 @@ let ChatEditingNotebookEditorWidgetIntegration = class ChatEditingNotebookEditor
111
111
  if (!notebookEditor) {
112
112
  return;
113
113
  }
114
- originalReadonly ??= notebookEditor.isReadOnly;
115
114
  if (isReadOnly) {
115
+ originalReadonly ??= notebookEditor.isReadOnly;
116
116
  notebookEditor.setOptions({ isReadOnly: true });
117
117
  }
118
118
  else if (originalReadonly === false) {
@@ -123,7 +123,7 @@ let ChatEditingNotebookEditorWidgetIntegration = class ChatEditingNotebookEditor
123
123
  disposable.dispose();
124
124
  }, 100);
125
125
  const disposable = toDisposable(() => clearTimeout(timeout));
126
- this._register(disposable);
126
+ r.store.add(disposable);
127
127
  }
128
128
  }));
129
129
  let lastModifyingRequestId;
@@ -553,12 +553,12 @@ let ChatEditingNotebookEditorWidgetIntegration = class ChatEditingNotebookEditor
553
553
  modified: { resource: this._entry.modifiedURI },
554
554
  label: defaultAgentName
555
555
  ? ( localize(
556
- 4884,
556
+ 4963,
557
557
  '{0} (changes from {1})',
558
558
  basename(this._entry.modifiedURI),
559
559
  defaultAgentName
560
560
  ))
561
- : ( localize(4885, '{0} (changes from chat)', basename(this._entry.modifiedURI)))
561
+ : ( localize(4964, '{0} (changes from chat)', basename(this._entry.modifiedURI)))
562
562
  };
563
563
  await this._editorService.openEditor(diffInput);
564
564
  }
@@ -19,6 +19,8 @@ function countChanges(changes) {
19
19
  }, 0);
20
20
  }
21
21
  function sortCellChanges(changes) {
22
+ const indexes = ( new Map());
23
+ changes.forEach((c, i) => indexes.set(c, i));
22
24
  return [...changes].sort((a, b) => {
23
25
  if ((a.type === 'unchanged' || a.type === 'modified') &&
24
26
  (b.type === 'unchanged' || b.type === 'modified')) {
@@ -31,10 +33,10 @@ function sortCellChanges(changes) {
31
33
  return a.modifiedCellIndex - b.modifiedCellIndex;
32
34
  }
33
35
  if (a.type === 'delete' && b.type === 'insert') {
34
- return -1;
36
+ return indexes.get(a) - indexes.get(b);
35
37
  }
36
38
  if (a.type === 'insert' && b.type === 'delete') {
37
- return 1;
39
+ return indexes.get(a) - indexes.get(b);
38
40
  }
39
41
  if ((a.type === 'delete' && b.type !== 'insert') || (a.type !== 'insert' && b.type === 'delete')) {
40
42
  return a.originalCellIndex - b.originalCellIndex;
@@ -1,7 +1,7 @@
1
1
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
2
  import { IAccessibilitySignalService } from "@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service";
3
3
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
4
- import { INotebookEditor } from "@codingame/monaco-vscode-271a23cd-c7d7-5761-ae35-a923a42987b8-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser";
4
+ import { INotebookEditor } from "@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser";
5
5
  import { NotebookTextModel } from "@codingame/monaco-vscode-notebook-service-override/vscode/vs/workbench/contrib/notebook/common/model/notebookTextModel";
6
6
  import { ICellDiffInfo } from "./notebookCellChanges.js";
7
7
  export declare class OverlayToolbarDecorator extends Disposable {
@@ -9,7 +9,7 @@ import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/
9
9
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
10
10
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
11
11
  import { ServiceCollection } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/serviceCollection';
12
- import { CellEditState } from '@codingame/monaco-vscode-271a23cd-c7d7-5761-ae35-a923a42987b8-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
12
+ import { CellEditState } from '@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser';
13
13
  import { CellKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
14
14
 
15
15
  let OverlayToolbarDecorator = class OverlayToolbarDecorator extends Disposable {
@@ -9,7 +9,7 @@ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/th
9
9
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
10
10
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
11
11
  import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
12
- import { EditorGroupView } from '@codingame/monaco-vscode-33de3d75-8b1a-53f0-9e27-0c71c327e1a1-common/vscode/vs/workbench/browser/parts/editor/editorGroupView';
12
+ import { EditorGroupView } from '@codingame/monaco-vscode-615ce609-8555-545a-a549-47bd9f80e9f8-common/vscode/vs/workbench/browser/parts/editor/editorGroupView';
13
13
  import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
14
14
  import { ServiceCollection } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/serviceCollection';
15
15
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
@@ -17,14 +17,14 @@ import { EditorResourceAccessor, SideBySideEditor } from '@codingame/monaco-vsco
17
17
  import { joinPath, isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
18
18
  import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
19
19
  import { IHostService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service';
20
- import { showChatView } from '@codingame/monaco-vscode-9911aec2-e4dd-5483-8369-9d695cc70d8a-common/vscode/vs/workbench/contrib/chat/browser/chat';
20
+ import { showChatView } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
21
21
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
22
22
  import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
23
23
  import { ButtonWithDropdown, Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
24
24
  import { defaultButtonStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
25
25
  import { createElement, addDisposableListener } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
26
26
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
27
- import { cleanupOldImages, createFileForMedia } from '@codingame/monaco-vscode-9ebd6daf-8734-5a28-ad24-b238f5e5819d-common/vscode/vs/workbench/contrib/chat/browser/imageUtils';
27
+ import { cleanupOldImages, createFileForMedia } from '@codingame/monaco-vscode-0af61f78-dfc5-57ba-8d32-66268c8de38d-common/vscode/vs/workbench/contrib/chat/browser/imageUtils';
28
28
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
29
29
  import { IEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service';
30
30
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
@@ -71,27 +71,27 @@ let SimpleBrowserOverlayWidget = class SimpleBrowserOverlayWidget {
71
71
  this._domNode = createElement('div');
72
72
  this._domNode.className = 'element-selection-message';
73
73
  const message = createElement('span');
74
- const startSelectionMessage = ( localize(4886, 'Add element to chat'));
74
+ const startSelectionMessage = ( localize(4965, 'Add element to chat'));
75
75
  message.textContent = startSelectionMessage;
76
76
  this._domNode.appendChild(message);
77
77
  let cts;
78
78
  const actions = [];
79
79
  actions.push(toAction({
80
80
  id: 'singleSelection',
81
- label: ( localize(4887, 'Select an Element')),
81
+ label: ( localize(4966, 'Select an Element')),
82
82
  enabled: true,
83
83
  run: async () => { await startElementSelection(); }
84
84
  }), toAction({
85
85
  id: 'continuousSelection',
86
- label: ( localize(4888, 'Continuous Selection')),
86
+ label: ( localize(4967, 'Continuous Selection')),
87
87
  enabled: true,
88
88
  run: async () => {
89
89
  this._editor.focus();
90
90
  cts = ( new CancellationTokenSource());
91
- message.textContent = ( localize(4889, 'Selecting element...'));
91
+ message.textContent = ( localize(4968, 'Selecting element...'));
92
92
  this.hideElement(startButton.element);
93
93
  this.showElement(cancelButton.element);
94
- cancelButton.label = ( localize(4890, 'Done'));
94
+ cancelButton.label = ( localize(4969, 'Done'));
95
95
  while (!cts.token.isCancellationRequested) {
96
96
  try {
97
97
  await this.addElementToChat(cts);
@@ -102,7 +102,7 @@ let SimpleBrowserOverlayWidget = class SimpleBrowserOverlayWidget {
102
102
  break;
103
103
  }
104
104
  }
105
- message.textContent = ( localize(4891, 'Element added to chat'));
105
+ message.textContent = ( localize(4970, 'Element added to chat'));
106
106
  finishedSelecting();
107
107
  }
108
108
  }));
@@ -111,27 +111,27 @@ let SimpleBrowserOverlayWidget = class SimpleBrowserOverlayWidget {
111
111
  addPrimaryActionToDropdown: false,
112
112
  contextMenuProvider: this.contextMenuService,
113
113
  supportShortLabel: true,
114
- title: ( localize(4892, 'Click to select an element.')),
114
+ title: ( localize(4971, 'Click to select an element.')),
115
115
  supportIcons: true,
116
116
  ...defaultButtonStyles
117
117
  })));
118
- startButton.primaryButton.label = ( localize(4893, 'Start'));
118
+ startButton.primaryButton.label = ( localize(4972, 'Start'));
119
119
  startButton.element.classList.add('element-selection-start');
120
120
  const cancelButton = this._showStore.add(( new Button(
121
121
  this._domNode,
122
- { ...defaultButtonStyles, supportIcons: true, title: ( localize(4894, 'Click to cancel selection.')) }
122
+ { ...defaultButtonStyles, supportIcons: true, title: ( localize(4973, 'Click to cancel selection.')) }
123
123
  )));
124
124
  cancelButton.element.className = 'element-selection-cancel hidden';
125
- const cancelButtonLabel = ( localize(4895, 'Cancel'));
125
+ const cancelButtonLabel = ( localize(4974, 'Cancel'));
126
126
  cancelButton.label = cancelButtonLabel;
127
- const configure = this._showStore.add(( new Button(this._domNode, { supportIcons: true, title: ( localize(4896, "Configure Attachments Sent")) })));
127
+ const configure = this._showStore.add(( new Button(this._domNode, { supportIcons: true, title: ( localize(4975, "Configure Attachments Sent")) })));
128
128
  configure.icon = Codicon.gear;
129
- const collapseOverlay = this._showStore.add(( new Button(this._domNode, { supportIcons: true, title: ( localize(4897, "Collapse Overlay")) })));
129
+ const collapseOverlay = this._showStore.add(( new Button(this._domNode, { supportIcons: true, title: ( localize(4976, "Collapse Overlay")) })));
130
130
  collapseOverlay.icon = Codicon.chevronRight;
131
- const nextSelection = this._showStore.add(( new Button(this._domNode, { supportIcons: true, title: ( localize(4898, "Select Again")) })));
131
+ const nextSelection = this._showStore.add(( new Button(this._domNode, { supportIcons: true, title: ( localize(4977, "Select Again")) })));
132
132
  nextSelection.icon = Codicon.close;
133
133
  nextSelection.element.classList.add('hidden');
134
- const expandOverlay = this._showStore.add(( new Button(this._domNode, { supportIcons: true, title: ( localize(4899, "Expand Overlay")) })));
134
+ const expandOverlay = this._showStore.add(( new Button(this._domNode, { supportIcons: true, title: ( localize(4978, "Expand Overlay")) })));
135
135
  expandOverlay.icon = Codicon.layout;
136
136
  const expandContainer = createElement('div');
137
137
  expandContainer.className = 'element-expand-container hidden';
@@ -155,11 +155,11 @@ let SimpleBrowserOverlayWidget = class SimpleBrowserOverlayWidget {
155
155
  const startElementSelection = async () => {
156
156
  cts = ( new CancellationTokenSource());
157
157
  this._editor.focus();
158
- message.textContent = ( localize(4889, 'Selecting element...'));
158
+ message.textContent = ( localize(4968, 'Selecting element...'));
159
159
  this.hideElement(startButton.element);
160
160
  this.showElement(cancelButton.element);
161
161
  await this.addElementToChat(cts);
162
- message.textContent = ( localize(4891, 'Element added to chat'));
162
+ message.textContent = ( localize(4970, 'Element added to chat'));
163
163
  finishedSelecting();
164
164
  };
165
165
  this._showStore.add(addDisposableListener(startButton.primaryButton.element, 'click', async () => {
@@ -167,7 +167,7 @@ let SimpleBrowserOverlayWidget = class SimpleBrowserOverlayWidget {
167
167
  }));
168
168
  this._showStore.add(addDisposableListener(cancelButton.element, 'click', () => {
169
169
  cts.cancel();
170
- message.textContent = ( localize(4900, 'Selection canceled'));
170
+ message.textContent = ( localize(4979, 'Selection canceled'));
171
171
  finishedSelecting();
172
172
  }));
173
173
  this._showStore.add(addDisposableListener(collapseOverlay.element, 'click', () => {
@@ -303,7 +303,7 @@ let SimpleBrowserOverlayController = class SimpleBrowserOverlayController {
303
303
  };
304
304
  let cts = ( new CancellationTokenSource());
305
305
  const show = async () => {
306
- connectingWebviewElement.textContent = ( localize(4901, 'Connecting to webview...'));
306
+ connectingWebviewElement.textContent = ( localize(4980, 'Connecting to webview...'));
307
307
  if (!container.contains(connectingWebviewElement)) {
308
308
  container.appendChild(connectingWebviewElement);
309
309
  }
@@ -314,7 +314,7 @@ let SimpleBrowserOverlayController = class SimpleBrowserOverlayController {
314
314
  await this._browserElementsService.startDebugSession(cts.token, activeBrowserType);
315
315
  }
316
316
  catch (error) {
317
- connectingWebviewElement.textContent = ( localize(4902, 'Please reopen the preview.'));
317
+ connectingWebviewElement.textContent = ( localize(4981, 'Please reopen the preview.'));
318
318
  return;
319
319
  }
320
320
  }