@codingame/monaco-vscode-katex-common 27.0.0 → 28.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 (181) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +2 -0
  3. package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
  4. package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +30 -2
  5. package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.js +1 -0
  6. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +15 -15
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +17 -11
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +5 -0
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +90 -43
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  12. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts +26 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +106 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +6 -0
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +63 -10
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +1 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +13 -10
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +2 -2
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +28 -2
  21. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +133 -28
  22. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +69 -0
  23. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +55 -46
  24. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +10 -10
  25. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +38 -37
  26. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  27. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +5 -5
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +1 -1
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +2 -2
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +72 -57
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
  35. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +1 -16
  36. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -110
  37. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.d.ts +1 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.d.ts +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  42. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +1 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.d.ts +1 -1
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +1 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +1 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.d.ts +1 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.d.ts +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +1 -1
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +59 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.js +29 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.d.ts +1 -1
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +2 -2
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +1 -1
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +1 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorContentPart.d.ts +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.d.ts +1 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.d.ts +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +3 -3
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +1 -1
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +8 -6
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.d.ts +15 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.js +55 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.d.ts +1 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +6 -6
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +6 -4
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +1 -1
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +26 -6
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +290 -126
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +9 -7
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +22 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +263 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +1 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +6 -6
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +5 -5
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.d.ts +1 -1
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.d.ts +1 -1
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +1 -1
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +22 -13
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +12 -18
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -1
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +2 -2
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +3 -13
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +6 -260
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.d.ts +1 -1
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.d.ts +1 -1
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +17 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +129 -117
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +0 -1
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +1 -1
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.d.ts +1 -1
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -1
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +8 -1
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +56 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +5 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +20 -4
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatResultListSubPart.d.ts +1 -1
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.d.ts +1 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +1 -1
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +15 -15
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +43 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +42 -41
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +2 -4
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +14 -14
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +1 -1
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +1 -1
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +3 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +1 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.d.ts +1 -1
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.d.ts +1 -1
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +4 -2
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +61 -39
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +7 -8
  136. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +1 -10
  137. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +81 -191
  138. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +31 -17
  140. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +334 -181
  141. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +7 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +3 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +51 -55
  145. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +104 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +127 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
  148. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +2 -1
  149. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +16 -9
  150. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +2 -1
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +22 -0
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +213 -0
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +1 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +10 -16
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +6 -4
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +174 -10
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +2 -12
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +12 -16
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +1 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +5 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +36 -50
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +19 -4
  163. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +22 -6
  164. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +15 -15
  165. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +3 -1
  166. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +24 -4
  167. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +3 -3
  168. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +5 -5
  169. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
  170. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
  171. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +2 -2
  172. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +1 -1
  173. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +3 -3
  174. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +1 -1
  175. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +38 -46
  176. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  177. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  178. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  179. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  180. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  181. package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.js +6 -10
@@ -4,7 +4,7 @@ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/pl
4
4
  import { IMarkdownRendererService } from "@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer.service";
5
5
  import { IChatToolInvocation, IChatToolInvocationSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
6
6
  import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
7
- import { IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
7
+ import { IChatContentPartRenderContext } from "../chatContentParts.js";
8
8
  import { BaseChatToolInvocationSubPart } from "./chatToolInvocationSubPart.js";
9
9
  /**
10
10
  * Data needed to render an MCP App, available before tool completion.
@@ -39,6 +39,10 @@ export declare class ChatMcpAppSubPart extends BaseChatToolInvocationSubPart {
39
39
  private readonly _progressPart;
40
40
  /** Current error node */
41
41
  private _errorNode;
42
+ /** Container for download resource pills */
43
+ private readonly _downloadContainer;
44
+ /** Current resource group widget for downloads */
45
+ private readonly _downloadWidget;
42
46
  constructor(toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized, onDidRemount: Event<void>, context: IChatContentPartRenderContext, _renderData: IMcpAppRenderData, _instantiationService: IInstantiationService, _markdownRendererService: IMarkdownRendererService);
43
47
  private _handleLoadStateChange;
44
48
  private _updateContainerHeight;
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
- import { $, getWindow, addDisposableListener, append } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
3
+ import { $, getWindow, addDisposableListener, clearNode, append } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
4
  import { Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
5
5
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
6
6
  import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
@@ -14,6 +14,7 @@ import { defaultButtonStyles } from '@codingame/monaco-vscode-api/vscode/vs/plat
14
14
  import { ChatErrorLevel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
15
15
  import { ChatErrorWidget } from '../chatErrorContentPart.js';
16
16
  import { ChatProgressSubPart } from '../chatProgressContentPart.js';
17
+ import { ChatResourceGroupWidget } from '../chatResourceGroupWidget.js';
17
18
  import { ChatMcpAppModel } from './chatMcpAppModel.js';
18
19
  import { BaseChatToolInvocationSubPart } from './chatToolInvocationSubPart.js';
19
20
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
@@ -35,12 +36,15 @@ let ChatMcpAppSubPart = class ChatMcpAppSubPart extends BaseChatToolInvocationSu
35
36
  this._markdownRendererService = _markdownRendererService;
36
37
  this.codeblocks = [];
37
38
  this._progressPart = this._register(( new MutableDisposable()));
39
+ this._downloadWidget = this._register(( new MutableDisposable()));
38
40
  this.domNode = $("div.mcp-app-part");
39
41
  this._webviewContainer = $("div.mcp-app-webview");
40
42
  this._webviewContainer.style.maxHeight = `${maxWebviewHeightPct * 100}vh`;
41
43
  this._webviewContainer.style.minHeight = "100px";
42
44
  this._webviewContainer.style.height = "300px";
43
45
  this.domNode.appendChild(this._webviewContainer);
46
+ this._downloadContainer = $("div.mcp-app-downloads");
47
+ this.domNode.appendChild(this._downloadContainer);
44
48
  const targetWindow = getWindow(this.domNode);
45
49
  const getMaxHeight = () => maxWebviewHeightPct * targetWindow.innerHeight;
46
50
  const maxHeight = observableValue("mcpAppMaxHeight", getMaxHeight());
@@ -61,6 +65,18 @@ let ChatMcpAppSubPart = class ChatMcpAppSubPart extends BaseChatToolInvocationSu
61
65
  this._register(this._model.onDidChangeHeight(() => {
62
66
  this._updateContainerHeight();
63
67
  }));
68
+ this._register(autorun(reader => {
69
+ const parts = this._model.downloadParts.read(reader);
70
+ if (parts.length === 0) {
71
+ this._downloadWidget.clear();
72
+ clearNode(this._downloadContainer);
73
+ return;
74
+ }
75
+ clearNode(this._downloadContainer);
76
+ const widget = this._instantiationService.createInstance(ChatResourceGroupWidget, parts);
77
+ this._downloadWidget.value = widget;
78
+ this._downloadContainer.appendChild(widget.domNode);
79
+ }));
64
80
  this._register(onDidRemount(() => {
65
81
  this._model.remount();
66
82
  }));
@@ -84,7 +100,7 @@ let ChatMcpAppSubPart = class ChatMcpAppSubPart extends BaseChatToolInvocationSu
84
100
  {
85
101
  container.style.display = "none";
86
102
  const progressMessage = $("span");
87
- progressMessage.textContent = ( localize(6565, "Loading MCP App..."));
103
+ progressMessage.textContent = ( localize(6661, "Loading MCP App..."));
88
104
  const progressPart = this._instantiationService.createInstance(
89
105
  ChatProgressSubPart,
90
106
  progressMessage,
@@ -114,12 +130,12 @@ let ChatMcpAppSubPart = class ChatMcpAppSubPart extends BaseChatToolInvocationSu
114
130
  _showError(container, error) {
115
131
  const errorNode = $(".mcp-app-error");
116
132
  const errorMessage = ( new MarkdownString());
117
- errorMessage.appendText(( localize(6566, "Error loading MCP App: {0}", error.message || String(error))));
133
+ errorMessage.appendText(( localize(6662, "Error loading MCP App: {0}", error.message || String(error))));
118
134
  const errorWidget = this._register(( new ChatErrorWidget(ChatErrorLevel.Error, errorMessage, this._markdownRendererService)));
119
135
  errorNode.appendChild(errorWidget.domNode);
120
136
  const buttonContainer = append(errorNode, $(".chat-buttons-container"));
121
137
  const retryButton = this._register(( new Button(buttonContainer, defaultButtonStyles)));
122
- retryButton.label = ( localize(6567, "Retry"));
138
+ retryButton.label = ( localize(6663, "Retry"));
123
139
  this._register(retryButton.onDidClick(() => {
124
140
  this._model.retry();
125
141
  }));
@@ -4,7 +4,7 @@ import { Location } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/l
4
4
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
5
5
  import { IChatToolInvocation, IChatToolInvocationSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
6
6
  import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
7
- import { IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
7
+ import { IChatContentPartRenderContext } from "../chatContentParts.js";
8
8
  import { CollapsibleListPool } from "../chatReferencesContentPart.js";
9
9
  import { BaseChatToolInvocationSubPart } from "./chatToolInvocationSubPart.js";
10
10
  export declare class ChatResultListSubPart extends BaseChatToolInvocationSubPart {
@@ -5,7 +5,7 @@ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/pl
5
5
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
6
6
  import { IChatSimpleToolInvocationData, IChatToolInvocation, IChatToolInvocationSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
7
7
  import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
8
- import { IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
8
+ import { IChatContentPartRenderContext } from "../chatContentParts.js";
9
9
  import { BaseChatToolInvocationSubPart } from "./chatToolInvocationSubPart.js";
10
10
  export declare class ChatSimpleToolProgressPart extends BaseChatToolInvocationSubPart {
11
11
  /** Remembers expanded tool parts on re-render */
@@ -16,7 +16,7 @@ import type { CodeBlockModelCollection } from "../../../../common/widget/codeBlo
16
16
  import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
17
17
  import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
18
18
  import { EditorPool } from "../chatContentCodePools.js";
19
- import { IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
19
+ import { IChatContentPartRenderContext } from "../chatContentParts.js";
20
20
  import { BaseChatToolInvocationSubPart } from "./chatToolInvocationSubPart.js";
21
21
  export declare enum TerminalToolConfirmationStorageKeys {
22
22
  TerminalAutoApproveWarningAccepted = "chat.tools.terminal.autoApprove.warningAccepted"
@@ -113,7 +113,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
113
113
  moreActions = [];
114
114
  if (!autoApproveWarningAccepted) {
115
115
  moreActions.push({
116
- label: ( localize(6568, "Enable Auto Approve...")),
116
+ label: ( localize(6664, "Enable Auto Approve...")),
117
117
  data: {
118
118
  type: "enable"
119
119
  }
@@ -319,7 +319,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
319
319
  }
320
320
  const target = scope === "workspace" ? ConfigurationTarget.WORKSPACE : ConfigurationTarget.USER;
321
321
  const settingsUri = createCommandUri(TerminalContribCommandId.OpenTerminalSettingsLink, target);
322
- return `[\`${e.key}\`](${( settingsUri.toString())} "${( localize(6569, "View rule in settings"))}")`;
322
+ return `[\`${e.key}\`](${( settingsUri.toString())} "${( localize(6665, "View rule in settings"))}")`;
323
323
  })).join(", ");
324
324
  }
325
325
  const mdTrustSettings = {
@@ -330,33 +330,33 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
330
330
  const parts = [];
331
331
  if (sessionRules.length > 0) {
332
332
  parts.push(sessionRules.length === 1 ? ( localize(
333
- 6570,
333
+ 6666,
334
334
  "Session auto approve rule {0} added",
335
335
  formatRuleLinks(sessionRules, "session")
336
336
  )) : ( localize(
337
- 6571,
337
+ 6667,
338
338
  "Session auto approve rules {0} added",
339
339
  formatRuleLinks(sessionRules, "session")
340
340
  )));
341
341
  }
342
342
  if (workspaceRules.length > 0) {
343
343
  parts.push(workspaceRules.length === 1 ? ( localize(
344
- 6572,
344
+ 6668,
345
345
  "Workspace auto approve rule {0} added",
346
346
  formatRuleLinks(workspaceRules, "workspace")
347
347
  )) : ( localize(
348
- 6573,
348
+ 6669,
349
349
  "Workspace auto approve rules {0} added",
350
350
  formatRuleLinks(workspaceRules, "workspace")
351
351
  )));
352
352
  }
353
353
  if (userRules.length > 0) {
354
354
  parts.push(userRules.length === 1 ? ( localize(
355
- 6574,
355
+ 6670,
356
356
  "User auto approve rule {0} added",
357
357
  formatRuleLinks(userRules, "user")
358
358
  )) : ( localize(
359
- 6575,
359
+ 6671,
360
360
  "User auto approve rules {0} added",
361
361
  formatRuleLinks(userRules, "user")
362
362
  )));
@@ -386,7 +386,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
386
386
  enabledCommands: [TerminalContribCommandId.DisableSessionAutoApproval]
387
387
  }
388
388
  };
389
- terminalData.autoApproveInfo = ( new MarkdownString(`${( localize(6576, "All commands will be auto approved for this session"))} ([${( localize(6577, "Disable"))}](${( disableUri.toString())}))`, mdTrustSettings));
389
+ terminalData.autoApproveInfo = ( new MarkdownString(`${( localize(6672, "All commands will be auto approved for this session"))} ([${( localize(6673, "Disable"))}](${( disableUri.toString())}))`, mdTrustSettings));
390
390
  toolConfirmKind = ToolConfirmKind.UserAction;
391
391
  break;
392
392
  }
@@ -410,11 +410,11 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
410
410
  };
411
411
  };
412
412
  return [{
413
- ...getLabelAndTooltip(( localize(6578, "Allow")), AcceptToolConfirmationActionId),
413
+ ...getLabelAndTooltip(( localize(6674, "Allow")), AcceptToolConfirmationActionId),
414
414
  data: true,
415
415
  moreActions
416
416
  }, {
417
- ...getLabelAndTooltip(( localize(6579, "Skip")), SkipToolConfirmationActionId, ( localize(6580, "Proceed without executing this command"))),
417
+ ...getLabelAndTooltip(( localize(6675, "Skip")), SkipToolConfirmationActionId, ( localize(6676, "Proceed without executing this command"))),
418
418
  data: {
419
419
  type: "skip"
420
420
  },
@@ -424,9 +424,9 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
424
424
  async _showAutoApproveWarning() {
425
425
  const promptResult = await this.dialogService.prompt({
426
426
  type: Severity.Info,
427
- message: ( localize(6581, "Enable terminal auto approve?")),
427
+ message: ( localize(6677, "Enable terminal auto approve?")),
428
428
  buttons: [{
429
- label: ( localize(6582, "Enable")),
429
+ label: ( localize(6678, "Enable")),
430
430
  run: () => true
431
431
  }],
432
432
  cancelButton: true,
@@ -434,11 +434,11 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
434
434
  icon: Codicon.shield,
435
435
  markdownDetails: [{
436
436
  markdown: ( new MarkdownString(( localize(
437
- 6583,
437
+ 6679,
438
438
  "This will enable a configurable subset of commands to run in the terminal autonomously. It provides *best effort protections* and assumes the agent is not acting maliciously."
439
439
  ))))
440
440
  }, {
441
- markdown: ( new MarkdownString(`[${( localize(6584, "Learn more about the potential risks and how to avoid them."))}](https://code.visualstudio.com/docs/copilot/security#_security-considerations)`))
441
+ markdown: ( new MarkdownString(`[${( localize(6680, "Learn more about the potential risks and how to avoid them."))}](https://code.visualstudio.com/docs/copilot/security#_security-considerations)`))
442
442
  }]
443
443
  }
444
444
  });
@@ -4,7 +4,7 @@ import { IChatToolInvocation, IChatToolInvocationSerialized, type IChatTerminalT
4
4
  import { CodeBlockModelCollection } from "../../../../common/widget/codeBlockModelCollection.js";
5
5
  import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
6
6
  import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
7
- import { IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
7
+ import { IChatContentPartRenderContext } from "../chatContentParts.js";
8
8
  import { BaseChatToolInvocationSubPart } from "./chatToolInvocationSubPart.js";
9
9
  import { Action, IAction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/actions";
10
10
  import { IChatTerminalToolProgressPart, ITerminalInstance } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
@@ -19,6 +19,25 @@ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platf
19
19
  import { EditorPool } from "../chatContentCodePools.js";
20
20
  import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
21
21
  import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
22
+ /**
23
+ * A chat content part that displays terminal tool invocation progress.
24
+ *
25
+ * This component shows:
26
+ * - The command being executed with syntax highlighting
27
+ * - A status decoration indicating success/failure/running state
28
+ * - Expandable terminal output with live streaming support
29
+ * - Actions to focus the terminal, show/hide output, and continue in background
30
+ *
31
+ * The component supports two rendering modes:
32
+ * - Standard mode: Shows full progress with status indicators
33
+ * - Collapsible wrapper mode: For thinking containers with simplified UI
34
+ *
35
+ * Output auto-expansion behavior:
36
+ * - Long-running commands with output auto-expand after a short delay
37
+ * - Fast commands that complete quickly don't auto-expand (prevents flickering)
38
+ * - Failed commands can be configured to auto-expand via settings
39
+ * - Successful commands auto-collapse if output was auto-expanded
40
+ */
22
41
  export declare class ChatTerminalToolProgressPart extends BaseChatToolInvocationSubPart implements IChatTerminalToolProgressPart {
23
42
  private readonly _instantiationService;
24
43
  private readonly _terminalChatService;
@@ -64,9 +83,32 @@ export declare class ChatTerminalToolProgressPart extends BaseChatToolInvocation
64
83
  private _getResolvedCommand;
65
84
  private _ensureShowOutputAction;
66
85
  private _clearCommandAssociation;
86
+ /**
87
+ * Determines whether the terminal output should auto-expand.
88
+ * Returns false if already expanded, user has manually toggled, component is disposed,
89
+ * or if the invocation was previously expanded (to preserve state across re-renders).
90
+ */
91
+ private _shouldAutoExpand;
92
+ /**
93
+ * Registers event listeners on the terminal instance to track command execution,
94
+ * manage auto-expansion of output, and handle command completion.
95
+ *
96
+ * This method sets up:
97
+ * - Command detection listeners for tracking command lifecycle
98
+ * - Auto-expand logic based on command output and duration
99
+ * - Instance disposal handling to clean up actions and state
100
+ */
67
101
  private _registerInstanceListener;
68
102
  private _removeFocusAction;
69
103
  private _removeContinueInBackgroundAction;
104
+ /**
105
+ * Handles the completion of a terminal command by updating the UI state.
106
+ * This includes marking the collapsible wrapper as complete, auto-collapsing
107
+ * successful commands, and keeping failed commands expanded.
108
+ *
109
+ * @param resolvedCommand The completed terminal command with exit code information.
110
+ */
111
+ private _handleCommandCompletion;
70
112
  private _toggleOutput;
71
113
  private _ensureTerminalInstance;
72
114
  private _handleOutputFocus;
@@ -62,6 +62,10 @@ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/obse
62
62
  registerCss(chatTerminalToolProgressPart);
63
63
  const MIN_OUTPUT_ROWS = 1;
64
64
  const MAX_OUTPUT_ROWS = 10;
65
+ const MAX_COMMAND_TITLE_LENGTH = 50;
66
+ const MAX_OUTPUT_POLL_RETRIES = 10;
67
+ const OUTPUT_POLL_DELAY_MS = 100;
68
+ const MIN_DATA_EVENTS_FOR_REAL_OUTPUT = 2;
65
69
  const expandedStateByInvocation = ( new WeakMap());
66
70
  let TerminalCommandDecoration = class TerminalCommandDecoration extends Disposable {
67
71
  constructor(_options, _hoverService) {
@@ -277,7 +281,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
277
281
  const markdownOptions = {
278
282
  codeBlockRenderOptions,
279
283
  accessibilityOptions: pastTenseMessage ? {
280
- statusMessage: ( localize(6585, "{0}", stripIcons(pastTenseMessage)))
284
+ statusMessage: ( localize(6681, "{0}", stripIcons(pastTenseMessage)))
281
285
  } : undefined
282
286
  };
283
287
  this.markdownPart = this._register(_instantiationService.createInstance(
@@ -328,8 +332,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
328
332
  this._register(this._terminalChatService.registerProgressPart(this));
329
333
  }
330
334
  _createCollapsibleWrapper(contentElement, commandText, toolInvocation, context) {
331
- const maxCommandLength = 50;
332
- const truncatedCommand = commandText.length > maxCommandLength ? commandText.substring(0, maxCommandLength) + "..." : commandText;
335
+ const truncatedCommand = commandText.length > MAX_COMMAND_TITLE_LENGTH ? commandText.substring(0, MAX_COMMAND_TITLE_LENGTH) + "..." : commandText;
333
336
  const isComplete = IChatToolInvocation.isComplete(toolInvocation);
334
337
  const autoExpandFailures = this._configurationService.getValue(ChatConfiguration.AutoExpandToolFailures);
335
338
  const hasError = autoExpandFailures && this._terminalData.terminalCommandState?.exitCode !== undefined && this._terminalData.terminalCommandState.exitCode !== 0;
@@ -516,6 +519,9 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
516
519
  }
517
520
  this._decoration.update();
518
521
  }
522
+ _shouldAutoExpand() {
523
+ return !this._outputView.isExpanded && !this._userToggledOutput && !this._store.isDisposed && !expandedStateByInvocation.get(this.toolInvocation);
524
+ }
519
525
  _registerInstanceListener(terminalInstance) {
520
526
  const commandDetectionListener = this._register(( new MutableDisposable()));
521
527
  const tryResolveCommand = async () => {
@@ -547,12 +553,12 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
547
553
  if (cursorLine > command.executedMarker.line) {
548
554
  return true;
549
555
  }
550
- return receivedDataCount > 2;
556
+ return receivedDataCount > MIN_DATA_EVENTS_FOR_REAL_OUTPUT;
551
557
  };
552
558
  const autoExpand = store.add(( new TerminalToolAutoExpand({
553
559
  commandDetection,
554
560
  onWillData: terminalInstance.onWillData,
555
- shouldAutoExpand: () => !this._outputView.isExpanded && !this._userToggledOutput && !this._store.isDisposed && !expandedStateByInvocation.get(this.toolInvocation),
561
+ shouldAutoExpand: () => this._shouldAutoExpand(),
556
562
  hasRealOutput
557
563
  })));
558
564
  store.add(autoExpand.onDidRequestExpand(() => {
@@ -570,14 +576,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
570
576
  store.add(commandDetection.onCommandFinished(() => {
571
577
  this._addActions(terminalInstance, this._terminalData.terminalToolSessionId);
572
578
  const resolvedCommand = this._getResolvedCommand(terminalInstance);
573
- this.markCollapsibleWrapperComplete();
574
- if (resolvedCommand?.exitCode === 0 && this._outputView.isExpanded && !this._userToggledOutput) {
575
- this._toggleOutput(false);
576
- }
577
- const autoExpandFailures = this._configurationService.getValue(ChatConfiguration.AutoExpandToolFailures);
578
- if (autoExpandFailures && resolvedCommand?.exitCode !== undefined && resolvedCommand.exitCode !== 0 && this._thinkingCollapsibleWrapper) {
579
- this.expandCollapsibleWrapper();
580
- }
579
+ this._handleCommandCompletion(resolvedCommand);
581
580
  if (resolvedCommand?.endMarker) {
582
581
  commandDetectionListener.clear();
583
582
  }
@@ -586,14 +585,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
586
585
  const resolvedImmediately = await tryResolveCommand();
587
586
  if (resolvedImmediately?.endMarker) {
588
587
  commandDetectionListener.clear();
589
- this.markCollapsibleWrapperComplete();
590
- if (resolvedImmediately.exitCode === 0 && this._outputView.isExpanded && !this._userToggledOutput) {
591
- this._toggleOutput(false);
592
- }
593
- const autoExpandFailures = this._configurationService.getValue(ChatConfiguration.AutoExpandToolFailures);
594
- if (autoExpandFailures && resolvedImmediately.exitCode !== undefined && resolvedImmediately.exitCode !== 0 && this._thinkingCollapsibleWrapper) {
595
- this.expandCollapsibleWrapper();
596
- }
588
+ this._handleCommandCompletion(resolvedImmediately);
597
589
  return;
598
590
  }
599
591
  };
@@ -647,6 +639,16 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
647
639
  }
648
640
  this._continueInBackgroundAction.clear();
649
641
  }
642
+ _handleCommandCompletion(resolvedCommand) {
643
+ this.markCollapsibleWrapperComplete();
644
+ if (resolvedCommand?.exitCode === 0 && this._outputView.isExpanded && !this._userToggledOutput) {
645
+ this._toggleOutput(false);
646
+ }
647
+ const autoExpandFailures = this._configurationService.getValue(ChatConfiguration.AutoExpandToolFailures);
648
+ if (autoExpandFailures && resolvedCommand?.exitCode !== undefined && resolvedCommand.exitCode !== 0 && this._thinkingCollapsibleWrapper) {
649
+ this.expandCollapsibleWrapper();
650
+ }
651
+ }
650
652
  async _toggleOutput(expanded) {
651
653
  const didChange = await this._outputView.toggle(expanded);
652
654
  const isExpanded = this._outputView.isExpanded;
@@ -859,7 +861,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
859
861
  if (!commandText) {
860
862
  return;
861
863
  }
862
- const ariaLabel = ( localize(6586, "Terminal output for {0}", commandText));
864
+ const ariaLabel = ( localize(6682, "Terminal output for {0}", commandText));
863
865
  const scrollableDomNode = this._scrollableContainer.getDomNode();
864
866
  scrollableDomNode.setAttribute("role", "region");
865
867
  const accessibleViewHint = this._accessibleViewService.getOpenAriaHint(AccessibilityVerbositySettingId.TerminalChatOutput);
@@ -872,26 +874,26 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
872
874
  if (!commandText) {
873
875
  return undefined;
874
876
  }
875
- const commandHeader = ( localize(6587, "Command: {0}", commandText));
877
+ const commandHeader = ( localize(6683, "Command: {0}", commandText));
876
878
  if (command) {
877
879
  const rawOutput = command.getOutput();
878
880
  if (!rawOutput || rawOutput.trim().length === 0) {
879
- return `${commandHeader}\n${( localize(6588, "No output was produced by the command."))}`;
881
+ return `${commandHeader}\n${( localize(6684, "No output was produced by the command."))}`;
880
882
  }
881
883
  const lines = rawOutput.split("\n");
882
884
  return `${commandHeader}\n${lines.join("\n").trimEnd()}`;
883
885
  }
884
886
  const snapshot = this._getTerminalCommandOutput();
885
887
  if (!snapshot) {
886
- return `${commandHeader}\n${( localize(6589, "Command output is no longer available."))}`;
888
+ return `${commandHeader}\n${( localize(6685, "Command output is no longer available."))}`;
887
889
  }
888
890
  const plain = removeAnsiEscapeCodes((snapshot.text ?? ""));
889
891
  if (!plain.trim().length) {
890
- return `${commandHeader}\n${( localize(6588, "No output was produced by the command."))}`;
892
+ return `${commandHeader}\n${( localize(6684, "No output was produced by the command."))}`;
891
893
  }
892
894
  let outputText = plain.trimEnd();
893
895
  if (snapshot.truncated) {
894
- outputText += `\n${( localize(6590, "Output truncated."))}`;
896
+ outputText += `\n${( localize(6686, "Output truncated."))}`;
895
897
  }
896
898
  return `${commandHeader}\n${outputText}`;
897
899
  }
@@ -985,9 +987,8 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
985
987
  let commandFinished = !!command.endMarker;
986
988
  let hasOutput = result && result.lineCount && result.lineCount > 0;
987
989
  if (!hasOutput) {
988
- const maxRetries = 10;
989
- for (let retry = 0; retry < maxRetries && !hasOutput; retry++) {
990
- await timeout(100);
990
+ for (let retry = 0; retry < MAX_OUTPUT_POLL_RETRIES && !hasOutput; retry++) {
991
+ await timeout(OUTPUT_POLL_DELAY_MS);
991
992
  if (this._store.isDisposed) {
992
993
  return true;
993
994
  }
@@ -1001,7 +1002,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
1001
1002
  }
1002
1003
  if (!hasOutput) {
1003
1004
  if (commandFinished) {
1004
- this._showEmptyMessage(( localize(6588, "No output was produced by the command.")));
1005
+ this._showEmptyMessage(( localize(6684, "No output was produced by the command.")));
1005
1006
  }
1006
1007
  } else {
1007
1008
  this._hideEmptyMessage();
@@ -1028,7 +1029,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
1028
1029
  if (hasText) {
1029
1030
  this._hideEmptyMessage();
1030
1031
  } else {
1031
- this._showEmptyMessage(( localize(6588, "No output was produced by the command.")));
1032
+ this._showEmptyMessage(( localize(6684, "No output was produced by the command.")));
1032
1033
  }
1033
1034
  const lineCount = result?.lineCount ?? snapshot.lineCount ?? 0;
1034
1035
  this._layoutOutput(lineCount);
@@ -1037,9 +1038,9 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
1037
1038
  clearNode(this._terminalContainer);
1038
1039
  this._lastRenderedLineCount = undefined;
1039
1040
  if (!liveTerminalInstance) {
1040
- this._showEmptyMessage(( localize(6591, "Terminal is no longer available.")));
1041
+ this._showEmptyMessage(( localize(6687, "Terminal is no longer available.")));
1041
1042
  } else {
1042
- this._showEmptyMessage(( localize(6592, "Command information is not available.")));
1043
+ this._showEmptyMessage(( localize(6688, "Command information is not available.")));
1043
1044
  }
1044
1045
  }
1045
1046
  async _resolveLiveTerminal() {
@@ -1158,7 +1159,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
1158
1159
  ChatTerminalToolOutputSection = ( __decorate([( __param(5, IAccessibleViewService)), ( __param(6, IInstantiationService)), ( __param(7, ITerminalConfigurationService)), ( __param(8, IThemeService)), ( __param(9, IContextKeyService))], ChatTerminalToolOutputSection));
1159
1160
  let ToggleChatTerminalOutputAction = class ToggleChatTerminalOutputAction extends Action {
1160
1161
  constructor(_toggle, _keybindingService, _telemetryService) {
1161
- super(TerminalContribCommandId.ToggleChatTerminalOutput, ( localize(6593, "Show Output")), ThemeIcon.asClassName(Codicon.chevronRight), true);
1162
+ super(TerminalContribCommandId.ToggleChatTerminalOutput, ( localize(6689, "Show Output")), ThemeIcon.asClassName(Codicon.chevronRight), true);
1162
1163
  this._toggle = _toggle;
1163
1164
  this._keybindingService = _keybindingService;
1164
1165
  this._telemetryService = _telemetryService;
@@ -1181,10 +1182,10 @@ let ToggleChatTerminalOutputAction = class ToggleChatTerminalOutputAction extend
1181
1182
  }
1182
1183
  _updatePresentation() {
1183
1184
  if (this._expanded) {
1184
- this.label = ( localize(6594, "Hide Output"));
1185
+ this.label = ( localize(6690, "Hide Output"));
1185
1186
  this.class = ThemeIcon.asClassName(Codicon.chevronDown);
1186
1187
  } else {
1187
- this.label = ( localize(6593, "Show Output"));
1188
+ this.label = ( localize(6689, "Show Output"));
1188
1189
  this.class = ThemeIcon.asClassName(Codicon.chevronRight);
1189
1190
  }
1190
1191
  }
@@ -1208,7 +1209,7 @@ let FocusChatInstanceAction = class FocusChatInstanceAction extends Action {
1208
1209
  ) {
1209
1210
  super(
1210
1211
  TerminalContribCommandId.FocusChatInstanceAction,
1211
- isTerminalHidden ? ( localize(6595, "Show and Focus Terminal")) : ( localize(6596, "Focus Terminal")),
1212
+ isTerminalHidden ? ( localize(6691, "Show and Focus Terminal")) : ( localize(6692, "Focus Terminal")),
1212
1213
  ThemeIcon.asClassName(Codicon.openInProduct),
1213
1214
  true
1214
1215
  );
@@ -1224,7 +1225,7 @@ let FocusChatInstanceAction = class FocusChatInstanceAction extends Action {
1224
1225
  this._updateTooltip();
1225
1226
  }
1226
1227
  async run() {
1227
- this.label = this._instance?.shellLaunchConfig.hideFromUser ? ( localize(6597, "Show and Focus Terminal")) : ( localize(6596, "Focus Terminal"));
1228
+ this.label = this._instance?.shellLaunchConfig.hideFromUser ? ( localize(6693, "Show and Focus Terminal")) : ( localize(6692, "Focus Terminal"));
1228
1229
  this._updateTooltip();
1229
1230
  let target = "none";
1230
1231
  let location = "panel";
@@ -1281,7 +1282,7 @@ let FocusChatInstanceAction = class FocusChatInstanceAction extends Action {
1281
1282
  FocusChatInstanceAction = ( __decorate([( __param(5, ITerminalService)), ( __param(6, ITerminalEditorService)), ( __param(7, ITerminalGroupService)), ( __param(8, IKeybindingService)), ( __param(9, ITelemetryService))], FocusChatInstanceAction));
1282
1283
  let ContinueInBackgroundAction = class ContinueInBackgroundAction extends Action {
1283
1284
  constructor(_terminalToolSessionId, _terminalChatService) {
1284
- super(TerminalContribCommandId.ContinueInBackground, ( localize(6598, "Continue in Background")), ThemeIcon.asClassName(Codicon.debugContinue), true);
1285
+ super(TerminalContribCommandId.ContinueInBackground, ( localize(6694, "Continue in Background")), ThemeIcon.asClassName(Codicon.debugContinue), true);
1285
1286
  this._terminalToolSessionId = _terminalToolSessionId;
1286
1287
  this._terminalChatService = _terminalChatService;
1287
1288
  }
@@ -1318,7 +1319,7 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
1318
1319
  }
1319
1320
  const labelElement = this._collapseButton.labelElement;
1320
1321
  labelElement.textContent = "";
1321
- const prefixText = this._isComplete ? ( localize(6599, "Ran ")) : ( localize(6600, "Running "));
1322
+ const prefixText = this._isComplete ? ( localize(6695, "Ran ")) : ( localize(6696, "Running "));
1322
1323
  const ranText = createTextNode(prefixText);
1323
1324
  const codeElement = createElement("code");
1324
1325
  codeElement.textContent = this._commandText;
@@ -1,6 +1,5 @@
1
1
  import { Separator } from "@codingame/monaco-vscode-api/vscode/vs/base/common/actions";
2
2
  import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
3
- import { IModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service";
4
3
  import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
5
4
  import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
6
5
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
@@ -13,7 +12,7 @@ import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/
13
12
  import { ILanguageModelToolsConfirmationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsConfirmationService.service";
14
13
  import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
15
14
  import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
16
- import { IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
15
+ import { IChatContentPartRenderContext } from "../chatContentParts.js";
17
16
  import { IChatMarkdownAnchorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service";
18
17
  import { AbstractToolConfirmationSubPart } from "./abstractToolConfirmationSubPart.js";
19
18
  import { EditorPool } from "../chatContentCodePools.js";
@@ -23,7 +22,6 @@ export declare class ToolConfirmationSubPart extends AbstractToolConfirmationSub
23
22
  private readonly currentWidthDelegate;
24
23
  private readonly codeBlockModelCollection;
25
24
  private readonly codeBlockStartIndex;
26
- private readonly modelService;
27
25
  private readonly languageService;
28
26
  private readonly commandService;
29
27
  private readonly markerService;
@@ -31,7 +29,7 @@ export declare class ToolConfirmationSubPart extends AbstractToolConfirmationSub
31
29
  private readonly confirmationService;
32
30
  private markdownParts;
33
31
  get codeblocks(): IChatCodeBlockInfo[];
34
- constructor(toolInvocation: IChatToolInvocation, context: IChatContentPartRenderContext, renderer: IMarkdownRenderer, editorPool: EditorPool, currentWidthDelegate: () => number, codeBlockModelCollection: CodeBlockModelCollection, codeBlockStartIndex: number, instantiationService: IInstantiationService, keybindingService: IKeybindingService, modelService: IModelService, languageService: ILanguageService, contextKeyService: IContextKeyService, chatWidgetService: IChatWidgetService, commandService: ICommandService, markerService: IMarkerService, languageModelToolsService: ILanguageModelToolsService, chatMarkdownAnchorService: IChatMarkdownAnchorService, confirmationService: ILanguageModelToolsConfirmationService);
32
+ constructor(toolInvocation: IChatToolInvocation, context: IChatContentPartRenderContext, renderer: IMarkdownRenderer, editorPool: EditorPool, currentWidthDelegate: () => number, codeBlockModelCollection: CodeBlockModelCollection, codeBlockStartIndex: number, instantiationService: IInstantiationService, keybindingService: IKeybindingService, languageService: ILanguageService, contextKeyService: IContextKeyService, chatWidgetService: IChatWidgetService, commandService: ICommandService, markerService: IMarkerService, languageModelToolsService: ILanguageModelToolsService, chatMarkdownAnchorService: IChatMarkdownAnchorService, confirmationService: ILanguageModelToolsConfirmationService);
35
33
  protected additionalPrimaryActions(): (Separator | import("./abstractToolConfirmationSubPart.js").IAbstractToolPrimaryAction)[];
36
34
  protected createContentElement(): HTMLElement | string;
37
35
  protected getTitle(): string;