@codingame/monaco-vscode-katex-common 31.0.0 → 32.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -217,19 +217,22 @@
217
217
  gap: 4px;
218
218
  }
219
219
 
220
- .interactive-item-container .chat-footer-toolbar .menu-entry.chat-copy-action .action-label {
220
+ .interactive-item-container .chat-footer-toolbar .menu-entry.chat-copy-action .action-label,
221
+ .interactive-result-code-block .interactive-result-code-block-toolbar .menu-entry.chat-copy-action .action-label {
221
222
  position: relative;
222
223
  overflow: hidden;
223
224
  }
224
225
 
225
- .interactive-item-container .chat-footer-toolbar .menu-entry.chat-copy-action .chat-copy-action-icons {
226
+ .interactive-item-container .chat-footer-toolbar .menu-entry.chat-copy-action .chat-copy-action-icons,
227
+ .interactive-result-code-block .interactive-result-code-block-toolbar .menu-entry.chat-copy-action .chat-copy-action-icons {
226
228
  display: grid;
227
229
  place-items: center;
228
230
  width: 16px;
229
231
  height: 16px;
230
232
  }
231
233
 
232
- .interactive-item-container .chat-footer-toolbar .menu-entry.chat-copy-action .chat-copy-action-icon {
234
+ .interactive-item-container .chat-footer-toolbar .menu-entry.chat-copy-action .chat-copy-action-icon,
235
+ .interactive-result-code-block .interactive-result-code-block-toolbar .menu-entry.chat-copy-action .chat-copy-action-icon {
233
236
  grid-area: 1 / 1;
234
237
  display: flex;
235
238
  align-items: center;
@@ -244,12 +247,15 @@
244
247
  }
245
248
 
246
249
  .interactive-item-container .chat-footer-toolbar .menu-entry.chat-copy-action:not(.copied) .chat-copy-action-icon-copy,
247
- .interactive-item-container .chat-footer-toolbar .menu-entry.chat-copy-action.copied .chat-copy-action-icon-copied {
250
+ .interactive-result-code-block .interactive-result-code-block-toolbar .menu-entry.chat-copy-action:not(.copied) .chat-copy-action-icon-copy,
251
+ .interactive-item-container .chat-footer-toolbar .menu-entry.chat-copy-action.copied .chat-copy-action-icon-copied,
252
+ .interactive-result-code-block .interactive-result-code-block-toolbar .menu-entry.chat-copy-action.copied .chat-copy-action-icon-copied {
248
253
  opacity: 1;
249
254
  transform: scale(1);
250
255
  }
251
256
 
252
257
  @media (prefers-reduced-motion: reduce) {
258
+ .interactive-result-code-block .interactive-result-code-block-toolbar .menu-entry.chat-copy-action .chat-copy-action-icon,
253
259
  .interactive-item-container .chat-footer-toolbar .menu-entry.chat-copy-action .chat-copy-action-icon {
254
260
  transform: none;
255
261
  transition: none;
@@ -861,6 +867,12 @@ have to be updated for changes to the rules above, or to support more deeply nes
861
867
  /* top padding is inside the editor widget */
862
868
  width: 100%;
863
869
  position: relative;
870
+ transition: box-shadow 350ms ease;
871
+ /* Duration of the working/progress border comet animation. Set
872
+ dynamically by `ChatInputPart#layout` to keep the comet's linear
873
+ travel speed roughly constant regardless of input width — wider
874
+ inputs would otherwise feel sluggish at a fixed duration. */
875
+ --chat-input-anim-duration: 4s;
864
876
  }
865
877
 
866
878
  /* Prevent contents from covering border corners. Not applied in compact mode
@@ -871,6 +883,146 @@ have to be updated for changes to the rules above, or to support more deeply nes
871
883
  overflow: hidden;
872
884
  }
873
885
 
886
+ /* Animated "border beam" shown around the chat input while the agent is
887
+ working or thinking. Toggled by the `chat.progressBorder.enabled`
888
+ setting and the chat widget's request-in-progress state.
889
+
890
+ Inspired by https://github.com/Jakubantalik/border-beam — a small bright
891
+ comet travels around the perimeter, leaving a short fading trail. The
892
+ ring is rendered as a `::before` pseudo-element so it can fade in/out
893
+ via `opacity` when the `.working` class is toggled, without disturbing
894
+ the input's own background. The pseudo uses a 1px padding + inverted
895
+ mask trick so the conic gradient is clipped to a hairline that follows
896
+ the input's corner radius. */
897
+ @property --chat-input-anim-angle {
898
+ syntax: '<angle>';
899
+ inherits: false;
900
+ initial-value: 135deg;
901
+ }
902
+
903
+ @keyframes chat-input-working-border-spin {
904
+ from {
905
+ --chat-input-anim-angle: 135deg;
906
+ }
907
+
908
+ to {
909
+ --chat-input-anim-angle: 495deg;
910
+ }
911
+ }
912
+
913
+ /* The beam (`::before`) and its glow (`::after`) are two stacked rings
914
+ occupying the same outer edge: the glow is wider and blurred, the beam is
915
+ hairline and sharp. Both share `--chat-input-anim-angle` so the glow
916
+ travels with the comet head with no gap. */
917
+
918
+ .monaco-workbench .interactive-session .chat-input-container::before {
919
+ content: '';
920
+ position: absolute;
921
+ inset: -1px;
922
+ /* Inherit so the ring matches whatever corner radius the container is
923
+ currently using (large by default, small in compact mode). */
924
+ border-radius: inherit;
925
+ padding: 1px;
926
+ /* The beam: a tight bright arc (~40deg) with a short fade, on an otherwise
927
+ transparent ring. As `--chat-input-anim-angle` rotates, the bright spot
928
+ travels around the perimeter like a comet. Stops are mostly transparent
929
+ so the rest of the border stays invisible. */
930
+ background: conic-gradient(from var(--chat-input-anim-angle),
931
+ transparent 0deg,
932
+ color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor1) 90%, transparent) 20deg,
933
+ var(--vscode-chat-inputWorkingBorderColor1) 30deg,
934
+ color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor1) 60%, transparent) 50deg,
935
+ transparent 90deg,
936
+ transparent 360deg);
937
+ -webkit-mask:
938
+ linear-gradient(#000 0 0) content-box,
939
+ linear-gradient(#000 0 0);
940
+ mask:
941
+ linear-gradient(#000 0 0) content-box,
942
+ linear-gradient(#000 0 0);
943
+ -webkit-mask-composite: xor;
944
+ mask-composite: exclude;
945
+ opacity: 0;
946
+ transition: opacity 350ms ease;
947
+ pointer-events: none;
948
+ z-index: 2;
949
+ }
950
+
951
+ /* Glow ring: a 2px blurred conic that shares the beam's angle, so it forms
952
+ a soft halo that overlaps the beam line directly — no gap. */
953
+ .monaco-workbench .interactive-session .chat-input-container::after {
954
+ content: '';
955
+ position: absolute;
956
+ inset: -1px;
957
+ border-radius: inherit;
958
+ padding: 2px;
959
+ background: conic-gradient(from var(--chat-input-anim-angle),
960
+ transparent 0deg,
961
+ color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor1) 60%, transparent) 25deg,
962
+ color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor1) 35%, transparent) 50deg,
963
+ transparent 90deg,
964
+ transparent 360deg);
965
+ -webkit-mask:
966
+ linear-gradient(#000 0 0) content-box,
967
+ linear-gradient(#000 0 0);
968
+ mask:
969
+ linear-gradient(#000 0 0) content-box,
970
+ linear-gradient(#000 0 0);
971
+ -webkit-mask-composite: xor;
972
+ mask-composite: exclude;
973
+ filter: blur(1.5px);
974
+ opacity: 0;
975
+ transition: opacity 350ms ease;
976
+ pointer-events: none;
977
+ z-index: 1;
978
+ }
979
+
980
+ .monaco-workbench .interactive-session .chat-input-container.working {
981
+ /* Keep a faint, persistent ring around the input while the comet
982
+ animates around it. This preserves a visible boundary for the
983
+ input throughout the animation (including the dim portion of the
984
+ perimeter behind the comet) and improves contrast for users who
985
+ rely on a visible focus/container outline for accessibility. */
986
+ border-color: var(--vscode-input-border, transparent);
987
+ overflow: visible;
988
+ }
989
+
990
+ .monaco-workbench .interactive-session .chat-input-container.working.focused {
991
+ border-color: color-mix(in srgb, var(--vscode-focusBorder) 40%, transparent);
992
+ }
993
+
994
+ .monaco-workbench .interactive-session .chat-input-container.working .interactive-input-editor .monaco-editor,
995
+ .monaco-workbench .interactive-session .chat-input-container.working .interactive-input-editor .monaco-editor .monaco-editor-background {
996
+ background-color: transparent;
997
+ }
998
+
999
+ .monaco-workbench .interactive-session .chat-input-container.working::before {
1000
+ opacity: 1;
1001
+ animation: chat-input-working-border-spin var(--chat-input-anim-duration) linear infinite;
1002
+ }
1003
+
1004
+ .monaco-workbench .interactive-session .chat-input-container.working::after {
1005
+ opacity: 1;
1006
+ animation: chat-input-working-border-spin var(--chat-input-anim-duration) linear infinite;
1007
+ }
1008
+
1009
+ /* Marker class toggled briefly by `ChatInputPart#_updateWorkingProgressAnimationDuration`
1010
+ to force a restart of the comet animations so a new
1011
+ `--chat-input-anim-duration` takes effect mid-flight (browsers cache
1012
+ animation-duration at start time when sourced from a custom property). */
1013
+ .monaco-workbench .interactive-session .chat-input-container.working.chat-input-anim-restart::before,
1014
+ .monaco-workbench .interactive-session .chat-input-container.working.chat-input-anim-restart::after {
1015
+ animation: none;
1016
+ }
1017
+
1018
+ @media (prefers-reduced-motion: reduce) {
1019
+ .monaco-workbench .interactive-session .chat-input-container.working,
1020
+ .monaco-workbench .interactive-session .chat-input-container.working::before,
1021
+ .monaco-workbench .interactive-session .chat-input-container.working::after {
1022
+ animation: none;
1023
+ }
1024
+ }
1025
+
874
1026
  /* Context usage widget container - positioned in the secondary toolbar below input */
875
1027
  .interactive-session .chat-input-toolbars .chat-context-usage-container,
876
1028
  .interactive-session .chat-secondary-toolbar .chat-context-usage-container {
@@ -890,6 +1042,124 @@ have to be updated for changes to the rules above, or to support more deeply nes
890
1042
  order: 2;
891
1043
  }
892
1044
 
1045
+ /* ----------------------------------------------------------------------------
1046
+ Delightful gradient styling for the chat send (submit) button. The arrow-up
1047
+ action-item is filled at rest with a slowly rotating multi-color conic
1048
+ gradient using the same palette as the working-state border, and emits a
1049
+ quick colorful pulse on click. The gradient is naturally absent while a
1050
+ request is in flight: `ChatSubmitAction.menu` is gated on
1051
+ `whenNoActiveRequest`, so during an active request the arrow-up icon is
1052
+ removed entirely from the toolbar and replaced by the Cancel/Stop action.
1053
+ ---------------------------------------------------------------------------- */
1054
+ @property --chat-send-button-anim-angle {
1055
+ syntax: '<angle>';
1056
+ inherits: false;
1057
+ initial-value: 135deg;
1058
+ }
1059
+
1060
+ @keyframes chat-send-button-spin {
1061
+ from {
1062
+ --chat-send-button-anim-angle: 135deg;
1063
+ }
1064
+
1065
+ to {
1066
+ --chat-send-button-anim-angle: 495deg;
1067
+ }
1068
+ }
1069
+
1070
+ @keyframes chat-send-button-pulse {
1071
+ 0% {
1072
+ opacity: 0.7;
1073
+ transform: scale(1);
1074
+ }
1075
+
1076
+ 100% {
1077
+ opacity: 0;
1078
+ transform: scale(1.3);
1079
+ }
1080
+ }
1081
+
1082
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:has(> .action-label.codicon-arrow-up) {
1083
+ position: relative;
1084
+ border-radius: 5px;
1085
+ }
1086
+
1087
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:has(> .action-label.codicon-arrow-up) > .action-label.codicon-arrow-up {
1088
+ box-sizing: border-box;
1089
+ width: 22px;
1090
+ height: 22px;
1091
+ transition: background-color 250ms ease, color 250ms ease;
1092
+ }
1093
+
1094
+ /* Optical alignment: nudge arrow glyph 1px left to visually center it. */
1095
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item > .action-label.codicon-arrow-up::before {
1096
+ display: inline-block;
1097
+ }
1098
+
1099
+ /* Focus indicator drawn on the action-item wrapper so it sits cleanly around
1100
+ the button surface with a small offset. */
1101
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled):has(> .action-label.codicon-arrow-up:focus-visible) {
1102
+ outline: 1px solid var(--vscode-focusBorder);
1103
+ outline-offset: 1px;
1104
+ border-radius: 5px;
1105
+ }
1106
+
1107
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:has(> .action-label.codicon-arrow-up) > .action-label.codicon-arrow-up:focus,
1108
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:has(> .action-label.codicon-arrow-up) > .action-label.codicon-arrow-up:focus-visible {
1109
+ outline: none;
1110
+ }
1111
+
1112
+ /* Idle: fill the entire action-label with a slowly rotating conic gradient.
1113
+ Colors darkened (60% mixed with input background) for a calm fill, with
1114
+ asymmetric conic stops. */
1115
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled) > .action-label.codicon-arrow-up {
1116
+ background: conic-gradient(from var(--chat-send-button-anim-angle) at 0% 0%,
1117
+ color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor1) 60%, var(--vscode-input-background)) 0deg,
1118
+ color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor2) 60%, var(--vscode-input-background)) 90deg,
1119
+ color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor3) 60%, var(--vscode-input-background)) 200deg,
1120
+ color-mix(in srgb, var(--vscode-chat-inputWorkingBorderColor1) 60%, var(--vscode-input-background)) 360deg) !important;
1121
+ color: var(--vscode-button-foreground) !important;
1122
+ border-radius: 5px;
1123
+ animation: chat-send-button-spin 8s linear infinite;
1124
+ transition: box-shadow 120ms ease;
1125
+ /* Lift the label above the click pulse `::after` on the action-item parent
1126
+ so the pulse appears to expand from behind the button, not on top of it. */
1127
+ position: relative;
1128
+ z-index: 1;
1129
+ }
1130
+
1131
+ /* Hover/focus: subtle dark overlay to match standard toolbar button hover
1132
+ feedback. Uses an inset box-shadow so the rotating gradient background is
1133
+ preserved underneath. */
1134
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled) > .action-label.codicon-arrow-up:hover,
1135
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled) > .action-label.codicon-arrow-up:focus-visible {
1136
+ box-shadow: inset 0 0 0 100px rgba(0, 0, 0, 0.12);
1137
+ }
1138
+
1139
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled):has(> .action-label.codicon-arrow-up:active)::after {
1140
+ content: '';
1141
+ position: absolute;
1142
+ inset: -2px;
1143
+ border-radius: 7px;
1144
+ background: conic-gradient(from 135deg,
1145
+ var(--vscode-chat-inputWorkingBorderColor1),
1146
+ var(--vscode-chat-inputWorkingBorderColor2),
1147
+ var(--vscode-chat-inputWorkingBorderColor3),
1148
+ var(--vscode-chat-inputWorkingBorderColor2),
1149
+ var(--vscode-chat-inputWorkingBorderColor1));
1150
+ pointer-events: none;
1151
+ animation: chat-send-button-pulse 400ms ease-out forwards;
1152
+ z-index: 0;
1153
+ }
1154
+
1155
+ @media (prefers-reduced-motion: reduce) {
1156
+
1157
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled) > .action-label.codicon-arrow-up,
1158
+ .interactive-session .chat-input-toolbars > .chat-execute-toolbar .monaco-action-bar .action-item:not(.disabled):has(> .action-label.codicon-arrow-up:active)::after {
1159
+ animation: none;
1160
+ }
1161
+ }
1162
+
893
1163
  .interactive-input-part:has(.chat-editing-session > .chat-editing-session-container) .chat-input-container,
894
1164
  .interactive-input-part:has(.chat-todo-list-widget-container > .chat-todo-list-widget.has-todos) .chat-input-container,
895
1165
  .interactive-input-part:has(.chat-artifacts-widget-container > .chat-artifacts-widget:not([style*="display: none"])) .chat-input-container,
@@ -1357,6 +1627,15 @@ have to be updated for changes to the rules above, or to support more deeply nes
1357
1627
  padding: 0 0 0 4px;
1358
1628
  }
1359
1629
 
1630
+ /* Enable container query units for placeholder truncation. Scoped to
1631
+ non-compact inputs (panel chat) because applying `container-type` in
1632
+ compact contexts (inline chat, quick chat) interferes with Monaco's
1633
+ view-line layout and causes the placeholder decoration to render
1634
+ with zero width. */
1635
+ .interactive-session .interactive-input-part:not(.compact) .chat-editor-container {
1636
+ container-type: inline-size;
1637
+ }
1638
+
1360
1639
  .interactive-session .interactive-input-part.compact .chat-editor-container {
1361
1640
  /* No scrollbar */
1362
1641
  padding-right: 4px;
@@ -1366,6 +1645,26 @@ have to be updated for changes to the rules above, or to support more deeply nes
1366
1645
  color: var(--vscode-input-foreground);
1367
1646
  }
1368
1647
 
1648
+ /* Truncate the chat input placeholder with an ellipsis in narrow views
1649
+ instead of letting it overflow off the right edge of the input.
1650
+ The placeholder is rendered as a Monaco contentText decoration with
1651
+ class prefix "ced-chat-session-detail" inside the view-line spans;
1652
+ style the decoration element directly so we don't pay :has() cost
1653
+ across every view-line on each typed character. Scoped to non-compact
1654
+ inputs because the inline-block + container query sizing breaks the
1655
+ placeholder rendering in compact contexts (inline chat, quick chat). */
1656
+ .interactive-session .interactive-input-part:not(.compact) .chat-editor-container .monaco-editor [class^="ced-chat-session-detail"] {
1657
+ display: inline-block;
1658
+ max-width: 100%;
1659
+ /* fallback for environments without container query units */
1660
+ max-width: 100cqi;
1661
+ overflow: hidden;
1662
+ text-overflow: ellipsis;
1663
+ white-space: nowrap;
1664
+ vertical-align: bottom;
1665
+ color: var(--vscode-input-placeholderForeground);
1666
+ }
1667
+
1369
1668
  .interactive-session .chat-editor-container .monaco-editor .chat-prompt-spinner {
1370
1669
  transform-origin: 6px 6px;
1371
1670
  font-size: 12px;
@@ -1415,6 +1714,7 @@ have to be updated for changes to the rules above, or to support more deeply nes
1415
1714
  .interactive-session .chat-secondary-toolbar > .chat-secondary-input-toolbar {
1416
1715
  overflow: hidden;
1417
1716
  min-width: 0px;
1717
+ flex: 1 1 0;
1418
1718
  color: var(--vscode-icon-foreground);
1419
1719
 
1420
1720
  .monaco-action-bar .action-item .codicon {
@@ -1565,7 +1865,116 @@ have to be updated for changes to the rules above, or to support more deeply nes
1565
1865
  .interactive-session .chat-input-toolbar .chat-input-picker-item .action-label,
1566
1866
  .interactive-session .chat-input-toolbar .chat-sessionPicker-item .action-label {
1567
1867
  height: 16px;
1568
- padding: 3px 1px 3px 7px;
1868
+ padding: 3px 7px;
1869
+ display: flex;
1870
+ align-items: center;
1871
+ color: var(--vscode-icon-foreground);
1872
+ }
1873
+
1874
+ /* Split model picker layout */
1875
+ .chat-input-picker-item:has(.model-picker-split) {
1876
+ overflow: visible;
1877
+ }
1878
+
1879
+ .chat-input-picker-item .action-label.model-picker-split {
1880
+ padding: 0 6px;
1881
+ gap: 2px;
1882
+ overflow: visible;
1883
+ height: auto;
1884
+ border-radius: 0;
1885
+ position: relative;
1886
+ cursor: default;
1887
+ }
1888
+
1889
+ /* Dividers: only in the workbench chat input toolbar (not in the agents app) */
1890
+ .interactive-session .chat-input-toolbar .chat-input-picker-item .action-label.model-picker-split::before,
1891
+ .interactive-session .chat-input-toolbar .chat-input-picker-item .action-label.model-picker-split::after {
1892
+ content: '';
1893
+ position: absolute;
1894
+ top: 25%;
1895
+ bottom: 25%;
1896
+ width: 1px;
1897
+ background-color: var(--vscode-editorWidget-border);
1898
+ }
1899
+
1900
+ .interactive-session .chat-input-toolbar .chat-input-picker-item .action-label.model-picker-split::before {
1901
+ left: 0;
1902
+ }
1903
+
1904
+ .interactive-session .chat-input-toolbar .chat-input-picker-item .action-label.model-picker-split::after {
1905
+ right: 0;
1906
+ }
1907
+
1908
+ /* Hide right divider when the model picker is the last item (e.g. Copilot CLI with no tool config button) */
1909
+ .interactive-session .chat-input-toolbar .chat-input-picker-item:last-child .action-label.model-picker-split::after {
1910
+ content: none;
1911
+ }
1912
+
1913
+ .chat-input-picker-item .action-label.model-picker-split .model-picker-section {
1914
+ display: flex;
1915
+ align-items: center;
1916
+ height: 16px;
1917
+ padding: 3px 5px;
1918
+ border-radius: 4px;
1919
+ cursor: pointer;
1920
+ text-decoration: none;
1921
+ color: inherit;
1922
+ white-space: nowrap;
1923
+ }
1924
+
1925
+ /* Prevent double hover: disable the outer container hover so only individual sections highlight */
1926
+ .chat-input-picker-item .action-label.model-picker-split:hover,
1927
+ .chat-input-picker-item .action-label.model-picker-split[aria-expanded="true"] {
1928
+ background-color: transparent !important;
1929
+ }
1930
+
1931
+ .chat-input-picker-item .action-label.model-picker-split .model-picker-section:hover {
1932
+ background-color: var(--vscode-toolbar-hoverBackground);
1933
+ }
1934
+
1935
+ .chat-input-picker-item .action-label.model-picker-split .model-picker-section[aria-expanded="true"] {
1936
+ background-color: var(--vscode-toolbar-hoverBackground);
1937
+ }
1938
+
1939
+ .chat-input-picker-item .action-label.model-picker-split .model-picker-name {
1940
+ min-width: 0;
1941
+ flex-shrink: 1;
1942
+ overflow: hidden;
1943
+ }
1944
+
1945
+ .chat-input-picker-item .action-label.model-picker-split .model-picker-name .chat-input-picker-label {
1946
+ overflow: hidden;
1947
+ text-overflow: ellipsis;
1948
+ }
1949
+
1950
+ .chat-input-picker-item .action-label.model-picker-split .model-picker-effort,
1951
+ .chat-input-picker-item .action-label.model-picker-split .model-picker-tokens {
1952
+ flex-shrink: 0;
1953
+ }
1954
+
1955
+ .chat-input-picker-item .action-label.model-picker-split .model-picker-section .codicon {
1956
+ font-size: 12px;
1957
+ }
1958
+
1959
+ .chat-input-picker-item .action-label.model-picker-split .model-picker-section span + .chat-input-picker-label {
1960
+ margin-left: 2px;
1961
+ }
1962
+
1963
+ .chat-input-picker-item .action-label.model-picker-split.disabled .model-picker-section {
1964
+ cursor: default;
1965
+ }
1966
+
1967
+ .chat-input-picker-item .action-label.model-picker-split.disabled .model-picker-section:hover {
1968
+ background-color: transparent;
1969
+ }
1970
+
1971
+ .chat-input-picker-item .action-label.model-picker-split.disabled .codicon {
1972
+ color: var(--vscode-disabledForeground);
1973
+ }
1974
+
1975
+ .interactive-session .chat-secondary-input-toolbar .chat-sessionPicker-item .action-label {
1976
+ height: 16px;
1977
+ padding: 3px 0px 3px 6px;
1569
1978
  display: flex;
1570
1979
  align-items: center;
1571
1980
  color: var(--vscode-icon-foreground);
@@ -1580,7 +1989,8 @@ have to be updated for changes to the rules above, or to support more deeply nes
1580
1989
  /* When chevrons are hidden and only showing an icon (no label), size to 22x22 with centered icon */
1581
1990
  .interactive-session .chat-input-toolbar .chat-input-picker-item .action-label.hide-chevrons:not(:has(.chat-input-picker-label)),
1582
1991
  .interactive-session .chat-input-toolbar .chat-input-picker-item.hide-chevrons .action-label:not(:has(.chat-input-picker-label)),
1583
- .interactive-session .chat-input-toolbar .chat-sessionPicker-item .action-label.hide-chevrons:not(:has(.chat-input-picker-label)) {
1992
+ .interactive-session .chat-input-toolbar .chat-sessionPicker-item .action-label.hide-chevrons:not(:has(.chat-input-picker-label)),
1993
+ .interactive-session .chat-secondary-input-toolbar .chat-sessionPicker-item .action-label.hide-chevrons:not(:has(.chat-input-picker-label)) {
1584
1994
  width: 22px;
1585
1995
  min-width: 22px;
1586
1996
  height: 22px;
@@ -1608,7 +2018,8 @@ have to be updated for changes to the rules above, or to support more deeply nes
1608
2018
  }
1609
2019
 
1610
2020
  .monaco-workbench .interactive-session .chat-input-toolbar .chat-input-picker-item .action-label .codicon-chevron-down,
1611
- .monaco-workbench .interactive-session .chat-input-toolbar .chat-sessionPicker-item .action-label .codicon-chevron-down {
2021
+ .monaco-workbench .interactive-session .chat-input-toolbar .chat-sessionPicker-item .action-label .codicon-chevron-down,
2022
+ .monaco-workbench .interactive-session .chat-secondary-input-toolbar .chat-sessionPicker-item .action-label .codicon-chevron-down {
1612
2023
  font-size: 10px;
1613
2024
  margin-left: 4px;
1614
2025
  opacity: 0.75;
@@ -1620,8 +2031,10 @@ have to be updated for changes to the rules above, or to support more deeply nes
1620
2031
  gap: 4px;
1621
2032
  }
1622
2033
 
1623
- .interactive-session .chat-input-toolbars .chat-sessionPicker-container {
2034
+ .interactive-session .chat-input-toolbars .chat-sessionPicker-container,
2035
+ .interactive-session .chat-secondary-toolbar .chat-sessionPicker-container {
1624
2036
  display: flex;
2037
+ gap: 4px;
1625
2038
  max-width: 100%;
1626
2039
  }
1627
2040
 
@@ -1657,6 +2070,29 @@ have to be updated for changes to the rules above, or to support more deeply nes
1657
2070
  margin-bottom: 4px;
1658
2071
  }
1659
2072
 
2073
+ .action-widget .monaco-list-row.chat-model-picker-section-toggle.has-toolbar .action-list-item-toolbar {
2074
+ display: flex;
2075
+ }
2076
+
2077
+ /* Promoted model items: show source inline next to the model name and keep cost aligned right. */
2078
+ .action-widget .monaco-list-row.chat-model-picker-inline-source .title {
2079
+ flex: 0 1 auto;
2080
+ }
2081
+
2082
+ .action-widget .monaco-list-row.chat-model-picker-inline-source .action-item-badge {
2083
+ padding: 0;
2084
+ border-radius: 0;
2085
+ background-color: transparent;
2086
+ color: var(--vscode-descriptionForeground);
2087
+ font-size: 12px;
2088
+ line-height: normal;
2089
+ }
2090
+
2091
+ .action-widget .monaco-list-row.chat-model-picker-inline-source .description {
2092
+ margin-left: auto;
2093
+ flex-shrink: 0;
2094
+ }
2095
+
1660
2096
  .interactive-session .chat-input-toolbars .codicon-debug-stop {
1661
2097
  color: var(--vscode-icon-foreground) !important;
1662
2098
  }
@@ -1930,6 +2366,7 @@ have to be updated for changes to the rules above, or to support more deeply nes
1930
2366
  overflow: hidden;
1931
2367
  white-space: nowrap;
1932
2368
  text-overflow: ellipsis;
2369
+ text-decoration: inherit;
1933
2370
  }
1934
2371
 
1935
2372
  .interactive-session .chat-attached-context .chat-attached-context-attachment .monaco-icon-label .monaco-button.codicon.codicon-close,
@@ -1984,7 +2421,6 @@ have to be updated for changes to the rules above, or to support more deeply nes
1984
2421
  }
1985
2422
 
1986
2423
  .interactive-session .chat-attached-context .chat-attached-context-attachment.implicit.disabled .monaco-icon-label .label-name {
1987
- text-decoration: line-through;
1988
2424
  font-style: italic;
1989
2425
  opacity: 0.8;
1990
2426
  }
@@ -3558,3 +3994,79 @@ have to be updated for changes to the rules above, or to support more deeply nes
3558
3994
  .monaco-workbench:not(.hc-black):not(.hc-light) .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.focused.response {
3559
3995
  outline: none !important;
3560
3996
  }
3997
+
3998
+ /* --- Chat Model Hover --- */
3999
+ .chat-model-hover {
4000
+ display: flex;
4001
+ flex-direction: column;
4002
+ gap: 8px;
4003
+ }
4004
+
4005
+ .chat-model-hover-name {
4006
+ font-weight: bold;
4007
+ font-size: 13px;
4008
+ }
4009
+
4010
+ .chat-model-hover-separator {
4011
+ border-top: 1px solid var(--vscode-menu-separatorBackground, var(--vscode-editorWidget-border));
4012
+ margin: 2px 0;
4013
+ }
4014
+
4015
+ .chat-model-hover-description {
4016
+ font-size: 12px;
4017
+ line-height: 1.4;
4018
+ }
4019
+
4020
+ .chat-model-hover-description > div p {
4021
+ margin: 0;
4022
+ }
4023
+
4024
+ .chat-model-hover-cost {
4025
+ display: flex;
4026
+ flex-direction: column;
4027
+ gap: 2px;
4028
+ font-size: 12px;
4029
+ color: var(--vscode-descriptionForeground);
4030
+ }
4031
+
4032
+ .chat-model-hover-cost-title {
4033
+ font-weight: 600;
4034
+ margin-bottom: 2px;
4035
+ }
4036
+
4037
+ .chat-model-hover-cost-line-label {
4038
+ color: var(--vscode-foreground);
4039
+ opacity: 0.85;
4040
+ }
4041
+
4042
+ .chat-model-hover-context {
4043
+ display: flex;
4044
+ flex-direction: column;
4045
+ gap: 2px;
4046
+ font-size: 12px;
4047
+ color: var(--vscode-descriptionForeground);
4048
+ }
4049
+
4050
+ .chat-model-hover-context-label {
4051
+ font-weight: 600;
4052
+ }
4053
+
4054
+ .chat-model-hover-configurable {
4055
+ display: flex;
4056
+ flex-wrap: wrap;
4057
+ align-items: center;
4058
+ gap: 6px;
4059
+ font-size: 12px;
4060
+ }
4061
+
4062
+ .chat-model-hover-configurable-label {
4063
+ font-weight: 600;
4064
+ }
4065
+
4066
+ .chat-model-hover-configurable-tag {
4067
+ padding: 2px 8px;
4068
+ border-radius: 10px;
4069
+ border: 1px solid var(--vscode-contrastBorder, var(--vscode-editorWidget-border));
4070
+ background: transparent;
4071
+ font-size: 11px;
4072
+ }
@@ -22,7 +22,7 @@ let ChatContextUsageDetails = class ChatContextUsageDetails extends Disposable {
22
22
  this.domNode = $(".chat-context-usage-details");
23
23
  this.quotaItem = this.domNode.appendChild($(".quota-indicator"));
24
24
  const header = this.domNode.insertBefore($("div.header"), this.quotaItem);
25
- header.textContent = ( localize(7269, "Context Window"));
25
+ header.textContent = ( localize(7568, "Context Window"));
26
26
  const quotaLabel = this.quotaItem.appendChild($(".quota-label"));
27
27
  this.tokenCountLabel = quotaLabel.appendChild($("span"));
28
28
  this.percentageLabel = quotaLabel.appendChild($("span.quota-value"));
@@ -32,11 +32,11 @@ let ChatContextUsageDetails = class ChatContextUsageDetails extends Disposable {
32
32
  this.outputBufferLegend = this.quotaItem.appendChild($(".output-buffer-legend"));
33
33
  this.outputBufferLegend.appendChild($(".output-buffer-swatch"));
34
34
  const legendLabel = this.outputBufferLegend.appendChild($("span"));
35
- legendLabel.textContent = ( localize(7270, "Reserved for response"));
35
+ legendLabel.textContent = ( localize(7569, "Reserved for response"));
36
36
  this.outputBufferLegend.style.display = "none";
37
37
  this.tokenDetailsContainer = this.domNode.appendChild($(".token-details-container"));
38
38
  this.warningMessage = this.domNode.appendChild($("div.description"));
39
- this.warningMessage.textContent = ( localize(7271, "Quality may decline as limit nears."));
39
+ this.warningMessage.textContent = ( localize(7570, "Quality may decline as limit nears."));
40
40
  this.warningMessage.style.display = "none";
41
41
  this.actionsSection = this.domNode.appendChild($(".actions-section"));
42
42
  const buttonBarContainer = this.actionsSection.appendChild($(".button-bar-container"));
@@ -73,12 +73,12 @@ let ChatContextUsageDetails = class ChatContextUsageDetails extends Disposable {
73
73
  promptTokenDetails
74
74
  } = data;
75
75
  this.tokenCountLabel.textContent = ( localize(
76
- 7272,
76
+ 7571,
77
77
  "{0} / {1} tokens",
78
78
  this.formatTokenCount(usedTokens, 1),
79
79
  this.formatTokenCount(totalContextWindow, 0)
80
80
  ));
81
- this.percentageLabel.textContent = ( localize(7273, "{0}%", Math.min(100, percentage).toFixed(0)));
81
+ this.percentageLabel.textContent = ( localize(7572, "{0}%", Math.min(100, percentage).toFixed(0)));
82
82
  const usageBarWidth = Math.max(0, Math.min(100, percentage));
83
83
  this.progressFill.style.width = `${usageBarWidth}%`;
84
84
  if (outputBufferPercentage !== undefined && outputBufferPercentage > 0) {
@@ -128,8 +128,8 @@ let ChatContextUsageDetails = class ChatContextUsageDetails extends Disposable {
128
128
  }
129
129
  if (totalPercentage < 100) {
130
130
  const uncategorizedPercentage = 100 - totalPercentage;
131
- categoryMap.set(( localize(7274, "Uncategorized")), [{
132
- label: ( localize(7275, "Other")),
131
+ categoryMap.set(( localize(7573, "Uncategorized")), [{
132
+ label: ( localize(7574, "Other")),
133
133
  percentageOfPrompt: uncategorizedPercentage
134
134
  }]);
135
135
  }