@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,262 @@
1
+
2
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
3
+ import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
4
+ import { localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
5
+ import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
6
+ import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
7
+ import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
8
+ import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
9
+ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
10
+ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
11
+ import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
12
+ import { AbstractInline1ChatAction } from '../../../inlineChat/browser/inlineChatActions.js';
13
+ import { isDetachedTerminalInstance } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal';
14
+ import { registerActiveXtermAction } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminal/browser/terminalActions';
15
+ import { TerminalContextKeys } from '@codingame/monaco-vscode-262ed59d-4f76-57cd-9e9f-1877f26ae049-common/vscode/vs/workbench/contrib/terminal/common/terminalContextKey';
16
+ import { TerminalChatContextKeys, TerminalChatCommandId, MENU_TERMINAL_CHAT_WIDGET_STATUS } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminalContrib/chat/browser/terminalChat';
17
+ import { TerminalChatController } from './terminalChatController.js';
18
+ import { activeChatController } from './terminalChatControllerHolder.js';
19
+
20
+ registerActiveXtermAction({
21
+ id: TerminalChatCommandId.Start,
22
+ title: ( localize2(11240, 'Terminal Inline Chat')),
23
+ category: AbstractInline1ChatAction.category,
24
+ keybinding: {
25
+ primary: KeyMod.CtrlCmd | KeyCode.KeyI,
26
+ when: ( ContextKeyExpr.and(TerminalContextKeys.focusInAny)),
27
+ weight: KeybindingWeight.ExternalExtension + 1,
28
+ },
29
+ f1: true,
30
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
31
+ TerminalContextKeys.processSupported,
32
+ TerminalContextKeys.terminalHasBeenCreated
33
+ )), TerminalChatContextKeys.hasChatAgent)),
34
+ menu: {
35
+ id: MenuId.ChatTerminalMenu,
36
+ group: 'copilot',
37
+ order: 1
38
+ },
39
+ run: (_xterm, _accessor, activeInstance, opts) => {
40
+ if (isDetachedTerminalInstance(activeInstance)) {
41
+ return;
42
+ }
43
+ const contr = activeChatController || TerminalChatController.get(activeInstance);
44
+ if (opts) {
45
+ opts = typeof opts === 'string' ? { query: opts } : opts;
46
+ if (typeof opts === 'object' && opts !== null && 'query' in opts && typeof opts.query === 'string') {
47
+ contr?.updateInput(opts.query, false);
48
+ if (!('isPartialQuery' in opts && opts.isPartialQuery)) {
49
+ contr?.terminalChatWidget?.acceptInput();
50
+ }
51
+ }
52
+ }
53
+ contr?.terminalChatWidget?.reveal();
54
+ }
55
+ });
56
+ registerActiveXtermAction({
57
+ id: TerminalChatCommandId.Close,
58
+ title: ( localize2(11241, 'Close')),
59
+ category: AbstractInline1ChatAction.category,
60
+ keybinding: {
61
+ primary: KeyCode.Escape,
62
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.or(TerminalContextKeys.focus, TerminalChatContextKeys.focused)), TerminalChatContextKeys.visible)),
63
+ weight: KeybindingWeight.WorkbenchContrib,
64
+ },
65
+ menu: [{
66
+ id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
67
+ group: '0_main',
68
+ order: 2,
69
+ }],
70
+ icon: Codicon.close,
71
+ f1: true,
72
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, TerminalChatContextKeys.visible)),
73
+ run: (_xterm, _accessor, activeInstance) => {
74
+ if (isDetachedTerminalInstance(activeInstance)) {
75
+ return;
76
+ }
77
+ const contr = activeChatController || TerminalChatController.get(activeInstance);
78
+ contr?.terminalChatWidget?.clear();
79
+ }
80
+ });
81
+ registerActiveXtermAction({
82
+ id: TerminalChatCommandId.RunCommand,
83
+ title: ( localize2(11242, 'Run Chat Command')),
84
+ shortTitle: ( localize2(11243, 'Run')),
85
+ category: AbstractInline1ChatAction.category,
86
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
87
+ TerminalContextKeys.processSupported,
88
+ TerminalContextKeys.terminalHasBeenCreated
89
+ )), ( TerminalChatContextKeys.requestActive.negate()), TerminalChatContextKeys.responseContainsCodeBlock, ( TerminalChatContextKeys.responseContainsMultipleCodeBlocks.negate()))),
90
+ icon: Codicon.play,
91
+ keybinding: {
92
+ when: ( TerminalChatContextKeys.requestActive.negate()),
93
+ weight: KeybindingWeight.WorkbenchContrib,
94
+ primary: KeyMod.CtrlCmd | KeyCode.Enter,
95
+ },
96
+ menu: {
97
+ id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
98
+ group: '0_main',
99
+ order: 0,
100
+ when: ( ContextKeyExpr.and(TerminalChatContextKeys.responseContainsCodeBlock, ( TerminalChatContextKeys.responseContainsMultipleCodeBlocks.negate()), ( TerminalChatContextKeys.requestActive.negate())))
101
+ },
102
+ run: (_xterm, _accessor, activeInstance) => {
103
+ if (isDetachedTerminalInstance(activeInstance)) {
104
+ return;
105
+ }
106
+ const contr = activeChatController || TerminalChatController.get(activeInstance);
107
+ contr?.terminalChatWidget?.acceptCommand(true);
108
+ }
109
+ });
110
+ registerActiveXtermAction({
111
+ id: TerminalChatCommandId.RunFirstCommand,
112
+ title: ( localize2(11244, 'Run First Chat Command')),
113
+ shortTitle: ( localize2(11245, 'Run First')),
114
+ category: AbstractInline1ChatAction.category,
115
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
116
+ TerminalContextKeys.processSupported,
117
+ TerminalContextKeys.terminalHasBeenCreated
118
+ )), ( TerminalChatContextKeys.requestActive.negate()), TerminalChatContextKeys.responseContainsMultipleCodeBlocks)),
119
+ icon: Codicon.play,
120
+ keybinding: {
121
+ when: ( TerminalChatContextKeys.requestActive.negate()),
122
+ weight: KeybindingWeight.WorkbenchContrib,
123
+ primary: KeyMod.CtrlCmd | KeyCode.Enter,
124
+ },
125
+ menu: {
126
+ id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
127
+ group: '0_main',
128
+ order: 0,
129
+ when: ( ContextKeyExpr.and(TerminalChatContextKeys.responseContainsMultipleCodeBlocks, ( TerminalChatContextKeys.requestActive.negate())))
130
+ },
131
+ run: (_xterm, _accessor, activeInstance) => {
132
+ if (isDetachedTerminalInstance(activeInstance)) {
133
+ return;
134
+ }
135
+ const contr = activeChatController || TerminalChatController.get(activeInstance);
136
+ contr?.terminalChatWidget?.acceptCommand(true);
137
+ }
138
+ });
139
+ registerActiveXtermAction({
140
+ id: TerminalChatCommandId.InsertCommand,
141
+ title: ( localize2(11246, 'Insert Chat Command')),
142
+ shortTitle: ( localize2(11247, 'Insert')),
143
+ category: AbstractInline1ChatAction.category,
144
+ icon: Codicon.insert,
145
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
146
+ TerminalContextKeys.processSupported,
147
+ TerminalContextKeys.terminalHasBeenCreated
148
+ )), ( TerminalChatContextKeys.requestActive.negate()), TerminalChatContextKeys.responseContainsCodeBlock, ( TerminalChatContextKeys.responseContainsMultipleCodeBlocks.negate()))),
149
+ keybinding: {
150
+ when: ( TerminalChatContextKeys.requestActive.negate()),
151
+ weight: KeybindingWeight.WorkbenchContrib,
152
+ primary: KeyMod.Alt | KeyCode.Enter,
153
+ secondary: [KeyMod.CtrlCmd | KeyCode.Enter | KeyMod.Alt]
154
+ },
155
+ menu: {
156
+ id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
157
+ group: '0_main',
158
+ order: 1,
159
+ when: ( ContextKeyExpr.and(TerminalChatContextKeys.responseContainsCodeBlock, ( TerminalChatContextKeys.responseContainsMultipleCodeBlocks.negate()), ( TerminalChatContextKeys.requestActive.negate())))
160
+ },
161
+ run: (_xterm, _accessor, activeInstance) => {
162
+ if (isDetachedTerminalInstance(activeInstance)) {
163
+ return;
164
+ }
165
+ const contr = activeChatController || TerminalChatController.get(activeInstance);
166
+ contr?.terminalChatWidget?.acceptCommand(false);
167
+ }
168
+ });
169
+ registerActiveXtermAction({
170
+ id: TerminalChatCommandId.InsertFirstCommand,
171
+ title: ( localize2(11248, 'Insert First Chat Command')),
172
+ shortTitle: ( localize2(11249, 'Insert First')),
173
+ category: AbstractInline1ChatAction.category,
174
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
175
+ TerminalContextKeys.processSupported,
176
+ TerminalContextKeys.terminalHasBeenCreated
177
+ )), ( TerminalChatContextKeys.requestActive.negate()), TerminalChatContextKeys.responseContainsMultipleCodeBlocks)),
178
+ keybinding: {
179
+ when: ( TerminalChatContextKeys.requestActive.negate()),
180
+ weight: KeybindingWeight.WorkbenchContrib,
181
+ primary: KeyMod.Alt | KeyCode.Enter,
182
+ secondary: [KeyMod.CtrlCmd | KeyCode.Enter | KeyMod.Alt]
183
+ },
184
+ menu: {
185
+ id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
186
+ group: '0_main',
187
+ order: 1,
188
+ when: ( ContextKeyExpr.and(TerminalChatContextKeys.responseContainsMultipleCodeBlocks, ( TerminalChatContextKeys.requestActive.negate())))
189
+ },
190
+ run: (_xterm, _accessor, activeInstance) => {
191
+ if (isDetachedTerminalInstance(activeInstance)) {
192
+ return;
193
+ }
194
+ const contr = activeChatController || TerminalChatController.get(activeInstance);
195
+ contr?.terminalChatWidget?.acceptCommand(false);
196
+ }
197
+ });
198
+ registerActiveXtermAction({
199
+ id: TerminalChatCommandId.RerunRequest,
200
+ title: ( localize2(11250, "Rerun Request")),
201
+ f1: false,
202
+ icon: Codicon.refresh,
203
+ category: AbstractInline1ChatAction.category,
204
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
205
+ TerminalContextKeys.processSupported,
206
+ TerminalContextKeys.terminalHasBeenCreated
207
+ )), ( TerminalChatContextKeys.requestActive.negate()))),
208
+ keybinding: {
209
+ weight: KeybindingWeight.WorkbenchContrib,
210
+ primary: KeyMod.CtrlCmd | KeyCode.KeyR,
211
+ when: TerminalChatContextKeys.focused
212
+ },
213
+ menu: {
214
+ id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
215
+ group: '0_main',
216
+ order: 5,
217
+ when: ( ContextKeyExpr.and(( TerminalChatContextKeys.inputHasText.toNegated()), ( TerminalChatContextKeys.requestActive.negate())))
218
+ },
219
+ run: async (_xterm, _accessor, activeInstance) => {
220
+ const chatService = _accessor.get(IChatService);
221
+ const chatWidgetService = _accessor.get(IChatWidgetService);
222
+ const contr = activeChatController;
223
+ const model = contr?.terminalChatWidget?.inlineChatWidget.chatWidget.viewModel?.model;
224
+ if (!model) {
225
+ return;
226
+ }
227
+ const lastRequest = model.getRequests().at(-1);
228
+ if (lastRequest) {
229
+ const widget = chatWidgetService.getWidgetBySessionId(model.sessionId);
230
+ await chatService.resendRequest(lastRequest, {
231
+ noCommandDetection: false,
232
+ attempt: lastRequest.attempt + 1,
233
+ location: ChatAgentLocation.Terminal,
234
+ userSelectedModelId: widget?.input.currentLanguageModel
235
+ });
236
+ }
237
+ }
238
+ });
239
+ registerActiveXtermAction({
240
+ id: TerminalChatCommandId.ViewInChat,
241
+ title: ( localize2(11251, 'View in Chat')),
242
+ category: AbstractInline1ChatAction.category,
243
+ precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(
244
+ TerminalContextKeys.processSupported,
245
+ TerminalContextKeys.terminalHasBeenCreated
246
+ )), ( TerminalChatContextKeys.requestActive.negate()))),
247
+ icon: Codicon.commentDiscussion,
248
+ menu: [{
249
+ id: MENU_TERMINAL_CHAT_WIDGET_STATUS,
250
+ group: 'zzz',
251
+ order: 1,
252
+ isHiddenByDefault: true,
253
+ when: ( ContextKeyExpr.and(TerminalChatContextKeys.responseContainsCodeBlock, ( TerminalChatContextKeys.requestActive.negate()))),
254
+ }],
255
+ run: (_xterm, _accessor, activeInstance) => {
256
+ if (isDetachedTerminalInstance(activeInstance)) {
257
+ return;
258
+ }
259
+ const contr = activeChatController || TerminalChatController.get(activeInstance);
260
+ contr?.viewInChat();
261
+ }
262
+ });
@@ -0,0 +1,35 @@
1
+ import type { Terminal as RawXtermTerminal } from "@xterm/xterm";
2
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
4
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
5
+ import { IChatCodeBlockContextProviderService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
6
+ import { ITerminalContribution, ITerminalInstance, IXtermTerminal } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
7
+ import { ITerminalService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service";
8
+ import { TerminalChatWidget } from "./terminalChatWidget.js";
9
+ import type { ITerminalContributionContext } from "@codingame/monaco-vscode-88141f48-1af9-57ef-a278-f4b2ff6128fa-common/vscode/vs/workbench/contrib/terminal/browser/terminalExtensions";
10
+ export declare class TerminalChatController extends Disposable implements ITerminalContribution {
11
+ private readonly _ctx;
12
+ private readonly _contextKeyService;
13
+ private readonly _instantiationService;
14
+ private readonly _terminalService;
15
+ static readonly ID = "terminal.chat";
16
+ static get(instance: ITerminalInstance): TerminalChatController | null;
17
+ private _terminalChatWidget;
18
+ get terminalChatWidget(): TerminalChatWidget | undefined;
19
+ private _lastResponseContent;
20
+ get lastResponseContent(): string | undefined;
21
+ get scopedContextKeyService(): IContextKeyService;
22
+ constructor(_ctx: ITerminalContributionContext, chatCodeBlockContextProviderService: IChatCodeBlockContextProviderService, _contextKeyService: IContextKeyService, _instantiationService: IInstantiationService, _terminalService: ITerminalService);
23
+ xtermReady(xterm: IXtermTerminal & {
24
+ raw: RawXtermTerminal;
25
+ }): void;
26
+ private _forcedPlaceholder;
27
+ private _updatePlaceholder;
28
+ private _getPlaceholderText;
29
+ setPlaceholder(text: string): void;
30
+ resetPlaceholder(): void;
31
+ updateInput(text: string, selectAll?: boolean): void;
32
+ focus(): void;
33
+ hasFocus(): boolean;
34
+ viewInChat(): Promise<void>;
35
+ }
@@ -0,0 +1,129 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
4
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
6
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
7
+ import { showChatView } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
8
+ import { IChatCodeBlockContextProviderService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
9
+ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
10
+ import { isDetachedTerminalInstance } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal';
11
+ import { ITerminalService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
12
+ import { TerminalChatWidget } from './terminalChatWidget.js';
13
+ import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
14
+ import { setActiveChatController } from './terminalChatControllerHolder.js';
15
+
16
+ var TerminalChatController_1;
17
+ let TerminalChatController = class TerminalChatController extends Disposable {
18
+ static { TerminalChatController_1 = this; }
19
+ static { this.ID = 'terminal.chat'; }
20
+ static get(instance) {
21
+ return instance.getContribution(TerminalChatController_1.ID);
22
+ }
23
+ get terminalChatWidget() { return this._terminalChatWidget?.value; }
24
+ get lastResponseContent() {
25
+ return this._lastResponseContent;
26
+ }
27
+ get scopedContextKeyService() {
28
+ return this._terminalChatWidget?.value.inlineChatWidget.scopedContextKeyService ?? this._contextKeyService;
29
+ }
30
+ constructor(_ctx, chatCodeBlockContextProviderService, _contextKeyService, _instantiationService, _terminalService) {
31
+ super();
32
+ this._ctx = _ctx;
33
+ this._contextKeyService = _contextKeyService;
34
+ this._instantiationService = _instantiationService;
35
+ this._terminalService = _terminalService;
36
+ this._forcedPlaceholder = undefined;
37
+ this._register(chatCodeBlockContextProviderService.registerProvider({
38
+ getCodeBlockContext: (editor) => {
39
+ if (!editor || !this._terminalChatWidget?.hasValue || !this.hasFocus()) {
40
+ return;
41
+ }
42
+ return {
43
+ element: editor,
44
+ code: editor.getValue(),
45
+ codeBlockIndex: 0,
46
+ languageId: editor.getModel().getLanguageId(),
47
+ chatSessionId: this._terminalChatWidget.value.inlineChatWidget.chatWidget.viewModel?.sessionId
48
+ };
49
+ }
50
+ }, 'terminal'));
51
+ }
52
+ xtermReady(xterm) {
53
+ this._terminalChatWidget = ( new Lazy(() => {
54
+ const chatWidget = this._register(this._instantiationService.createInstance(TerminalChatWidget, this._ctx.instance.domElement, this._ctx.instance, xterm));
55
+ this._register(chatWidget.focusTracker.onDidFocus(() => {
56
+ setActiveChatController(this);
57
+ if (!isDetachedTerminalInstance(this._ctx.instance)) {
58
+ this._terminalService.setActiveInstance(this._ctx.instance);
59
+ }
60
+ }));
61
+ this._register(chatWidget.focusTracker.onDidBlur(() => {
62
+ setActiveChatController(undefined);
63
+ this._ctx.instance.resetScrollbarVisibility();
64
+ }));
65
+ if (!this._ctx.instance.domElement) {
66
+ throw ( new Error('FindWidget expected terminal DOM to be initialized'));
67
+ }
68
+ return chatWidget;
69
+ }));
70
+ }
71
+ _updatePlaceholder() {
72
+ const inlineChatWidget = this._terminalChatWidget?.value.inlineChatWidget;
73
+ if (inlineChatWidget) {
74
+ inlineChatWidget.placeholder = this._getPlaceholderText();
75
+ }
76
+ }
77
+ _getPlaceholderText() {
78
+ return this._forcedPlaceholder ?? '';
79
+ }
80
+ setPlaceholder(text) {
81
+ this._forcedPlaceholder = text;
82
+ this._updatePlaceholder();
83
+ }
84
+ resetPlaceholder() {
85
+ this._forcedPlaceholder = undefined;
86
+ this._updatePlaceholder();
87
+ }
88
+ updateInput(text, selectAll = true) {
89
+ const widget = this._terminalChatWidget?.value.inlineChatWidget;
90
+ if (widget) {
91
+ widget.value = text;
92
+ if (selectAll) {
93
+ widget.selectAll();
94
+ }
95
+ }
96
+ }
97
+ focus() {
98
+ this._terminalChatWidget?.value.focus();
99
+ }
100
+ hasFocus() {
101
+ return this._terminalChatWidget?.rawValue?.hasFocus() ?? false;
102
+ }
103
+ async viewInChat() {
104
+ const chatModel = this.terminalChatWidget?.inlineChatWidget.chatWidget.viewModel?.model;
105
+ if (chatModel) {
106
+ await this._instantiationService.invokeFunction(moveToPanelChat, chatModel);
107
+ }
108
+ this._terminalChatWidget?.rawValue?.hide();
109
+ }
110
+ };
111
+ TerminalChatController = TerminalChatController_1 = ( __decorate([
112
+ ( __param(1, IChatCodeBlockContextProviderService)),
113
+ ( __param(2, IContextKeyService)),
114
+ ( __param(3, IInstantiationService)),
115
+ ( __param(4, ITerminalService))
116
+ ], TerminalChatController));
117
+ async function moveToPanelChat(accessor, model) {
118
+ const viewsService = accessor.get(IViewsService);
119
+ const chatService = accessor.get(IChatService);
120
+ const widget = await showChatView(viewsService);
121
+ if (widget && widget.viewModel && model) {
122
+ for (const request of model.getRequests().slice()) {
123
+ await chatService.adoptRequest(widget.viewModel.model.sessionId, request);
124
+ }
125
+ widget.focusLastMessage();
126
+ }
127
+ }
128
+
129
+ export { TerminalChatController };
@@ -0,0 +1,3 @@
1
+ import { TerminalChatController } from "./terminalChatController.js";
2
+ export declare let activeChatController: TerminalChatController | undefined;
3
+ export declare function setActiveChatController(_activeChatController: TerminalChatController | undefined): void;
@@ -0,0 +1,8 @@
1
+
2
+
3
+ let activeChatController;
4
+ function setActiveChatController(_activeChatController) {
5
+ activeChatController = _activeChatController;
6
+ }
7
+
8
+ export { activeChatController, setActiveChatController };
@@ -0,0 +1,9 @@
1
+ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
2
+ import { IChatAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service";
3
+ export declare class TerminalChatEnabler {
4
+ static Id: string;
5
+ private readonly _ctxHasProvider;
6
+ private readonly _store;
7
+ constructor(chatAgentService: IChatAgentService, contextKeyService: IContextKeyService);
8
+ dispose(): void;
9
+ }
@@ -0,0 +1,30 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
4
+ import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
6
+ import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
7
+ import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
8
+ import { TerminalChatContextKeys } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminalContrib/chat/browser/terminalChat';
9
+
10
+ let TerminalChatEnabler = class TerminalChatEnabler {
11
+ static { this.Id = 'terminalChat.enabler'; }
12
+ constructor(chatAgentService, contextKeyService) {
13
+ this._store = ( new DisposableStore());
14
+ this._ctxHasProvider = TerminalChatContextKeys.hasChatAgent.bindTo(contextKeyService);
15
+ this._store.add(Event.runAndSubscribe(chatAgentService.onDidChangeAgents, () => {
16
+ const hasTerminalAgent = Boolean(chatAgentService.getDefaultAgent(ChatAgentLocation.Terminal));
17
+ this._ctxHasProvider.set(hasTerminalAgent);
18
+ }));
19
+ }
20
+ dispose() {
21
+ this._ctxHasProvider.reset();
22
+ this._store.dispose();
23
+ }
24
+ };
25
+ TerminalChatEnabler = ( __decorate([
26
+ ( __param(0, IChatAgentService)),
27
+ ( __param(1, IContextKeyService))
28
+ ], TerminalChatEnabler));
29
+
30
+ export { TerminalChatEnabler };
@@ -0,0 +1,72 @@
1
+ import type { Terminal as RawXtermTerminal } from "@xterm/xterm";
2
+ import { IFocusTracker } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/dom";
3
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
4
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
5
+ import { type IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
6
+ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
7
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
8
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
9
+ import { IViewsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service";
10
+ import { IChatAcceptInputOptions } from "@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat";
11
+ import type { IChatViewState } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/browser/chatWidget";
12
+ import { IChatAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service";
13
+ import { IChatResponseModel } from "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel";
14
+ import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service";
15
+ import { InlineChatWidget } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatWidget";
16
+ import { ITerminalInstance, type IXtermTerminal } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
17
+ export declare class TerminalChatWidget extends Disposable {
18
+ private readonly _terminalElement;
19
+ private readonly _instance;
20
+ private readonly _xterm;
21
+ private readonly _chatService;
22
+ private readonly _storageService;
23
+ private readonly _viewsService;
24
+ private readonly _chatAgentService;
25
+ private readonly _container;
26
+ private readonly _onDidHide;
27
+ readonly onDidHide: Event<void>;
28
+ private readonly _inlineChatWidget;
29
+ get inlineChatWidget(): InlineChatWidget;
30
+ private readonly _focusTracker;
31
+ private readonly _focusedContextKey;
32
+ private readonly _visibleContextKey;
33
+ private readonly _requestActiveContextKey;
34
+ private readonly _responseContainsCodeBlockContextKey;
35
+ private readonly _responseContainsMulitpleCodeBlocksContextKey;
36
+ private _messages;
37
+ private _viewStateStorageKey;
38
+ private _lastResponseContent;
39
+ get lastResponseContent(): string | undefined;
40
+ private _terminalAgentName;
41
+ private readonly _model;
42
+ private _sessionCtor;
43
+ private _currentRequestId;
44
+ private _activeRequestCts?;
45
+ private readonly _requestInProgress;
46
+ readonly requestInProgress: IObservable<boolean>;
47
+ constructor(_terminalElement: HTMLElement, _instance: ITerminalInstance, _xterm: IXtermTerminal & {
48
+ raw: RawXtermTerminal;
49
+ }, contextKeyService: IContextKeyService, _chatService: IChatService, _storageService: IStorageService, _viewsService: IViewsService, instantiationService: IInstantiationService, _chatAgentService: IChatAgentService);
50
+ private _dimension?;
51
+ private _relayout;
52
+ private _doLayout;
53
+ private _resetPlaceholder;
54
+ reveal(viewState?: IChatViewState): Promise<void>;
55
+ private _getTerminalCursorTop;
56
+ private _updateXtermViewportPosition;
57
+ private _getTerminalViewportHeight;
58
+ hide(): void;
59
+ private _setTerminalViewportOffset;
60
+ focus(): void;
61
+ hasFocus(): boolean;
62
+ setValue(value?: string): void;
63
+ acceptCommand(shouldExecute: boolean): Promise<void>;
64
+ get focusTracker(): IFocusTracker;
65
+ private _createSession;
66
+ private _loadViewState;
67
+ private _saveViewState;
68
+ clear(): void;
69
+ acceptInput(query?: string, options?: IChatAcceptInputOptions): Promise<IChatResponseModel | undefined>;
70
+ cancel(): void;
71
+ viewInChat(): Promise<void>;
72
+ }