@codingame/monaco-vscode-chat-service-override 22.1.8 → 23.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 (276) hide show
  1. package/index.js +16 -7
  2. package/package.json +43 -41
  3. package/vscode/src/vs/editor/common/diff/documentDiffProvider.d.ts +1 -1
  4. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +6 -6
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +57 -48
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +2 -2
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +18 -18
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +1 -1
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +26 -17
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +51 -5
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -2
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +4 -4
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +2 -2
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +7 -7
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +19 -19
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/{chatClearActions.d.ts → chatNewActions.d.ts} +2 -1
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/{chatClearActions.js → chatNewActions.js} +32 -32
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +4 -4
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +9 -9
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.d.ts +9 -9
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatSessionActions.js +101 -98
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +35 -24
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +43 -25
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +1 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +33 -32
  27. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.d.ts +53 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionViewModel.js +154 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.d.ts +7 -0
  30. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +13 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.d.ts +44 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsView.js +347 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +85 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +250 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsview.css +24 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +97 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +290 -231
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +2 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +7 -10
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.d.ts +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatAttachmentResolveService.js +6 -6
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownAnchorService.d.ts +1 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.d.ts +24 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatContextService.js +113 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimeline.d.ts +31 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.d.ts +102 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +646 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +2 -3
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +46 -26
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +17 -4
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +44 -34
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +14 -14
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +25 -6
  54. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +46 -10
  55. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +45 -6
  56. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +30 -10
  57. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +10 -3
  58. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +60 -9
  59. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.d.ts +117 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +12 -0
  61. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +6 -4
  62. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +60 -55
  63. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +29 -16
  64. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +365 -143
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +2 -3
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +3 -30
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +7 -3
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +58 -22
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +1 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +5 -4
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.d.ts +3 -3
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +3 -3
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +5 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +6 -18
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.d.ts +1 -3
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +7 -11
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.d.ts +1 -1
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +13 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/simpleBrowserEditorOverlay.js +38 -33
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +11 -6
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +83 -24
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.d.ts +1 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +91 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +64 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +370 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.d.ts +25 -0
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +56 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +61 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +349 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +43 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +787 -0
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.d.ts +17 -0
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +109 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +122 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +211 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatUsageWidget.css +69 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +1 -1
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +21 -20
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +54 -54
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +1 -1
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +31 -22
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +1 -1
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +16 -6
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.d.ts +6 -3
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionTracker.js +29 -21
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.d.ts +5 -2
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/localChatSessionsProvider.js +37 -33
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.d.ts +15 -12
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/chatSessionsView.js +96 -131
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.d.ts +12 -7
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsTreeRenderer.js +66 -34
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.d.ts +5 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.js +77 -71
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.d.ts +91 -18
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions.contribution.js +458 -138
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +3 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +212 -150
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus.js +96 -89
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +3 -2
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +5 -5
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +3 -4
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +15 -16
  124. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +1 -1
  125. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +33 -17
  126. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +1 -1
  127. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +3 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.d.ts +27 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsConfirmationService.js +688 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +15 -10
  131. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +126 -135
  132. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +6 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditorController.css +2 -1
  134. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +38 -1
  135. package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +14 -14
  136. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.d.ts +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +28 -26
  138. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +1 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +3 -3
  140. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +9 -6
  141. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +24 -13
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +15 -14
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +25 -23
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.d.ts +21 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +89 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +16 -16
  147. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +30 -29
  148. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +10 -19
  149. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +61 -43
  150. package/vscode/src/vs/workbench/contrib/chat/common/chatResponseResourceFileSystemProvider.js +7 -4
  151. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +28 -28
  152. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +254 -165
  153. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +4 -4
  154. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +2 -2
  155. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +1 -1
  156. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.js +4 -6
  157. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.d.ts +10 -6
  158. package/vscode/src/vs/workbench/contrib/chat/common/chatTodoListService.js +20 -12
  159. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +13 -17
  160. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +9 -8
  161. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.d.ts +1 -0
  162. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +51 -21
  163. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.d.ts +7 -3
  164. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +74 -20
  165. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +11 -6
  166. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -2
  167. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +83 -53
  168. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.d.ts +2 -1
  169. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +136 -78
  170. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +4 -4
  171. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +18 -10
  172. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +357 -157
  173. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +1 -1
  174. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +55 -28
  175. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +235 -108
  176. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +12 -2
  177. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +50 -4
  178. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +27 -27
  179. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +1 -1
  180. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +2 -2
  181. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.d.ts +3 -1
  182. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +11 -7
  183. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +12 -14
  184. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +1 -1
  185. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +1 -1
  186. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +18 -30
  187. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +62 -139
  188. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +1 -1
  189. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +16 -15
  190. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  191. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +2 -2
  192. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +3 -0
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +119 -15
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +6 -4
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +47 -0
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +192 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.d.ts +7 -5
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +21 -16
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandLineAutoApprover.js +8 -3
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -2
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +18 -27
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +5 -2
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +3 -1
  206. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +1 -1
  207. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -25
  208. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -2
  209. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +18 -27
  210. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +12 -0
  211. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +31 -0
  212. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +3 -0
  213. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +24 -8
  214. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +8 -0
  215. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +1 -1
  216. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +33 -4
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +42 -13
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +14 -21
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +23 -0
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +18 -0
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +227 -0
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +17 -0
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +133 -0
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +36 -0
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +17 -0
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +4 -4
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +5 -1
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +75 -37
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -0
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.d.ts +8 -0
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +71 -0
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +28 -15
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +366 -363
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +18 -18
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +9 -9
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +16 -16
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +19 -0
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +123 -0
  245. package/vscode/src/vs/base/common/yaml.d.ts +0 -74
  246. package/vscode/src/vs/base/common/yaml.js +0 -597
  247. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.d.ts +0 -8
  248. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContext.js +0 -239
  249. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +0 -102
  250. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.js +0 -435
  251. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.d.ts +0 -14
  252. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookDiff.js +0 -67
  253. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +0 -49
  254. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +0 -380
  255. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.d.ts +0 -37
  256. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/common.js +0 -137
  257. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.d.ts +0 -44
  258. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.js +0 -176
  259. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.d.ts +0 -4
  260. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.js +0 -206
  261. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts +0 -7
  262. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.js +0 -79
  263. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.d.ts +0 -8
  264. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.js +0 -145
  265. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.d.ts +0 -65
  266. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.js +0 -306
  267. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.d.ts +0 -12
  268. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.js +0 -102
  269. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.d.ts +0 -97
  270. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/newPromptsParser.js +0 -247
  271. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.d.ts +0 -118
  272. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.js +0 -10
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.d.ts +0 -10
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandSimplifier.js +0 -55
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.d.ts +0 -2
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/subCommands.js +0 -66
@@ -14,14 +14,16 @@ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platf
14
14
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
15
15
  import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
16
16
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
17
+ import { IWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service';
17
18
  import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
18
- import { showChatView } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
19
+ import { showChatView } from '@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/browser/chat';
19
20
  import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
20
- import { isCellTextEditOperation } from '@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel';
21
+ import { isCellTextEditOperationArray } from '@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/common/chatModel';
22
+ import { ChatMode } from '@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/common/chatModes';
21
23
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service';
22
24
  import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
23
- import { InlineChatWidget } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatWidget';
24
- import { MENU_INLINE_CHAT_WIDGET_SECONDARY } from '@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
25
+ import { InlineChatWidget } from '@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatWidget';
26
+ import { MENU_INLINE_CHAT_WIDGET_SECONDARY } from '@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
25
27
  import { TerminalStickyScrollContribution } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminalStickyScrollContribution';
26
28
  import * as terminalChatWidget from './media/terminalChatWidget.css';
27
29
  import { TerminalChatContextKeys, MENU_TERMINAL_CHAT_WIDGET_INPUT_SIDE_TOOLBAR, TerminalChatCommandId, MENU_TERMINAL_CHAT_WIDGET_STATUS } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminalContrib/chat/browser/terminalChat';
@@ -53,7 +55,7 @@ let TerminalChatWidget = class TerminalChatWidget extends Disposable {
53
55
  get lastResponseContent() {
54
56
  return this._lastResponseContent;
55
57
  }
56
- constructor(_terminalElement, _instance, _xterm, contextKeyService, _chatService, _storageService, _viewsService, instantiationService, _chatAgentService) {
58
+ constructor(_terminalElement, _instance, _xterm, contextKeyService, _chatService, _storageService, _viewsService, instantiationService, _chatAgentService, _layoutService) {
57
59
  super();
58
60
  this._terminalElement = _terminalElement;
59
61
  this._instance = _instance;
@@ -62,6 +64,7 @@ let TerminalChatWidget = class TerminalChatWidget extends Disposable {
62
64
  this._storageService = _storageService;
63
65
  this._viewsService = _viewsService;
64
66
  this._chatAgentService = _chatAgentService;
67
+ this._layoutService = _layoutService;
65
68
  this._onDidHide = this._register(( new Emitter()));
66
69
  this.onDidHide = this._onDidHide.event;
67
70
  this._messages = this._store.add(( new Emitter()));
@@ -100,7 +103,8 @@ let TerminalChatWidget = class TerminalChatWidget extends Disposable {
100
103
  telemetrySource: 'terminal-inline-chat',
101
104
  executeToolbar: MenuId.ChatExecute,
102
105
  inputSideToolbar: MENU_TERMINAL_CHAT_WIDGET_INPUT_SIDE_TOOLBAR,
103
- }
106
+ },
107
+ defaultMode: ChatMode.Ask
104
108
  }
105
109
  });
106
110
  this._register(this._inlineChatWidget.chatWidget.onDidChangeViewModel(() => this._saveViewState()));
@@ -163,7 +167,7 @@ let TerminalChatWidget = class TerminalChatWidget extends Disposable {
163
167
  }
164
168
  _resetPlaceholder() {
165
169
  const defaultAgent = this._chatAgentService.getDefaultAgent(ChatAgentLocation.Terminal);
166
- this.inlineChatWidget.placeholder = defaultAgent?.description ?? ( localize(11538, 'Ask about commands'));
170
+ this.inlineChatWidget.placeholder = defaultAgent?.description ?? ( localize(11825, 'Ask about commands'));
167
171
  }
168
172
  async reveal(viewState) {
169
173
  await this._createSession(viewState);
@@ -346,13 +350,13 @@ let TerminalChatWidget = class TerminalChatWidget extends Disposable {
346
350
  this._activeRequestCts?.cancel();
347
351
  this._requestActiveContextKey.set(false);
348
352
  const model = this._inlineChatWidget.getChatModel();
349
- if (!model?.sessionId) {
353
+ if (!model?.sessionResource) {
350
354
  return;
351
355
  }
352
- this._chatService.cancelCurrentRequestForSession(model?.sessionId);
356
+ this._chatService.cancelCurrentRequestForSession(model?.sessionResource);
353
357
  }
354
358
  async viewInChat() {
355
- const widget = await showChatView(this._viewsService);
359
+ const widget = await showChatView(this._viewsService, this._layoutService);
356
360
  const currentRequest = this._inlineChatWidget.chatWidget.viewModel?.model.getRequests().find(r => r.id === this._currentRequestId);
357
361
  if (!widget || !currentRequest?.response) {
358
362
  return;
@@ -370,17 +374,17 @@ let TerminalChatWidget = class TerminalChatWidget extends Disposable {
370
374
  }
371
375
  else if (item.kind === 'notebookEditGroup') {
372
376
  for (const group of item.edits) {
373
- if (isCellTextEditOperation(group)) {
377
+ if (isCellTextEditOperationArray(group)) {
374
378
  message.push({
375
379
  kind: 'textEdit',
376
- edits: [group.edit],
377
- uri: group.uri
380
+ edits: ( group.map(e => e.edit)),
381
+ uri: group[0].uri
378
382
  });
379
383
  }
380
384
  else {
381
385
  message.push({
382
386
  kind: 'notebookEdit',
383
- edits: [group],
387
+ edits: group,
384
388
  uri: item.uri
385
389
  });
386
390
  }
@@ -390,7 +394,7 @@ let TerminalChatWidget = class TerminalChatWidget extends Disposable {
390
394
  message.push(item);
391
395
  }
392
396
  }
393
- this._chatService.addCompleteRequest(widget.viewModel.sessionId, `@${this._terminalAgentName} ${currentRequest.message.text}`, currentRequest.variableData, currentRequest.attempt, {
397
+ this._chatService.addCompleteRequest(widget.viewModel.sessionResource, `@${this._terminalAgentName} ${currentRequest.message.text}`, currentRequest.variableData, currentRequest.attempt, {
394
398
  message,
395
399
  result: currentRequest.response.result,
396
400
  followups: currentRequest.response.followups
@@ -405,7 +409,8 @@ TerminalChatWidget = ( __decorate([
405
409
  ( __param(5, IStorageService)),
406
410
  ( __param(6, IViewsService)),
407
411
  ( __param(7, IInstantiationService)),
408
- ( __param(8, IChatAgentService))
412
+ ( __param(8, IChatAgentService)),
413
+ ( __param(9, IWorkbenchLayoutService))
409
414
  ], TerminalChatWidget));
410
415
 
411
416
  export { TerminalChatWidget };
@@ -6,7 +6,7 @@ import { isObject } from '@codingame/monaco-vscode-api/vscode/vs/base/common/typ
6
6
  import { structuralEquals } from '@codingame/monaco-vscode-api/vscode/vs/base/common/equals';
7
7
  import { ConfigurationTarget } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration';
8
8
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
9
- import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-a175bd1a-4858-5944-9ae5-fb73305dcb13-common/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
9
+ import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-de235d7f-e72a-5adb-9256-acf6c64eb6f2-common/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
10
10
  import { isPowerShell } from './runInTerminalHelpers.js';
11
11
 
12
12
  const neverMatchRegex = /(?!.*)/;
@@ -22,6 +22,7 @@ let CommandLineAutoApprover = class CommandLineAutoApprover extends Disposable {
22
22
  this.updateConfiguration();
23
23
  this._register(this._configurationService.onDidChangeConfiguration(e => {
24
24
  if (e.affectsConfiguration(TerminalChatAgentToolsSettingId.AutoApprove) ||
25
+ e.affectsConfiguration(TerminalChatAgentToolsSettingId.IgnoreDefaultAutoApproveRules) ||
25
26
  e.affectsConfiguration(TerminalChatAgentToolsSettingId.DeprecatedAutoApproveCompatible)) {
26
27
  this.updateConfiguration();
27
28
  }
@@ -122,7 +123,8 @@ let CommandLineAutoApprover = class CommandLineAutoApprover extends Disposable {
122
123
  const allowListRules = [];
123
124
  const allowListCommandLineRules = [];
124
125
  const denyListCommandLineRules = [];
125
- Object.entries(config).forEach(([key, value]) => {
126
+ const ignoreDefaults = this._configurationService.getValue(TerminalChatAgentToolsSettingId.IgnoreDefaultAutoApproveRules) === true;
127
+ for (const [key, value] of Object.entries(config)) {
126
128
  const defaultValue = configInspectValue?.default?.value;
127
129
  const isDefaultRule = !!(isObject(defaultValue) &&
128
130
  key in defaultValue &&
@@ -139,6 +141,9 @@ let CommandLineAutoApprover = class CommandLineAutoApprover extends Disposable {
139
141
  : checkTarget(configInspectValue.userValue) ? ConfigurationTarget.USER
140
142
  : checkTarget(configInspectValue.applicationValue) ? ConfigurationTarget.APPLICATION
141
143
  : ConfigurationTarget.DEFAULT);
144
+ if (ignoreDefaults && isDefaultRule && sourceTarget === ConfigurationTarget.DEFAULT) {
145
+ continue;
146
+ }
142
147
  if (typeof value === 'boolean') {
143
148
  const { regex, regexCaseInsensitive } = this._convertAutoApproveEntryToRegex(key);
144
149
  if (value === true) {
@@ -170,7 +175,7 @@ let CommandLineAutoApprover = class CommandLineAutoApprover extends Disposable {
170
175
  }
171
176
  }
172
177
  }
173
- });
178
+ }
174
179
  return {
175
180
  denyListRules,
176
181
  allowListRules,
@@ -1,6 +1,6 @@
1
1
  import type { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
2
  import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
3
- import type { ICommandDetectionCapability } from "@codingame/monaco-vscode-a9da9abe-278d-5ce6-9418-99c7c07c5c37-common/vscode/vs/platform/terminal/common/capabilities/capabilities";
3
+ import type { ICommandDetectionCapability } from "@codingame/monaco-vscode-10af0e5d-64cb-56de-b584-29ab4a355d15-common/vscode/vs/platform/terminal/common/capabilities/capabilities";
4
4
  import { ITerminalLogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service";
5
5
  import { type ITerminalExecuteStrategy, type ITerminalExecuteStrategyResult } from "./executeStrategy.js";
6
6
  import type { IMarker as IXtermMarker } from "@xterm/xterm";
@@ -37,6 +37,6 @@ export declare class BasicExecuteStrategy implements ITerminalExecuteStrategy {
37
37
  private readonly _onDidCreateStartMarker;
38
38
  onDidCreateStartMarker: Event<IXtermMarker | undefined>;
39
39
  constructor(_instance: ITerminalInstance, _hasReceivedUserInput: () => boolean, _commandDetection: ICommandDetectionCapability, _logService: ITerminalLogService);
40
- execute(commandLine: string, token: CancellationToken): Promise<ITerminalExecuteStrategyResult>;
40
+ execute(commandLine: string, token: CancellationToken, commandId?: string): Promise<ITerminalExecuteStrategyResult>;
41
41
  private _log;
42
42
  }
@@ -2,10 +2,11 @@
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { CancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
4
4
  import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
5
- import { MutableDisposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
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, waitForIdle } from './executeStrategy.js';
9
+ import { setupRecreatingStartMarker } from './strategyHelpers.js';
9
10
 
10
11
  let BasicExecuteStrategy = class BasicExecuteStrategy {
11
12
  constructor(_instance, _hasReceivedUserInput, _commandDetection, _logService) {
@@ -18,7 +19,7 @@ let BasicExecuteStrategy = class BasicExecuteStrategy {
18
19
  this._onDidCreateStartMarker = ( new Emitter());
19
20
  this.onDidCreateStartMarker = this._onDidCreateStartMarker.event;
20
21
  }
21
- async execute(commandLine, token) {
22
+ async execute(commandLine, token, commandId) {
22
23
  const store = ( new DisposableStore());
23
24
  try {
24
25
  const idlePromptPromise = trackIdleOnPrompt(this._instance, 1000, store);
@@ -27,12 +28,19 @@ let BasicExecuteStrategy = class BasicExecuteStrategy {
27
28
  this._log('onDone 1 of 2 via end event, waiting for short idle prompt');
28
29
  return idlePromptPromise.then(() => {
29
30
  this._log('onDone 2 of 2 via short idle prompt');
30
- return e;
31
+ return {
32
+ 'type': 'success',
33
+ command: e
34
+ };
31
35
  });
32
36
  }),
33
37
  Event.toPromise(token.onCancellationRequested, store).then(() => {
34
38
  this._log('onDone via cancellation');
35
39
  }),
40
+ Event.toPromise(this._instance.onDisposed, store).then(() => {
41
+ this._log('onDone via terminal disposal');
42
+ return { type: 'disposal' };
43
+ }),
36
44
  trackIdleOnPrompt(this._instance, 3000, store).then(() => {
37
45
  this._log('onDone long idle prompt');
38
46
  }),
@@ -44,29 +52,7 @@ let BasicExecuteStrategy = class BasicExecuteStrategy {
44
52
  }
45
53
  this._log('Waiting for idle');
46
54
  await waitForIdle(this._instance.onData, 1000);
47
- const markerListener = ( new MutableDisposable());
48
- const recreateStartMarker = () => {
49
- if (store.isDisposed) {
50
- return;
51
- }
52
- const marker = xterm.raw.registerMarker();
53
- this._startMarker.value = marker ?? undefined;
54
- this._onDidCreateStartMarker.fire(marker);
55
- if (!marker) {
56
- markerListener.clear();
57
- return;
58
- }
59
- markerListener.value = marker.onDispose(() => {
60
- this._log(`Start marker was disposed, recreating`);
61
- recreateStartMarker();
62
- });
63
- };
64
- recreateStartMarker();
65
- store.add(toDisposable(() => {
66
- markerListener.dispose();
67
- this._startMarker.clear();
68
- this._onDidCreateStartMarker.fire(undefined);
69
- }));
55
+ setupRecreatingStartMarker(xterm, this._startMarker, m => this._onDidCreateStartMarker.fire(m), store, this._log.bind(this));
70
56
  if (this._hasReceivedUserInput()) {
71
57
  this._log('Command timed out, sending SIGINT and retrying');
72
58
  await this._instance.sendText('\x03', false);
@@ -74,7 +60,12 @@ let BasicExecuteStrategy = class BasicExecuteStrategy {
74
60
  }
75
61
  this._log(`Executing command line \`${commandLine}\``);
76
62
  this._instance.sendText(commandLine, true);
77
- const finishedCommand = await onDone;
63
+ this._log('Waiting for done event');
64
+ const onDoneResult = await onDone;
65
+ if (onDoneResult && onDoneResult.type === 'disposal') {
66
+ throw ( new Error('The terminal was closed'));
67
+ }
68
+ const finishedCommand = onDoneResult && onDoneResult.type === 'success' ? onDoneResult.command : undefined;
78
69
  this._log('Waiting for idle');
79
70
  await waitForIdle(this._instance.onData, 1000);
80
71
  if (token.isCancellationRequested) {
@@ -8,9 +8,12 @@ export interface ITerminalExecuteStrategy {
8
8
  /**
9
9
  * Executes a command line and gets a result designed to be passed directly to an LLM. The
10
10
  * result will include information about the exit code.
11
+ * @param commandLine The command line to execute
12
+ * @param token Cancellation token
13
+ * @param commandId Optional predefined command ID to link the command
11
14
  */
12
- execute(commandLine: string, token: CancellationToken): Promise<ITerminalExecuteStrategyResult>;
13
- onDidCreateStartMarker: Event<IXtermMarker | undefined>;
15
+ execute(commandLine: string, token: CancellationToken, commandId?: string): Promise<ITerminalExecuteStrategyResult>;
16
+ readonly onDidCreateStartMarker: Event<IXtermMarker | undefined>;
14
17
  }
15
18
  export interface ITerminalExecuteStrategyResult {
16
19
  output: string | undefined;
@@ -40,9 +40,11 @@ function detectsCommonPromptPattern(cursorLine) {
40
40
  const PS_CONFIRM_RE = /\s*(?:\[[^\]]\]\s+[^\[]+\s*)+(?:\(default is\s+"[^"]+"\):)?\s+$/;
41
41
  const YN_PAIRED_RE = /(?:\(|\[)\s*(?:y(?:es)?\s*\/\s*n(?:o)?|n(?:o)?\s*\/\s*y(?:es)?)\s*(?:\]|\))\s+$/i;
42
42
  const YN_AFTER_PUNCT_RE = /[?:]\s*(?:\(|\[)?\s*y(?:es)?\s*\/\s*n(?:o)?\s*(?:\]|\))?\s+$/i;
43
+ const CONFIRM_Y_RE = /\(y\)\s*$/i;
43
44
  const LINE_ENDS_WITH_COLON_RE = /:\s*$/;
45
+ const END = /\(END\)$/;
44
46
  function detectsInputRequiredPattern(cursorLine) {
45
- return PS_CONFIRM_RE.test(cursorLine) || YN_PAIRED_RE.test(cursorLine) || YN_AFTER_PUNCT_RE.test(cursorLine) || LINE_ENDS_WITH_COLON_RE.test(cursorLine.trim());
47
+ return PS_CONFIRM_RE.test(cursorLine) || YN_PAIRED_RE.test(cursorLine) || YN_AFTER_PUNCT_RE.test(cursorLine) || CONFIRM_Y_RE.test(cursorLine) || LINE_ENDS_WITH_COLON_RE.test(cursorLine.trim()) || END.test(cursorLine);
46
48
  }
47
49
  async function waitForIdleWithPromptHeuristics(onData, instance, idlePollIntervalMs, extendedTimeoutMs) {
48
50
  await waitForIdle(onData, idlePollIntervalMs);
@@ -19,6 +19,6 @@ export declare class NoneExecuteStrategy implements ITerminalExecuteStrategy {
19
19
  private readonly _onDidCreateStartMarker;
20
20
  onDidCreateStartMarker: Event<IXtermMarker | undefined>;
21
21
  constructor(_instance: ITerminalInstance, _hasReceivedUserInput: () => boolean, _logService: ITerminalLogService);
22
- execute(commandLine: string, token: CancellationToken): Promise<ITerminalExecuteStrategyResult>;
22
+ execute(commandLine: string, token: CancellationToken, commandId?: string): Promise<ITerminalExecuteStrategyResult>;
23
23
  private _log;
24
24
  }
@@ -2,9 +2,10 @@
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { CancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
4
4
  import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
5
- import { MutableDisposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
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
9
 
9
10
  let NoneExecuteStrategy = class NoneExecuteStrategy {
10
11
  constructor(_instance, _hasReceivedUserInput, _logService) {
@@ -16,7 +17,7 @@ let NoneExecuteStrategy = class NoneExecuteStrategy {
16
17
  this._onDidCreateStartMarker = ( new Emitter());
17
18
  this.onDidCreateStartMarker = this._onDidCreateStartMarker.event;
18
19
  }
19
- async execute(commandLine, token) {
20
+ async execute(commandLine, token, commandId) {
20
21
  const store = ( new DisposableStore());
21
22
  try {
22
23
  if (token.isCancellationRequested) {
@@ -32,29 +33,7 @@ let NoneExecuteStrategy = class NoneExecuteStrategy {
32
33
  if (token.isCancellationRequested) {
33
34
  throw ( new CancellationError());
34
35
  }
35
- const markerListener = ( new MutableDisposable());
36
- const recreateStartMarker = () => {
37
- if (store.isDisposed) {
38
- return;
39
- }
40
- const marker = xterm.raw.registerMarker();
41
- this._startMarker.value = marker ?? undefined;
42
- this._onDidCreateStartMarker.fire(marker);
43
- if (!marker) {
44
- markerListener.clear();
45
- return;
46
- }
47
- markerListener.value = marker.onDispose(() => {
48
- this._log(`Start marker was disposed, recreating`);
49
- recreateStartMarker();
50
- });
51
- };
52
- recreateStartMarker();
53
- store.add(toDisposable(() => {
54
- markerListener.dispose();
55
- this._startMarker.clear();
56
- this._onDidCreateStartMarker.fire(undefined);
57
- }));
36
+ setupRecreatingStartMarker(xterm, this._startMarker, m => this._onDidCreateStartMarker.fire(m), store, this._log.bind(this));
58
37
  if (this._hasReceivedUserInput()) {
59
38
  this._log('Command timed out, sending SIGINT and retrying');
60
39
  await this._instance.sendText('\x03', false);
@@ -1,6 +1,6 @@
1
1
  import type { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
2
  import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
3
- import type { ICommandDetectionCapability } from "@codingame/monaco-vscode-a9da9abe-278d-5ce6-9418-99c7c07c5c37-common/vscode/vs/platform/terminal/common/capabilities/capabilities";
3
+ import type { ICommandDetectionCapability } from "@codingame/monaco-vscode-10af0e5d-64cb-56de-b584-29ab4a355d15-common/vscode/vs/platform/terminal/common/capabilities/capabilities";
4
4
  import { ITerminalLogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service";
5
5
  import type { ITerminalInstance } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
6
6
  import { type ITerminalExecuteStrategy, type ITerminalExecuteStrategyResult } from "./executeStrategy.js";
@@ -21,6 +21,6 @@ export declare class RichExecuteStrategy implements ITerminalExecuteStrategy {
21
21
  private readonly _onDidCreateStartMarker;
22
22
  onDidCreateStartMarker: Event<IXtermMarker | undefined>;
23
23
  constructor(_instance: ITerminalInstance, _commandDetection: ICommandDetectionCapability, _logService: ITerminalLogService);
24
- execute(commandLine: string, token: CancellationToken): Promise<ITerminalExecuteStrategyResult>;
24
+ execute(commandLine: string, token: CancellationToken, commandId?: string): Promise<ITerminalExecuteStrategyResult>;
25
25
  private _log;
26
26
  }
@@ -2,10 +2,11 @@
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { CancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
4
4
  import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
5
- import { MutableDisposable, DisposableStore, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
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
10
 
10
11
  let RichExecuteStrategy = class RichExecuteStrategy {
11
12
  constructor(_instance, _commandDetection, _logService) {
@@ -17,7 +18,7 @@ let RichExecuteStrategy = class RichExecuteStrategy {
17
18
  this._onDidCreateStartMarker = ( new Emitter());
18
19
  this.onDidCreateStartMarker = this._onDidCreateStartMarker.event;
19
20
  }
20
- async execute(commandLine, token) {
21
+ async execute(commandLine, token, commandId) {
21
22
  const store = ( new DisposableStore());
22
23
  try {
23
24
  this._log('Waiting for xterm');
@@ -28,41 +29,31 @@ let RichExecuteStrategy = class RichExecuteStrategy {
28
29
  const onDone = Promise.race([
29
30
  Event.toPromise(this._commandDetection.onCommandFinished, store).then(e => {
30
31
  this._log('onDone via end event');
31
- return e;
32
+ return {
33
+ 'type': 'success',
34
+ command: e
35
+ };
32
36
  }),
33
37
  Event.toPromise(token.onCancellationRequested, store).then(() => {
34
38
  this._log('onDone via cancellation');
35
39
  }),
40
+ Event.toPromise(this._instance.onDisposed, store).then(() => {
41
+ this._log('onDone via terminal disposal');
42
+ return { type: 'disposal' };
43
+ }),
36
44
  trackIdleOnPrompt(this._instance, 1000, store).then(() => {
37
45
  this._log('onDone via idle prompt');
38
46
  }),
39
47
  ]);
40
- const markerListener = ( new MutableDisposable());
41
- const recreateStartMarker = () => {
42
- if (store.isDisposed) {
43
- return;
44
- }
45
- const marker = xterm.raw.registerMarker();
46
- this._startMarker.value = marker ?? undefined;
47
- this._onDidCreateStartMarker.fire(marker);
48
- if (!marker) {
49
- markerListener.clear();
50
- return;
51
- }
52
- markerListener.value = marker.onDispose(() => {
53
- recreateStartMarker();
54
- });
55
- };
56
- recreateStartMarker();
57
- store.add(toDisposable(() => {
58
- markerListener.dispose();
59
- this._startMarker.clear();
60
- this._onDidCreateStartMarker.fire(undefined);
61
- }));
48
+ setupRecreatingStartMarker(xterm, this._startMarker, m => this._onDidCreateStartMarker.fire(m), store, this._log.bind(this));
62
49
  this._log(`Executing command line \`${commandLine}\``);
63
- this._instance.runCommand(commandLine, true);
50
+ this._instance.runCommand(commandLine, true, commandId);
64
51
  this._log('Waiting for done event');
65
- const finishedCommand = await onDone;
52
+ const onDoneResult = await onDone;
53
+ if (onDoneResult && onDoneResult.type === 'disposal') {
54
+ throw ( new Error('The terminal was closed'));
55
+ }
56
+ const finishedCommand = onDoneResult && onDoneResult.type === 'success' ? onDoneResult.command : undefined;
66
57
  if (token.isCancellationRequested) {
67
58
  throw ( new CancellationError());
68
59
  }
@@ -0,0 +1,12 @@
1
+ import { DisposableStore, MutableDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import type { IMarker as IXtermMarker } from "@xterm/xterm";
3
+ /**
4
+ * Sets up a recreating start marker which is resilient to prompts that clear/re-render (eg. transient
5
+ * or powerlevel10k style prompts). The marker is recreated at the cursor position whenever the
6
+ * existing marker is disposed. The caller is responsible for adding the startMarker to the store.
7
+ */
8
+ export declare function setupRecreatingStartMarker(xterm: {
9
+ raw: {
10
+ registerMarker(): IXtermMarker | undefined;
11
+ };
12
+ }, startMarker: MutableDisposable<IXtermMarker>, fire: (marker: IXtermMarker | undefined) => void, store: DisposableStore, log?: (message: string) => void): void;
@@ -0,0 +1,31 @@
1
+
2
+ import { MutableDisposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
3
+
4
+ function setupRecreatingStartMarker(xterm, startMarker, fire, store, log) {
5
+ const markerListener = ( new MutableDisposable());
6
+ const recreateStartMarker = () => {
7
+ if (store.isDisposed) {
8
+ return;
9
+ }
10
+ const marker = xterm.raw.registerMarker();
11
+ startMarker.value = marker ?? undefined;
12
+ fire(marker);
13
+ if (!marker) {
14
+ markerListener.clear();
15
+ return;
16
+ }
17
+ markerListener.value = marker.onDispose(() => {
18
+ log?.('Start marker was disposed, recreating');
19
+ recreateStartMarker();
20
+ });
21
+ };
22
+ recreateStartMarker();
23
+ store.add(toDisposable(() => {
24
+ markerListener.dispose();
25
+ startMarker.clear();
26
+ fire(undefined);
27
+ }));
28
+ store.add(startMarker);
29
+ }
30
+
31
+ export { setupRecreatingStartMarker };
@@ -2,6 +2,9 @@ import { OperatingSystem } from "@codingame/monaco-vscode-api/vscode/vs/base/com
2
2
  import type { ToolConfirmationAction } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
3
3
  import type { ICommandApprovalResultWithReason } from "./commandLineAutoApprover.js";
4
4
  export declare function isPowerShell(envShell: string, os: OperatingSystem): boolean;
5
+ export declare function isWindowsPowerShell(envShell: string): boolean;
6
+ export declare function isZsh(envShell: string, os: OperatingSystem): boolean;
7
+ export declare function isFish(envShell: string, os: OperatingSystem): boolean;
5
8
  export declare function sanitizeTerminalOutput(output: string): string;
6
9
  export declare function generateAutoApproveActions(commandLine: string, subCommands: string[], autoApproveResult: {
7
10
  subCommandResults: ICommandApprovalResultWithReason[];
@@ -3,7 +3,7 @@ import { Separator } from '@codingame/monaco-vscode-api/vscode/vs/base/common/ac
3
3
  import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
4
4
  import { win32, posix } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
5
5
  import { OperatingSystem } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
6
- import '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
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
8
 
9
9
  function isPowerShell(envShell, os) {
@@ -12,9 +12,25 @@ function isPowerShell(envShell, os) {
12
12
  }
13
13
  return /^(?:powershell|pwsh)(?:-preview)?$/.test(posix.basename(envShell));
14
14
  }
15
+ function isWindowsPowerShell(envShell) {
16
+ return envShell.endsWith('System32\\WindowsPowerShell\\v1.0\\powershell.exe');
17
+ }
18
+ function isZsh(envShell, os) {
19
+ if (os === OperatingSystem.Windows) {
20
+ return /^zsh(?:\.exe)?$/i.test(win32.basename(envShell));
21
+ }
22
+ return /^zsh$/.test(posix.basename(envShell));
23
+ }
24
+ function isFish(envShell, os) {
25
+ if (os === OperatingSystem.Windows) {
26
+ return /^fish(?:\.exe)?$/i.test(win32.basename(envShell));
27
+ }
28
+ return /^fish$/.test(posix.basename(envShell));
29
+ }
15
30
  function generateAutoApproveActions(commandLine, subCommands, autoApproveResult) {
16
31
  const actions = [];
17
- const canCreateAutoApproval = ( autoApproveResult.subCommandResults.some(e => e.result !== 'denied')) || autoApproveResult.commandLineResult.result === 'denied';
32
+ const canCreateAutoApproval = (autoApproveResult.subCommandResults.every(e => e.result !== 'denied') &&
33
+ autoApproveResult.commandLineResult.result !== 'denied');
18
34
  if (canCreateAutoApproval) {
19
35
  const unapprovedSubCommands = subCommands.filter((_, index) => {
20
36
  return autoApproveResult.subCommandResults[index].result !== 'approved';
@@ -56,11 +72,11 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
56
72
  if (subCommandsToSuggest.length > 0) {
57
73
  let subCommandLabel;
58
74
  if (subCommandsToSuggest.length === 1) {
59
- subCommandLabel = ( localize(11540, 'Always Allow Command: {0}', subCommandsToSuggest[0]));
75
+ subCommandLabel = ( localize(11827, 'Always Allow Command: {0}', subCommandsToSuggest[0]));
60
76
  }
61
77
  else {
62
78
  const commandSeparated = subCommandsToSuggest.join(', ');
63
- subCommandLabel = ( localize(11541, 'Always Allow Commands: {0}', commandSeparated));
79
+ subCommandLabel = ( localize(11828, 'Always Allow Commands: {0}', commandSeparated));
64
80
  }
65
81
  actions.push({
66
82
  label: subCommandLabel,
@@ -78,11 +94,11 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
78
94
  !( commandsWithSubcommands.has(commandLine)) &&
79
95
  !( commandsWithSubSubCommands.has(commandLine))) {
80
96
  actions.push({
81
- label: ( localize(11542, 'Always Allow Exact Command Line')),
97
+ label: ( localize(11829, 'Always Allow Exact Command Line')),
82
98
  data: {
83
99
  type: 'newRule',
84
100
  rule: {
85
- key: commandLine,
101
+ key: `/^${escapeRegExpCharacters(commandLine)}$/`,
86
102
  value: {
87
103
  approve: true,
88
104
  matchCommandLine: true
@@ -96,7 +112,7 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
96
112
  actions.push(( new Separator()));
97
113
  }
98
114
  actions.push({
99
- label: ( localize(11543, 'Configure Auto Approve...')),
115
+ label: ( localize(11830, 'Configure Auto Approve...')),
100
116
  data: {
101
117
  type: 'configure'
102
118
  }
@@ -109,4 +125,4 @@ function dedupeRules(rules) {
109
125
  });
110
126
  }
111
127
 
112
- export { dedupeRules, generateAutoApproveActions, isPowerShell };
128
+ export { dedupeRules, generateAutoApproveActions, isFish, isPowerShell, isWindowsPowerShell, isZsh };
@@ -394,6 +394,14 @@ const commandAllowList = ( new Set([
394
394
  'yarn',
395
395
  'yum',
396
396
  'zypper',
397
+ 'aider',
398
+ 'amp',
399
+ 'claude',
400
+ 'codex',
401
+ 'copilot',
402
+ 'gemini',
403
+ 'toad',
404
+ 'q',
397
405
  'taskkill',
398
406
  'taskkill.exe',
399
407
  'add-content',
@@ -45,7 +45,7 @@ export declare function resolveDependencyTasks(parentTask: Task, workspaceFolder
45
45
  /**
46
46
  * Collects output, polling duration, and idle status for all terminals.
47
47
  */
48
- export declare function collectTerminalResults(terminals: ITerminalInstance[], task: Task, instantiationService: IInstantiationService, invocationContext: IToolInvocationContext, progress: ToolProgress, token: CancellationToken, disposableStore: DisposableStore, isActive?: () => Promise<boolean>, dependencyTasks?: Task[]): Promise<Array<{
48
+ export declare function collectTerminalResults(terminals: ITerminalInstance[], task: Task, instantiationService: IInstantiationService, invocationContext: IToolInvocationContext, progress: ToolProgress, token: CancellationToken, disposableStore: DisposableStore, isActive?: (task: Task) => Promise<boolean>, dependencyTasks?: Task[]): Promise<Array<{
49
49
  name: string;
50
50
  output: string;
51
51
  resources?: ILinkLocation[];