@codingame/monaco-vscode-chat-service-override 24.3.0 → 25.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 (271) hide show
  1. package/index.js +35 -35
  2. package/package.json +5 -5
  3. package/vscode/src/vs/workbench/contrib/chat/browser/{chatAccessibilityService.d.ts → accessibility/chatAccessibilityService.d.ts} +10 -8
  4. package/vscode/src/vs/workbench/contrib/chat/browser/{chatAccessibilityService.js → accessibility/chatAccessibilityService.js} +23 -11
  5. package/vscode/src/vs/workbench/contrib/chat/browser/{chatResponseAccessibleView.d.ts → accessibility/chatResponseAccessibleView.d.ts} +6 -0
  6. package/vscode/src/vs/workbench/contrib/chat/browser/{chatResponseAccessibleView.js → accessibility/chatResponseAccessibleView.js} +38 -10
  7. package/vscode/src/vs/workbench/contrib/chat/browser/{chatTerminalOutputAccessibleView.js → accessibility/chatTerminalOutputAccessibleView.js} +1 -1
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +7 -7
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +69 -60
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +2 -12
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClear.d.ts +3 -0
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClear.js +25 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +24 -22
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +13 -13
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +5 -5
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +48 -4
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +7 -7
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +12 -12
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +10 -10
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +16 -19
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +4 -4
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +9 -9
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +35 -19
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +4 -3
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +22 -17
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.d.ts +1 -1
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.js +1 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +3 -3
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +21 -21
  32. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +31 -53
  33. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +61 -25
  34. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +482 -125
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +16 -13
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +84 -93
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +2 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +10 -8
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.d.ts +7 -0
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +41 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.d.ts +23 -0
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +137 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.d.ts +15 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +92 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +81 -32
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +335 -102
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +3 -2
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +47 -51
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +80 -8
  50. package/vscode/src/vs/workbench/contrib/chat/browser/{chatAttachmentResolveService.d.ts → attachments/chatAttachmentResolveService.d.ts} +2 -2
  51. package/vscode/src/vs/workbench/contrib/chat/browser/{chatAttachmentResolveService.js → attachments/chatAttachmentResolveService.js} +4 -4
  52. package/vscode/src/vs/workbench/contrib/chat/browser/{chatVariables.d.ts → attachments/chatVariables.d.ts} +3 -3
  53. package/vscode/src/vs/workbench/contrib/chat/browser/{chatVariables.js → attachments/chatVariables.js} +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/{chatEditing → attachments}/simpleBrowserEditorOverlay.js +21 -21
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +171 -206
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditing.d.ts +1 -1
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimeline.d.ts +2 -2
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +2 -2
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +2 -2
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +3 -3
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.d.ts +1 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +1 -1
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +20 -20
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +14 -14
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +3 -3
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +4 -4
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +4 -4
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +3 -3
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +3 -3
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +3 -3
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.d.ts +1 -1
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +4 -4
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +10 -8
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +5 -5
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +6 -2
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +1 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +2 -2
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +1 -1
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +2 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +1 -1
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.d.ts +1 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +2 -2
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +5 -5
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +18 -18
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +1 -1
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +41 -41
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +10 -10
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.d.ts +1 -1
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +35 -35
  98. package/vscode/src/vs/workbench/contrib/chat/browser/{chatSessions.contribution.d.ts → chatSessions/chatSessions.contribution.d.ts} +7 -11
  99. package/vscode/src/vs/workbench/contrib/chat/browser/{chatSessions.contribution.js → chatSessions/chatSessions.contribution.js} +53 -106
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +18 -22
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +10 -10
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +3 -3
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +29 -29
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +13 -13
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +3 -3
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +64 -64
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +22 -0
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +90 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/{chatContextService.d.ts → contextContrib/chatContextService.d.ts} +3 -3
  111. package/vscode/src/vs/workbench/contrib/chat/browser/{chatContextService.js → contextContrib/chatContextService.js} +1 -1
  112. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +7 -7
  113. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +3 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +3 -3
  115. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  116. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +8 -8
  117. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +4 -4
  118. package/vscode/src/vs/workbench/contrib/chat/browser/{languageModelToolsConfirmationService.d.ts → tools/languageModelToolsConfirmationService.d.ts} +4 -4
  119. package/vscode/src/vs/workbench/contrib/chat/browser/{languageModelToolsConfirmationService.js → tools/languageModelToolsConfirmationService.js} +47 -58
  120. package/vscode/src/vs/workbench/contrib/chat/browser/{languageModelToolsService.d.ts → tools/languageModelToolsService.d.ts} +5 -5
  121. package/vscode/src/vs/workbench/contrib/chat/browser/{languageModelToolsService.js → tools/languageModelToolsService.js} +21 -21
  122. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +1 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +16 -16
  124. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  125. package/vscode/src/vs/workbench/contrib/chat/browser/{chatContentParts → widget/chatContentParts}/chatMarkdownAnchorService.d.ts +2 -2
  126. package/vscode/src/vs/workbench/contrib/chat/browser/{chatLayoutService.d.ts → widget/chatLayoutService.d.ts} +1 -1
  127. package/vscode/src/vs/workbench/contrib/chat/browser/{chatWidgetService.d.ts → widget/chatWidgetService.d.ts} +6 -2
  128. package/vscode/src/vs/workbench/contrib/chat/browser/{chatWidgetService.js → widget/chatWidgetService.js} +27 -5
  129. package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusWidget.d.ts → widget/input/chatStatusWidget.d.ts} +4 -2
  130. package/vscode/src/vs/workbench/contrib/chat/browser/{chatStatusWidget.js → widget/input/chatStatusWidget.js} +17 -10
  131. package/vscode/src/vs/workbench/contrib/chat/browser/{contrib → widget/input/editor}/chatInputEditorContrib.js +12 -6
  132. package/vscode/src/vs/workbench/contrib/chat/browser/{contrib → widget/input/editor}/chatInputEditorHover.d.ts +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/{contrib → widget/input/editor}/chatInputEditorHover.js +3 -3
  134. package/vscode/src/vs/workbench/contrib/chat/browser/{chatQuick.d.ts → widgetHosts/chatQuick.d.ts} +1 -1
  135. package/vscode/src/vs/workbench/contrib/chat/browser/{chatQuick.js → widgetHosts/chatQuick.js} +4 -4
  136. package/vscode/src/vs/workbench/contrib/chat/browser/{chatEditor.d.ts → widgetHosts/editor/chatEditor.d.ts} +4 -5
  137. package/vscode/src/vs/workbench/contrib/chat/browser/{chatEditor.js → widgetHosts/editor/chatEditor.js} +6 -6
  138. package/vscode/src/vs/workbench/contrib/chat/browser/{chatViewPane.d.ts → widgetHosts/viewPane/chatViewPane.d.ts} +46 -31
  139. package/vscode/src/vs/workbench/contrib/chat/browser/{chatViewPane.js → widgetHosts/viewPane/chatViewPane.js} +258 -154
  140. package/vscode/src/vs/workbench/contrib/chat/browser/{chatViewTitleControl.d.ts → widgetHosts/viewPane/chatViewTitleControl.d.ts} +5 -12
  141. package/vscode/src/vs/workbench/contrib/chat/browser/{chatViewTitleControl.js → widgetHosts/viewPane/chatViewTitleControl.js} +97 -85
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +176 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +89 -0
  144. package/vscode/src/vs/workbench/contrib/chat/common/{chatServiceImpl.d.ts → chatService/chatServiceImpl.d.ts} +16 -20
  145. package/vscode/src/vs/workbench/contrib/chat/common/{chatServiceImpl.js → chatService/chatServiceImpl.js} +97 -151
  146. package/vscode/src/vs/workbench/contrib/chat/common/{chatServiceTelemetry.d.ts → chatService/chatServiceTelemetry.d.ts} +4 -4
  147. package/vscode/src/vs/workbench/contrib/chat/common/{chatServiceTelemetry.js → chatService/chatServiceTelemetry.js} +2 -2
  148. package/vscode/src/vs/workbench/contrib/chat/common/{chatCodeMapperService.d.ts → editing/chatCodeMapperService.d.ts} +1 -1
  149. package/vscode/src/vs/workbench/contrib/chat/common/{chatModelStore.d.ts → model/chatModelStore.d.ts} +2 -2
  150. package/vscode/src/vs/workbench/contrib/chat/common/{chatProgressTypes → model/chatProgressTypes}/chatToolInvocation.d.ts +2 -2
  151. package/vscode/src/vs/workbench/contrib/chat/common/{chatProgressTypes → model/chatProgressTypes}/chatToolInvocation.js +4 -4
  152. package/vscode/src/vs/workbench/contrib/chat/common/{chatSessionStore.d.ts → model/chatSessionStore.d.ts} +14 -7
  153. package/vscode/src/vs/workbench/contrib/chat/common/{chatSessionStore.js → model/chatSessionStore.js} +164 -39
  154. package/vscode/src/vs/workbench/contrib/chat/common/{chatTransferService.d.ts → model/chatTransferService.d.ts} +3 -3
  155. package/vscode/src/vs/workbench/contrib/chat/common/{chatTransferService.js → model/chatTransferService.js} +1 -1
  156. package/vscode/src/vs/workbench/contrib/chat/common/{chatSlashCommands.d.ts → participants/chatSlashCommands.d.ts} +2 -2
  157. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +25 -49
  158. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +1 -1
  159. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +2 -2
  160. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +1 -1
  161. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +6 -6
  162. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -1
  163. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +3 -3
  164. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +1 -1
  165. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +29 -29
  166. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +1 -1
  167. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +54 -54
  168. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +11 -4
  169. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +83 -18
  170. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +11 -5
  171. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +27 -10
  172. package/vscode/src/vs/workbench/contrib/chat/common/{chatTodoListService.d.ts → tools/chatTodoListService.d.ts} +1 -1
  173. package/vscode/src/vs/workbench/contrib/chat/common/{chatTodoListService.js → tools/chatTodoListService.js} +1 -1
  174. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +1 -1
  175. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +29 -29
  176. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +2 -2
  177. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +3 -3
  178. package/vscode/src/vs/workbench/contrib/chat/common/{chatResponseResourceFileSystemProvider.d.ts → widget/chatResponseResourceFileSystemProvider.d.ts} +1 -1
  179. package/vscode/src/vs/workbench/contrib/chat/common/{chatResponseResourceFileSystemProvider.js → widget/chatResponseResourceFileSystemProvider.js} +4 -4
  180. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +5 -5
  181. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
  182. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +23 -23
  183. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  184. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/common/remoteCodingAgentsService.js +1 -1
  185. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css +1 -0
  186. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  187. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +47 -30
  188. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +1 -1
  189. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.d.ts +1 -1
  190. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +1 -1
  191. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +15 -1
  192. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +33 -11
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +4 -3
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +6 -5
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +1 -1
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +12 -2
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +1 -0
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +17 -2
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +12 -2
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +10 -1
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +22 -1
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +3 -2
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +100 -23
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +6 -6
  206. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +2 -1
  207. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +19 -6
  208. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{commandLineAutoApprover.d.ts → tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts} +11 -12
  209. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/{commandLineAutoApprover.js → tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js} +83 -6
  210. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +45 -0
  211. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +156 -0
  212. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +17 -2
  213. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +10 -0
  214. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +1 -1
  215. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +64 -26
  216. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +1 -0
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +16 -8
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +14 -0
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +31 -0
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.d.ts +1 -1
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +4 -4
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.d.ts +1 -1
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +4 -4
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.d.ts +1 -1
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +4 -4
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +3 -2
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +55 -23
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +1 -1
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +3 -3
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +3 -3
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +85 -46
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.d.ts +1 -1
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +16 -16
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.d.ts +1 -1
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +9 -9
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.d.ts +1 -1
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +16 -16
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.d.ts +1 -1
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +9 -5
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +1 -1
  241. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +0 -46
  242. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +0 -248
  243. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.d.ts +0 -36
  244. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.js +0 -184
  245. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsview.css +0 -19
  246. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.d.ts +0 -22
  247. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +0 -229
  248. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.d.ts +0 -102
  249. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +0 -495
  250. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.d.ts +0 -64
  251. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +0 -386
  252. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +0 -299
  253. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewPane.css +0 -142
  254. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewTitleControl.css +0 -39
  255. /package/vscode/src/vs/workbench/contrib/chat/browser/{chatTerminalOutputAccessibleView.d.ts → accessibility/chatTerminalOutputAccessibleView.d.ts} +0 -0
  256. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → attachments/media}/simpleBrowserOverlay.css +0 -0
  257. /package/vscode/src/vs/workbench/contrib/chat/browser/{chatEditing → attachments}/simpleBrowserEditorOverlay.d.ts +0 -0
  258. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatEditing/media}/chatEditingEditorOverlay.css +0 -0
  259. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatEditing/media}/chatEditorController.css +0 -0
  260. /package/vscode/src/vs/workbench/contrib/chat/browser/{chatContentParts → widget/chatContentParts}/chatMarkdownAnchorService.js +0 -0
  261. /package/vscode/src/vs/workbench/contrib/chat/browser/{chatLayoutService.js → widget/chatLayoutService.js} +0 -0
  262. /package/vscode/src/vs/workbench/contrib/chat/browser/{chatEdinputInputContentProvider.d.ts → widget/input/editor/chatEditorInputContentProvider.d.ts} +0 -0
  263. /package/vscode/src/vs/workbench/contrib/chat/browser/{chatEdinputInputContentProvider.js → widget/input/editor/chatEditorInputContentProvider.js} +0 -0
  264. /package/vscode/src/vs/workbench/contrib/chat/browser/{contrib → widget/input/editor}/chatInputEditorContrib.d.ts +0 -0
  265. /package/vscode/src/vs/workbench/contrib/chat/browser/{contrib → widget/input/editor}/editorHoverWrapper.d.ts +0 -0
  266. /package/vscode/src/vs/workbench/contrib/chat/browser/{contrib → widget/input/editor}/editorHoverWrapper.js +0 -0
  267. /package/vscode/src/vs/workbench/contrib/chat/browser/{contrib → widget/input/editor}/media/editorHoverWrapper.css +0 -0
  268. /package/vscode/src/vs/workbench/contrib/chat/browser/{media → widget/input/media}/chatStatusWidget.css +0 -0
  269. /package/vscode/src/vs/workbench/contrib/chat/common/{chatCodeMapperService.js → editing/chatCodeMapperService.js} +0 -0
  270. /package/vscode/src/vs/workbench/contrib/chat/common/{chatModelStore.js → model/chatModelStore.js} +0 -0
  271. /package/vscode/src/vs/workbench/contrib/chat/common/{chatSlashCommands.js → participants/chatSlashCommands.js} +0 -0
@@ -5,7 +5,7 @@ import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/even
5
5
  import { MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
6
  import { ITerminalLogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service';
7
7
  import { waitForIdle, waitForIdleWithPromptHeuristics } from './executeStrategy.js';
8
- import { setupRecreatingStartMarker } from './strategyHelpers.js';
8
+ import { createAltBufferPromise, setupRecreatingStartMarker } from './strategyHelpers.js';
9
9
 
10
10
  let NoneExecuteStrategy = class NoneExecuteStrategy {
11
11
  constructor(_instance, _hasReceivedUserInput, _logService) {
@@ -28,6 +28,7 @@ let NoneExecuteStrategy = class NoneExecuteStrategy {
28
28
  if (!xterm) {
29
29
  throw ( new Error('Xterm is not available'));
30
30
  }
31
+ const alternateBufferPromise = createAltBufferPromise(xterm, store, this._log.bind(this));
31
32
  this._log('Waiting for idle');
32
33
  await waitForIdle(this._instance.onData, 1000);
33
34
  if (token.isCancellationRequested) {
@@ -42,7 +43,21 @@ let NoneExecuteStrategy = class NoneExecuteStrategy {
42
43
  this._log(`Executing command line \`${commandLine}\``);
43
44
  this._instance.sendText(commandLine, true);
44
45
  this._log('Waiting for idle with prompt heuristics');
45
- const promptResult = await waitForIdleWithPromptHeuristics(this._instance.onData, this._instance, 1000, 10000);
46
+ const promptResultOrAltBuffer = await Promise.race([
47
+ waitForIdleWithPromptHeuristics(this._instance.onData, this._instance, 1000, 10000),
48
+ alternateBufferPromise.then(() => 'alternateBuffer')
49
+ ]);
50
+ if (promptResultOrAltBuffer === 'alternateBuffer') {
51
+ this._log('Detected alternate buffer entry, skipping output capture');
52
+ return {
53
+ output: undefined,
54
+ additionalInformation: undefined,
55
+ exitCode: undefined,
56
+ error: 'alternateBuffer',
57
+ didEnterAltBuffer: true,
58
+ };
59
+ }
60
+ const promptResult = promptResultOrAltBuffer;
46
61
  this._log(`Prompt detection result: ${promptResult.detected ? 'detected' : 'not detected'} - ${promptResult.reason}`);
47
62
  if (token.isCancellationRequested) {
48
63
  throw ( new CancellationError());
@@ -6,7 +6,7 @@ import { MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api
6
6
  import { isNumber } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
7
7
  import { ITerminalLogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service';
8
8
  import { trackIdleOnPrompt } from './executeStrategy.js';
9
- import { setupRecreatingStartMarker } from './strategyHelpers.js';
9
+ import { createAltBufferPromise, setupRecreatingStartMarker } from './strategyHelpers.js';
10
10
 
11
11
  let RichExecuteStrategy = class RichExecuteStrategy {
12
12
  constructor(_instance, _commandDetection, _logService) {
@@ -26,6 +26,7 @@ let RichExecuteStrategy = class RichExecuteStrategy {
26
26
  if (!xterm) {
27
27
  throw ( new Error('Xterm is not available'));
28
28
  }
29
+ const alternateBufferPromise = createAltBufferPromise(xterm, store, this._log.bind(this));
29
30
  const onDone = Promise.race([
30
31
  Event.toPromise(this._commandDetection.onCommandFinished, store).then(e => {
31
32
  this._log('onDone via end event');
@@ -49,10 +50,19 @@ let RichExecuteStrategy = class RichExecuteStrategy {
49
50
  this._log(`Executing command line \`${commandLine}\``);
50
51
  this._instance.runCommand(commandLine, true, commandId);
51
52
  this._log('Waiting for done event');
52
- const onDoneResult = await onDone;
53
+ const onDoneResult = await Promise.race([onDone, alternateBufferPromise.then(() => ({ type: 'alternateBuffer' }))]);
53
54
  if (onDoneResult && onDoneResult.type === 'disposal') {
54
55
  throw ( new Error('The terminal was closed'));
55
56
  }
57
+ if (onDoneResult && onDoneResult.type === 'alternateBuffer') {
58
+ this._log('Detected alternate buffer entry, skipping output capture');
59
+ return {
60
+ output: undefined,
61
+ exitCode: undefined,
62
+ error: 'alternateBuffer',
63
+ didEnterAltBuffer: true
64
+ };
65
+ }
56
66
  const finishedCommand = onDoneResult && onDoneResult.type === 'success' ? onDoneResult.command : undefined;
57
67
  if (token.isCancellationRequested) {
58
68
  throw ( new CancellationError());
@@ -1,4 +1,4 @@
1
- import { DisposableStore, MutableDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
1
+ import { DisposableStore, MutableDisposable, type IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
2
  import type { IMarker as IXtermMarker } from "@xterm/xterm";
3
3
  /**
4
4
  * Sets up a recreating start marker which is resilient to prompts that clear/re-render (eg. transient
@@ -10,3 +10,12 @@ export declare function setupRecreatingStartMarker(xterm: {
10
10
  registerMarker(): IXtermMarker | undefined;
11
11
  };
12
12
  }, startMarker: MutableDisposable<IXtermMarker>, fire: (marker: IXtermMarker | undefined) => void, store: DisposableStore, log?: (message: string) => void): void;
13
+ export declare function createAltBufferPromise(xterm: {
14
+ raw: {
15
+ buffer: {
16
+ active: unknown;
17
+ alternate: unknown;
18
+ onBufferChange: (callback: () => void) => IDisposable;
19
+ };
20
+ };
21
+ }, store: DisposableStore, log?: (message: string) => void): Promise<void>;
@@ -1,4 +1,5 @@
1
1
 
2
+ import { DeferredPromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
2
3
  import { MutableDisposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
3
4
 
4
5
  function setupRecreatingStartMarker(xterm, startMarker, fire, store, log) {
@@ -27,5 +28,25 @@ function setupRecreatingStartMarker(xterm, startMarker, fire, store, log) {
27
28
  }));
28
29
  store.add(startMarker);
29
30
  }
31
+ function createAltBufferPromise(xterm, store, log) {
32
+ const deferred = ( new DeferredPromise());
33
+ const complete = () => {
34
+ if (!deferred.isSettled) {
35
+ log?.('Detected alternate buffer entry');
36
+ deferred.complete();
37
+ }
38
+ };
39
+ if (xterm.raw.buffer.active === xterm.raw.buffer.alternate) {
40
+ complete();
41
+ }
42
+ else {
43
+ store.add(xterm.raw.buffer.onBufferChange(() => {
44
+ if (xterm.raw.buffer.active === xterm.raw.buffer.alternate) {
45
+ complete();
46
+ }
47
+ }));
48
+ }
49
+ return deferred.p;
50
+ }
30
51
 
31
- export { setupRecreatingStartMarker };
52
+ export { createAltBufferPromise, setupRecreatingStartMarker };
@@ -1,9 +1,10 @@
1
1
  import { OperatingSystem } from "@codingame/monaco-vscode-api/vscode/vs/base/common/platform";
2
- import type { ToolConfirmationAction } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
3
- import type { ICommandApprovalResultWithReason } from "./commandLineAutoApprover.js";
2
+ import type { ToolConfirmationAction } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
3
+ import type { ICommandApprovalResultWithReason } from "./tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js";
4
4
  export declare function isPowerShell(envShell: string, os: OperatingSystem): boolean;
5
5
  export declare function isWindowsPowerShell(envShell: string): boolean;
6
6
  export declare function isZsh(envShell: string, os: OperatingSystem): boolean;
7
+ export declare function isBash(envShell: string, os: OperatingSystem): boolean;
7
8
  export declare function isFish(envShell: string, os: OperatingSystem): boolean;
8
9
  export declare const TRUNCATION_MESSAGE = "\n\n[... PREVIOUS OUTPUT TRUNCATED ...]\n\n";
9
10
  export declare function truncateOutputKeepingTail(output: string, maxLength: number): string;
@@ -5,6 +5,7 @@ import { win32, posix } from '@codingame/monaco-vscode-api/vscode/vs/base/common
5
5
  import { OperatingSystem } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
6
6
  import { escapeRegExpCharacters } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
7
7
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
8
+ import { isAutoApproveRule } from './tools/commandLineAnalyzer/commandLineAnalyzer.js';
8
9
 
9
10
  function isPowerShell(envShell, os) {
10
11
  if (os === OperatingSystem.Windows) {
@@ -21,6 +22,12 @@ function isZsh(envShell, os) {
21
22
  }
22
23
  return /^zsh$/.test(posix.basename(envShell));
23
24
  }
25
+ function isBash(envShell, os) {
26
+ if (os === OperatingSystem.Windows) {
27
+ return /^bash(?:\.exe)?$/i.test(win32.basename(envShell));
28
+ }
29
+ return /^bash$/.test(posix.basename(envShell));
30
+ }
24
31
  function isFish(envShell, os) {
25
32
  if (os === OperatingSystem.Windows) {
26
33
  return /^fish(?:\.exe)?$/i.test(win32.basename(envShell));
@@ -56,25 +63,37 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
56
63
  'curl', 'wget', 'invoke-restmethod', 'invoke-webrequest', 'irm', 'iwr',
57
64
  ]));
58
65
  const commandsWithSubcommands = ( new Set(
59
- ['git', 'npm', 'yarn', 'docker', 'kubectl', 'cargo', 'dotnet', 'mvn', 'gradle']
66
+ ['git', 'npm', 'npx', 'yarn', 'docker', 'kubectl', 'cargo', 'dotnet', 'mvn', 'gradle']
60
67
  ));
61
68
  const commandsWithSubSubCommands = ( new Set(['npm run', 'yarn run']));
69
+ const findNextNonFlagArg = (parts, startIndex) => {
70
+ for (let i = startIndex; i < parts.length; i++) {
71
+ if (!parts[i].startsWith('-')) {
72
+ return i;
73
+ }
74
+ }
75
+ return undefined;
76
+ };
62
77
  const subCommandsToSuggest = Array.from(( new Set(coalesce(( unapprovedSubCommands.map(command => {
63
78
  const parts = command.trim().split(/\s+/);
64
79
  const baseCommand = parts[0].toLowerCase();
65
- const baseSubCommand = parts.length > 1 ? `${parts[0]} ${parts[1]}`.toLowerCase() : '';
66
80
  if (( neverAutoApproveCommands.has(baseCommand))) {
67
81
  return undefined;
68
82
  }
69
- if (( commandsWithSubSubCommands.has(baseSubCommand))) {
70
- if (parts.length >= 3 && !parts[2].startsWith('-')) {
71
- return `${parts[0]} ${parts[1]} ${parts[2]}`;
72
- }
73
- return undefined;
74
- }
75
- else if (( commandsWithSubcommands.has(baseCommand))) {
76
- if (parts.length >= 2 && !parts[1].startsWith('-')) {
77
- return `${parts[0]} ${parts[1]}`;
83
+ if (( commandsWithSubcommands.has(baseCommand))) {
84
+ const subCommandIndex = findNextNonFlagArg(parts, 1);
85
+ if (subCommandIndex !== undefined) {
86
+ const baseSubCommand = `${parts[0]} ${parts[subCommandIndex]}`.toLowerCase();
87
+ if (( commandsWithSubSubCommands.has(baseSubCommand))) {
88
+ const subSubCommandIndex = findNextNonFlagArg(parts, subCommandIndex + 1);
89
+ if (subSubCommandIndex !== undefined) {
90
+ return parts.slice(0, subSubCommandIndex + 1).join(' ');
91
+ }
92
+ return undefined;
93
+ }
94
+ else {
95
+ return parts.slice(0, subCommandIndex + 1).join(' ');
96
+ }
78
97
  }
79
98
  return undefined;
80
99
  }
@@ -85,29 +104,54 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
85
104
  if (subCommandsToSuggest.length > 0) {
86
105
  let subCommandLabel;
87
106
  if (subCommandsToSuggest.length === 1) {
88
- subCommandLabel = ( localize(11989, 'Always Allow Command: {0}', subCommandsToSuggest[0]));
107
+ subCommandLabel = `\`${subCommandsToSuggest[0]} \u2026\``;
89
108
  }
90
109
  else {
91
- const commandSeparated = subCommandsToSuggest.join(', ');
92
- subCommandLabel = ( localize(11990, 'Always Allow Commands: {0}', commandSeparated));
110
+ subCommandLabel = `Commands ${( subCommandsToSuggest.map(e => `\`${e} \u2026\``)).join(', ')}`;
93
111
  }
94
112
  actions.push({
95
- label: subCommandLabel,
113
+ label: `Allow ${subCommandLabel} in this Session`,
114
+ data: {
115
+ type: 'newRule',
116
+ rule: ( subCommandsToSuggest.map(key => ({
117
+ key,
118
+ value: true,
119
+ scope: 'session'
120
+ })))
121
+ }
122
+ });
123
+ actions.push({
124
+ label: `Allow ${subCommandLabel} in this Workspace`,
125
+ data: {
126
+ type: 'newRule',
127
+ rule: ( subCommandsToSuggest.map(key => ({
128
+ key,
129
+ value: true,
130
+ scope: 'workspace'
131
+ })))
132
+ }
133
+ });
134
+ actions.push({
135
+ label: `Always Allow ${subCommandLabel}`,
96
136
  data: {
97
137
  type: 'newRule',
98
138
  rule: ( subCommandsToSuggest.map(key => ({
99
139
  key,
100
- value: true
140
+ value: true,
141
+ scope: 'user'
101
142
  })))
102
143
  }
103
144
  });
104
145
  }
146
+ if (actions.length > 0) {
147
+ actions.push(( new Separator()));
148
+ }
105
149
  const firstSubcommandFirstWord = unapprovedSubCommands.length > 0 ? unapprovedSubCommands[0].split(' ')[0] : '';
106
150
  if (firstSubcommandFirstWord !== commandLine &&
107
151
  !( commandsWithSubcommands.has(commandLine)) &&
108
152
  !( commandsWithSubSubCommands.has(commandLine))) {
109
153
  actions.push({
110
- label: ( localize(11991, 'Always Allow Exact Command Line')),
154
+ label: ( localize(12013, 'Allow Exact Command Line in this Session')),
111
155
  data: {
112
156
  type: 'newRule',
113
157
  rule: {
@@ -115,7 +159,36 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
115
159
  value: {
116
160
  approve: true,
117
161
  matchCommandLine: true
118
- }
162
+ },
163
+ scope: 'session'
164
+ }
165
+ }
166
+ });
167
+ actions.push({
168
+ label: ( localize(12014, 'Allow Exact Command Line in this Workspace')),
169
+ data: {
170
+ type: 'newRule',
171
+ rule: {
172
+ key: `/^${escapeRegExpCharacters(commandLine)}$/`,
173
+ value: {
174
+ approve: true,
175
+ matchCommandLine: true
176
+ },
177
+ scope: 'workspace'
178
+ }
179
+ }
180
+ });
181
+ actions.push({
182
+ label: ( localize(12015, 'Always Allow Exact Command Line')),
183
+ data: {
184
+ type: 'newRule',
185
+ rule: {
186
+ key: `/^${escapeRegExpCharacters(commandLine)}$/`,
187
+ value: {
188
+ approve: true,
189
+ matchCommandLine: true
190
+ },
191
+ scope: 'user'
119
192
  }
120
193
  }
121
194
  });
@@ -125,15 +198,15 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
125
198
  actions.push(( new Separator()));
126
199
  }
127
200
  actions.push({
128
- label: ( localize(11992, 'Allow All Commands in this Session')),
129
- tooltip: ( localize(11993, 'Allow this tool to run in this session without confirmation.')),
201
+ label: ( localize(12016, 'Allow All Commands in this Session')),
202
+ tooltip: ( localize(12017, 'Allow this tool to run in this session without confirmation.')),
130
203
  data: {
131
204
  type: 'sessionApproval'
132
205
  }
133
206
  });
134
207
  actions.push(( new Separator()));
135
208
  actions.push({
136
- label: ( localize(11994, 'Configure Auto Approve...')),
209
+ label: ( localize(12018, 'Configure Auto Approve...')),
137
210
  data: {
138
211
  type: 'configure'
139
212
  }
@@ -142,8 +215,12 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
142
215
  }
143
216
  function dedupeRules(rules) {
144
217
  return rules.filter((result, index, array) => {
145
- return result.rule && array.findIndex(r => r.rule && r.rule.sourceText === result.rule.sourceText) === index;
218
+ if (!isAutoApproveRule(result.rule)) {
219
+ return false;
220
+ }
221
+ const sourceText = result.rule.sourceText;
222
+ return array.findIndex(r => isAutoApproveRule(r.rule) && r.rule.sourceText === sourceText) === index;
146
223
  });
147
224
  }
148
225
 
149
- export { TRUNCATION_MESSAGE, dedupeRules, generateAutoApproveActions, isFish, isPowerShell, isWindowsPowerShell, isZsh, truncateOutputKeepingTail };
226
+ export { TRUNCATION_MESSAGE, dedupeRules, generateAutoApproveActions, isBash, isFish, isPowerShell, isWindowsPowerShell, isZsh, truncateOutputKeepingTail };
@@ -4,7 +4,7 @@ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
4
  import { Range } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range";
5
5
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
6
6
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
7
- import { IToolInvocationContext, ToolProgress } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
7
+ import { IToolInvocationContext, ToolProgress } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
8
8
  import { Task } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/tasks";
9
9
  import { ITaskService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/tasks/common/taskService.service";
10
10
  import { ITerminalInstance } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
@@ -11,8 +11,8 @@ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/pl
11
11
  import { TerminalSettingId } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal';
12
12
  import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
13
13
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
14
- import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
15
- import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
14
+ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
15
+ import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
16
16
  import { registerActiveInstanceAction, sharedWhenClause } from '@codingame/monaco-vscode-xterm-common/vscode/vs/workbench/contrib/terminal/browser/terminalActions';
17
17
  import { TerminalContextMenuGroup } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminalMenus';
18
18
  import { TerminalContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/common/terminalContextKey';
@@ -72,8 +72,8 @@ let ChatAgentToolsContribution = class ChatAgentToolsContribution extends Dispos
72
72
  const createAndRunTaskTool = instantiationService.createInstance(CreateAndRunTaskTool);
73
73
  this._register(toolsService.registerTool(CreateAndRunTaskToolData, createAndRunTaskTool));
74
74
  this._register(toolsService.executeToolSet.addTool(RunTaskToolData));
75
- this._register(toolsService.executeToolSet.addTool(GetTaskOutputToolData));
76
75
  this._register(toolsService.executeToolSet.addTool(CreateAndRunTaskToolData));
76
+ this._register(toolsService.readToolSet.addTool(GetTaskOutputToolData));
77
77
  }
78
78
  };
79
79
  ChatAgentToolsContribution = ( __decorate([
@@ -83,7 +83,7 @@ ChatAgentToolsContribution = ( __decorate([
83
83
  registerWorkbenchContribution2(ChatAgentToolsContribution.ID, ChatAgentToolsContribution, WorkbenchPhase.AfterRestored);
84
84
  registerActiveInstanceAction({
85
85
  id: TerminalChatAgentToolsCommandId.ChatAddTerminalSelection,
86
- title: ( localize(11995, 'Add Terminal Selection to Chat')),
86
+ title: ( localize(12019, 'Add Terminal Selection to Chat')),
87
87
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, sharedWhenClause.terminalAvailable)),
88
88
  menu: [
89
89
  {
@@ -106,8 +106,8 @@ registerActiveInstanceAction({
106
106
  chatView.attachmentModel.addContext({
107
107
  id: `terminal-selection-${Date.now()}`,
108
108
  kind: 'generic',
109
- name: ( localize(11996, 'Terminal Selection')),
110
- fullName: ( localize(11996, 'Terminal Selection')),
109
+ name: ( localize(12020, 'Terminal Selection')),
110
+ fullName: ( localize(12020, 'Terminal Selection')),
111
111
  value: selection,
112
112
  icon: Codicon.terminal
113
113
  });
@@ -1,4 +1,5 @@
1
1
  import type { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
+ import { OperatingSystem } from "@codingame/monaco-vscode-api/vscode/vs/base/common/platform";
2
3
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
3
4
  import { ITerminalProfile } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal";
4
5
  import { ITerminalLogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service";
@@ -24,7 +25,7 @@ export declare class ToolTerminalCreator {
24
25
  */
25
26
  private static _lastSuccessfulShell;
26
27
  constructor(_configurationService: IConfigurationService, _logService: ITerminalLogService, _terminalService: ITerminalService);
27
- createTerminal(shellOrProfile: string | ITerminalProfile, token: CancellationToken): Promise<IToolTerminal>;
28
+ createTerminal(shellOrProfile: string | ITerminalProfile, os: OperatingSystem, token: CancellationToken): Promise<IToolTerminal>;
28
29
  /**
29
30
  * Synchronously update shell integration quality based on the terminal instance's current
30
31
  * capabilities. This is a defensive change to avoid no shell integration being sticky
@@ -14,6 +14,8 @@ import { TerminalSettingId } from '@codingame/monaco-vscode-api/vscode/vs/platfo
14
14
  import { ITerminalLogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service';
15
15
  import { ITerminalService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
16
16
  import { getShellIntegrationTimeout } from '@codingame/monaco-vscode-xterm-common/vscode/vs/workbench/contrib/terminal/common/terminalEnvironment';
17
+ import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
18
+ import { isBash, isZsh, isFish, isPowerShell } from './runInTerminalHelpers.js';
17
19
 
18
20
  var ToolTerminalCreator_1;
19
21
  var ShellLaunchType;
@@ -36,8 +38,8 @@ let ToolTerminalCreator = class ToolTerminalCreator {
36
38
  this._logService = _logService;
37
39
  this._terminalService = _terminalService;
38
40
  }
39
- async createTerminal(shellOrProfile, token) {
40
- const instance = await this._createCopilotTerminal(shellOrProfile);
41
+ async createTerminal(shellOrProfile, os, token) {
42
+ const instance = await this._createCopilotTerminal(shellOrProfile, os);
41
43
  const toolTerminal = {
42
44
  instance,
43
45
  shellIntegrationQuality: ShellIntegrationQuality.None,
@@ -91,14 +93,25 @@ let ToolTerminalCreator = class ToolTerminalCreator {
91
93
  }
92
94
  }
93
95
  }
94
- _createCopilotTerminal(shellOrProfile) {
96
+ _createCopilotTerminal(shellOrProfile, os) {
97
+ const shellPath = isString(shellOrProfile) ? shellOrProfile : shellOrProfile.path;
98
+ const env = {
99
+ GIT_PAGER: 'cat',
100
+ };
101
+ const preventShellHistory = this._configurationService.getValue(TerminalChatAgentToolsSettingId.PreventShellHistory) === true;
102
+ if (preventShellHistory) {
103
+ if (isBash(shellPath, os) ||
104
+ isZsh(shellPath, os) ||
105
+ isFish(shellPath, os) ||
106
+ isPowerShell(shellPath, os)) {
107
+ env['VSCODE_PREVENT_SHELL_HISTORY'] = '1';
108
+ }
109
+ }
95
110
  const config = {
96
111
  icon: ThemeIcon.fromId(Codicon.chatSparkle.id),
97
112
  hideFromUser: true,
98
113
  forcePersist: true,
99
- env: {
100
- GIT_PAGER: 'cat',
101
- }
114
+ env,
102
115
  };
103
116
  if (isString(shellOrProfile)) {
104
117
  config.executable = shellOrProfile;
@@ -1,30 +1,29 @@
1
1
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
2
  import type { OperatingSystem } from "@codingame/monaco-vscode-api/vscode/vs/base/common/platform";
3
- import { ConfigurationTarget } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration";
3
+ import type { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
4
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
5
- export interface IAutoApproveRule {
6
- regex: RegExp;
7
- regexCaseInsensitive: RegExp;
8
- sourceText: string;
9
- sourceTarget: ConfigurationTarget;
10
- isDefaultRule: boolean;
11
- }
5
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
6
+ import { ITerminalChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service";
7
+ import type { IAutoApproveRule, INpmScriptAutoApproveRule } from "../commandLineAnalyzer.js";
12
8
  export interface ICommandApprovalResultWithReason {
13
9
  result: ICommandApprovalResult;
14
10
  reason: string;
15
- rule?: IAutoApproveRule;
11
+ rule?: IAutoApproveRule | INpmScriptAutoApproveRule;
16
12
  }
17
13
  export type ICommandApprovalResult = "approved" | "denied" | "noMatch";
18
14
  export declare class CommandLineAutoApprover extends Disposable {
19
15
  private readonly _configurationService;
16
+ private readonly _terminalChatService;
20
17
  private _denyListRules;
21
18
  private _allowListRules;
22
19
  private _allowListCommandLineRules;
23
20
  private _denyListCommandLineRules;
24
- constructor(_configurationService: IConfigurationService);
21
+ private readonly _npmScriptAutoApprover;
22
+ constructor(_configurationService: IConfigurationService, instantiationService: IInstantiationService, _terminalChatService: ITerminalChatService);
25
23
  updateConfiguration(): void;
26
- isCommandAutoApproved(command: string, shell: string, os: OperatingSystem): ICommandApprovalResultWithReason;
27
- isCommandLineAutoApproved(commandLine: string): ICommandApprovalResultWithReason;
24
+ isCommandAutoApproved(command: string, shell: string, os: OperatingSystem, cwd: URI | undefined, chatSessionId?: string): Promise<ICommandApprovalResultWithReason>;
25
+ isCommandLineAutoApproved(commandLine: string, chatSessionId?: string): ICommandApprovalResultWithReason;
26
+ private _getSessionRules;
28
27
  private _commandMatchesRule;
29
28
  private _mapAutoApproveConfigToRules;
30
29
  private _convertAutoApproveEntryToRegex;