@codingame/monaco-vscode-chat-service-override 25.1.2 → 26.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 (334) hide show
  1. package/index.js +24 -3
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +23 -3
  4. package/vscode/src/vs/platform/browserElements/common/browserElements.js +13 -6
  5. package/vscode/src/vs/platform/domWidget/browser/domWidget.js +4 -4
  6. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +42 -27
  8. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +14 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +218 -74
  10. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatTerminalOutputAccessibleView.js +6 -8
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +14 -9
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +165 -168
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +27 -25
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +141 -140
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +189 -121
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +14 -15
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +60 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +435 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +28 -12
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +10 -12
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +3 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +37 -16
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.d.ts +11 -0
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +54 -24
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +73 -34
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +71 -30
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +151 -89
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +12 -15
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +39 -40
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +90 -125
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +5 -2
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +263 -143
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTransfer.js +4 -4
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +188 -126
  35. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.d.ts +1 -1
  36. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +37 -28
  37. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.d.ts +21 -9
  38. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +392 -226
  39. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +31 -27
  40. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +25 -23
  41. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.js +1 -3
  42. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.d.ts +2 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +13 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.d.ts +20 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +83 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +68 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +319 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.d.ts +1 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +215 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +179 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +951 -0
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agentsessionprojection.css +20 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +388 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/unifiedQuickAccess.css +195 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +120 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +394 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.d.ts +38 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +95 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.d.ts +3 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/localAgentSessionsProvider.js +31 -29
  61. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +49 -47
  62. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +4 -6
  63. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/media/simpleBrowserOverlay.css +0 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +188 -151
  65. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +1012 -639
  66. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCheckpointTimelineImpl.js +256 -151
  67. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.d.ts +8 -1
  68. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +182 -101
  69. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.d.ts +79 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingDeletedFileEntry.js +193 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorAccessibility.js +9 -7
  72. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.d.ts +68 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +253 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.d.ts +4 -5
  75. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +69 -50
  76. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +3 -4
  77. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +52 -33
  78. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +5 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +274 -155
  80. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingOperations.js +1 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.d.ts +2 -10
  82. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +130 -104
  83. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +12 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +385 -160
  85. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.js +53 -36
  86. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +112 -75
  87. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +19 -10
  88. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditorController.css +31 -11
  89. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingModifiedNotebookSnapshot.js +39 -17
  90. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNewNotebookContentEdits.js +10 -14
  91. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +0 -2
  92. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.js +25 -16
  93. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.d.ts +1 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +265 -203
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookFileSystemProvider.js +29 -26
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.js +114 -60
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.js +16 -19
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/overlayToolbarDecorator.js +44 -30
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +119 -45
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +152 -136
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +12 -8
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.d.ts +51 -31
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +323 -217
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.d.ts +4 -3
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +653 -401
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +52 -40
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatModelsWidget.css +22 -3
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.d.ts +5 -2
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +43 -28
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +182 -136
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +33 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +548 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +0 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +222 -138
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.d.ts +3 -3
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +151 -113
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +6 -4
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +453 -217
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +162 -88
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/media/chatSetup.css +2 -1
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.d.ts +0 -2
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.js +1 -13
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +309 -233
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +55 -53
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusItemService.js +3 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +37 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +109 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +35 -23
  132. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.d.ts +9 -4
  133. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +73 -33
  134. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +47 -0
  135. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +333 -0
  136. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +39 -25
  137. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionContribution.js +9 -5
  138. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +23 -20
  139. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.js +2 -0
  140. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +20 -16
  141. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +65 -57
  142. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +48 -36
  143. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +20 -12
  144. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  145. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +52 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +155 -159
  147. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.d.ts +24 -14
  148. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +521 -246
  149. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +107 -76
  150. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +28 -24
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.js +10 -6
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.d.ts +16 -0
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.js +57 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatLayoutService.js +4 -6
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +56 -44
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.d.ts +0 -3
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +37 -47
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatEditorInputContentProvider.js +5 -7
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.d.ts +10 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +1284 -0
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +179 -125
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +9 -11
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/editorHoverWrapper.js +7 -6
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +96 -78
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +58 -53
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +25 -11
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +484 -292
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.d.ts +1 -6
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +65 -92
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +16 -19
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +1 -0
  172. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +9 -1
  173. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +331 -189
  174. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +81 -93
  175. package/vscode/src/vs/workbench/contrib/chat/common/ignoredFiles.js +1 -3
  176. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -3
  177. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +6 -7
  178. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +36 -8
  179. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +169 -31
  180. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.d.ts +6 -0
  181. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionOperationLog.js +141 -0
  182. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +6 -4
  183. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +218 -144
  184. package/vscode/src/vs/workbench/contrib/chat/common/model/chatTransferService.js +20 -10
  185. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.d.ts +109 -0
  186. package/vscode/src/vs/workbench/contrib/chat/common/model/objectMutationLog.js +349 -0
  187. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.js +9 -8
  188. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.d.ts +9 -0
  189. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +139 -36
  190. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +3 -6
  191. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptBodyAutocompletion.js +64 -51
  192. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +49 -34
  193. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptDocumentSemanticTokensProvider.js +21 -13
  194. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +1 -1
  195. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +125 -97
  196. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +91 -131
  197. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.js +8 -5
  198. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.d.ts +5 -0
  199. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.js +488 -222
  200. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.js +32 -12
  201. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +58 -13
  202. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +717 -200
  203. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +79 -18
  204. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +371 -130
  205. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +0 -1
  206. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +3 -7
  207. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +79 -61
  208. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatResponseResourceFileSystemProvider.js +27 -21
  209. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl.js +7 -10
  210. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -1
  211. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +26 -32
  212. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +2 -2
  213. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +8 -60
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +115 -426
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +15 -0
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +127 -0
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +1 -37
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +16 -0
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +21 -0
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.d.ts +51 -0
  221. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +334 -0
  222. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.d.ts +41 -0
  223. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +424 -0
  224. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.d.ts +4 -0
  225. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +58 -0
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.d.ts +7 -0
  227. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +195 -0
  228. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.d.ts +8 -0
  229. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +368 -0
  230. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.d.ts +2 -0
  231. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +7 -0
  232. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.d.ts +1 -1
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/inlineDiff/notebookModifiedCellDecorator.js +1 -1
  234. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +23 -25
  235. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/common/remoteCodingAgentsService.js +7 -8
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +34 -38
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +8 -12
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +103 -95
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +28 -16
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatEnabler.js +4 -5
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +12 -8
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +65 -54
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +86 -60
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +13 -26
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +2 -1
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +56 -46
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +2 -2
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +63 -31
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +2 -1
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +35 -30
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +2 -1
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +44 -37
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +3 -4
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +3 -3
  258. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -0
  259. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +70 -50
  260. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +26 -394
  261. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +85 -49
  262. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +68 -27
  263. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +1 -0
  264. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +67 -45
  265. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.d.ts +12 -0
  266. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +106 -0
  267. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +2 -2
  268. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +177 -97
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +136 -49
  270. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +2 -1
  271. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +128 -112
  272. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +51 -49
  273. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +8 -0
  274. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +25 -0
  275. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  276. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +12 -0
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +21 -0
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +5 -14
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +2 -4
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +1 -0
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -0
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +29 -0
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +30 -31
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +16 -17
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +19 -20
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.d.ts +11 -0
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +58 -0
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +31 -3
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +325 -199
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +1 -1
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +1 -1
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +33 -38
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +45 -5
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +746 -456
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +145 -98
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +88 -37
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +120 -51
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +25 -28
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +5 -0
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +58 -12
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +12 -0
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.js +17 -0
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +8 -1
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +47 -28
  311. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +37 -0
  312. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +171 -0
  313. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +0 -58
  314. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +0 -213
  315. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +0 -39
  316. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +0 -243
  317. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.d.ts +0 -7
  318. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +0 -41
  319. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +0 -166
  320. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +0 -607
  321. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +0 -255
  322. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
  323. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -396
  324. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -9
  325. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -379
  326. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -117
  327. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +0 -141
  328. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +0 -961
  329. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +0 -36
  330. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +0 -447
  331. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.d.ts +0 -6
  332. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.js +0 -251
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.d.ts +0 -10
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +0 -42
@@ -2,19 +2,20 @@
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 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { Disposable, 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
8
  import { createAltBufferPromise, setupRecreatingStartMarker } from './strategyHelpers.js';
9
9
 
10
- let NoneExecuteStrategy = class NoneExecuteStrategy {
10
+ let NoneExecuteStrategy = class NoneExecuteStrategy extends Disposable {
11
11
  constructor(_instance, _hasReceivedUserInput, _logService) {
12
+ super();
12
13
  this._instance = _instance;
13
14
  this._hasReceivedUserInput = _hasReceivedUserInput;
14
15
  this._logService = _logService;
15
- this.type = 'none';
16
- this._startMarker = ( new MutableDisposable());
17
- this._onDidCreateStartMarker = ( new Emitter());
16
+ this.type = "none";
17
+ this._startMarker = this._register(( new MutableDisposable()));
18
+ this._onDidCreateStartMarker = this._register(( new Emitter()));
18
19
  this.onDidCreateStartMarker = this._onDidCreateStartMarker.event;
19
20
  }
20
21
  async execute(commandLine, token, commandId) {
@@ -23,42 +24,50 @@ let NoneExecuteStrategy = class NoneExecuteStrategy {
23
24
  if (token.isCancellationRequested) {
24
25
  throw ( new CancellationError());
25
26
  }
26
- this._log('Waiting for xterm');
27
+ this._log("Waiting for xterm");
27
28
  const xterm = await this._instance.xtermReadyPromise;
28
29
  if (!xterm) {
29
- throw ( new Error('Xterm is not available'));
30
+ throw ( new Error("Xterm is not available"));
30
31
  }
31
32
  const alternateBufferPromise = createAltBufferPromise(xterm, store, this._log.bind(this));
32
- this._log('Waiting for idle');
33
+ this._log("Waiting for idle");
33
34
  await waitForIdle(this._instance.onData, 1000);
34
35
  if (token.isCancellationRequested) {
35
36
  throw ( new CancellationError());
36
37
  }
37
- setupRecreatingStartMarker(xterm, this._startMarker, m => this._onDidCreateStartMarker.fire(m), store, this._log.bind(this));
38
+ setupRecreatingStartMarker(
39
+ xterm,
40
+ this._startMarker,
41
+ m => this._onDidCreateStartMarker.fire(m),
42
+ store,
43
+ this._log.bind(this)
44
+ );
38
45
  if (this._hasReceivedUserInput()) {
39
- this._log('Command timed out, sending SIGINT and retrying');
40
- await this._instance.sendText('\x03', false);
46
+ this._log("Command timed out, sending SIGINT and retrying");
47
+ await this._instance.sendText("\u0003", false);
41
48
  await waitForIdle(this._instance.onData, 100);
42
49
  }
43
50
  this._log(`Executing command line \`${commandLine}\``);
44
51
  this._instance.sendText(commandLine, true);
45
- this._log('Waiting for idle with prompt heuristics');
52
+ this._log("Waiting for idle with prompt heuristics");
46
53
  const promptResultOrAltBuffer = await Promise.race([
47
54
  waitForIdleWithPromptHeuristics(this._instance.onData, this._instance, 1000, 10000),
48
- alternateBufferPromise.then(() => 'alternateBuffer')
55
+ alternateBufferPromise.then(() => "alternateBuffer")
49
56
  ]);
50
- if (promptResultOrAltBuffer === 'alternateBuffer') {
51
- this._log('Detected alternate buffer entry, skipping output capture');
57
+ if (promptResultOrAltBuffer === "alternateBuffer") {
58
+ this._log("Detected alternate buffer entry, skipping output capture");
52
59
  return {
53
60
  output: undefined,
54
61
  additionalInformation: undefined,
55
62
  exitCode: undefined,
56
- error: 'alternateBuffer',
57
- didEnterAltBuffer: true,
63
+ error: "alternateBuffer",
64
+ didEnterAltBuffer: true
58
65
  };
59
66
  }
60
67
  const promptResult = promptResultOrAltBuffer;
61
- this._log(`Prompt detection result: ${promptResult.detected ? 'detected' : 'not detected'} - ${promptResult.reason}`);
68
+ this._log(
69
+ `Prompt detection result: ${promptResult.detected ? "detected" : "not detected"} - ${promptResult.reason}`
70
+ );
62
71
  if (token.isCancellationRequested) {
63
72
  throw ( new CancellationError());
64
73
  }
@@ -67,19 +76,17 @@ let NoneExecuteStrategy = class NoneExecuteStrategy {
67
76
  const additionalInformationLines = [];
68
77
  try {
69
78
  output = xterm.getContentsAsText(this._startMarker.value, endMarker);
70
- this._log('Fetched output via markers');
71
- }
72
- catch {
73
- this._log('Failed to fetch output via markers');
74
- additionalInformationLines.push('Failed to retrieve command output');
79
+ this._log("Fetched output via markers");
80
+ } catch {
81
+ this._log("Failed to fetch output via markers");
82
+ additionalInformationLines.push("Failed to retrieve command output");
75
83
  }
76
84
  return {
77
85
  output,
78
- additionalInformation: additionalInformationLines.length > 0 ? additionalInformationLines.join('\n') : undefined,
79
- exitCode: undefined,
86
+ additionalInformation: additionalInformationLines.length > 0 ? additionalInformationLines.join("\n") : undefined,
87
+ exitCode: undefined
80
88
  };
81
- }
82
- finally {
89
+ } finally {
83
90
  store.dispose();
84
91
  }
85
92
  }
@@ -87,8 +94,6 @@ let NoneExecuteStrategy = class NoneExecuteStrategy {
87
94
  this._logService.debug(`RunInTerminalTool#None: ${message}`);
88
95
  }
89
96
  };
90
- NoneExecuteStrategy = ( __decorate([
91
- ( __param(2, ITerminalLogService))
92
- ], NoneExecuteStrategy));
97
+ NoneExecuteStrategy = ( __decorate([( __param(2, ITerminalLogService))], NoneExecuteStrategy));
93
98
 
94
99
  export { NoneExecuteStrategy };
@@ -1,5 +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 { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
4
  import type { ICommandDetectionCapability } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/capabilities/capabilities";
4
5
  import { ITerminalLogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service";
5
6
  import type { ITerminalInstance } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
@@ -12,7 +13,7 @@ import type { IMarker as IXtermMarker } from "@xterm/xterm";
12
13
  * wrong in this state, minimal verification is done in this mode since rich command detection is a
13
14
  * strong signal that it's behaving correctly.
14
15
  */
15
- export declare class RichExecuteStrategy implements ITerminalExecuteStrategy {
16
+ export declare class RichExecuteStrategy extends Disposable implements ITerminalExecuteStrategy {
16
17
  private readonly _instance;
17
18
  private readonly _commandDetection;
18
19
  private readonly _logService;
@@ -2,68 +2,79 @@
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 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { Disposable, 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
9
  import { createAltBufferPromise, setupRecreatingStartMarker } from './strategyHelpers.js';
10
10
 
11
- let RichExecuteStrategy = class RichExecuteStrategy {
11
+ let RichExecuteStrategy = class RichExecuteStrategy extends Disposable {
12
12
  constructor(_instance, _commandDetection, _logService) {
13
+ super();
13
14
  this._instance = _instance;
14
15
  this._commandDetection = _commandDetection;
15
16
  this._logService = _logService;
16
- this.type = 'rich';
17
- this._startMarker = ( new MutableDisposable());
18
- this._onDidCreateStartMarker = ( new Emitter());
17
+ this.type = "rich";
18
+ this._startMarker = this._register(( new MutableDisposable()));
19
+ this._onDidCreateStartMarker = this._register(( new Emitter()));
19
20
  this.onDidCreateStartMarker = this._onDidCreateStartMarker.event;
20
21
  }
21
22
  async execute(commandLine, token, commandId) {
22
23
  const store = ( new DisposableStore());
23
24
  try {
24
- this._log('Waiting for xterm');
25
+ this._log("Waiting for xterm");
25
26
  const xterm = await this._instance.xtermReadyPromise;
26
27
  if (!xterm) {
27
- throw ( new Error('Xterm is not available'));
28
+ throw ( new Error("Xterm is not available"));
28
29
  }
29
30
  const alternateBufferPromise = createAltBufferPromise(xterm, store, this._log.bind(this));
30
31
  const onDone = Promise.race([
31
32
  Event.toPromise(this._commandDetection.onCommandFinished, store).then(e => {
32
- this._log('onDone via end event');
33
+ this._log("onDone via end event");
33
34
  return {
34
- 'type': 'success',
35
+ "type": "success",
35
36
  command: e
36
37
  };
37
38
  }),
38
39
  Event.toPromise(token.onCancellationRequested, store).then(() => {
39
- this._log('onDone via cancellation');
40
+ this._log("onDone via cancellation");
40
41
  }),
41
42
  Event.toPromise(this._instance.onDisposed, store).then(() => {
42
- this._log('onDone via terminal disposal');
43
- return { type: 'disposal' };
43
+ this._log("onDone via terminal disposal");
44
+ return {
45
+ type: "disposal"
46
+ };
44
47
  }),
45
48
  trackIdleOnPrompt(this._instance, 1000, store).then(() => {
46
- this._log('onDone via idle prompt');
47
- }),
49
+ this._log("onDone via idle prompt");
50
+ })
48
51
  ]);
49
- setupRecreatingStartMarker(xterm, this._startMarker, m => this._onDidCreateStartMarker.fire(m), store, this._log.bind(this));
52
+ setupRecreatingStartMarker(
53
+ xterm,
54
+ this._startMarker,
55
+ m => this._onDidCreateStartMarker.fire(m),
56
+ store,
57
+ this._log.bind(this)
58
+ );
50
59
  this._log(`Executing command line \`${commandLine}\``);
51
60
  this._instance.runCommand(commandLine, true, commandId);
52
- this._log('Waiting for done event');
53
- const onDoneResult = await Promise.race([onDone, alternateBufferPromise.then(() => ({ type: 'alternateBuffer' }))]);
54
- if (onDoneResult && onDoneResult.type === 'disposal') {
55
- throw ( new Error('The terminal was closed'));
61
+ this._log("Waiting for done event");
62
+ const onDoneResult = await Promise.race([onDone, alternateBufferPromise.then(() => ({
63
+ type: "alternateBuffer"
64
+ }))]);
65
+ if (onDoneResult && onDoneResult.type === "disposal") {
66
+ throw ( new Error("The terminal was closed"));
56
67
  }
57
- if (onDoneResult && onDoneResult.type === 'alternateBuffer') {
58
- this._log('Detected alternate buffer entry, skipping output capture');
68
+ if (onDoneResult && onDoneResult.type === "alternateBuffer") {
69
+ this._log("Detected alternate buffer entry, skipping output capture");
59
70
  return {
60
71
  output: undefined,
61
72
  exitCode: undefined,
62
- error: 'alternateBuffer',
73
+ error: "alternateBuffer",
63
74
  didEnterAltBuffer: true
64
75
  };
65
76
  }
66
- const finishedCommand = onDoneResult && onDoneResult.type === 'success' ? onDoneResult.command : undefined;
77
+ const finishedCommand = onDoneResult && onDoneResult.type === "success" ? onDoneResult.command : undefined;
67
78
  if (token.isCancellationRequested) {
68
79
  throw ( new CancellationError());
69
80
  }
@@ -73,22 +84,21 @@ let RichExecuteStrategy = class RichExecuteStrategy {
73
84
  if (finishedCommand) {
74
85
  const commandOutput = finishedCommand?.getOutput();
75
86
  if (commandOutput !== undefined) {
76
- this._log('Fetched output via finished command');
87
+ this._log("Fetched output via finished command");
77
88
  output = commandOutput;
78
89
  }
79
90
  }
80
91
  if (output === undefined) {
81
92
  try {
82
93
  output = xterm.getContentsAsText(this._startMarker.value, endMarker);
83
- this._log('Fetched output via markers');
84
- }
85
- catch {
86
- this._log('Failed to fetch output via markers');
87
- additionalInformationLines.push('Failed to retrieve command output');
94
+ this._log("Fetched output via markers");
95
+ } catch {
96
+ this._log("Failed to fetch output via markers");
97
+ additionalInformationLines.push("Failed to retrieve command output");
88
98
  }
89
99
  }
90
100
  if (output !== undefined && output.trim().length === 0) {
91
- additionalInformationLines.push('Command produced no output');
101
+ additionalInformationLines.push("Command produced no output");
92
102
  }
93
103
  const exitCode = finishedCommand?.exitCode;
94
104
  if (isNumber(exitCode) && exitCode > 0) {
@@ -96,11 +106,10 @@ let RichExecuteStrategy = class RichExecuteStrategy {
96
106
  }
97
107
  return {
98
108
  output,
99
- additionalInformation: additionalInformationLines.length > 0 ? additionalInformationLines.join('\n') : undefined,
100
- exitCode,
109
+ additionalInformation: additionalInformationLines.length > 0 ? additionalInformationLines.join("\n") : undefined,
110
+ exitCode
101
111
  };
102
- }
103
- finally {
112
+ } finally {
104
113
  store.dispose();
105
114
  }
106
115
  }
@@ -108,8 +117,6 @@ let RichExecuteStrategy = class RichExecuteStrategy {
108
117
  this._logService.debug(`RunInTerminalTool#Rich: ${message}`);
109
118
  }
110
119
  };
111
- RichExecuteStrategy = ( __decorate([
112
- ( __param(2, ITerminalLogService))
113
- ], RichExecuteStrategy));
120
+ RichExecuteStrategy = ( __decorate([( __param(2, ITerminalLogService))], RichExecuteStrategy));
114
121
 
115
122
  export { RichExecuteStrategy };
@@ -16,7 +16,7 @@ function setupRecreatingStartMarker(xterm, startMarker, fire, store, log) {
16
16
  return;
17
17
  }
18
18
  markerListener.value = marker.onDispose(() => {
19
- log?.('Start marker was disposed, recreating');
19
+ log?.("Start marker was disposed, recreating");
20
20
  recreateStartMarker();
21
21
  });
22
22
  };
@@ -32,14 +32,13 @@ function createAltBufferPromise(xterm, store, log) {
32
32
  const deferred = ( new DeferredPromise());
33
33
  const complete = () => {
34
34
  if (!deferred.isSettled) {
35
- log?.('Detected alternate buffer entry');
35
+ log?.("Detected alternate buffer entry");
36
36
  deferred.complete();
37
37
  }
38
38
  };
39
39
  if (xterm.raw.buffer.active === xterm.raw.buffer.alternate) {
40
40
  complete();
41
- }
42
- else {
41
+ } else {
43
42
  store.add(xterm.raw.buffer.onBufferChange(() => {
44
43
  if (xterm.raw.buffer.active === xterm.raw.buffer.alternate) {
45
44
  complete();
@@ -4,7 +4,7 @@ import { truncateOutputKeepingTail } from './runInTerminalHelpers.js';
4
4
  const MAX_OUTPUT_LENGTH = 16000;
5
5
  function getOutput(instance, startMarker) {
6
6
  if (!instance.xterm || !instance.xterm.raw) {
7
- return '';
7
+ return "";
8
8
  }
9
9
  const buffer = instance.xterm.raw.buffer.active;
10
10
  const startLine = Math.max(startMarker?.line ?? 0, 0);
@@ -12,9 +12,9 @@ function getOutput(instance, startMarker) {
12
12
  const lines = ( new Array(endLine - startLine));
13
13
  for (let y = startLine; y < endLine; y++) {
14
14
  const line = buffer.getLine(y);
15
- lines[y - startLine] = line ? line.translateToString(true) : '';
15
+ lines[y - startLine] = line ? line.translateToString(true) : "";
16
16
  }
17
- let output = lines.join('\n');
17
+ let output = lines.join("\n");
18
18
  if (output.length > MAX_OUTPUT_LENGTH) {
19
19
  output = truncateOutputKeepingTail(output, MAX_OUTPUT_LENGTH);
20
20
  }
@@ -14,3 +14,14 @@ export declare function generateAutoApproveActions(commandLine: string, subComma
14
14
  commandLineResult: ICommandApprovalResultWithReason;
15
15
  }): ToolConfirmationAction[];
16
16
  export declare function dedupeRules(rules: ICommandApprovalResultWithReason[]): ICommandApprovalResultWithReason[];
17
+ export interface IExtractedCdPrefix {
18
+ /** The directory path that was extracted from the cd command */
19
+ directory: string;
20
+ /** The command to run after the cd */
21
+ command: string;
22
+ }
23
+ /**
24
+ * Extracts a cd prefix from a command line, returning the directory and remaining command.
25
+ * Does not check if the directory matches the current cwd - just extracts the pattern.
26
+ */
27
+ export declare function extractCdPrefix(commandLine: string, shell: string, os: OperatingSystem): IExtractedCdPrefix | undefined;
@@ -9,12 +9,12 @@ import { isAutoApproveRule } from './tools/commandLineAnalyzer/commandLineAnalyz
9
9
 
10
10
  function isPowerShell(envShell, os) {
11
11
  if (os === OperatingSystem.Windows) {
12
- return /^(?:powershell|pwsh)(?:-preview)?$/i.test(win32.basename(envShell).replace(/\.exe$/i, ''));
12
+ return /^(?:powershell|pwsh)(?:-preview)?$/i.test(win32.basename(envShell).replace(/\.exe$/i, ""));
13
13
  }
14
14
  return /^(?:powershell|pwsh)(?:-preview)?$/.test(posix.basename(envShell));
15
15
  }
16
16
  function isWindowsPowerShell(envShell) {
17
- return envShell.endsWith('System32\\WindowsPowerShell\\v1.0\\powershell.exe');
17
+ return envShell.endsWith("System32\\WindowsPowerShell\\v1.0\\powershell.exe");
18
18
  }
19
19
  function isZsh(envShell, os) {
20
20
  if (os === OperatingSystem.Windows) {
@@ -34,7 +34,7 @@ function isFish(envShell, os) {
34
34
  }
35
35
  return /^fish$/.test(posix.basename(envShell));
36
36
  }
37
- const TRUNCATION_MESSAGE = '\n\n[... PREVIOUS OUTPUT TRUNCATED ...]\n\n';
37
+ const TRUNCATION_MESSAGE = "\n\n[... PREVIOUS OUTPUT TRUNCATED ...]\n\n";
38
38
  function truncateOutputKeepingTail(output, maxLength) {
39
39
  if (output.length <= maxLength) {
40
40
  return output;
@@ -49,26 +49,32 @@ function truncateOutputKeepingTail(output, maxLength) {
49
49
  }
50
50
  function generateAutoApproveActions(commandLine, subCommands, autoApproveResult) {
51
51
  const actions = [];
52
- const canCreateAutoApproval = (autoApproveResult.subCommandResults.every(e => e.result !== 'denied') &&
53
- autoApproveResult.commandLineResult.result !== 'denied');
52
+ const canCreateAutoApproval = (autoApproveResult.subCommandResults.every(e => e.result !== "denied") && autoApproveResult.commandLineResult.result !== "denied");
54
53
  if (canCreateAutoApproval) {
55
54
  const unapprovedSubCommands = subCommands.filter((_, index) => {
56
- return autoApproveResult.subCommandResults[index].result !== 'approved';
55
+ return autoApproveResult.subCommandResults[index].result !== "approved";
57
56
  });
58
57
  const neverAutoApproveCommands = ( new Set([
59
- 'bash', 'sh', 'zsh', 'fish', 'ksh', 'csh', 'tcsh', 'dash',
60
- 'pwsh', 'powershell', 'powershell.exe', 'cmd', 'cmd.exe',
61
- 'python', 'python3', 'node', 'ruby', 'perl', 'php', 'lua',
62
- 'eval', 'exec', 'source', 'sudo', 'su', 'doas',
63
- 'curl', 'wget', 'invoke-restmethod', 'invoke-webrequest', 'irm', 'iwr',
58
+ "bash", "sh", "zsh", "fish", "ksh", "csh", "tcsh", "dash", "pwsh", "powershell", "powershell.exe", "cmd", "cmd.exe",
59
+ "python", "python3", "node", "ruby", "perl", "php", "lua",
60
+ "eval", "exec", "source", "sudo", "su", "doas",
61
+ "curl", "wget", "invoke-restmethod", "invoke-webrequest", "irm", "iwr"]));
62
+ const commandsWithSubcommands = ( new Set([
63
+ "git",
64
+ "npm",
65
+ "npx",
66
+ "yarn",
67
+ "docker",
68
+ "kubectl",
69
+ "cargo",
70
+ "dotnet",
71
+ "mvn",
72
+ "gradle"
64
73
  ]));
65
- const commandsWithSubcommands = ( new Set(
66
- ['git', 'npm', 'npx', 'yarn', 'docker', 'kubectl', 'cargo', 'dotnet', 'mvn', 'gradle']
67
- ));
68
- const commandsWithSubSubCommands = ( new Set(['npm run', 'yarn run']));
74
+ const commandsWithSubSubCommands = ( new Set(["npm run", "yarn run"]));
69
75
  const findNextNonFlagArg = (parts, startIndex) => {
70
76
  for (let i = startIndex; i < parts.length; i++) {
71
- if (!parts[i].startsWith('-')) {
77
+ if (!parts[i].startsWith("-")) {
72
78
  return i;
73
79
  }
74
80
  }
@@ -87,17 +93,15 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
87
93
  if (( commandsWithSubSubCommands.has(baseSubCommand))) {
88
94
  const subSubCommandIndex = findNextNonFlagArg(parts, subCommandIndex + 1);
89
95
  if (subSubCommandIndex !== undefined) {
90
- return parts.slice(0, subSubCommandIndex + 1).join(' ');
96
+ return parts.slice(0, subSubCommandIndex + 1).join(" ");
91
97
  }
92
98
  return undefined;
93
- }
94
- else {
95
- return parts.slice(0, subCommandIndex + 1).join(' ');
99
+ } else {
100
+ return parts.slice(0, subCommandIndex + 1).join(" ");
96
101
  }
97
102
  }
98
103
  return undefined;
99
- }
100
- else {
104
+ } else {
101
105
  return parts[0];
102
106
  }
103
107
  }))))));
@@ -105,40 +109,39 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
105
109
  let subCommandLabel;
106
110
  if (subCommandsToSuggest.length === 1) {
107
111
  subCommandLabel = `\`${subCommandsToSuggest[0]} \u2026\``;
108
- }
109
- else {
110
- subCommandLabel = `Commands ${( subCommandsToSuggest.map(e => `\`${e} \u2026\``)).join(', ')}`;
112
+ } else {
113
+ subCommandLabel = `Commands ${( subCommandsToSuggest.map(e => `\`${e} \u2026\``)).join(", ")}`;
111
114
  }
112
115
  actions.push({
113
116
  label: `Allow ${subCommandLabel} in this Session`,
114
117
  data: {
115
- type: 'newRule',
118
+ type: "newRule",
116
119
  rule: ( subCommandsToSuggest.map(key => ({
117
120
  key,
118
121
  value: true,
119
- scope: 'session'
122
+ scope: "session"
120
123
  })))
121
124
  }
122
125
  });
123
126
  actions.push({
124
127
  label: `Allow ${subCommandLabel} in this Workspace`,
125
128
  data: {
126
- type: 'newRule',
129
+ type: "newRule",
127
130
  rule: ( subCommandsToSuggest.map(key => ({
128
131
  key,
129
132
  value: true,
130
- scope: 'workspace'
133
+ scope: "workspace"
131
134
  })))
132
135
  }
133
136
  });
134
137
  actions.push({
135
138
  label: `Always Allow ${subCommandLabel}`,
136
139
  data: {
137
- type: 'newRule',
140
+ type: "newRule",
138
141
  rule: ( subCommandsToSuggest.map(key => ({
139
142
  key,
140
143
  value: true,
141
- scope: 'user'
144
+ scope: "user"
142
145
  })))
143
146
  }
144
147
  });
@@ -146,49 +149,47 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
146
149
  if (actions.length > 0) {
147
150
  actions.push(( new Separator()));
148
151
  }
149
- const firstSubcommandFirstWord = unapprovedSubCommands.length > 0 ? unapprovedSubCommands[0].split(' ')[0] : '';
150
- if (firstSubcommandFirstWord !== commandLine &&
151
- !( commandsWithSubcommands.has(commandLine)) &&
152
- !( commandsWithSubSubCommands.has(commandLine))) {
152
+ const firstSubcommandFirstWord = unapprovedSubCommands.length > 0 ? unapprovedSubCommands[0].split(" ")[0] : "";
153
+ if (firstSubcommandFirstWord !== commandLine && !( commandsWithSubcommands.has(commandLine)) && !( commandsWithSubSubCommands.has(commandLine))) {
153
154
  actions.push({
154
- label: ( localize(12014, 'Allow Exact Command Line in this Session')),
155
+ label: ( localize(12342, "Allow Exact Command Line in this Session")),
155
156
  data: {
156
- type: 'newRule',
157
+ type: "newRule",
157
158
  rule: {
158
159
  key: `/^${escapeRegExpCharacters(commandLine)}$/`,
159
160
  value: {
160
161
  approve: true,
161
162
  matchCommandLine: true
162
163
  },
163
- scope: 'session'
164
+ scope: "session"
164
165
  }
165
166
  }
166
167
  });
167
168
  actions.push({
168
- label: ( localize(12015, 'Allow Exact Command Line in this Workspace')),
169
+ label: ( localize(12343, "Allow Exact Command Line in this Workspace")),
169
170
  data: {
170
- type: 'newRule',
171
+ type: "newRule",
171
172
  rule: {
172
173
  key: `/^${escapeRegExpCharacters(commandLine)}$/`,
173
174
  value: {
174
175
  approve: true,
175
176
  matchCommandLine: true
176
177
  },
177
- scope: 'workspace'
178
+ scope: "workspace"
178
179
  }
179
180
  }
180
181
  });
181
182
  actions.push({
182
- label: ( localize(12016, 'Always Allow Exact Command Line')),
183
+ label: ( localize(12344, "Always Allow Exact Command Line")),
183
184
  data: {
184
- type: 'newRule',
185
+ type: "newRule",
185
186
  rule: {
186
187
  key: `/^${escapeRegExpCharacters(commandLine)}$/`,
187
188
  value: {
188
189
  approve: true,
189
190
  matchCommandLine: true
190
191
  },
191
- scope: 'user'
192
+ scope: "user"
192
193
  }
193
194
  }
194
195
  });
@@ -198,17 +199,17 @@ function generateAutoApproveActions(commandLine, subCommands, autoApproveResult)
198
199
  actions.push(( new Separator()));
199
200
  }
200
201
  actions.push({
201
- label: ( localize(12017, 'Allow All Commands in this Session')),
202
- tooltip: ( localize(12018, 'Allow this tool to run in this session without confirmation.')),
202
+ label: ( localize(12345, "Allow All Commands in this Session")),
203
+ tooltip: ( localize(12346, "Allow this tool to run in this session without confirmation.")),
203
204
  data: {
204
- type: 'sessionApproval'
205
+ type: "sessionApproval"
205
206
  }
206
207
  });
207
208
  actions.push(( new Separator()));
208
209
  actions.push({
209
- label: ( localize(12019, 'Configure Auto Approve...')),
210
+ label: ( localize(12347, "Configure Auto Approve...")),
210
211
  data: {
211
- type: 'configure'
212
+ type: "configure"
212
213
  }
213
214
  });
214
215
  return actions;
@@ -222,5 +223,24 @@ function dedupeRules(rules) {
222
223
  return array.findIndex(r => isAutoApproveRule(r.rule) && r.rule.sourceText === sourceText) === index;
223
224
  });
224
225
  }
226
+ function extractCdPrefix(commandLine, shell, os) {
227
+ const isPwsh = isPowerShell(shell, os);
228
+ const cdPrefixMatch = commandLine.match(
229
+ isPwsh ? /^(?:cd(?: \/d)?|Set-Location(?: -Path)?) (?<dir>[^\s]+) ?(?:&&|;)\s+(?<suffix>.+)$/i : /^cd (?<dir>[^\s]+) &&\s+(?<suffix>.+)$/
230
+ );
231
+ const cdDir = cdPrefixMatch?.groups?.dir;
232
+ const cdSuffix = cdPrefixMatch?.groups?.suffix;
233
+ if (cdDir && cdSuffix) {
234
+ let cdDirPath = cdDir;
235
+ if (cdDirPath.startsWith("\"") && cdDirPath.endsWith("\"")) {
236
+ cdDirPath = cdDirPath.slice(1, -1);
237
+ }
238
+ return {
239
+ directory: cdDirPath,
240
+ command: cdSuffix
241
+ };
242
+ }
243
+ return undefined;
244
+ }
225
245
 
226
- export { TRUNCATION_MESSAGE, dedupeRules, generateAutoApproveActions, isBash, isFish, isPowerShell, isWindowsPowerShell, isZsh, truncateOutputKeepingTail };
246
+ export { TRUNCATION_MESSAGE, dedupeRules, extractCdPrefix, generateAutoApproveActions, isBash, isFish, isPowerShell, isWindowsPowerShell, isZsh, truncateOutputKeepingTail };