@codingame/monaco-vscode-katex-common 27.0.0 → 28.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +2 -0
  3. package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
  4. package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +30 -2
  5. package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.js +1 -0
  6. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +15 -15
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +17 -11
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +5 -0
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +90 -43
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
  12. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts +26 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +106 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +6 -0
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +63 -10
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +1 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +13 -10
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +2 -2
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +28 -2
  21. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +133 -28
  22. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +69 -0
  23. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +55 -46
  24. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +10 -10
  25. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +38 -37
  26. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
  27. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +5 -5
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +1 -1
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +2 -2
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +72 -57
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
  35. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +1 -16
  36. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -110
  37. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.d.ts +1 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.d.ts +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  42. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +1 -1
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.d.ts +1 -1
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +1 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +1 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.d.ts +1 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.d.ts +1 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +1 -1
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +59 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.js +29 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.d.ts +1 -1
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +2 -2
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +1 -1
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +1 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorContentPart.d.ts +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.d.ts +1 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.d.ts +1 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +3 -3
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +1 -1
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +8 -6
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.d.ts +15 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.js +55 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.d.ts +1 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +6 -6
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +6 -4
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +1 -1
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +26 -6
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +290 -126
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -1
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +1 -1
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +9 -7
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +22 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +263 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +1 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +6 -6
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +5 -5
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.d.ts +1 -1
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.d.ts +1 -1
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +1 -1
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +22 -13
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +12 -18
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -1
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +2 -2
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +3 -13
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +6 -260
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.d.ts +1 -1
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.d.ts +1 -1
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +17 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +129 -117
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +0 -1
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +1 -1
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.d.ts +1 -1
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -1
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +8 -1
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +56 -3
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +5 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +20 -4
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatResultListSubPart.d.ts +1 -1
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.d.ts +1 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +1 -1
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +15 -15
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +43 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +42 -41
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +2 -4
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +14 -14
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +1 -1
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +1 -1
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +3 -3
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +1 -1
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.d.ts +1 -1
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.d.ts +1 -1
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +4 -2
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +61 -39
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +7 -8
  136. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +1 -10
  137. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +81 -191
  138. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  139. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +31 -17
  140. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +334 -181
  141. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +1 -1
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +7 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +3 -0
  144. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +51 -55
  145. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +104 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +127 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
  148. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +2 -1
  149. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +16 -9
  150. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +2 -1
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +22 -0
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +213 -0
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +1 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +10 -16
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +6 -4
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +174 -10
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +2 -12
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +12 -16
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +1 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +5 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +36 -50
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +19 -4
  163. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +22 -6
  164. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +15 -15
  165. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +3 -1
  166. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +24 -4
  167. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +3 -3
  168. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +5 -5
  169. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
  170. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
  171. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +2 -2
  172. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +1 -1
  173. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +3 -3
  174. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +1 -1
  175. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +38 -46
  176. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  177. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  178. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  179. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  180. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  181. package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.js +6 -10
@@ -313,10 +313,13 @@
313
313
  font-weight: 600;
314
314
  }
315
315
 
316
- .interactive-item-container .value .rendered-markdown table {
316
+ .interactive-item-container .value .rendered-markdown .rendered-markdown-table-scroll-wrapper {
317
317
  width: 100%;
318
- text-align: left;
319
318
  margin-bottom: 16px;
319
+ }
320
+
321
+ .interactive-item-container .value .rendered-markdown table {
322
+ text-align: left;
320
323
  border-radius: var(--vscode-cornerRadius-medium);
321
324
  overflow: hidden;
322
325
  border-collapse: separate;
@@ -332,6 +335,11 @@
332
335
  padding: 4px 6px;
333
336
  }
334
337
 
338
+ .interactive-item-container .value .rendered-markdown table th {
339
+ white-space: normal;
340
+ overflow-wrap: break-word;
341
+ }
342
+
335
343
  .interactive-item-container .value .rendered-markdown table td:last-child,
336
344
  .interactive-item-container .value .rendered-markdown table th:last-child {
337
345
  border-right: none;
@@ -812,11 +820,26 @@ have to be updated for changes to the rules above, or to support more deeply nes
812
820
  position: relative;
813
821
  }
814
822
 
815
- /* Context usage widget container - positioned in the bottom toolbar */
816
- .interactive-session .chat-input-toolbars .chat-context-usage-container {
823
+ /* Prevent contents from covering border corners. Not applied in compact mode
824
+ because overflow:hidden creates a BFC that causes a ResizeObserver ↔ layout
825
+ feedback loop when toolbars share width with the editor. */
826
+ .interactive-session .interactive-input-part:not(.compact) .chat-input-container {
827
+ /* Prevent contents from covering border corner */
828
+ overflow: hidden;
829
+ }
830
+
831
+ /* Context usage widget container - positioned in the secondary toolbar below input */
832
+ .interactive-session .chat-input-toolbars .chat-context-usage-container,
833
+ .interactive-session .chat-secondary-toolbar .chat-context-usage-container {
817
834
  display: flex;
818
835
  align-items: center;
819
836
  flex-shrink: 0;
837
+ margin-left: auto;
838
+ order: 1;
839
+ }
840
+
841
+ /* When context usage is inside the toolbars (compact mode), keep the ordering */
842
+ .interactive-session .chat-input-toolbars .chat-context-usage-container {
820
843
  order: 1;
821
844
  }
822
845
 
@@ -1257,6 +1280,8 @@ have to be updated for changes to the rules above, or to support more deeply nes
1257
1280
  display: flex;
1258
1281
  justify-content: space-between;
1259
1282
  padding-bottom: 0;
1283
+ /* no scrollbar */
1284
+ padding-right: 6px;
1260
1285
  border-radius: var(--vscode-cornerRadius-small);
1261
1286
  }
1262
1287
 
@@ -1272,7 +1297,12 @@ have to be updated for changes to the rules above, or to support more deeply nes
1272
1297
  }
1273
1298
 
1274
1299
  .chat-editor-container {
1275
- padding: 0 4px;
1300
+ padding: 0 0 0 4px;
1301
+ }
1302
+
1303
+ .interactive-session .interactive-input-part.compact .chat-editor-container {
1304
+ /* No scrollbar */
1305
+ padding-right: 4px;
1276
1306
  }
1277
1307
 
1278
1308
  .chat-editor-container .monaco-editor .mtk1 {
@@ -1313,10 +1343,94 @@ have to be updated for changes to the rules above, or to support more deeply nes
1313
1343
  margin-top: 4px;
1314
1344
  }
1315
1345
 
1346
+ /* Secondary toolbar below the input box */
1347
+ .interactive-session .chat-secondary-toolbar {
1348
+ display: flex;
1349
+ align-items: center;
1350
+ gap: 6px;
1351
+ padding: 0 4px 0 5px;
1352
+ }
1353
+
1354
+ .interactive-session .chat-secondary-toolbar:empty {
1355
+ display: none;
1356
+ }
1357
+
1358
+ .interactive-session .chat-secondary-toolbar > .chat-secondary-input-toolbar {
1359
+ overflow: hidden;
1360
+ min-width: 0px;
1361
+ color: var(--vscode-icon-foreground);
1362
+
1363
+ .monaco-action-bar .action-item .codicon {
1364
+ color: var(--vscode-icon-foreground);
1365
+ }
1366
+
1367
+ .chat-input-picker-item {
1368
+ min-width: 0px;
1369
+ overflow: hidden;
1370
+
1371
+ .action-label {
1372
+ min-width: 0px;
1373
+ overflow: hidden;
1374
+ position: relative;
1375
+
1376
+ .chat-input-picker-label {
1377
+ overflow: hidden;
1378
+ text-overflow: ellipsis;
1379
+ }
1380
+
1381
+ span + .chat-input-picker-label {
1382
+ margin-left: 2px;
1383
+ }
1384
+
1385
+ .codicon {
1386
+ font-size: 12px;
1387
+ }
1388
+ }
1389
+
1390
+ .codicon {
1391
+ flex-shrink: 0;
1392
+ }
1393
+ }
1394
+ }
1395
+
1396
+ .interactive-session .chat-secondary-toolbar .chat-input-picker-item .action-label {
1397
+ height: 16px;
1398
+ padding: 3px 0px 3px 6px;
1399
+ display: flex;
1400
+ align-items: center;
1401
+ color: var(--vscode-icon-foreground);
1402
+ }
1403
+
1404
+ .interactive-session .chat-secondary-toolbar .chat-input-picker-item .action-label.warning {
1405
+ color: var(--vscode-problemsWarningIcon-foreground);
1406
+ }
1407
+
1408
+ .interactive-session .chat-secondary-toolbar .chat-input-picker-item .action-label.warning .codicon {
1409
+ color: var(--vscode-problemsWarningIcon-foreground) !important;
1410
+ }
1411
+
1412
+ .interactive-session .chat-secondary-toolbar .chat-input-picker-item .action-label.info {
1413
+ color: var(--vscode-problemsInfoIcon-foreground);
1414
+ }
1415
+
1416
+ .interactive-session .chat-secondary-toolbar .chat-input-picker-item .action-label.info .codicon {
1417
+ color: var(--vscode-problemsInfoIcon-foreground) !important;
1418
+ }
1419
+
1420
+ .monaco-workbench .interactive-session .chat-secondary-toolbar .chat-input-picker-item .action-label .codicon-chevron-down {
1421
+ font-size: 10px;
1422
+ margin-left: 4px;
1423
+ opacity: 0.75;
1424
+ }
1425
+
1316
1426
  .interactive-session .chat-input-toolbars :not(.responsive.chat-input-toolbar) .actions-container:first-child {
1317
1427
  margin-right: auto;
1318
1428
  }
1319
1429
 
1430
+ .interactive-session .chat-input-toolbars > .chat-input-toolbar .actions-container:first-child {
1431
+ margin-right: 0;
1432
+ }
1433
+
1320
1434
  .interactive-session .chat-input-toolbars .tool-warning-indicator {
1321
1435
  position: absolute;
1322
1436
  bottom: 0;
@@ -1394,19 +1508,57 @@ have to be updated for changes to the rules above, or to support more deeply nes
1394
1508
  .interactive-session .chat-input-toolbar .chat-input-picker-item .action-label,
1395
1509
  .interactive-session .chat-input-toolbar .chat-sessionPicker-item .action-label {
1396
1510
  height: 16px;
1397
- padding: 3px 0px 3px 6px;
1511
+ padding: 3px 1px 3px 7px;
1398
1512
  display: flex;
1399
1513
  align-items: center;
1400
1514
  color: var(--vscode-icon-foreground);
1401
1515
  }
1402
1516
 
1517
+ /* Keep hover background while picker dropdown is open */
1518
+ .interactive-session .chat-input-toolbar .action-label[aria-expanded="true"],
1519
+ .interactive-session .chat-secondary-toolbar .action-label[aria-expanded="true"] {
1520
+ background-color: var(--vscode-toolbar-hoverBackground);
1521
+ }
1522
+
1523
+ /* When chevrons are hidden and only showing an icon (no label), size to 22x22 with centered icon */
1524
+ .interactive-session .chat-input-toolbar .chat-input-picker-item .action-label.hide-chevrons:not(:has(.chat-input-picker-label)),
1525
+ .interactive-session .chat-input-toolbar .chat-input-picker-item.hide-chevrons .action-label:not(:has(.chat-input-picker-label)),
1526
+ .interactive-session .chat-input-toolbar .chat-sessionPicker-item .action-label.hide-chevrons:not(:has(.chat-input-picker-label)) {
1527
+ width: 22px;
1528
+ min-width: 22px;
1529
+ height: 22px;
1530
+ padding: 0;
1531
+ box-sizing: border-box;
1532
+ display: flex;
1533
+ align-items: center;
1534
+ justify-content: center;
1535
+
1536
+ .codicon {
1537
+ justify-content: center;
1538
+ }
1539
+ }
1540
+
1541
+
1542
+ /* Add context button icon sizing */
1543
+ .interactive-session .chat-input-toolbar .action-item:has(.codicon-add) .action-label {
1544
+ display: flex;
1545
+ align-items: center;
1546
+ justify-content: center;
1547
+ }
1548
+
1549
+ .interactive-session .chat-input-toolbar .action-item:has(.codicon-add) .codicon-add {
1550
+ font-size: 14px;
1551
+ }
1552
+
1403
1553
  .monaco-workbench .interactive-session .chat-input-toolbar .chat-input-picker-item .action-label .codicon-chevron-down,
1404
1554
  .monaco-workbench .interactive-session .chat-input-toolbar .chat-sessionPicker-item .action-label .codicon-chevron-down {
1405
- font-size: 12px;
1406
- margin-left: 2px;
1555
+ font-size: 10px;
1556
+ margin-left: 4px;
1557
+ opacity: 0.75;
1407
1558
  }
1408
1559
 
1409
- .interactive-session .chat-input-toolbars .monaco-action-bar .actions-container {
1560
+ .interactive-session .chat-input-toolbars .monaco-action-bar .actions-container,
1561
+ .interactive-session .chat-secondary-toolbar .monaco-action-bar .actions-container {
1410
1562
  display: flex;
1411
1563
  gap: 4px;
1412
1564
  }
@@ -1436,6 +1588,18 @@ have to be updated for changes to the rules above, or to support more deeply nes
1436
1588
  color: var(--vscode-textLink-activeForeground);
1437
1589
  }
1438
1590
 
1591
+ .action-widget .action-list-filter-input.chat-model-picker-filter-input,
1592
+ .action-widget .action-list-filter-input.chat-model-picker-filter-input:focus {
1593
+ outline: none;
1594
+ box-shadow: none;
1595
+ border-color: transparent;
1596
+ background-color: transparent;
1597
+ }
1598
+
1599
+ .action-widget .action-list-filter:has(.chat-model-picker-filter-input) {
1600
+ margin-bottom: 4px;
1601
+ }
1602
+
1439
1603
  .interactive-session .chat-input-toolbars .codicon-debug-stop {
1440
1604
  color: var(--vscode-icon-foreground) !important;
1441
1605
  }
@@ -1606,7 +1770,7 @@ have to be updated for changes to the rules above, or to support more deeply nes
1606
1770
 
1607
1771
  .interactive-session .interactive-input-part {
1608
1772
  margin: 0px 12px;
1609
- padding: 4px 0 12px 0px;
1773
+ padding: 4px 0 4px 0px;
1610
1774
  display: flex;
1611
1775
  flex-direction: column;
1612
1776
  gap: 4px;
@@ -16,7 +16,7 @@
16
16
 
17
17
  .interactive-session.chat-view-getting-started-disabled {
18
18
 
19
- /* hide most welcome pieces (except suggested actions) when we show recent sessions to make some space */
19
+ /* hide most welcome pieces when we show recent sessions to make some space */
20
20
  .chat-welcome-view .chat-welcome-view-icon,
21
21
  .chat-welcome-view .chat-welcome-view-title,
22
22
  .chat-welcome-view .chat-welcome-view-message,
@@ -157,7 +157,7 @@ div.chat-welcome-view {
157
157
  }
158
158
 
159
159
  & > .chat-welcome-view-disclaimer {
160
- color: var(--vscode-input-placeholderForeground);
160
+ color: var(--vscode-descriptionForeground);
161
161
  text-align: center;
162
162
  margin: 0;
163
163
  max-width: 256px;
@@ -225,16 +225,6 @@ div.chat-welcome-view {
225
225
  color: var(--vscode-editorWidget-foreground);
226
226
  white-space: nowrap;
227
227
  }
228
-
229
- & > .chat-welcome-view-suggested-prompt-description {
230
- font-size: 11px;
231
- color: var(--vscode-descriptionForeground);
232
- overflow: hidden;
233
- text-overflow: ellipsis;
234
- white-space: nowrap;
235
- flex: 0 1 auto;
236
- min-width: 0;
237
- }
238
228
  }
239
229
 
240
230
  > .chat-welcome-view-suggested-prompt:hover {
@@ -20,23 +20,19 @@ let ChatContextUsageDetails = class ChatContextUsageDetails extends Disposable {
20
20
  this.menuService = menuService;
21
21
  this.contextKeyService = contextKeyService;
22
22
  this.domNode = $(".chat-context-usage-details");
23
- this.quotaItem = this.domNode.appendChild($(".quota-item"));
24
- const quotaItemHeader = this.quotaItem.appendChild($(".quota-item-header"));
25
- const quotaItemLabel = quotaItemHeader.appendChild($(".quota-item-label"));
26
- quotaItemLabel.textContent = ( localize(6774, "Context Window"));
27
- const tokenRow = this.quotaItem.appendChild($(".token-row"));
28
- this.tokenCountLabel = tokenRow.appendChild($(".token-count-label"));
29
- this.percentageLabel = tokenRow.appendChild($(".quota-item-value"));
23
+ this.quotaItem = this.domNode.appendChild($(".quota-indicator"));
24
+ const header = this.domNode.insertBefore($("div.header"), this.quotaItem);
25
+ header.textContent = ( localize(6886, "Context Window"));
26
+ const quotaLabel = this.quotaItem.appendChild($(".quota-label"));
27
+ this.tokenCountLabel = quotaLabel.appendChild($("span"));
28
+ this.percentageLabel = quotaLabel.appendChild($("span.quota-value"));
30
29
  const progressBar = this.quotaItem.appendChild($(".quota-bar"));
31
30
  this.progressFill = progressBar.appendChild($(".quota-bit"));
32
31
  this.tokenDetailsContainer = this.domNode.appendChild($(".token-details-container"));
33
- this.warningMessage = this.domNode.appendChild($(".warning-message"));
34
- this.warningMessage.textContent = ( localize(6775, "Quality may decline as limit nears."));
32
+ this.warningMessage = this.domNode.appendChild($("div.description"));
33
+ this.warningMessage.textContent = ( localize(6887, "Quality may decline as limit nears."));
35
34
  this.warningMessage.style.display = "none";
36
35
  this.actionsSection = this.domNode.appendChild($(".actions-section"));
37
- this.actionsSection.appendChild($(".separator"));
38
- const actionsHeader = this.actionsSection.appendChild($(".actions-header"));
39
- actionsHeader.textContent = ( localize(6776, "Actions"));
40
36
  const buttonBarContainer = this.actionsSection.appendChild($(".button-bar-container"));
41
37
  this._register(this.instantiationService.createInstance(
42
38
  MenuWorkbenchButtonBar,
@@ -70,12 +66,12 @@ let ChatContextUsageDetails = class ChatContextUsageDetails extends Disposable {
70
66
  promptTokenDetails
71
67
  } = data;
72
68
  this.tokenCountLabel.textContent = ( localize(
73
- 6777,
69
+ 6888,
74
70
  "{0} / {1} tokens",
75
71
  this.formatTokenCount(usedTokens, 1),
76
72
  this.formatTokenCount(totalContextWindow, 0)
77
73
  ));
78
- this.percentageLabel.textContent = `• ${percentage.toFixed(0)}%`;
74
+ this.percentageLabel.textContent = ( localize(6889, "{0}%", percentage.toFixed(0)));
79
75
  this.progressFill.style.width = `${Math.min(100, percentage)}%`;
80
76
  this.quotaItem.classList.remove("warning", "error");
81
77
  if (percentage >= 90) {
@@ -115,8 +111,8 @@ let ChatContextUsageDetails = class ChatContextUsageDetails extends Disposable {
115
111
  }
116
112
  if (totalPercentage < 100) {
117
113
  const uncategorizedPercentage = 100 - totalPercentage;
118
- categoryMap.set(( localize(6778, "Uncategorized")), [{
119
- label: ( localize(6779, "Other")),
114
+ categoryMap.set(( localize(6890, "Uncategorized")), [{
115
+ label: ( localize(6891, "Other")),
120
116
  percentageOfPrompt: uncategorizedPercentage
121
117
  }]);
122
118
  }
@@ -42,6 +42,7 @@ export declare class ChatContextUsageWidget extends Disposable {
42
42
  readonly onDidChangeVisibility: Event<void>;
43
43
  readonly domNode: HTMLElement;
44
44
  private readonly progressIndicator;
45
+ private readonly percentageLabel;
45
46
  private readonly _isVisible;
46
47
  get isVisible(): IObservable<boolean>;
47
48
  private readonly _lastRequestDisposable;
@@ -110,10 +110,11 @@ let ChatContextUsageWidget = class ChatContextUsageWidget extends Disposable {
110
110
  this.domNode.style.display = "none";
111
111
  this.domNode.setAttribute("tabindex", "0");
112
112
  this.domNode.setAttribute("role", "button");
113
- this.domNode.setAttribute("aria-label", ( localize(6780, "Context window usage")));
113
+ this.domNode.setAttribute("aria-label", ( localize(6892, "Context window usage")));
114
114
  const iconContainer = this.domNode.appendChild($(".icon-container"));
115
115
  this.progressIndicator = ( new CircularProgressIndicator());
116
116
  iconContainer.appendChild(this.progressIndicator.domNode);
117
+ this.percentageLabel = this.domNode.appendChild($(".percentage-label"));
117
118
  this._contextUsageOpenedKey = ChatContextKeys.contextUsageHasBeenOpened.bindTo(this.contextKeyService);
118
119
  if (this.storageService.getBoolean(
119
120
  ChatContextUsageWidget_1._OPENED_STORAGE_KEY,
@@ -238,6 +239,9 @@ let ChatContextUsageWidget = class ChatContextUsageWidget extends Disposable {
238
239
  promptTokenDetails
239
240
  };
240
241
  this.progressIndicator.setProgress(percentage);
242
+ const roundedPercentage = Math.round(percentage);
243
+ this.percentageLabel.textContent = `${roundedPercentage}%`;
244
+ this.domNode.setAttribute("aria-label", ( localize(6893, "Context window usage: {0}%", roundedPercentage)));
241
245
  this.domNode.classList.remove("warning", "error");
242
246
  if (percentage >= 90) {
243
247
  this.domNode.classList.add("error");
@@ -15,7 +15,8 @@
15
15
  .chat-context-usage-details {
16
16
  display: flex;
17
17
  flex-direction: column;
18
- padding: 4px 0;
18
+ margin-top: 4px;
19
+ margin-bottom: 4px;
19
20
  min-width: 200px;
20
21
  }
21
22
 
@@ -23,97 +24,88 @@
23
24
  outline: none;
24
25
  }
25
26
 
26
- /* Using same structure as ChatUsageWidget quota items */
27
- .chat-context-usage-details .quota-item {
28
- margin-bottom: 4px;
29
- }
30
-
31
- .chat-context-usage-details .quota-item-header {
27
+ /* Section headers matching ChatStatusDashboard */
28
+ .chat-context-usage-details div.header {
32
29
  display: flex;
33
30
  align-items: center;
34
- justify-content: space-between;
35
- margin-bottom: 2px;
36
- }
37
-
38
- .chat-context-usage-details .quota-item-label {
39
- color: var(--vscode-foreground);
40
- }
41
-
42
- .chat-context-usage-details .quota-item-value {
43
31
  color: var(--vscode-descriptionForeground);
32
+ margin-bottom: 4px;
33
+ font-weight: 600;
44
34
  }
45
35
 
46
- .chat-context-usage-details .token-row {
36
+ /* Quota indicator — matching ChatStatusDashboard */
37
+ .chat-context-usage-details .quota-indicator .quota-label {
47
38
  display: flex;
48
- align-items: center;
49
- gap: 4px;
50
- margin-bottom: 2px;
39
+ justify-content: space-between;
40
+ gap: 20px;
41
+ margin-bottom: 3px;
51
42
  }
52
43
 
53
- .chat-context-usage-details .token-count-label {
54
- font-size: 12px;
44
+ .chat-context-usage-details .quota-indicator .quota-label .quota-value {
55
45
  color: var(--vscode-descriptionForeground);
56
46
  }
57
47
 
58
- /* Progress bar - matching chat usage implementation */
59
- .chat-context-usage-details .quota-item .quota-bar {
48
+ .chat-context-usage-details .quota-indicator .quota-bar {
60
49
  width: 100%;
61
50
  height: 4px;
62
51
  background-color: var(--vscode-gauge-background);
63
52
  border-radius: 4px;
64
53
  border: 1px solid var(--vscode-gauge-border);
65
- margin: 2px 0;
54
+ margin: 4px 0;
66
55
  }
67
56
 
68
- .chat-context-usage-details .quota-item .quota-bar .quota-bit {
57
+ .chat-context-usage-details .quota-indicator .quota-bar .quota-bit {
69
58
  height: 100%;
70
59
  background-color: var(--vscode-gauge-foreground);
71
60
  border-radius: 4px;
72
61
  transition: width 0.3s ease;
73
62
  }
74
63
 
75
- .chat-context-usage-details .quota-item.warning .quota-bar {
64
+ .chat-context-usage-details .quota-indicator.warning .quota-bar {
76
65
  background-color: var(--vscode-gauge-warningBackground);
77
66
  }
78
67
 
79
- .chat-context-usage-details .quota-item.warning .quota-bar .quota-bit {
68
+ .chat-context-usage-details .quota-indicator.warning .quota-bar .quota-bit {
80
69
  background-color: var(--vscode-gauge-warningForeground);
81
70
  }
82
71
 
83
- .chat-context-usage-details .quota-item.error .quota-bar {
72
+ .chat-context-usage-details .quota-indicator.error .quota-bar {
84
73
  background-color: var(--vscode-gauge-errorBackground);
85
74
  }
86
75
 
87
- .chat-context-usage-details .quota-item.error .quota-bar .quota-bit {
76
+ .chat-context-usage-details .quota-indicator.error .quota-bar .quota-bit {
88
77
  background-color: var(--vscode-gauge-errorForeground);
89
78
  }
90
79
 
91
- .chat-context-usage-details .warning-message {
92
- font-size: 12px;
80
+ /* Description / warning text — matching ChatStatusDashboard */
81
+ .chat-context-usage-details div.description {
82
+ font-size: 11px;
93
83
  color: var(--vscode-descriptionForeground);
94
- margin-bottom: 4px;
84
+ display: flex;
85
+ align-items: center;
86
+ gap: 3px;
95
87
  }
96
88
 
97
89
  /* Token details breakdown */
98
- .chat-context-usage-details .token-details-container {
99
- margin-top: 4px;
100
- }
101
-
102
90
  .chat-context-usage-details .token-category {
103
- margin-bottom: 4px;
91
+ margin-bottom: 6px;
104
92
  }
105
93
 
106
94
  .chat-context-usage-details .token-category-header {
95
+ display: flex;
96
+ align-items: center;
97
+ color: var(--vscode-descriptionForeground);
98
+ margin-top: 16px;
99
+ margin-bottom: 4px;
107
100
  font-weight: 600;
108
- color: var(--vscode-foreground);
109
- margin-bottom: 2px;
110
101
  }
111
102
 
112
103
  .chat-context-usage-details .token-detail-item {
113
104
  display: flex;
114
105
  justify-content: space-between;
115
106
  align-items: center;
116
- padding-left: 8px;
107
+ gap: 20px;
108
+ margin-bottom: 2px;
117
109
  }
118
110
 
119
111
  .chat-context-usage-details .token-detail-label {
@@ -124,15 +116,9 @@
124
116
  color: var(--vscode-descriptionForeground);
125
117
  }
126
118
 
127
- .chat-context-usage-details .actions-section .separator {
128
- border-top: 1px solid var(--vscode-editorHoverWidget-border);
129
- margin: 4px 0;
130
- }
131
-
132
- .chat-context-usage-details .actions-section .actions-header {
133
- font-weight: 600;
134
- color: var(--vscode-foreground);
135
- margin-bottom: 4px;
119
+ /* Actions section */
120
+ .chat-context-usage-details .actions-section {
121
+ margin-top: 8px;
136
122
  }
137
123
 
138
124
  .chat-context-usage-details .actions-section .button-bar-container {
@@ -6,9 +6,7 @@
6
6
  .chat-context-usage-widget {
7
7
  display: flex;
8
8
  align-items: center;
9
- justify-content: center;
10
- height: 22px;
11
- width: 22px;
9
+ gap: 4px;
12
10
  flex-shrink: 0;
13
11
  cursor: pointer;
14
12
  padding: 3px;
@@ -55,7 +53,7 @@
55
53
 
56
54
  .chat-context-usage-widget .progress-arc {
57
55
  fill: none;
58
- stroke: var(--vscode-descriptionForeground);
56
+ stroke: var(--vscode-icon-foreground);
59
57
  stroke-width: 4;
60
58
  stroke-linecap: round;
61
59
  transform: rotate(-90deg);
@@ -70,3 +68,20 @@
70
68
  .chat-context-usage-widget.error .progress-arc {
71
69
  stroke: var(--vscode-editorError-foreground);
72
70
  }
71
+
72
+ .chat-context-usage-widget .percentage-label {
73
+ font-size: 11px;
74
+ line-height: 1;
75
+ color: var(--vscode-descriptionForeground);
76
+ white-space: nowrap;
77
+ max-width: 0;
78
+ opacity: 0;
79
+ overflow: hidden;
80
+ transition: max-width 0.1s ease-out, opacity 0.1s ease-out;
81
+ }
82
+
83
+ .chat-context-usage-widget:hover .percentage-label,
84
+ .chat-context-usage-widget:focus .percentage-label {
85
+ max-width: 4em;
86
+ opacity: 1;
87
+ }
@@ -64,12 +64,24 @@ function annotateSpecialMarkdownContent(response) {
64
64
  });
65
65
  }
66
66
  }
67
- } else if (item.kind === "markdownContent" && previousItem?.kind === "markdownContent" && canMergeMarkdownStrings(previousItem.content, item.content)) {
68
- const merged = appendMarkdownString(previousItem.content, item.content);
69
- result[previousItemIndex] = {
70
- ...previousItem,
71
- content: merged
72
- };
67
+ } else if (item.kind === "markdownContent" && previousItem?.kind === "markdownContent") {
68
+ if (canMergeMarkdownStrings(previousItem.content, item.content)) {
69
+ const merged = appendMarkdownString(previousItem.content, item.content);
70
+ result[previousItemIndex] = {
71
+ ...previousItem,
72
+ content: merged
73
+ };
74
+ } else if (previousItem.inlineReferences && isContentRefOnly(previousItem.content.value)) {
75
+ result[previousItemIndex] = {
76
+ ...previousItem,
77
+ content: {
78
+ ...item.content,
79
+ value: previousItem.content.value + item.content.value
80
+ }
81
+ };
82
+ } else {
83
+ result.push(item);
84
+ }
73
85
  } else if (item.kind === "markdownVuln") {
74
86
  const vulnText = encodeURIComponent(JSON.stringify(item.vulnerabilities));
75
87
  const markdownText = `<vscode_annotation details='${vulnText}'>${item.content.value}</vscode_annotation>`;
@@ -103,6 +115,10 @@ function annotateSpecialMarkdownContent(response) {
103
115
  }
104
116
  return result;
105
117
  }
118
+ const contentRefPattern = ( new RegExp(`^(\\[.*?\\]\\(${contentRefUrl}/\\d+\\))+$`));
119
+ function isContentRefOnly(text) {
120
+ return contentRefPattern.test(text);
121
+ }
106
122
  function isInsideCodeContext(text) {
107
123
  const lines = text.split("\n");
108
124
  let inFencedBlock = false;