@codingame/monaco-vscode-katex-common 30.0.1 → 31.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 (276) hide show
  1. package/package.json +3 -3
  2. package/vscode/src/vs/platform/actions/browser/actionbar.d.ts +16 -0
  3. package/vscode/src/vs/platform/actions/browser/actionbar.js +22 -0
  4. package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
  5. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.d.ts +50 -0
  6. package/vscode/src/vs/platform/networkFilter/common/domainMatcher.js +138 -0
  7. package/vscode/src/vs/platform/networkFilter/common/settings.d.ts +12 -0
  8. package/vscode/src/vs/platform/networkFilter/common/settings.js +14 -0
  9. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +18 -0
  10. package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +13 -0
  11. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +73 -0
  12. package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +10 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +3 -1
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +51 -24
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +2 -1
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +64 -72
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +2 -1
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -14
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
  23. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +1 -1
  24. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +17 -18
  25. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +5 -2
  26. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +5 -0
  27. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +73 -9
  28. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
  29. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +32 -32
  30. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.d.ts +1 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.js +20 -2
  32. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +1 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +73 -49
  34. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +12 -12
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.d.ts +0 -6
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +41 -99
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +2 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +13 -9
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
  42. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +14 -15
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.d.ts +11 -12
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +339 -161
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +9 -2
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +9 -4
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +33 -5
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollections.d.ts +43 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollections.js +147 -2
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +4 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +55 -6
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.d.ts +1 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.js +7 -5
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +1 -3
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +42 -10
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/animation.d.ts +18 -0
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/animationRegistry.d.ts +15 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/animationRegistry.js +16 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/blockAnimations.d.ts +13 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/blockAnimations.js +33 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/buffer.d.ts +46 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/bufferRegistry.d.ts +11 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/bufferRegistry.js +12 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/offBuffer.d.ts +9 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/offBuffer.js +12 -0
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.d.ts +23 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.js +37 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/wordBuffer.d.ts +34 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/wordBuffer.js +68 -0
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.d.ts +77 -0
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.js +170 -0
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/media/chatIncrementalRendering.css +112 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +3 -1
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +26 -16
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +24 -6
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +111 -145
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.d.ts +58 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +425 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +16 -7
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +68 -25
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +5 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +101 -45
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +6 -6
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +36 -4
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +217 -25
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +23 -3
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +168 -60
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +10 -10
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +18 -17
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -5
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +7 -18
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +1 -5
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +7 -19
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +24 -19
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +104 -78
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +11 -2
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +257 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +19 -0
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSubagentContent.css +30 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +1 -1
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +12 -0
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +286 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +15 -11
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +1 -7
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +25 -47
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +29 -53
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +258 -321
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.d.ts +53 -0
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +392 -0
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -3
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +24 -30
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +2 -3
  136. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +9 -8
  137. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  138. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
  139. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  140. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.d.ts +6 -3
  141. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.js +2 -3
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +38 -11
  144. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +577 -113
  145. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +0 -7
  146. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +4 -7
  147. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +1 -8
  148. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +58 -75
  149. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  150. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +44 -12
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +362 -188
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +0 -2
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +4 -5
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +42 -95
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +2 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +9 -10
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +57 -38
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +21 -15
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/{modelPickerActionItem2.js → modelPickerActionItem.js} +5 -7
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +38 -31
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +4 -5
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +94 -40
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +2 -2
  166. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.d.ts +16 -0
  167. package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +218 -0
  168. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +7 -7
  169. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +6 -1
  170. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +15 -15
  171. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +12 -21
  172. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -32
  173. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +355 -156
  174. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +2 -13
  175. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +72 -65
  176. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +4 -43
  177. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +238 -204
  178. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.d.ts +4 -19
  179. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +128 -115
  180. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.d.ts +6 -9
  181. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +152 -49
  182. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +64 -0
  183. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +40 -40
  184. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  185. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  186. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  187. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
  188. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
  189. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
  190. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
  191. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
  192. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
  193. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
  194. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  195. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  196. package/vscode/src/vs/workbench/contrib/terminal/terminalContribChatExports.d.ts +2 -0
  197. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +2 -0
  198. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +41 -0
  199. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
  200. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
  201. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
  202. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +45 -0
  203. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +165 -0
  204. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +53 -0
  205. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +163 -0
  206. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +27 -0
  207. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +142 -0
  208. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +29 -0
  209. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +144 -0
  210. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +40 -0
  211. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +174 -0
  212. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +7 -0
  213. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +43 -0
  214. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +42 -0
  215. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +256 -0
  216. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +42 -0
  217. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +94 -0
  218. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +42 -0
  219. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +221 -0
  220. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +31 -0
  221. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +392 -0
  222. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +45 -0
  223. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +243 -0
  224. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +52 -0
  225. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +10 -0
  226. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +20 -0
  227. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +310 -0
  228. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +19 -0
  229. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +168 -0
  230. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +11 -0
  231. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +33 -0
  232. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
  233. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
  234. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
  235. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
  236. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
  237. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
  238. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
  239. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +13 -0
  240. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +22 -0
  241. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +22 -0
  242. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +47 -0
  243. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
  244. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +27 -0
  245. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +14 -0
  246. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +29 -0
  247. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
  248. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
  249. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +24 -0
  250. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -0
  251. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +32 -0
  252. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +108 -0
  253. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +412 -0
  254. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +42 -0
  255. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
  256. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +9 -0
  257. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +192 -0
  258. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +2258 -0
  259. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +22 -0
  260. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +43 -0
  261. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +17 -0
  262. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +118 -0
  263. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.d.ts +22 -0
  264. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.js +44 -0
  265. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +1 -0
  266. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +25 -0
  267. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +141 -0
  268. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +85 -0
  269. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +608 -0
  270. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.d.ts +0 -40
  271. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +0 -196
  272. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.d.ts +0 -29
  273. package/vscode/src/vs/workbench/contrib/chat/common/widget/codeBlockModelCollection.d.ts +0 -46
  274. package/vscode/src/vs/workbench/contrib/chat/common/widget/codeBlockModelCollection.js +0 -215
  275. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +0 -18
  276. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +0 -107
@@ -2,26 +2,28 @@
2
2
  import { registerCss } from '@codingame/monaco-vscode-api/css';
3
3
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
4
  import * as codeBlockPart from './media/codeBlockPart.css';
5
- import { $ as $$1, append, hide, show, clearNode, getTotalHeight, Dimension, reset } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
5
+ import { $ as $$1, append, addDisposableListener, hide, show, clearNode, getTotalHeight, Dimension, reset } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
6
6
  import { renderFormattedText } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/formattedTextRenderer';
7
7
  import { Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
8
8
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
9
9
  import { Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
10
- import { Disposable, MutableDisposable, combinedDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
10
+ import { Disposable, thenRegisterOrDispose, MutableDisposable, combinedDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
11
11
  import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
12
12
  import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
13
13
  import { assertType } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
14
14
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
15
+ import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
15
16
  import { EditorExtensionsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/editorExtensions';
16
17
  import { ICodeEditorService } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/services/codeEditorService.service';
17
18
  import { CodeEditorWidget } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/widget/codeEditor/codeEditorWidget';
18
19
  import { DiffEditorWidget } from '@codingame/monaco-vscode-api/vscode/vs/editor/browser/widget/diffEditor/diffEditorWidget';
19
20
  import { EditorOption } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/config/editorOptions';
20
21
  import { EDITOR_FONT_DEFAULTS } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/config/fontInfo';
21
- import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
22
- import { ScrollType } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/editorCommon';
23
- import { TextEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
24
22
  import { EndOfLinePreference } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model';
23
+ import { TextEdit } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
24
+ import { ILanguageService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service';
25
+ import { PLAINTEXT_LANGUAGE_ID } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/modesRegistry';
26
+ import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
25
27
  import { TextModelText } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/model/textModelText';
26
28
  import { IModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service';
27
29
  import { DefaultModelSHA1Computer } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/modelService';
@@ -39,6 +41,7 @@ import { SmartSelectController } from '@codingame/monaco-vscode-api/vscode/vs/ed
39
41
  import { WordHighlighterContribution } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/wordHighlighter/browser/wordHighlighter';
40
42
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
41
43
  import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
44
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
42
45
  import { MenuWorkbenchToolBar } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/toolbar';
43
46
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
44
47
  import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
@@ -65,36 +68,11 @@ import { EditorContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/editor
65
68
 
66
69
  registerCss(codeBlockPart);
67
70
  const $ = $$1;
68
- const localFileLanguageId = "vscode-local-file";
69
- function parseLocalFileData(text) {
70
- let data;
71
- try {
72
- data = JSON.parse(text);
73
- } catch (e) {
74
- throw ( new Error("Could not parse code block local file data"));
75
- }
76
- let uri;
77
- try {
78
- uri = URI.revive(data?.uri);
79
- } catch (e) {
80
- throw ( new Error("Invalid code block local file data URI"));
81
- }
82
- let range;
83
- if (data.range) {
84
- range = ( new Range(
85
- data.range.startLineNumber + 1,
86
- data.range.startColumn + 1,
87
- data.range.endLineNumber + 1,
88
- data.range.endColumn + 1
89
- ));
90
- }
91
- return {
92
- uri,
93
- range
94
- };
95
- }
96
71
  const defaultCodeblockPadding = 10;
97
72
  let CodeBlockPart = class CodeBlockPart extends Disposable {
73
+ static poolKey(elementId, codeBlockIndex) {
74
+ return `${elementId}/${codeBlockIndex}`;
75
+ }
98
76
  get verticalPadding() {
99
77
  return this.currentCodeBlockData?.renderOptions?.verticalPadding ?? defaultCodeblockPadding;
100
78
  }
@@ -107,17 +85,24 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
107
85
  instantiationService,
108
86
  contextKeyService,
109
87
  modelService,
88
+ languageService,
110
89
  configurationService,
111
- accessibilityService
90
+ accessibilityService,
91
+ logService,
92
+ textModelService
112
93
  ) {
113
94
  super();
114
95
  this.editorOptions = editorOptions;
115
96
  this.menuId = menuId;
116
97
  this.isSimpleWidget = isSimpleWidget;
117
98
  this.modelService = modelService;
99
+ this.languageService = languageService;
118
100
  this.configurationService = configurationService;
119
101
  this.accessibilityService = accessibilityService;
102
+ this.logService = logService;
103
+ this.textModelService = textModelService;
120
104
  this.currentScrollWidth = 0;
105
+ this._isHovered = false;
121
106
  this.isDisposed = false;
122
107
  this.element = $(".interactive-result-code-block");
123
108
  this.resourceContextKey = instantiationService.createInstance(StaticResourceContextKey);
@@ -148,7 +133,7 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
148
133
  multipleDefinitions: "goto",
149
134
  multipleImplementations: "goto"
150
135
  },
151
- ariaLabel: ( localize(6895, "Code block")),
136
+ ariaLabel: ( localize(7008, "Code block")),
152
137
  overflowWidgetsDomNode,
153
138
  tabFocusMode: true,
154
139
  ...this.getEditorOptionsFromConfig()
@@ -184,9 +169,23 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
184
169
  this.element.classList.toggle("chat-vulnerabilities-collapsed", !element.vulnerabilitiesListExpanded);
185
170
  this.layout();
186
171
  }));
172
+ let isDropdownVisible = false;
187
173
  this._register(this.toolbar.onDidChangeDropdownVisibility(e => {
188
- toolbarElement.classList.toggle("force-visibility", e);
174
+ isDropdownVisible = e;
175
+ toolbarElement.classList.toggle("force-visibility", e || this._isHovered);
176
+ }));
177
+ this._isHovered = false;
178
+ this._register(addDisposableListener(this.element, "mouseenter", () => {
179
+ this._isHovered = true;
180
+ toolbarElement.classList.add("force-visibility");
189
181
  }));
182
+ this._register(addDisposableListener(this.element, "mouseleave", () => {
183
+ this._isHovered = false;
184
+ if (!isDropdownVisible) {
185
+ toolbarElement.classList.remove("force-visibility");
186
+ }
187
+ }));
188
+ this._toolbarElement = toolbarElement;
190
189
  this._configureForScreenReader();
191
190
  this._register(
192
191
  this.accessibilityService.onDidChangeScreenReaderOptimized(() => this._configureForScreenReader())
@@ -228,6 +227,15 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
228
227
  this.clearWidgets();
229
228
  }));
230
229
  }
230
+ this._textModel = this._register(this.modelService.createModel("", null, ( URI.from({
231
+ scheme: Schemas.vscodeChatCodeBlock,
232
+ path: generateUuid()
233
+ })), this.isSimpleWidget));
234
+ thenRegisterOrDispose(
235
+ this.textModelService.createModelReference(this._textModel.uri),
236
+ this._store
237
+ );
238
+ this.editor.setModel(this._textModel);
231
239
  }
232
240
  dispose() {
233
241
  this.isDisposed = true;
@@ -315,14 +323,9 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
315
323
  this.updatePaddingForLayout();
316
324
  }
317
325
  getContentHeight() {
318
- if (this.currentCodeBlockData?.range) {
319
- const lineCount = this.currentCodeBlockData.range.endLineNumber - this.currentCodeBlockData.range.startLineNumber + 1;
320
- const lineHeight = this.editor.getOption(EditorOption.lineHeight);
321
- return lineCount * lineHeight + 2 * this.verticalPadding;
322
- }
323
326
  return this.editor.getContentHeight();
324
327
  }
325
- async render(data, width) {
328
+ render(data, width) {
326
329
  this.currentCodeBlockData = data;
327
330
  if (data.parentContextKeyService) {
328
331
  this.contextKeyService.updateParent(data.parentContextKeyService);
@@ -330,7 +333,7 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
330
333
  if (this.getEditorOptionsFromConfig().wordWrap === "on") {
331
334
  this.layout(width);
332
335
  }
333
- const didUpdate = await this.updateEditor(data);
336
+ const didUpdate = this.updateEditor(data);
334
337
  if (!didUpdate || this.isDisposed || this.currentCodeBlockData !== data) {
335
338
  return;
336
339
  }
@@ -339,11 +342,11 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
339
342
  });
340
343
  if (!this.editor.getOption(EditorOption.ariaLabel)) {
341
344
  this.editor.updateOptions({
342
- ariaLabel: ( localize(6896, "Code block {0}", data.codeBlockIndex + 1))
345
+ ariaLabel: ( localize(7009, "Code block {0}", data.codeBlockIndex + 1))
343
346
  });
344
347
  }
345
348
  this.layout(width);
346
- this.toolbar.setAriaLabel(( localize(6897, "Code block {0}", data.codeBlockIndex + 1)));
349
+ this.toolbar.setAriaLabel(( localize(7010, "Code block {0}", data.codeBlockIndex + 1)));
347
350
  if (data.renderOptions?.hideToolbar) {
348
351
  hide(this.toolbar.getElement());
349
352
  } else {
@@ -366,7 +369,11 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
366
369
  } else {
367
370
  this.element.classList.add("no-vulns");
368
371
  }
372
+ if (this._isHovered) {
373
+ this._toolbarElement.classList.add("force-visibility");
374
+ }
369
375
  this.layout();
376
+ this.editor.renderAsync(true);
370
377
  }
371
378
  reset() {
372
379
  this.clearWidgets();
@@ -381,16 +388,12 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
381
388
  ContentHoverController.get(this.editor)?.hideContentHover();
382
389
  GlyphHoverController.get(this.editor)?.hideGlyphHover();
383
390
  }
384
- async updateEditor(data) {
385
- const textModel = await data.textModel;
386
- if (this.isDisposed || this.currentCodeBlockData !== data || !textModel || textModel.isDisposed()) {
391
+ updateEditor(data) {
392
+ if (this.isDisposed || this.currentCodeBlockData !== data) {
387
393
  return false;
388
394
  }
389
- this.editor.setModel(textModel);
390
- if (data.range) {
391
- this.editor.setSelection(data.range);
392
- this.editor.revealRangeInCenter(data.range, ScrollType.Immediate);
393
- }
395
+ this.setText(data.text);
396
+ this.setLanguage(data.languageId);
394
397
  this.updateContexts(data);
395
398
  return true;
396
399
  }
@@ -398,7 +401,7 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
398
401
  if (!this.currentCodeBlockData || !this.currentCodeBlockData.vulns) {
399
402
  return "";
400
403
  }
401
- const referencesLabel = this.currentCodeBlockData.vulns.length > 1 ? ( localize(6898, "{0} vulnerabilities", this.currentCodeBlockData.vulns.length)) : ( localize(6899, "{0} vulnerability", 1));
404
+ const referencesLabel = this.currentCodeBlockData.vulns.length > 1 ? ( localize(7011, "{0} vulnerabilities", this.currentCodeBlockData.vulns.length)) : ( localize(7012, "{0} vulnerability", 1));
402
405
  const icon = element => element.vulnerabilitiesListExpanded ? Codicon.chevronDown : Codicon.chevronRight;
403
406
  return `${referencesLabel} $(${icon(this.currentCodeBlockData.element).id})`;
404
407
  }
@@ -408,10 +411,7 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
408
411
  return;
409
412
  }
410
413
  this.toolbar.context = {
411
- code: textModel.getTextBuffer().getValueInRange(
412
- data.range ?? textModel.getFullModelRange(),
413
- EndOfLinePreference.TextDefined
414
- ),
414
+ code: textModel.getTextBuffer().getValueInRange(textModel.getFullModelRange(), EndOfLinePreference.TextDefined),
415
415
  codeBlockIndex: data.codeBlockIndex,
416
416
  element: data.element,
417
417
  languageId: textModel.getLanguageId(),
@@ -420,23 +420,46 @@ let CodeBlockPart = class CodeBlockPart extends Disposable {
420
420
  };
421
421
  this.resourceContextKey.set(textModel.uri);
422
422
  }
423
+ setText(newText) {
424
+ const currentText = this._textModel.getValue(EndOfLinePreference.LF);
425
+ if (newText === currentText) {
426
+ return;
427
+ }
428
+ if (newText.startsWith(currentText)) {
429
+ const text = newText.slice(currentText.length);
430
+ const lastLine = this._textModel.getLineCount();
431
+ const lastCol = this._textModel.getLineMaxColumn(lastLine);
432
+ this._textModel.applyEdits([{
433
+ range: ( new Range(lastLine, lastCol, lastLine, lastCol)),
434
+ text
435
+ }]);
436
+ } else {
437
+ this.logService.trace("[CodeBlockPart] setText could not optimize, falling back to setValue");
438
+ this._textModel.setValue(newText);
439
+ }
440
+ }
441
+ setLanguage(languageId) {
442
+ const vscodeLanguageId = this.languageService.getLanguageIdByLanguageName(languageId);
443
+ if (vscodeLanguageId && vscodeLanguageId !== this._textModel.getLanguageId()) {
444
+ this._textModel.setLanguage(vscodeLanguageId);
445
+ } else if (!vscodeLanguageId && this._textModel.getLanguageId() !== PLAINTEXT_LANGUAGE_ID) {
446
+ this._textModel.setLanguage(PLAINTEXT_LANGUAGE_ID);
447
+ }
448
+ }
423
449
  };
424
- CodeBlockPart = ( __decorate([( __param(5, IInstantiationService)), ( __param(6, IContextKeyService)), ( __param(7, IModelService)), ( __param(8, IConfigurationService)), ( __param(9, IAccessibilityService))], CodeBlockPart));
450
+ CodeBlockPart = ( __decorate([( __param(5, IInstantiationService)), ( __param(6, IContextKeyService)), ( __param(7, IModelService)), ( __param(8, ILanguageService)), ( __param(9, IConfigurationService)), ( __param(10, IAccessibilityService)), ( __param(11, ILogService)), ( __param(12, ITextModelService))], CodeBlockPart));
425
451
  let ChatCodeBlockContentProvider = class ChatCodeBlockContentProvider extends Disposable {
426
452
  constructor(textModelService, _modelService) {
427
453
  super();
428
454
  this._modelService = _modelService;
429
455
  this._register(
430
- textModelService.registerTextModelContentProvider(Schemas.vscodeChatCodeBlock, this)
456
+ textModelService.registerTextModelContentProvider(Schemas.vscodeChatCodeBlock, {
457
+ provideTextContent: resource => {
458
+ return Promise.resolve(this._modelService.getModel(resource));
459
+ }
460
+ })
431
461
  );
432
462
  }
433
- async provideTextContent(resource) {
434
- const existing = this._modelService.getModel(resource);
435
- if (existing) {
436
- return existing;
437
- }
438
- return this._modelService.createModel("", null, resource);
439
- }
440
463
  };
441
464
  ChatCodeBlockContentProvider = ( __decorate([( __param(0, ITextModelService)), ( __param(1, IModelService))], ChatCodeBlockContentProvider));
442
465
  let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
@@ -508,7 +531,7 @@ let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
508
531
  multipleDefinitions: "goto",
509
532
  multipleImplementations: "goto"
510
533
  },
511
- ariaLabel: ( localize(6895, "Code block")),
534
+ ariaLabel: ( localize(7008, "Code block")),
512
535
  overflowWidgetsDomNode,
513
536
  ...this.getEditorOptionsFromConfig()
514
537
  });
@@ -587,8 +610,8 @@ let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
587
610
  stickyScroll: {
588
611
  enabled: false
589
612
  },
590
- originalAriaLabel: ( localize(6900, "Original")),
591
- modifiedAriaLabel: ( localize(6901, "Modified")),
613
+ originalAriaLabel: ( localize(7013, "Original")),
614
+ modifiedAriaLabel: ( localize(7014, "Modified")),
592
615
  diffAlgorithm: "advanced",
593
616
  readOnly: false,
594
617
  isInEmbeddedEditor: true,
@@ -629,7 +652,7 @@ let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
629
652
  const toolbarElt = this.toolbar.getElement();
630
653
  toolbarElt.style.display = "block";
631
654
  if (this.accessibilityService.isScreenReaderOptimized()) {
632
- toolbarElt.ariaLabel = ( localize(6902, "Code block toolbar"));
655
+ toolbarElt.ariaLabel = ( localize(7015, "Code block toolbar"));
633
656
  }
634
657
  }
635
658
  getEditorOptionsFromConfig() {
@@ -670,7 +693,7 @@ let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
670
693
  await this.updateEditor(data, token);
671
694
  this.layout(width);
672
695
  this.diffEditor.updateOptions({
673
- ariaLabel: ( localize(6903, "Code Edits")),
696
+ ariaLabel: ( localize(7016, "Code Edits")),
674
697
  readOnly: !!data.isReadOnly
675
698
  });
676
699
  this.resourceLabel.element.setFile(data.edit.uri, {
@@ -705,12 +728,12 @@ let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
705
728
  });
706
729
  let template;
707
730
  if (data.edit.state.applied === 1) {
708
- template = ( localize(6904, "Applied 1 change in [[``{0}``]]", uriLabel));
731
+ template = ( localize(7017, "Applied 1 change in [[``{0}``]]", uriLabel));
709
732
  } else if (data.edit.state.applied < 0) {
710
- template = ( localize(6905, "Edits in [[``{0}``]] have been rejected", uriLabel));
733
+ template = ( localize(7018, "Edits in [[``{0}``]] have been rejected", uriLabel));
711
734
  } else {
712
735
  template = ( localize(
713
- 6906,
736
+ 7019,
714
737
  "Applied {0} changes in [[``{1}``]]",
715
738
  data.edit.state.applied,
716
739
  uriLabel
@@ -731,6 +754,9 @@ let CodeCompareBlockPart = class CodeCompareBlockPart extends Disposable {
731
754
  reset(this.messageElement, message);
732
755
  }
733
756
  const diffData = await data.diffData;
757
+ if (token.isCancellationRequested) {
758
+ return;
759
+ }
734
760
  if (!isEditApplied && diffData) {
735
761
  const viewModel = this.diffEditor.createViewModel({
736
762
  original: diffData.original,
@@ -837,8 +863,8 @@ let DefaultChatTextEditor = class DefaultChatTextEditor {
837
863
  async _checkSha1(model, item) {
838
864
  if (item.state?.sha1 && this._sha1.computeSHA1(model) && this._sha1.computeSHA1(model) !== item.state.sha1) {
839
865
  const result = await this.dialogService.confirm({
840
- message: ( localize(6907, "The original file has been modified.")),
841
- detail: ( localize(6908, "Do you want to apply the changes anyway?"))
866
+ message: ( localize(7020, "The original file has been modified.")),
867
+ detail: ( localize(7021, "Do you want to apply the changes anyway?"))
842
868
  });
843
869
  if (!result.confirmed) {
844
870
  return false;
@@ -858,4 +884,4 @@ let DefaultChatTextEditor = class DefaultChatTextEditor {
858
884
  };
859
885
  DefaultChatTextEditor = ( __decorate([( __param(0, ITextModelService)), ( __param(1, ICodeEditorService)), ( __param(2, IDialogService))], DefaultChatTextEditor));
860
886
 
861
- export { ChatCodeBlockContentProvider, CodeBlockPart, CodeCompareBlockPart, DefaultChatTextEditor, localFileLanguageId, parseLocalFileData };
887
+ export { ChatCodeBlockContentProvider, CodeBlockPart, CodeCompareBlockPart, DefaultChatTextEditor };
@@ -112,9 +112,8 @@
112
112
  }
113
113
 
114
114
  .chat-confirmation-widget .chat-buttons-container,
115
- .chat-confirmation-widget .chat-confirmation-widget-message {
115
+ .chat-confirmation-widget .chat-confirmation-widget-message-scrollable {
116
116
  flex-basis: 100%;
117
- padding: 0 8px;
118
117
  margin: 8px 0;
119
118
 
120
119
 
@@ -123,6 +122,15 @@
123
122
  }
124
123
  }
125
124
 
125
+ .chat-confirmation-widget .chat-buttons-container,
126
+ .chat-confirmation-widget .chat-confirmation-widget-message {
127
+ padding: 0 8px;
128
+ }
129
+
130
+ .chat-confirmation-widget2 > .chat-confirmation-widget-message-scrollable {
131
+ min-height: 0;
132
+ }
133
+
126
134
  .chat-confirmation-widget .chat-confirmation-widget-message-container {
127
135
  border: 1px solid var(--vscode-chat-requestBorder);
128
136
  border-radius: var(--vscode-cornerRadius-medium);
@@ -521,6 +529,7 @@
521
529
  -webkit-background-clip: text;
522
530
  -webkit-text-fill-color: transparent;
523
531
  animation: chat-thinking-shimmer 2s linear infinite;
532
+ will-change: background-position;
524
533
  }
525
534
 
526
535
  }
@@ -0,0 +1,257 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+
6
+ /* When docked in the chat input area, hide the container when it's empty so
7
+ * we don't reserve space. */
8
+ .interactive-session .interactive-input-part > .chat-plan-review-widget-container:empty,
9
+ .interactive-session .interactive-input-part .interactive-input-and-edit-session > .chat-plan-review-widget-container:empty {
10
+ display: none;
11
+ }
12
+
13
+ .interactive-session .interactive-input-part > .chat-plan-review-widget-container,
14
+ .interactive-session .interactive-input-part .interactive-input-and-edit-session > .chat-plan-review-widget-container {
15
+ width: 100%;
16
+ position: relative;
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: 8px;
20
+ }
21
+
22
+ .interactive-session .interactive-input-part > .chat-plan-review-widget-container:not(:empty),
23
+ .interactive-session .interactive-input-part .interactive-input-and-edit-session > .chat-plan-review-widget-container:not(:empty) {
24
+ margin-top: 8px;
25
+ }
26
+
27
+ /* When the part is docked inside the input container, drop our own
28
+ * margin-bottom so it sits flush against the input. */
29
+ .interactive-session .interactive-input-part .chat-plan-review-container > .chat-confirmation-widget2.chat-plan-review {
30
+ margin-bottom: 0;
31
+ border: 1px solid var(--vscode-input-border, transparent);
32
+ background-color: var(--vscode-panel-background);
33
+ }
34
+
35
+ /* Root container uses .chat-confirmation-widget2 styles for borders / title /
36
+ * buttons, plus our own layout overrides for the plan review widget. */
37
+ .interactive-session .chat-plan-review-container {
38
+ display: flex;
39
+ flex-direction: column;
40
+ }
41
+
42
+ .interactive-session .chat-plan-review-container > .chat-confirmation-widget2.chat-plan-review {
43
+ display: flex;
44
+ flex-direction: column;
45
+ max-height: min(420px, 50vh);
46
+ min-height: 0;
47
+ overflow: hidden;
48
+ margin-bottom: 8px;
49
+ }
50
+
51
+ .interactive-session .chat-plan-review-container.chat-plan-review-expanded > .chat-confirmation-widget2.chat-plan-review {
52
+ max-height: min(720px, 75vh);
53
+ }
54
+
55
+ .interactive-session .chat-plan-review-container.chat-plan-review-expanded .chat-confirmation-widget-message.chat-plan-review-body {
56
+ max-height: min(600px, 65vh);
57
+ }
58
+ /* ---------- Title bar ---------- */
59
+ .interactive-session .chat-plan-review-container .chat-plan-review-title {
60
+ display: flex;
61
+ align-items: center;
62
+ gap: 8px;
63
+ padding: 4px 6px 4px 12px;
64
+ min-width: 0;
65
+ flex-shrink: 0;
66
+ }
67
+
68
+ .interactive-session .chat-plan-review-container .chat-plan-review-title-label {
69
+ flex: 1;
70
+ min-width: 0;
71
+ font-weight: 500;
72
+ font-size: var(--vscode-chat-font-size-body-s);
73
+ white-space: nowrap;
74
+ overflow: hidden;
75
+ text-overflow: ellipsis;
76
+ }
77
+
78
+ .interactive-session .chat-plan-review-container .chat-plan-review-title-actions {
79
+ display: flex;
80
+ align-items: center;
81
+ gap: 2px;
82
+ flex-shrink: 0;
83
+ }
84
+
85
+ /* Small, transparent title-bar buttons — matches the question carousel
86
+ * chat-question-collapse-toggle / chat-question-close styles. */
87
+ .interactive-session .chat-plan-review-container .monaco-button.chat-plan-review-title-button {
88
+ min-width: 22px;
89
+ height: 22px;
90
+ padding: 0 6px;
91
+ border: none !important;
92
+ box-shadow: none !important;
93
+ background: transparent !important;
94
+ color: var(--vscode-icon-foreground) !important;
95
+ display: inline-flex;
96
+ align-items: center;
97
+ justify-content: center;
98
+ }
99
+
100
+ .interactive-session .chat-plan-review-container .monaco-button.chat-plan-review-title-button:hover:not(.disabled) {
101
+ background: var(--vscode-toolbar-hoverBackground) !important;
102
+ }
103
+
104
+ /* Icon-only square buttons (restore, chevron). Exactly 22x22 with no padding,
105
+ * matching `.monaco-button.chat-question-collapse-toggle`. */
106
+ .interactive-session .chat-plan-review-container .monaco-button.chat-plan-review-title-icon-button {
107
+ width: 22px;
108
+ padding: 0;
109
+ }
110
+
111
+ .interactive-session .chat-plan-review-container .monaco-button.chat-plan-review-edit {
112
+ font-size: var(--vscode-chat-font-size-body-s);
113
+ color: var(--vscode-foreground) !important;
114
+ }
115
+
116
+ /* Inline slot in the title bar. The action buttons (Approve + Reject) get
117
+ * re-rendered here when the widget is collapsed so the user can act on the
118
+ * plan without expanding it. */
119
+ .interactive-session .chat-plan-review-container .chat-plan-review-inline-actions {
120
+ display: none;
121
+ align-items: center;
122
+ gap: 6px;
123
+ flex-shrink: 0;
124
+ margin-left: auto;
125
+ margin-right: 4px;
126
+ }
127
+
128
+ .interactive-session .chat-plan-review-container.chat-plan-review-collapsed .chat-plan-review-inline-actions {
129
+ display: flex;
130
+ }
131
+
132
+ .interactive-session .chat-plan-review-container .chat-plan-review-inline-actions .monaco-button {
133
+ width: auto;
134
+ min-width: auto;
135
+ padding: 0 10px;
136
+ height: 22px;
137
+ }
138
+
139
+ .interactive-session .chat-plan-review-container .chat-plan-review-inline-actions .monaco-button-dropdown {
140
+ width: auto;
141
+ }
142
+
143
+ /* ---------- Scrollable markdown body ----------
144
+ * Mirrors the flex + max-height chain used by
145
+ * chatToolConfirmationCarouselPart so the DomScrollableElement has something
146
+ * to clip and display its scrollbar against. DomScrollableElement sets the
147
+ * inner element's `overflow: hidden` inline, so we don't set overflow here. */
148
+ .interactive-session .chat-plan-review-container .chat-confirmation-widget-message-scrollable.chat-plan-review-body-scrollable {
149
+ flex: 1;
150
+ min-height: 0;
151
+ }
152
+
153
+ .interactive-session .chat-plan-review-container .chat-confirmation-widget-message.chat-plan-review-body {
154
+ flex: 1;
155
+ min-height: 0;
156
+ max-height: min(300px, 40vh);
157
+ padding: 6px 12px;
158
+ background: transparent;
159
+ border-bottom: none;
160
+ }
161
+
162
+ .interactive-session .chat-plan-review-container .chat-confirmation-widget-message.chat-plan-review-body .rendered-markdown p:first-child {
163
+ margin-top: 0;
164
+ }
165
+
166
+ .interactive-session .chat-plan-review-container .chat-confirmation-widget-message.chat-plan-review-body .rendered-markdown > :last-child {
167
+ margin-bottom: 0;
168
+ }
169
+
170
+ /* ---------- Feedback section (fixed; outside scroll) ---------- */
171
+ .interactive-session .chat-plan-review-container .chat-plan-review-feedback {
172
+ display: flex;
173
+ flex-direction: column;
174
+ gap: 4px;
175
+ padding: 6px 12px;
176
+ border-top: 1px solid var(--vscode-chat-requestBorder);
177
+ flex-shrink: 0;
178
+ }
179
+
180
+ .interactive-session .chat-plan-review-container .chat-plan-review-feedback-label {
181
+ font-size: var(--vscode-chat-font-size-body-s);
182
+ color: var(--vscode-descriptionForeground);
183
+ }
184
+
185
+ /* Textarea styled the same as the question carousel freeform textarea. */
186
+ .interactive-session .chat-plan-review-container .chat-plan-review-feedback-textarea {
187
+ width: 100%;
188
+ min-height: 24px;
189
+ max-height: 200px;
190
+ padding: 3px 8px;
191
+ border: 1px solid var(--vscode-input-border, var(--vscode-chat-requestBorder));
192
+ background-color: var(--vscode-input-background);
193
+ color: var(--vscode-input-foreground);
194
+ border-radius: 4px;
195
+ resize: none;
196
+ font-family: var(--vscode-chat-font-family, inherit);
197
+ font-size: var(--vscode-chat-font-size-body-s);
198
+ box-sizing: border-box;
199
+ overflow-y: hidden;
200
+ align-content: center;
201
+ }
202
+
203
+ .interactive-session .chat-plan-review-container .chat-plan-review-feedback-textarea:focus {
204
+ outline: 1px solid var(--vscode-focusBorder);
205
+ border-color: var(--vscode-focusBorder);
206
+ }
207
+
208
+ .interactive-session .chat-plan-review-container .chat-plan-review-feedback-textarea::placeholder {
209
+ color: var(--vscode-input-placeholderForeground);
210
+ }
211
+
212
+ /* ---------- Footer buttons ---------- */
213
+ .interactive-session .chat-plan-review-container > .chat-confirmation-widget2.chat-plan-review > .chat-confirmation-widget-buttons.chat-plan-review-footer {
214
+ justify-content: flex-start;
215
+ border-top: 1px solid var(--vscode-chat-requestBorder);
216
+ padding: 6px 8px;
217
+ flex-shrink: 0;
218
+ }
219
+
220
+ .interactive-session .chat-plan-review-container > .chat-confirmation-widget2.chat-plan-review > .chat-confirmation-widget-buttons.chat-plan-review-footer .chat-buttons {
221
+ display: flex;
222
+ column-gap: 6px;
223
+ align-items: center;
224
+ }
225
+
226
+ .interactive-session .chat-plan-review-container .chat-plan-review-footer .monaco-button {
227
+ width: auto;
228
+ min-width: auto;
229
+ padding: 0 10px;
230
+ height: 22px;
231
+ }
232
+
233
+ .interactive-session .chat-plan-review-container .chat-plan-review-footer .monaco-button-dropdown {
234
+ width: auto;
235
+ }
236
+
237
+ /* ---------- Hidden helper ---------- */
238
+ .interactive-session .chat-plan-review-container .monaco-button.chat-plan-review-hidden {
239
+ display: none;
240
+ }
241
+
242
+ /* ---------- Collapsed state ---------- */
243
+ .interactive-session .chat-plan-review-container.chat-plan-review-collapsed > .chat-confirmation-widget2.chat-plan-review > .chat-confirmation-widget-message-scrollable,
244
+ .interactive-session .chat-plan-review-container.chat-plan-review-collapsed > .chat-confirmation-widget2.chat-plan-review > .chat-plan-review-feedback,
245
+ .interactive-session .chat-plan-review-container.chat-plan-review-collapsed > .chat-confirmation-widget2.chat-plan-review > .chat-confirmation-widget-buttons {
246
+ display: none;
247
+ }
248
+
249
+ .interactive-session .chat-plan-review-container.chat-plan-review-collapsed > .chat-confirmation-widget2.chat-plan-review > .chat-plan-review-title {
250
+ border-bottom: none;
251
+ }
252
+
253
+ /* ---------- Submitted / used state ---------- */
254
+ .interactive-session .chat-plan-review-container.chat-plan-review-used > .chat-confirmation-widget2.chat-plan-review > .chat-plan-review-feedback,
255
+ .interactive-session .chat-plan-review-container.chat-plan-review-used > .chat-confirmation-widget2.chat-plan-review > .chat-confirmation-widget-buttons {
256
+ display: none;
257
+ }