@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
@@ -100,12 +100,40 @@ async function collectTerminalResults(terminals, task, instantiationService, inv
100
100
  if (token.isCancellationRequested) {
101
101
  return results;
102
102
  }
103
+ const commonTaskIdToTaskMap = {};
104
+ const taskIdToTaskMap = {};
105
+ const taskLabelToTaskMap = {};
106
+ for (const dependencyTask of dependencyTasks ?? []) {
107
+ commonTaskIdToTaskMap[dependencyTask.getCommonTaskId()] = dependencyTask;
108
+ taskIdToTaskMap[dependencyTask._id] = dependencyTask;
109
+ taskLabelToTaskMap[dependencyTask._label] = dependencyTask;
110
+ }
103
111
  for (const instance of terminals) {
104
112
  progress.report({ message: ( new MarkdownString(`Checking output for \`${instance.shellLaunchConfig.name ?? 'unknown'}\``)) });
113
+ let terminalTask = task;
114
+ if (dependencyTasks?.length) {
115
+ const reconnectionData = instance.reconnectionProperties?.data;
116
+ if (reconnectionData) {
117
+ if (reconnectionData.lastTask in commonTaskIdToTaskMap) {
118
+ terminalTask = commonTaskIdToTaskMap[reconnectionData.lastTask];
119
+ }
120
+ else if (reconnectionData.id in taskIdToTaskMap) {
121
+ terminalTask = taskIdToTaskMap[reconnectionData.id];
122
+ }
123
+ }
124
+ else {
125
+ if (instance.shellLaunchConfig.name && instance.shellLaunchConfig.name in taskLabelToTaskMap) {
126
+ terminalTask = taskLabelToTaskMap[instance.shellLaunchConfig.name];
127
+ }
128
+ else if (instance.title in taskLabelToTaskMap) {
129
+ terminalTask = taskLabelToTaskMap[instance.title];
130
+ }
131
+ }
132
+ }
105
133
  const execution = {
106
134
  getOutput: () => getOutput(instance) ?? '',
107
- isActive,
108
- task,
135
+ task: terminalTask,
136
+ isActive: isActive ? () => isActive(terminalTask) : undefined,
109
137
  instance,
110
138
  dependencyTasks,
111
139
  sessionId: invocationContext.sessionId
@@ -114,7 +142,7 @@ async function collectTerminalResults(terminals, task, instantiationService, inv
114
142
  await Event.toPromise(outputMonitor.onDidFinishCommand);
115
143
  const pollingResult = outputMonitor.pollingResult;
116
144
  results.push({
117
- name: instance.shellLaunchConfig.name ?? 'unknown',
145
+ name: instance.shellLaunchConfig.name ?? instance.title ?? 'unknown',
118
146
  output: pollingResult?.output ?? '',
119
147
  pollDurationMs: pollingResult?.pollDurationMs ?? 0,
120
148
  resources: pollingResult?.resources,
@@ -160,9 +188,10 @@ async function taskProblemPollFn(execution, token, taskService) {
160
188
  }
161
189
  }
162
190
  if (problemList.length === 0) {
191
+ const lastTenLines = execution.getOutput().split('\n').filter(line => line !== '').slice(-10).join('\n');
163
192
  return {
164
193
  state: OutputMonitorState.Idle,
165
- output: 'The task succeeded with no problems.',
194
+ output: `Task completed with output:\n${lastTenLines}`,
166
195
  };
167
196
  }
168
197
  return {
@@ -3,43 +3,71 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
3
3
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
4
4
  import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
5
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
6
+ import { isNumber } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
6
7
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
8
  import { MenuId } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
9
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
8
10
  import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
9
11
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
12
+ import { TerminalSettingId } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal';
10
13
  import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
14
+ import { IWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service';
11
15
  import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
12
- import { showChatView } from '@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common/vscode/vs/workbench/contrib/chat/browser/chat';
16
+ import { showChatView } from '@codingame/monaco-vscode-2339d6ac-d6bb-53cd-95ee-81911735d1c7-common/vscode/vs/workbench/contrib/chat/browser/chat';
13
17
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
14
18
  import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
15
- import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
19
+ import { ToolDataSource, VSCodeToolReference } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService';
16
20
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
17
21
  import { registerActiveInstanceAction, sharedWhenClause } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminal/browser/terminalActions';
18
22
  import { TerminalContextMenuGroup } from '@codingame/monaco-vscode-05a2a821-e4de-5941-b7f9-bbf01c09f229-common/vscode/vs/workbench/contrib/terminal/browser/terminalMenus';
19
23
  import { TerminalContextKeys } from '@codingame/monaco-vscode-b6d52a6d-8c8e-51f5-bcd2-1722295e31d9-common/vscode/vs/workbench/contrib/terminal/common/terminalContextKey';
20
24
  import { TerminalChatAgentToolsCommandId } from '../common/terminal.chatAgentTools.js';
25
+ import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-de235d7f-e72a-5adb-9256-acf6c64eb6f2-common/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
21
26
  import { GetTerminalLastCommandTool, GetTerminalLastCommandToolData } from './tools/getTerminalLastCommandTool.js';
22
27
  import { GetTerminalOutputTool, GetTerminalOutputToolData } from './tools/getTerminalOutputTool.js';
23
28
  import { GetTerminalSelectionTool, GetTerminalSelectionToolData } from './tools/getTerminalSelectionTool.js';
24
- import { RunInTerminalTool, RunInTerminalToolData } from './tools/runInTerminalTool.js';
29
+ import { ConfirmTerminalCommandTool, ConfirmTerminalCommandToolData } from './tools/runInTerminalConfirmationTool.js';
30
+ import { createRunInTerminalToolData, RunInTerminalTool } from './tools/runInTerminalTool.js';
25
31
  import { CreateAndRunTaskTool, CreateAndRunTaskToolData } from './tools/task/createAndRunTaskTool.js';
26
32
  import { GetTaskOutputTool, GetTaskOutputToolData } from './tools/task/getTaskOutputTool.js';
27
33
  import { RunTaskTool, RunTaskToolData } from './tools/task/runTaskTool.js';
28
34
 
35
+ let ShellIntegrationTimeoutMigrationContribution = class ShellIntegrationTimeoutMigrationContribution extends Disposable {
36
+ static { this.ID = 'terminal.shellIntegrationTimeoutMigration'; }
37
+ constructor(configurationService) {
38
+ super();
39
+ const deprecatedSettingValue = configurationService.getValue(TerminalChatAgentToolsSettingId.ShellIntegrationTimeout);
40
+ if (!isNumber(deprecatedSettingValue)) {
41
+ return;
42
+ }
43
+ const newSettingValue = configurationService.getValue(TerminalSettingId.ShellIntegrationTimeout);
44
+ if (!isNumber(newSettingValue)) {
45
+ configurationService.updateValue(TerminalSettingId.ShellIntegrationTimeout, deprecatedSettingValue);
46
+ }
47
+ }
48
+ };
49
+ ShellIntegrationTimeoutMigrationContribution = ( __decorate([
50
+ ( __param(0, IConfigurationService))
51
+ ], ShellIntegrationTimeoutMigrationContribution));
52
+ registerWorkbenchContribution2(ShellIntegrationTimeoutMigrationContribution.ID, ShellIntegrationTimeoutMigrationContribution, WorkbenchPhase.Eventually);
29
53
  let ChatAgentToolsContribution = class ChatAgentToolsContribution extends Disposable {
30
54
  static { this.ID = 'terminal.chatAgentTools'; }
31
55
  constructor(instantiationService, toolsService) {
32
56
  super();
33
- const runInTerminalTool = instantiationService.createInstance(RunInTerminalTool);
34
- this._register(toolsService.registerTool(RunInTerminalToolData, runInTerminalTool));
57
+ const confirmTerminalCommandTool = instantiationService.createInstance(ConfirmTerminalCommandTool);
58
+ this._register(toolsService.registerTool(ConfirmTerminalCommandToolData, confirmTerminalCommandTool));
35
59
  const getTerminalOutputTool = instantiationService.createInstance(GetTerminalOutputTool);
36
60
  this._register(toolsService.registerTool(GetTerminalOutputToolData, getTerminalOutputTool));
37
- const runCommandsToolSet = this._register(toolsService.createToolSet(ToolDataSource.Internal, 'runCommands', 'runCommands', {
61
+ const runCommandsToolSet = this._register(toolsService.createToolSet(ToolDataSource.Internal, 'runCommands', VSCodeToolReference.runCommands, {
38
62
  icon: ThemeIcon.fromId(Codicon.terminal.id),
39
- description: ( localize(11544, 'Runs commands in the terminal'))
63
+ description: ( localize(11831, 'Runs commands in the terminal'))
40
64
  }));
41
- runCommandsToolSet.addTool(RunInTerminalToolData);
42
65
  runCommandsToolSet.addTool(GetTerminalOutputToolData);
66
+ instantiationService.invokeFunction(createRunInTerminalToolData).then(runInTerminalToolData => {
67
+ const runInTerminalTool = instantiationService.createInstance(RunInTerminalTool);
68
+ this._register(toolsService.registerTool(runInTerminalToolData, runInTerminalTool));
69
+ runCommandsToolSet.addTool(runInTerminalToolData);
70
+ });
43
71
  const getTerminalSelectionTool = instantiationService.createInstance(GetTerminalSelectionTool);
44
72
  this._register(toolsService.registerTool(GetTerminalSelectionToolData, getTerminalSelectionTool));
45
73
  const getTerminalLastCommandTool = instantiationService.createInstance(GetTerminalLastCommandTool);
@@ -53,7 +81,7 @@ let ChatAgentToolsContribution = class ChatAgentToolsContribution extends Dispos
53
81
  const createAndRunTaskTool = instantiationService.createInstance(CreateAndRunTaskTool);
54
82
  this._register(toolsService.registerTool(CreateAndRunTaskToolData, createAndRunTaskTool));
55
83
  const runTasksToolSet = this._register(toolsService.createToolSet(ToolDataSource.Internal, 'runTasks', 'runTasks', {
56
- description: ( localize(11545, 'Runs tasks and gets their output for your workspace')),
84
+ description: ( localize(11832, 'Runs tasks and gets their output for your workspace')),
57
85
  }));
58
86
  runTasksToolSet.addTool(RunTaskToolData);
59
87
  runTasksToolSet.addTool(GetTaskOutputToolData);
@@ -67,7 +95,7 @@ ChatAgentToolsContribution = ( __decorate([
67
95
  registerWorkbenchContribution2(ChatAgentToolsContribution.ID, ChatAgentToolsContribution, WorkbenchPhase.AfterRestored);
68
96
  registerActiveInstanceAction({
69
97
  id: TerminalChatAgentToolsCommandId.ChatAddTerminalSelection,
70
- title: ( localize(11546, 'Add Terminal Selection to Chat')),
98
+ title: ( localize(11833, 'Add Terminal Selection to Chat')),
71
99
  precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, sharedWhenClause.terminalAvailable)),
72
100
  menu: [
73
101
  {
@@ -80,19 +108,20 @@ registerActiveInstanceAction({
80
108
  run: async (activeInstance, _c, accessor) => {
81
109
  const viewsService = accessor.get(IViewsService);
82
110
  const chatWidgetService = accessor.get(IChatWidgetService);
111
+ const layoutService = accessor.get(IWorkbenchLayoutService);
83
112
  const selection = activeInstance.selection;
84
113
  if (!selection) {
85
114
  return;
86
115
  }
87
- const chatView = chatWidgetService.lastFocusedWidget || (await showChatView(viewsService));
116
+ const chatView = chatWidgetService.lastFocusedWidget || (await showChatView(viewsService, layoutService));
88
117
  if (!chatView) {
89
118
  return;
90
119
  }
91
120
  chatView.attachmentModel.addContext({
92
121
  id: `terminal-selection-${Date.now()}`,
93
122
  kind: 'generic',
94
- name: ( localize(11547, 'Terminal Selection')),
95
- fullName: ( localize(11547, 'Terminal Selection')),
123
+ name: ( localize(11834, 'Terminal Selection')),
124
+ fullName: ( localize(11834, 'Terminal Selection')),
96
125
  value: selection,
97
126
  icon: Codicon.terminal
98
127
  });
@@ -8,12 +8,12 @@ import { DisposableStore, MutableDisposable } from '@codingame/monaco-vscode-api
8
8
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
9
9
  import { isNumber, isObject } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
10
10
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
11
- import { TerminalCapability } from '@codingame/monaco-vscode-a9da9abe-278d-5ce6-9418-99c7c07c5c37-common/vscode/vs/platform/terminal/common/capabilities/capabilities';
12
- import { PromptInputState } from '@codingame/monaco-vscode-88141f48-1af9-57ef-a278-f4b2ff6128fa-common/vscode/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel';
11
+ import { TerminalCapability } from '@codingame/monaco-vscode-10af0e5d-64cb-56de-b584-29ab4a355d15-common/vscode/vs/platform/terminal/common/capabilities/capabilities';
12
+ import { PromptInputState } from '@codingame/monaco-vscode-45e04ac3-b807-5ae5-8818-7b9c40b6d31f-common/vscode/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel';
13
13
  import { TerminalSettingId } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal';
14
14
  import { ITerminalLogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service';
15
15
  import { ITerminalService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
16
- import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-a175bd1a-4858-5944-9ae5-fb73305dcb13-common/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
16
+ import { getShellIntegrationTimeout } from '@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common/vscode/vs/workbench/contrib/terminal/common/terminalEnvironment';
17
17
 
18
18
  var ToolTerminalCreator_1;
19
19
  var ShellLaunchType;
@@ -42,22 +42,16 @@ let ToolTerminalCreator = class ToolTerminalCreator {
42
42
  instance,
43
43
  shellIntegrationQuality: ShellIntegrationQuality.None,
44
44
  };
45
+ let processReadyTimestamp = 0;
45
46
  const initResult = await Promise.any([
46
- instance.processReady,
47
+ instance.processReady.then(() => processReadyTimestamp = Date.now()),
47
48
  Event.toPromise(instance.onExit),
48
49
  ]);
49
50
  if (!isNumber(initResult) && isObject(initResult) && 'message' in initResult) {
50
51
  throw ( new Error(initResult.message));
51
52
  }
52
- const siInjectionEnabled = this._configurationService.getValue(TerminalSettingId.ShellIntegrationEnabled);
53
- const configuredTimeout = this._configurationService.getValue(TerminalChatAgentToolsSettingId.ShellIntegrationTimeout);
54
- let waitTime;
55
- if (configuredTimeout === undefined || typeof configuredTimeout !== 'number' || configuredTimeout < 0) {
56
- waitTime = siInjectionEnabled ? 5000 : (instance.isRemote ? 3000 : 2000);
57
- }
58
- else {
59
- waitTime = Math.max(configuredTimeout, 500);
60
- }
53
+ const siInjectionEnabled = this._configurationService.getValue(TerminalSettingId.ShellIntegrationEnabled) === true;
54
+ const waitTime = getShellIntegrationTimeout(this._configurationService, siInjectionEnabled, instance.hasRemoteAuthority, processReadyTimestamp);
61
55
  if (ToolTerminalCreator_1._lastSuccessfulShell !== ShellLaunchType.Fallback ||
62
56
  siInjectionEnabled) {
63
57
  this._logService.info(`ToolTerminalCreator#createTerminal: Waiting ${waitTime}ms for shell integration`);
@@ -98,6 +92,7 @@ let ToolTerminalCreator = class ToolTerminalCreator {
98
92
  const config = {
99
93
  icon: ThemeIcon.fromId(Codicon.chatSparkle.id),
100
94
  hideFromUser: true,
95
+ forcePersist: true,
101
96
  env: {
102
97
  GIT_PAGER: 'cat',
103
98
  }
@@ -149,14 +144,12 @@ let ToolTerminalCreator = class ToolTerminalCreator {
149
144
  }, 200));
150
145
  }
151
146
  else {
152
- store.add(instance.capabilities.onDidAddCapabilityType(e => {
153
- if (e === TerminalCapability.CommandDetection) {
154
- siNoneTimer.clear();
155
- store.add(disposableTimeout(() => {
156
- this._logService.info(`ToolTerminalCreator#_waitForShellIntegration: Timed out 200ms, using basic SI (via listener)`);
157
- result.complete(ShellIntegrationQuality.Basic);
158
- }, 200));
159
- }
147
+ store.add(instance.capabilities.onDidAddCommandDetectionCapability(e => {
148
+ siNoneTimer.clear();
149
+ store.add(disposableTimeout(() => {
150
+ this._logService.info(`ToolTerminalCreator#_waitForShellIntegration: Timed out 200ms, using basic SI (via listener)`);
151
+ result.complete(ShellIntegrationQuality.Basic);
152
+ }, 200));
160
153
  }));
161
154
  }
162
155
  }
@@ -0,0 +1,23 @@
1
+ import type { IMarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent";
2
+ import type { IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import type { OperatingSystem } from "@codingame/monaco-vscode-api/vscode/vs/base/common/platform";
4
+ import type { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
5
+ import type { ToolConfirmationAction } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
6
+ import type { TreeSitterCommandParserLanguage } from "../../treeSitterCommandParser.js";
7
+ export interface ICommandLineAnalyzer extends IDisposable {
8
+ analyze(options: ICommandLineAnalyzerOptions): Promise<ICommandLineAnalyzerResult>;
9
+ }
10
+ export interface ICommandLineAnalyzerOptions {
11
+ commandLine: string;
12
+ cwd: URI | undefined;
13
+ shell: string;
14
+ os: OperatingSystem;
15
+ treeSitterLanguage: TreeSitterCommandParserLanguage;
16
+ terminalToolSessionId: string;
17
+ }
18
+ export interface ICommandLineAnalyzerResult {
19
+ readonly isAutoApproveAllowed: boolean;
20
+ readonly disclaimers?: readonly string[];
21
+ readonly autoApproveInfo?: IMarkdownString;
22
+ readonly customActions?: ToolConfirmationAction[];
23
+ }
@@ -0,0 +1,18 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
3
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
4
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
5
+ import type { RunInTerminalToolTelemetry } from "../../runInTerminalToolTelemetry.js";
6
+ import { type TreeSitterCommandParser } from "../../treeSitterCommandParser.js";
7
+ import type { ICommandLineAnalyzer, ICommandLineAnalyzerOptions, ICommandLineAnalyzerResult } from "./commandLineAnalyzer.js";
8
+ export declare class CommandLineAutoApproveAnalyzer extends Disposable implements ICommandLineAnalyzer {
9
+ private readonly _treeSitterCommandParser;
10
+ private readonly _telemetry;
11
+ private readonly _log;
12
+ private readonly _configurationService;
13
+ private readonly _storageService;
14
+ private readonly _commandLineAutoApprover;
15
+ constructor(_treeSitterCommandParser: TreeSitterCommandParser, _telemetry: RunInTerminalToolTelemetry, _log: (message: string, ...args: unknown[]) => void, _configurationService: IConfigurationService, instantiationService: IInstantiationService, _storageService: IStorageService);
16
+ analyze(options: ICommandLineAnalyzerOptions): Promise<ICommandLineAnalyzerResult>;
17
+ private _createAutoApproveInfo;
18
+ }
@@ -0,0 +1,227 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { asArray } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
4
+ import { createCommandUri, MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
5
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
6
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
8
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
9
+ import { StorageScope } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage';
10
+ import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
11
+ import { TerminalToolConfirmationStorageKeys } from '@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common/vscode/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart';
12
+ import { openTerminalSettingsLinkCommandId } from '@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common/vscode/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart';
13
+ import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
14
+ import { TerminalChatAgentToolsSettingId } from '@codingame/monaco-vscode-de235d7f-e72a-5adb-9256-acf6c64eb6f2-common/vscode/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration';
15
+ import { CommandLineAutoApprover } from '../../commandLineAutoApprover.js';
16
+ import { isPowerShell, generateAutoApproveActions, dedupeRules } from '../../runInTerminalHelpers.js';
17
+
18
+ const promptInjectionWarningCommandsLower = [
19
+ 'curl',
20
+ 'wget',
21
+ ];
22
+ const promptInjectionWarningCommandsLowerPwshOnly = [
23
+ 'invoke-restmethod',
24
+ 'invoke-webrequest',
25
+ 'irm',
26
+ 'iwr',
27
+ ];
28
+ let CommandLineAutoApproveAnalyzer = class CommandLineAutoApproveAnalyzer extends Disposable {
29
+ constructor(_treeSitterCommandParser, _telemetry, _log, _configurationService, instantiationService, _storageService) {
30
+ super();
31
+ this._treeSitterCommandParser = _treeSitterCommandParser;
32
+ this._telemetry = _telemetry;
33
+ this._log = _log;
34
+ this._configurationService = _configurationService;
35
+ this._storageService = _storageService;
36
+ this._commandLineAutoApprover = this._register(instantiationService.createInstance(CommandLineAutoApprover));
37
+ }
38
+ async analyze(options) {
39
+ let subCommands;
40
+ try {
41
+ subCommands = await this._treeSitterCommandParser.extractSubCommands(options.treeSitterLanguage, options.commandLine);
42
+ this._log(`Parsed sub-commands via ${options.treeSitterLanguage} grammar`, subCommands);
43
+ }
44
+ catch (e) {
45
+ console.error(e);
46
+ this._log(`Failed to parse sub-commands via ${options.treeSitterLanguage} grammar`);
47
+ }
48
+ let isAutoApproved = false;
49
+ let autoApproveInfo;
50
+ let customActions;
51
+ if (!subCommands) {
52
+ return {
53
+ isAutoApproveAllowed: false,
54
+ disclaimers: [],
55
+ };
56
+ }
57
+ const subCommandResults = ( subCommands.map(
58
+ e => this._commandLineAutoApprover.isCommandAutoApproved(e, options.shell, options.os)
59
+ ));
60
+ const commandLineResult = this._commandLineAutoApprover.isCommandLineAutoApproved(options.commandLine);
61
+ const autoApproveReasons = [
62
+ ...( subCommandResults.map(e => e.reason)),
63
+ commandLineResult.reason,
64
+ ];
65
+ let isDenied = false;
66
+ let autoApproveReason;
67
+ let autoApproveDefault;
68
+ const deniedSubCommandResult = subCommandResults.find(e => e.result === 'denied');
69
+ if (deniedSubCommandResult) {
70
+ this._log('Sub-command DENIED auto approval');
71
+ isDenied = true;
72
+ autoApproveDefault = deniedSubCommandResult.rule?.isDefaultRule;
73
+ autoApproveReason = 'subCommand';
74
+ }
75
+ else if (commandLineResult.result === 'denied') {
76
+ this._log('Command line DENIED auto approval');
77
+ isDenied = true;
78
+ autoApproveDefault = commandLineResult.rule?.isDefaultRule;
79
+ autoApproveReason = 'commandLine';
80
+ }
81
+ else {
82
+ if (subCommandResults.every(e => e.result === 'approved')) {
83
+ this._log('All sub-commands auto-approved');
84
+ autoApproveReason = 'subCommand';
85
+ isAutoApproved = true;
86
+ autoApproveDefault = subCommandResults.every(e => e.rule?.isDefaultRule);
87
+ }
88
+ else {
89
+ this._log('All sub-commands NOT auto-approved');
90
+ if (commandLineResult.result === 'approved') {
91
+ this._log('Command line auto-approved');
92
+ autoApproveReason = 'commandLine';
93
+ isAutoApproved = true;
94
+ autoApproveDefault = commandLineResult.rule?.isDefaultRule;
95
+ }
96
+ else {
97
+ this._log('Command line NOT auto-approved');
98
+ }
99
+ }
100
+ }
101
+ for (const reason of autoApproveReasons) {
102
+ this._log(`- ${reason}`);
103
+ }
104
+ const isAutoApproveEnabled = this._configurationService.getValue(TerminalChatAgentToolsSettingId.EnableAutoApprove) === true;
105
+ const isAutoApproveWarningAccepted = this._storageService.getBoolean(TerminalToolConfirmationStorageKeys.TerminalAutoApproveWarningAccepted, StorageScope.APPLICATION, false);
106
+ if (isAutoApproveEnabled && isAutoApproved) {
107
+ autoApproveInfo = this._createAutoApproveInfo(isAutoApproved, isDenied, autoApproveReason, subCommandResults, commandLineResult);
108
+ }
109
+ else {
110
+ isAutoApproved = false;
111
+ }
112
+ this._telemetry.logPrepare({
113
+ terminalToolSessionId: options.terminalToolSessionId,
114
+ subCommands,
115
+ autoApproveAllowed: !isAutoApproveEnabled ? 'off' : isAutoApproveWarningAccepted ? 'allowed' : 'needsOptIn',
116
+ autoApproveResult: isAutoApproved ? 'approved' : isDenied ? 'denied' : 'manual',
117
+ autoApproveReason,
118
+ autoApproveDefault
119
+ });
120
+ const disclaimers = [];
121
+ const subCommandsLowerFirstWordOnly = ( subCommands.map(command => command.split(' ')[0].toLowerCase()));
122
+ if (!isAutoApproved && (( subCommandsLowerFirstWordOnly.some(command => promptInjectionWarningCommandsLower.includes(command))) ||
123
+ (isPowerShell(options.shell, options.os) && ( subCommandsLowerFirstWordOnly.some(command => promptInjectionWarningCommandsLowerPwshOnly.includes(command)))))) {
124
+ disclaimers.push(( localize(
125
+ 11835,
126
+ 'Web content may contain malicious code or attempt prompt injection attacks.'
127
+ )));
128
+ }
129
+ if (!isAutoApproved && isAutoApproveEnabled) {
130
+ customActions = generateAutoApproveActions(options.commandLine, subCommands, { subCommandResults, commandLineResult });
131
+ }
132
+ return {
133
+ isAutoApproveAllowed: isAutoApproved,
134
+ disclaimers,
135
+ autoApproveInfo,
136
+ customActions,
137
+ };
138
+ }
139
+ _createAutoApproveInfo(isAutoApproved, isDenied, autoApproveReason, subCommandResults, commandLineResult) {
140
+ const formatRuleLinks = (result) => {
141
+ return ( asArray(result).map(e => {
142
+ const settingsUri = createCommandUri(openTerminalSettingsLinkCommandId, e.rule.sourceTarget);
143
+ return `[\`${e.rule.sourceText}\`](${( settingsUri.toString())} "${( localize(11836, 'View rule in settings'))}")`;
144
+ })).join(', ');
145
+ };
146
+ const mdTrustSettings = {
147
+ isTrusted: {
148
+ enabledCommands: [openTerminalSettingsLinkCommandId]
149
+ }
150
+ };
151
+ const config = this._configurationService.inspect(ChatConfiguration.GlobalAutoApprove);
152
+ const isGlobalAutoApproved = config?.value ?? config.defaultValue;
153
+ if (isGlobalAutoApproved) {
154
+ const settingsUri = createCommandUri(openTerminalSettingsLinkCommandId, 'global');
155
+ return (new MarkdownString(`${( localize(
156
+ 11837,
157
+ 'Auto approved by setting {0}',
158
+ `[\`${ChatConfiguration.GlobalAutoApprove}\`](${( settingsUri.toString())} "${( localize(11838, 'View settings'))}")`
159
+ ))}`, mdTrustSettings));
160
+ }
161
+ if (isAutoApproved) {
162
+ switch (autoApproveReason) {
163
+ case 'commandLine': {
164
+ if (commandLineResult.rule) {
165
+ return (new MarkdownString(
166
+ localize(11839, 'Auto approved by rule {0}', formatRuleLinks(commandLineResult)),
167
+ mdTrustSettings
168
+ ));
169
+ }
170
+ break;
171
+ }
172
+ case 'subCommand': {
173
+ const uniqueRules = dedupeRules(subCommandResults);
174
+ if (uniqueRules.length === 1) {
175
+ return (new MarkdownString(
176
+ localize(11839, 'Auto approved by rule {0}', formatRuleLinks(uniqueRules)),
177
+ mdTrustSettings
178
+ ));
179
+ }
180
+ else if (uniqueRules.length > 1) {
181
+ return (new MarkdownString(
182
+ localize(11840, 'Auto approved by rules {0}', formatRuleLinks(uniqueRules)),
183
+ mdTrustSettings
184
+ ));
185
+ }
186
+ break;
187
+ }
188
+ }
189
+ }
190
+ else if (isDenied) {
191
+ switch (autoApproveReason) {
192
+ case 'commandLine': {
193
+ if (commandLineResult.rule) {
194
+ return (new MarkdownString(localize(
195
+ 11841,
196
+ 'Auto approval denied by rule {0}',
197
+ formatRuleLinks(commandLineResult)
198
+ ), mdTrustSettings));
199
+ }
200
+ break;
201
+ }
202
+ case 'subCommand': {
203
+ const uniqueRules = dedupeRules(subCommandResults.filter(e => e.result === 'denied'));
204
+ if (uniqueRules.length === 1) {
205
+ return (new MarkdownString(
206
+ localize(11841, 'Auto approval denied by rule {0}', formatRuleLinks(uniqueRules))
207
+ ));
208
+ }
209
+ else if (uniqueRules.length > 1) {
210
+ return (new MarkdownString(
211
+ localize(11842, 'Auto approval denied by rules {0}', formatRuleLinks(uniqueRules))
212
+ ));
213
+ }
214
+ break;
215
+ }
216
+ }
217
+ }
218
+ return undefined;
219
+ }
220
+ };
221
+ CommandLineAutoApproveAnalyzer = ( __decorate([
222
+ ( __param(3, IConfigurationService)),
223
+ ( __param(4, IInstantiationService)),
224
+ ( __param(5, IStorageService))
225
+ ], CommandLineAutoApproveAnalyzer));
226
+
227
+ export { CommandLineAutoApproveAnalyzer };
@@ -0,0 +1,17 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
3
+ import { IWorkspaceContextService } from "@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service";
4
+ import { type TreeSitterCommandParser } from "../../treeSitterCommandParser.js";
5
+ import type { ICommandLineAnalyzer, ICommandLineAnalyzerOptions, ICommandLineAnalyzerResult } from "./commandLineAnalyzer.js";
6
+ import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service";
7
+ export declare class CommandLineFileWriteAnalyzer extends Disposable implements ICommandLineAnalyzer {
8
+ private readonly _treeSitterCommandParser;
9
+ private readonly _log;
10
+ private readonly _configurationService;
11
+ private readonly _labelService;
12
+ private readonly _workspaceContextService;
13
+ constructor(_treeSitterCommandParser: TreeSitterCommandParser, _log: (message: string, ...args: unknown[]) => void, _configurationService: IConfigurationService, _labelService: ILabelService, _workspaceContextService: IWorkspaceContextService);
14
+ analyze(options: ICommandLineAnalyzerOptions): Promise<ICommandLineAnalyzerResult>;
15
+ private _getFileWrites;
16
+ private _getResult;
17
+ }