@codingame/monaco-vscode-katex-common 31.0.1 → 32.0.1

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 (220) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +15 -3
  3. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +6 -5
  4. package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +5 -1
  5. package/vscode/src/vs/platform/actions/browser/buttonbar.js +45 -14
  6. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +15 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +15 -10
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +51 -54
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
  14. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.d.ts +3 -1
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +45 -23
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +13 -7
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +5 -3
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +4 -1
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +46 -32
  21. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.js +8 -0
  22. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -1
  23. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +155 -46
  24. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +1 -0
  25. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +20 -1
  26. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.d.ts +4 -1
  27. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +37 -14
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -34
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/media/chatSessionPickerActionItem.css +1 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.d.ts +28 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +250 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  34. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +14 -11
  35. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
  36. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  37. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +7 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  42. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +7 -3
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +12 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +51 -20
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +6 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.js +56 -3
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.d.ts +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.js +2 -2
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.d.ts +3 -1
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.js +4 -0
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +68 -10
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.d.ts +58 -2
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +653 -75
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +28 -10
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +5 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +91 -54
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +7 -5
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +53 -51
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +11 -11
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +4 -1
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +42 -22
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +2 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +6 -2
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +93 -35
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +5 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +169 -27
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +13 -4
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +29 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +1 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +60 -15
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +13 -6
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +15 -8
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +6 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +125 -26
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +2 -1
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +29 -23
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.d.ts +14 -0
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +119 -10
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +6 -6
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +1 -1
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/media/toolRiskBadge.css +77 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.d.ts +38 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +125 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +1 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +132 -59
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +16 -3
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +156 -67
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +55 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.js +93 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +21 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +133 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +53 -8
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +288 -125
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +23 -2
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +699 -145
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +12 -8
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +12 -11
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.d.ts +62 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +120 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +191 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatPhoneInputPresenter.css +22 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +3 -3
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +9 -25
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +4 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +20 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +89 -108
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +521 -9
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +2 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +19 -19
  136. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +6 -6
  137. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionStorageKeys.d.ts +2 -0
  138. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionStorageKeys.js +6 -0
  139. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.d.ts +27 -0
  140. package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +82 -0
  141. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +3 -0
  142. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +44 -17
  143. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +1 -3
  144. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +3 -46
  145. package/vscode/src/vs/workbench/contrib/inlineChat/browser/{inlineChatEditorAffordance.d.ts → inlineChatAffordanceWidget.d.ts} +1 -1
  146. package/vscode/src/vs/workbench/contrib/inlineChat/browser/{inlineChatEditorAffordance.js → inlineChatAffordanceWidget.js} +6 -6
  147. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -18
  148. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +19 -400
  149. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +4 -9
  150. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +1 -1
  151. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.d.ts +5 -19
  152. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +47 -133
  153. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.d.ts +3 -1
  154. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +103 -25
  155. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +29 -0
  156. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +3 -32
  157. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +39 -92
  158. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  159. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  160. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  161. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
  163. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
  164. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
  165. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
  166. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
  167. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
  168. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  169. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  170. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +7 -0
  171. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +99 -32
  172. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +13 -1
  173. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +76 -14
  174. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -3
  175. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +9 -1
  176. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +89 -28
  177. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +1 -1
  178. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -1
  179. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +11 -7
  180. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +3 -1
  181. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +7 -3
  182. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +1 -1
  183. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  184. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +1 -0
  185. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  186. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +8 -0
  187. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +11 -2
  188. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +20 -0
  189. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +59 -4
  190. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -1
  191. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +24 -3
  192. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +47 -0
  193. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +111 -30
  194. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +60 -3
  195. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +455 -171
  196. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +33 -0
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +82 -0
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.d.ts +31 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.js +49 -0
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.d.ts +18 -0
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.js +302 -0
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.d.ts +7 -0
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.js +118 -0
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +34 -4
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +233 -48
  206. package/vscode/src/vs/platform/actions/browser/actionbar.d.ts +0 -16
  207. package/vscode/src/vs/platform/actions/browser/actionbar.js +0 -22
  208. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
  209. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -539
  210. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -29
  211. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -386
  212. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.d.ts +0 -101
  213. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +0 -509
  214. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -130
  215. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +0 -276
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.d.ts +0 -45
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.js +0 -93
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +0 -39
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +0 -617
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +0 -231
@@ -209,23 +209,23 @@ let ChatDragAndDrop = class ChatDragAndDrop extends Themable {
209
209
  getDropTypeName(type) {
210
210
  switch (type) {
211
211
  case ChatDragAndDropType.FILE_INTERNAL:
212
- return localize(7106, "File");
212
+ return localize(7399, "File");
213
213
  case ChatDragAndDropType.FILE_EXTERNAL:
214
- return localize(7106, "File");
214
+ return localize(7399, "File");
215
215
  case ChatDragAndDropType.FOLDER:
216
- return localize(7107, "Folder");
216
+ return localize(7400, "Folder");
217
217
  case ChatDragAndDropType.IMAGE:
218
- return localize(7108, "Image");
218
+ return localize(7401, "Image");
219
219
  case ChatDragAndDropType.SYMBOL:
220
- return localize(7109, "Symbol");
220
+ return localize(7402, "Symbol");
221
221
  case ChatDragAndDropType.MARKER:
222
- return localize(7110, "Problem");
222
+ return localize(7403, "Problem");
223
223
  case ChatDragAndDropType.HTML:
224
- return localize(7111, "URL");
224
+ return localize(7404, "URL");
225
225
  case ChatDragAndDropType.NOTEBOOK_CELL_OUTPUT:
226
- return localize(7112, "Output");
226
+ return localize(7405, "Output");
227
227
  case ChatDragAndDropType.SCM_HISTORY_ITEM:
228
- return localize(7113, "Change");
228
+ return localize(7406, "Change");
229
229
  }
230
230
  }
231
231
  async resolveAttachmentsFromDragEvent(e) {
@@ -297,7 +297,7 @@ let ChatDragAndDrop = class ChatDragAndDrop extends Themable {
297
297
  async resolveHTMLAttachContext(e) {
298
298
  const existingAttachmentNames = ( new Set(( this.attachmentModel.attachments.map(attachment => attachment.name))));
299
299
  const createDisplayName = () => {
300
- const baseName = ( localize(7114, "Image from URL"));
300
+ const baseName = ( localize(7407, "Image from URL"));
301
301
  let uniqueName = baseName;
302
302
  let baseNameInstance = 1;
303
303
  while (( existingAttachmentNames.has(uniqueName))) {
@@ -375,7 +375,7 @@ let ChatDragAndDrop = class ChatDragAndDrop extends Themable {
375
375
  }
376
376
  getOverlayText(type) {
377
377
  const typeName = this.getDropTypeName(type);
378
- return localize(7115, "Attach {0} as Context", typeName);
378
+ return localize(7408, "Attach {0} as Context", typeName);
379
379
  }
380
380
  updateOverlayStyles(overlay) {
381
381
  overlay.style.backgroundColor = this.getColor(this.styles.overlayBackground) || "";
@@ -257,6 +257,7 @@ export declare class ChatListItemRenderer extends Disposable implements ITreeRen
257
257
  private _getCarouselStableKey;
258
258
  private _notifyOnQuestionCarousel;
259
259
  private renderPlanReview;
260
+ private getPlanReviewProgressMessage;
260
261
  private removeCarouselFromTracking;
261
262
  private renderChangesSummary;
262
263
  private renderAttachments;
@@ -45,7 +45,7 @@ import { ChatAgentVoteDirection, ChatRequestQueueKind, IChatToolInvocation, isCh
45
45
  import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
46
46
  import { ChatPlanReviewData } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatPlanReviewData';
47
47
  import { ChatQuestionCarouselData } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatQuestionCarouselData';
48
- import { localChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
48
+ import { localChatSessionType, isAgentHostTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
49
49
  import { getChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
50
50
  import { isResponseVM, isPendingDividerVM, isRequestVM } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
51
51
  import { getNWords } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatWordCounter';
@@ -96,7 +96,7 @@ import { HookType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contr
96
96
  import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service';
97
97
  import { AccessibilityWorkbenchSettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
98
98
  import { isMcpToolInvocation } from './chatContentParts/toolInvocationParts/chatToolPartUtilities.js';
99
- import { isAgentHostTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
99
+ import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
100
100
  import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
101
101
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
102
102
 
@@ -464,7 +464,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
464
464
  const checkpointRestoreContainer = append(rowContainer, $(".checkpoint-restore-container"));
465
465
  append(checkpointRestoreContainer, $(".checkpoint-line-left"));
466
466
  const label = append(checkpointRestoreContainer, $("span.checkpoint-label-text"));
467
- label.textContent = ( localize(7116, "Checkpoint Restored"));
467
+ label.textContent = ( localize(7409, "Checkpoint Restored"));
468
468
  const dot = append(checkpointRestoreContainer, $("span.checkpoint-dot-separator"));
469
469
  dot.textContent = "·";
470
470
  dot.setAttribute("aria-hidden", "true");
@@ -568,12 +568,14 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
568
568
  this._onDidFocusOutside.fire();
569
569
  }
570
570
  }));
571
- const resizeObserver = templateDisposables.add(new DisposableResizeObserver(entries => {
572
- const entry = entries[0];
573
- if (entry) {
574
- this.fireItemHeightChange(template, entry.borderBoxSize.at(0)?.blockSize);
575
- }
576
- }));
571
+ const resizeObserver = templateDisposables.add(
572
+ new DisposableResizeObserver("ChatListItemRenderer.itemHeight", entries => {
573
+ const entry = entries[0];
574
+ if (entry) {
575
+ this.fireItemHeightChange(template, entry.borderBoxSize.at(0)?.blockSize);
576
+ }
577
+ })
578
+ );
577
579
  templateDisposables.add(resizeObserver.observe(rowContainer));
578
580
  return template;
579
581
  }
@@ -837,15 +839,15 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
837
839
  const label = append(dividerContent, $$1("span.pending-divider-label"));
838
840
  if (element.dividerKind === ChatRequestQueueKind.Steering) {
839
841
  if (element.isSystemInitiated) {
840
- label.textContent = ( localize(7117, "System Notification"));
841
- label.title = ( localize(7118, "System notification will be sent after the next tool call happens"));
842
+ label.textContent = ( localize(7410, "System Notification"));
843
+ label.title = ( localize(7411, "System notification will be sent after the next tool call happens"));
842
844
  } else {
843
- label.textContent = ( localize(7119, "Steering"));
844
- label.title = ( localize(7120, "Steering message will be sent after the next tool call happens"));
845
+ label.textContent = ( localize(7412, "Steering"));
846
+ label.title = ( localize(7413, "Steering message will be sent after the next tool call happens"));
845
847
  }
846
848
  } else {
847
- label.textContent = ( localize(7121, "Queued"));
848
- label.title = ( localize(7122, "Queued messages will be sent after the current request completes"));
849
+ label.textContent = ( localize(7414, "Queued"));
850
+ label.title = ( localize(7415, "Queued messages will be sent after the current request completes"));
849
851
  }
850
852
  templateData.value.appendChild(dividerContent);
851
853
  }
@@ -853,10 +855,10 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
853
855
  clearNode(templateData.detail);
854
856
  if (element.agentOrSlashCommandDetected) {
855
857
  const msg = element.slashCommand ? ( localize(
856
- 7123,
858
+ 7416,
857
859
  "used {0} [[(rerun without)]]",
858
860
  `${chatSubcommandLeader}${element.slashCommand.name}`
859
- )) : ( localize(7124, "[[(rerun without)]]"));
861
+ )) : ( localize(7417, "[[(rerun without)]]"));
860
862
  reset(templateData.detail, renderFormattedText(msg, {
861
863
  actionHandler: {
862
864
  disposables: templateData.elementDisposables,
@@ -869,7 +871,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
869
871
  this.delegate.currentChatMode(),
870
872
  this.rendererOptions.progressMessageAtBottomOfResponse
871
873
  )) {
872
- templateData.detail.textContent = ( localize(7125, "Working"));
874
+ templateData.detail.textContent = ( localize(7418, "Working"));
873
875
  }
874
876
  }
875
877
  renderConfirmationAction(element, templateData) {
@@ -878,7 +880,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
878
880
  append(templateData.detail, $("span.codicon.codicon-check", {
879
881
  "aria-hidden": "true"
880
882
  }));
881
- append(templateData.detail, $("span.confirmation-text", undefined, ( localize(7126, "Selected \"{0}\"", element.confirmation))));
883
+ append(templateData.detail, $("span.confirmation-text", undefined, ( localize(7419, "Selected \"{0}\"", element.confirmation))));
882
884
  templateData.header?.classList.remove("header-disabled");
883
885
  templateData.header?.classList.add("partially-disabled");
884
886
  }
@@ -967,7 +969,10 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
967
969
  if (element.agentOrSlashCommandDetected || this.rendererOptions.renderStyle === "minimal") {
968
970
  return undefined;
969
971
  }
970
- const showProgressDetails = this.configService.getValue(ChatConfiguration.ChatPersistentProgressEnabled) !== false;
972
+ if (( partsToRender.some(part => part.kind === "planReview" && !part.isUsed))) {
973
+ return undefined;
974
+ }
975
+ const showProgressDetails = this.configService.getValue(ChatConfiguration.ChatPersistentProgressEnabled) !== false && (this.configService.getValue(ChatConfiguration.ProgressBorder) !== true || this.accessibilityService.isMotionReduced());
971
976
  if (element.isComplete) {
972
977
  return undefined;
973
978
  }
@@ -1042,8 +1047,9 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
1042
1047
  if (lastPart.isAttachedToThinking) {
1043
1048
  return undefined;
1044
1049
  }
1050
+ const isEffectivelyHiddenToolInvocation = IChatToolInvocation.isEffectivelyHidden(lastPart);
1045
1051
  const collapsedToolsMode = this.configService.getValue("chat.agent.thinking.collapsedTools");
1046
- if (collapsedToolsMode !== CollapsedToolsDisplayMode.Off && this.shouldPinPart(lastPart, isResponseVM(element) ? element : undefined)) {
1052
+ if (!isEffectivelyHiddenToolInvocation && collapsedToolsMode !== CollapsedToolsDisplayMode.Off && this.shouldPinPart(lastPart, isResponseVM(element) ? element : undefined)) {
1047
1053
  return undefined;
1048
1054
  }
1049
1055
  }
@@ -1074,7 +1080,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
1074
1080
  }).length;
1075
1081
  }
1076
1082
  getConfirmationPendingLabel(count) {
1077
- return count === 1 ? ( localize(7127, "1 confirmation pending")) : ( localize(7128, "{0} confirmations pending", count));
1083
+ return count === 1 ? ( localize(7420, "1 confirmation pending")) : ( localize(7421, "{0} confirmations pending", count));
1078
1084
  }
1079
1085
  removeWorkingProgressContentPart(templateData) {
1080
1086
  const renderedParts = templateData.renderedParts;
@@ -1097,7 +1103,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
1097
1103
  if (!isResponseVM(element)) {
1098
1104
  return;
1099
1105
  }
1100
- if (element.isComplete && this.configService.getValue(ChatConfiguration.ChatPersistentProgressEnabled) !== false) {
1106
+ if (element.isComplete && this.configService.getValue(ChatConfiguration.ChatPersistentProgressEnabled) !== false && (this.configService.getValue(ChatConfiguration.ProgressBorder) !== true || this.accessibilityService.isMotionReduced())) {
1101
1107
  return;
1102
1108
  }
1103
1109
  const pendingConfirmationCount = this.getPendingToolConfirmationCount(element.response.value, false);
@@ -1657,7 +1663,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
1657
1663
  }
1658
1664
  const isTerminalTool = (part.kind === "toolInvocation" || part.kind === "toolInvocationSerialized") && part.toolSpecificData?.kind === "terminal";
1659
1665
  const isContributedTerminalToolInvocation =
1660
- element && (element.sessionResource.scheme !== Schemas.vscodeChatInput && element.sessionResource.scheme !== Schemas.vscodeLocalChatSession) && part.kind === "toolInvocationSerialized" && part.toolSpecificData?.kind === "terminal";
1666
+ element && (element.sessionResource.scheme !== Schemas.vscodeChatInput && getChatSessionType(element.sessionResource) !== localChatSessionType) && part.kind === "toolInvocationSerialized" && part.toolSpecificData?.kind === "terminal";
1661
1667
  if (isTerminalTool && !isContributedTerminalToolInvocation) {
1662
1668
  if (part.kind === "toolInvocation" && IChatToolInvocation.getConfirmationMessages(part)) {
1663
1669
  return false;
@@ -1890,6 +1896,14 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
1890
1896
  content,
1891
1897
  this.chatContentMarkdownRenderer
1892
1898
  );
1899
+ } else if (content.kind === "info") {
1900
+ return this.instantiationService.createInstance(
1901
+ ChatErrorContentPart,
1902
+ ChatErrorLevel.Info,
1903
+ content.content,
1904
+ content,
1905
+ this.chatContentMarkdownRenderer
1906
+ );
1893
1907
  } else if (content.kind === "hook") {
1894
1908
  return this.renderHookPart(content, context, templateData);
1895
1909
  } else if (content.kind === "markdownContent") {
@@ -1916,7 +1930,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
1916
1930
  } else if (content.kind === "questionCarousel") {
1917
1931
  return this.renderQuestionCarousel(context, content, templateData);
1918
1932
  } else if (content.kind === "planReview") {
1919
- return this.renderPlanReview(context, content);
1933
+ return this.renderPlanReview(context, content, templateData);
1920
1934
  } else if (content.kind === "changesSummary") {
1921
1935
  return this.renderChangesSummary(content, context, templateData);
1922
1936
  } else if (content.kind === "mcpServersStarting") {
@@ -1940,7 +1954,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
1940
1954
  "ChatListItemRenderer#renderChatContentPart: error rendering content",
1941
1955
  toErrorMessage(err, true)
1942
1956
  );
1943
- const errorPart = this.instantiationService.createInstance(ChatErrorContentPart, ChatErrorLevel.Error, ( new MarkdownString(( localize(7129, "Failed to render content")) + `: ${toErrorMessage(err, false)}`)), content, this.chatContentMarkdownRenderer);
1957
+ const errorPart = this.instantiationService.createInstance(ChatErrorContentPart, ChatErrorLevel.Error, ( new MarkdownString(( localize(7422, "Failed to render content")) + `: ${toErrorMessage(err, false)}`)), content, this.chatContentMarkdownRenderer);
1944
1958
  return {
1945
1959
  dispose: () => errorPart.dispose(),
1946
1960
  domNode: errorPart.domNode,
@@ -2066,7 +2080,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
2066
2080
  });
2067
2081
  }
2068
2082
  renderToolInvocation(toolInvocation, context, templateData) {
2069
- if (IChatToolInvocation.isComplete(toolInvocation)) {
2083
+ if (IChatToolInvocation.isComplete(toolInvocation) && IChatToolInvocation.isEffectivelyHidden(toolInvocation)) {
2070
2084
  const msg = toolInvocation.pastTenseMessage ?? toolInvocation.invocationMessage;
2071
2085
  const text = typeof msg === "string" ? msg : msg?.value;
2072
2086
  if (!text || text.trim().length === 0) {
@@ -2317,7 +2331,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
2317
2331
  }
2318
2332
  const shouldPinToThinking = hookPart.hookType === HookType.PreToolUse || hookPart.hookType === HookType.PostToolUse;
2319
2333
  if (shouldPinToThinking) {
2320
- const hookTitle = hookPart.stopReason ? (hookPart.toolDisplayName ? ( localize(7130, "Blocked {0}", hookPart.toolDisplayName)) : ( localize(7131, "Blocked by hook"))) : (hookPart.toolDisplayName ? ( localize(7132, "Used {0}, but received a warning", hookPart.toolDisplayName)) : ( localize(7133, "Tool call received a warning")));
2334
+ const hookTitle = hookPart.stopReason ? (hookPart.toolDisplayName ? ( localize(7423, "Blocked {0}", hookPart.toolDisplayName)) : ( localize(7424, "Blocked by hook"))) : (hookPart.toolDisplayName ? ( localize(7425, "Used {0}, but received a warning", hookPart.toolDisplayName)) : ( localize(7426, "Tool call received a warning")));
2321
2335
  let thinkingPart = this.getLastThinkingPart(templateData.renderedParts);
2322
2336
  if (!thinkingPart) {
2323
2337
  const newThinking = this.renderThinkingPart({
@@ -2392,6 +2406,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
2392
2406
  const widget = isResponseVM(context.element) ? this.chatWidgetService.getWidgetBySessionResource(context.element.sessionResource) : undefined;
2393
2407
  const shouldAutoFocus = widget ? widget.getInput() === "" : true;
2394
2408
  const responseId = isResponseVM(context.element) ? context.element.requestId : undefined;
2409
+ const carouselKey = carousel.resolveId ?? `${responseId ?? ""}_${context.contentIndex}`;
2395
2410
  const handleSubmit = async (answers, part) => {
2396
2411
  const answersRecord = answers ? Object.fromEntries(answers) : undefined;
2397
2412
  carousel.data = answersRecord ?? {};
@@ -2407,7 +2422,6 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
2407
2422
  this.chatService.notifyQuestionCarouselAnswer(context.element.requestId, carousel.resolveId, answersRecord);
2408
2423
  }
2409
2424
  this.removeCarouselFromTracking(context, part);
2410
- const carouselKey = carousel.resolveId ?? `${responseId}_${context.contentIndex}`;
2411
2425
  widget?.input.clearQuestionCarousel(undefined, carouselKey);
2412
2426
  };
2413
2427
  const responseIsComplete = isResponseVM(context.element) && context.element.isComplete;
@@ -2426,8 +2440,12 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
2426
2440
  this.chatService.notifyQuestionCarouselAnswer(context.element.requestId, carousel.resolveId, undefined);
2427
2441
  this.pendingQuestionCarousels.get(context.element.sessionResource)?.clear();
2428
2442
  }
2429
- if (responseIsComplete && inputPartHasCarousel && responseId) {
2430
- widget?.input.clearQuestionCarousel(responseId);
2443
+ if (inputPartHasCarousel) {
2444
+ if (carousel.isUsed) {
2445
+ widget?.input.clearQuestionCarousel(undefined, carouselKey);
2446
+ } else if (responseIsComplete && responseId) {
2447
+ widget?.input.clearQuestionCarousel(responseId);
2448
+ }
2431
2449
  }
2432
2450
  const part = this.instantiationService.createInstance(ChatQuestionCarouselPart, carousel, context, {
2433
2451
  shouldAutoFocus: false,
@@ -2490,10 +2508,10 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
2490
2508
  return;
2491
2509
  }
2492
2510
  const questionCount = carousel.questions.length;
2493
- const question = carousel.questions.length > 0 && carousel.questions[0].message ? carousel.questions[0].message : ( localize(7134, "Chat input required."));
2511
+ const question = carousel.questions.length > 0 && carousel.questions[0].message ? carousel.questions[0].message : ( localize(7427, "Chat input required."));
2494
2512
  const stringQuestion = typeof question === "string" ? question : question.value;
2495
- const alertMessage = questionCount === 1 ? ( localize(7135, "Chat input required (1 question): {0}", stringQuestion)) : ( localize(
2496
- 7136,
2513
+ const alertMessage = questionCount === 1 ? ( localize(7428, "Chat input required (1 question): {0}", stringQuestion)) : ( localize(
2514
+ 7429,
2497
2515
  "Chat input required ({0} questions): {1}",
2498
2516
  questionCount,
2499
2517
  stringQuestion
@@ -2502,16 +2520,17 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
2502
2520
  if (stableKey) {
2503
2521
  this._notifiedQuestionCarousels.add(stableKey);
2504
2522
  }
2505
- const signalMessage = questionCount === 1 ? ( localize(7137, "Chat needs your input (1 question).")) : ( localize(7138, "Chat needs your input ({0} questions).", questionCount));
2523
+ const signalMessage = questionCount === 1 ? ( localize(7430, "Chat needs your input (1 question).")) : ( localize(7431, "Chat needs your input ({0} questions).", questionCount));
2506
2524
  this.accessibilitySignalService.playSignal(AccessibilitySignal.chatUserActionRequired, {
2507
2525
  allowManyInParallel: true,
2508
2526
  customAlertMessage: signalMessage
2509
2527
  });
2510
2528
  }
2511
- renderPlanReview(context, review) {
2529
+ renderPlanReview(context, review, templateData) {
2512
2530
  const widget = isResponseVM(context.element) ? this.chatWidgetService.getWidgetBySessionResource(context.element.sessionResource) : undefined;
2513
2531
  const responseId = isResponseVM(context.element) ? context.element.requestId : undefined;
2514
2532
  const reviewKey = review.resolveId ?? `${responseId ?? ""}_${context.contentIndex}`;
2533
+ this.finalizeCurrentThinkingPart(context, templateData);
2515
2534
  const handleSubmit = result => {
2516
2535
  review.data = result;
2517
2536
  review.isUsed = true;
@@ -2521,17 +2540,62 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
2521
2540
  widget?.input.clearPlanReview(undefined, reviewKey);
2522
2541
  };
2523
2542
  const responseIsComplete = isResponseVM(context.element) && context.element.isComplete;
2524
- if (review.isUsed || responseIsComplete) {
2525
- if (responseIsComplete && !review.isUsed) {
2526
- review.isUsed = true;
2527
- if (review instanceof ChatPlanReviewData) {
2528
- review.completion.complete(undefined);
2529
- }
2530
- if (responseId) {
2531
- widget?.input.clearPlanReview(responseId);
2532
- }
2543
+ if (responseIsComplete && !review.isUsed) {
2544
+ review.isUsed = true;
2545
+ if (review instanceof ChatPlanReviewData) {
2546
+ review.completion.complete(undefined);
2547
+ }
2548
+ }
2549
+ if (responseIsComplete && responseId) {
2550
+ widget?.input.clearPlanReview(responseId);
2551
+ }
2552
+ const renderProgress = () => {
2553
+ const message = this.getPlanReviewProgressMessage(review);
2554
+ if (!message) {
2555
+ return this.renderNoContent(other => other.kind === "planReview");
2556
+ }
2557
+ const renderedAsUsed = !!review.isUsed;
2558
+ const isPending = !renderedAsUsed;
2559
+ const data = renderedAsUsed && !review.data?.rejected ? review.data : undefined;
2560
+ let overall = data?.feedbackOverall?.trim();
2561
+ const inlineMd = data?.feedbackInlineMarkdown?.trim();
2562
+ if (!overall && !inlineMd && data?.feedback) {
2563
+ overall = data.feedback.trim();
2564
+ }
2565
+ const content = ( new MarkdownString(undefined, {
2566
+ supportThemeIcons: true
2567
+ }));
2568
+ if (overall) {
2569
+ content.appendText(( localize(7432, "{0}: {1}", message, overall.replace(/\s+/g, " "))));
2570
+ } else {
2571
+ content.appendText(message);
2572
+ }
2573
+ if (inlineMd) {
2574
+ content.appendMarkdown("\n\n");
2575
+ content.appendMarkdown(inlineMd);
2533
2576
  }
2534
- return this.renderNoContent(other => other.kind === "planReview");
2577
+ const progressPart = this.instantiationService.createInstance(ChatProgressContentPart, {
2578
+ content
2579
+ }, this.chatContentMarkdownRenderer, context, isPending, true, isPending ? undefined : Codicon.check, undefined, isPending);
2580
+ return {
2581
+ domNode: progressPart.domNode,
2582
+ dispose: () => progressPart.dispose(),
2583
+ hasSameContent: (other, _followingContent, _element) => {
2584
+ if (other.kind !== "planReview") {
2585
+ return false;
2586
+ }
2587
+ if (!!review.isUsed !== renderedAsUsed) {
2588
+ return false;
2589
+ }
2590
+ if (review.resolveId && other.resolveId) {
2591
+ return review.resolveId === other.resolveId;
2592
+ }
2593
+ return other === review;
2594
+ }
2595
+ };
2596
+ };
2597
+ if (review.isUsed) {
2598
+ return renderProgress();
2535
2599
  }
2536
2600
  const isEditing = !!this.viewModel?.editing;
2537
2601
  const dockedPart = isEditing ? undefined : widget?.input.renderPlanReview(review, context, {
@@ -2543,18 +2607,27 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
2543
2607
  });
2544
2608
  return fallbackPart;
2545
2609
  }
2546
- return this.renderNoContent((other, _followingContent, element) => {
2547
- if (review.isUsed || (isResponseVM(element) && element.isComplete)) {
2548
- return false;
2549
- }
2550
- if (other.kind === "planReview") {
2551
- if (review.resolveId && other.resolveId) {
2552
- return review.resolveId === other.resolveId;
2553
- }
2554
- return other === review;
2555
- }
2556
- return false;
2557
- });
2610
+ return renderProgress();
2611
+ }
2612
+ getPlanReviewProgressMessage(review) {
2613
+ if (!review.isUsed) {
2614
+ return localize(7433, "Plan review required");
2615
+ }
2616
+ const result = review.data;
2617
+ if (!result) {
2618
+ return undefined;
2619
+ }
2620
+ if (result.rejected) {
2621
+ return localize(7434, "Rejected plan");
2622
+ }
2623
+ if (result.feedback) {
2624
+ return localize(7435, "Provided feedback");
2625
+ }
2626
+ const action = review.actions.find(a => a.label === result.action);
2627
+ if (action?.permissionLevel === "autopilot") {
2628
+ return localize(7436, "Started implementation with Autopilot");
2629
+ }
2630
+ return localize(7437, "Approved plan");
2558
2631
  }
2559
2632
  removeCarouselFromTracking(context, part) {
2560
2633
  if (isResponseVM(context.element)) {
@@ -2641,7 +2714,7 @@ let ChatListItemRenderer = class ChatListItemRenderer extends Disposable {
2641
2714
  })
2642
2715
  );
2643
2716
  markdownPart.addDisposable(
2644
- this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), markdownPart.domNode, ( localize(7139, "Click to Edit")), {
2717
+ this.hoverService.setupManagedHover(getDefaultHoverDelegate("element"), markdownPart.domNode, ( localize(7438, "Click to Edit")), {
2645
2718
  trapFocus: true
2646
2719
  })
2647
2720
  );
@@ -4,6 +4,7 @@ import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/
4
4
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
5
5
  import { ICodeEditor } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorBrowser";
6
6
  import { ICodeEditorService } from "@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/codeEditorService.service";
7
+ import { IAccessibilityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service";
7
8
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
8
9
  import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
9
10
  import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
@@ -18,7 +19,6 @@ import { IChatAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbe
18
19
  import { IChatEditingService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService.service";
19
20
  import { IChatLayoutService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/widget/chatLayoutService.service";
20
21
  import { IChatModel, IChatModelInputState, IChatResponseModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel";
21
- import { IChatModeService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service";
22
22
  import { IParsedChatRequest } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/requestParser/chatParserTypes";
23
23
  import { IChatLocationData, IChatSendRequestOptions } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
24
24
  import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service";
@@ -39,6 +39,7 @@ import { ChatInputPart, IChatInputStyles } from "./input/chatInputPart.js";
39
39
  import { IChatTipService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatTipService.service";
40
40
  import { IAgentSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.service";
41
41
  import { IChatDebugService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatDebugService.service";
42
+ import { ICustomizationHarnessService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/customizationHarnessService.service";
42
43
  export interface IChatWidgetStyles extends IChatInputStyles {
43
44
  readonly inputEditorBackground: string;
44
45
  readonly resultEditorBackground: string;
@@ -77,8 +78,8 @@ export declare class ChatWidget extends Disposable implements IChatWidget {
77
78
  private readonly chatSlashCommandService;
78
79
  private readonly telemetryService;
79
80
  private readonly promptsService;
81
+ private readonly customizationHarnessService;
80
82
  private readonly toolsService;
81
- private readonly chatModeService;
82
83
  private readonly chatLayoutService;
83
84
  private readonly chatEntitlementService;
84
85
  private readonly chatSessionsService;
@@ -88,6 +89,7 @@ export declare class ChatWidget extends Disposable implements IChatWidget {
88
89
  private readonly chatAttachmentResolveService;
89
90
  private readonly chatTipService;
90
91
  private readonly chatDebugService;
92
+ private readonly accessibilityService;
91
93
  static readonly CONTRIBS: {
92
94
  new (...args: [
93
95
  IChatWidget,
@@ -180,7 +182,7 @@ export declare class ChatWidget extends Disposable implements IChatWidget {
180
182
  readonly viewContext: IChatWidgetViewContext;
181
183
  get supportsChangingModes(): boolean;
182
184
  get locationData(): IChatLocationData | undefined;
183
- constructor(location: ChatAgentLocation | IChatWidgetLocationOptions, viewContext: IChatWidgetViewContext | undefined, viewOptions: IChatWidgetViewOptions, styles: IChatWidgetStyles, codeEditorService: ICodeEditorService, configurationService: IConfigurationService, dialogService: IDialogService, contextKeyService: IContextKeyService, instantiationService: IInstantiationService, chatService: IChatService, chatAgentService: IChatAgentService, chatWidgetService: IChatWidgetService, chatAccessibilityService: IChatAccessibilityService, logService: ILogService, themeService: IThemeService, chatSlashCommandService: IChatSlashCommandService, chatEditingService: IChatEditingService, telemetryService: ITelemetryService, promptsService: IPromptsService, toolsService: ILanguageModelToolsService, chatModeService: IChatModeService, chatLayoutService: IChatLayoutService, chatEntitlementService: IChatEntitlementService, chatSessionsService: IChatSessionsService, agentSessionsService: IAgentSessionsService, chatTodoListService: IChatTodoListService, lifecycleService: ILifecycleService, chatAttachmentResolveService: IChatAttachmentResolveService, chatTipService: IChatTipService, chatDebugService: IChatDebugService);
185
+ constructor(location: ChatAgentLocation | IChatWidgetLocationOptions, viewContext: IChatWidgetViewContext | undefined, viewOptions: IChatWidgetViewOptions, styles: IChatWidgetStyles, codeEditorService: ICodeEditorService, configurationService: IConfigurationService, dialogService: IDialogService, contextKeyService: IContextKeyService, instantiationService: IInstantiationService, chatService: IChatService, chatAgentService: IChatAgentService, chatWidgetService: IChatWidgetService, chatAccessibilityService: IChatAccessibilityService, logService: ILogService, themeService: IThemeService, chatSlashCommandService: IChatSlashCommandService, chatEditingService: IChatEditingService, telemetryService: ITelemetryService, promptsService: IPromptsService, customizationHarnessService: ICustomizationHarnessService, toolsService: ILanguageModelToolsService, chatLayoutService: IChatLayoutService, chatEntitlementService: IChatEntitlementService, chatSessionsService: IChatSessionsService, agentSessionsService: IAgentSessionsService, chatTodoListService: IChatTodoListService, lifecycleService: ILifecycleService, chatAttachmentResolveService: IChatAttachmentResolveService, chatTipService: IChatTipService, chatDebugService: IChatDebugService, accessibilityService: IAccessibilityService);
184
186
  private _lastSelectedAgent;
185
187
  set lastSelectedAgent(agent: IChatAgentData | undefined);
186
188
  get lastSelectedAgent(): IChatAgentData | undefined;
@@ -196,6 +198,7 @@ export declare class ChatWidget extends Disposable implements IChatWidget {
196
198
  */
197
199
  get inputPart(): ChatInputPart;
198
200
  private get inlineInputPart();
201
+ private updateWorkingProgressBorder;
199
202
  get inputEditor(): ICodeEditor;
200
203
  get contentHeight(): number;
201
204
  get scrollTop(): number;
@@ -209,6 +212,7 @@ export declare class ChatWidget extends Disposable implements IChatWidget {
209
212
  toggleQuestionCarouselFocus(): boolean;
210
213
  navigateToPreviousQuestion(): boolean;
211
214
  navigateToNextQuestion(): boolean;
215
+ focusQuestionCarouselTerminal(): boolean;
212
216
  toggleTipFocus(): boolean;
213
217
  hasInputFocus(): boolean;
214
218
  refreshParsedInput(): void;
@@ -274,6 +278,10 @@ export declare class ChatWidget extends Disposable implements IChatWidget {
274
278
  rerunLastRequest(): Promise<void>;
275
279
  private getConfiguredThinkingStyle;
276
280
  private logThinkingStyleUsage;
281
+ /**
282
+ * @returns `false` when the prompt metadata requested an agent switch that the
283
+ * user cancelled, signalling that input submission should be aborted.
284
+ */
277
285
  private _applyPromptFileIfSet;
278
286
  private _acceptInput;
279
287
  private _resolveDirectoryImageAttachments;
@@ -303,6 +311,11 @@ export declare class ChatWidget extends Disposable implements IChatWidget {
303
311
  getViewState(): IChatModelInputState | undefined;
304
312
  private updateChatInputContext;
305
313
  private _switchToAgentByName;
314
+ /**
315
+ * @returns `false` when the agent switch was cancelled (e.g. user dismissed the
316
+ * mode-switch confirmation dialog), signalling that the caller should abort the
317
+ * current input submission.
318
+ */
306
319
  private _applyPromptMetadata;
307
320
  delegateScrollFromMouseWheelEvent(browserEvent: IMouseWheelEvent): void;
308
321
  }