@codingame/monaco-vscode-katex-common 26.2.2 → 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 (230) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +10 -4
  3. package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +37 -11
  4. package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +3 -0
  5. package/vscode/src/vs/platform/actions/browser/buttonbar.js +15 -4
  6. package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +576 -0
  7. package/vscode/src/vs/{workbench/contrib → platform}/mcp/common/modelContextProtocolApps.js +1 -0
  8. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +15 -15
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +5 -0
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +176 -17
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +5 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +127 -64
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.d.ts +1 -0
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +12 -11
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts +26 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +106 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +9 -9
  19. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +14 -0
  20. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +105 -29
  21. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +13 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +69 -43
  23. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +2 -2
  24. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +35 -7
  25. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +187 -78
  26. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +138 -32
  27. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -6
  28. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +394 -87
  29. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +1 -0
  30. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +28 -13
  31. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +38 -19
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +113 -116
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +16 -15
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +2 -2
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +8 -8
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +5 -5
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +1 -1
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +2 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +30 -11
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +250 -132
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
  43. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +1 -16
  44. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -110
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.d.ts +1 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.d.ts +1 -1
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +3 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +9 -4
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +2 -4
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +7 -10
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.d.ts +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +4 -2
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +22 -4
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +3 -2
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.js +11 -3
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.d.ts +1 -1
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.d.ts +1 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +1 -1
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +59 -0
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.js +29 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.d.ts +0 -2
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +0 -6
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.d.ts +1 -1
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +2 -2
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +4 -2
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.js +6 -3
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorContentPart.d.ts +1 -1
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.d.ts +1 -1
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.d.ts +3 -2
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +7 -6
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +0 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +26 -27
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +4 -1
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +53 -20
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.d.ts +15 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.js +55 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.d.ts +1 -1
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -7
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +1 -1
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +3 -2
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +24 -10
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +4 -4
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.js +11 -6
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +62 -7
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +414 -129
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -1
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +4 -3
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +19 -12
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +22 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +263 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +14 -5
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +98 -26
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +5 -5
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.d.ts +1 -1
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.js +1 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.d.ts +1 -1
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +11 -2
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +252 -80
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.d.ts +29 -1
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +246 -8
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.d.ts +4 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +39 -18
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +6 -4
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +36 -23
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +3 -13
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +6 -260
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.d.ts +1 -1
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.d.ts +1 -1
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +5 -7
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +42 -37
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +12 -3
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +65 -18
  127. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatHookContentPart.css +9 -6
  128. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +2 -2
  129. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +356 -415
  130. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +14 -7
  131. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +102 -7
  132. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +68 -19
  133. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/codeBlockPart.css +48 -15
  134. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +5 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +47 -23
  136. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.d.ts +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  138. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -2
  139. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +0 -5
  140. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +8 -1
  141. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +57 -4
  142. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +5 -1
  143. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +24 -8
  144. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatResultListSubPart.d.ts +1 -1
  145. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.d.ts +18 -0
  146. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +103 -0
  147. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +1 -1
  148. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +15 -18
  149. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +44 -1
  150. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +85 -89
  151. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +3 -5
  152. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +15 -17
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +4 -2
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +41 -2
  155. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +1 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  157. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +3 -3
  158. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +2 -2
  159. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +6 -5
  160. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.d.ts +1 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +13 -1
  162. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.d.ts +1 -1
  163. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.js +2 -1
  164. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
  165. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +21 -5
  166. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +341 -88
  167. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +6 -0
  168. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +13 -4
  169. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +35 -0
  170. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +440 -0
  171. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +24 -10
  172. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +437 -241
  173. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  174. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +77 -17
  175. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +521 -284
  176. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +1 -1
  177. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +7 -1
  178. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +71 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +664 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +104 -0
  181. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +127 -0
  182. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +12 -1
  183. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +57 -16
  184. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +4 -7
  185. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +89 -49
  186. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +1 -0
  187. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.d.ts +28 -0
  188. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +87 -0
  189. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +22 -0
  190. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +213 -0
  191. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +1 -0
  192. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +15 -17
  193. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +7 -4
  194. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +563 -140
  195. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +35 -26
  196. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +2 -2
  197. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +26 -23
  198. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +26 -6
  199. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +145 -79
  200. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +36 -50
  201. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +35 -15
  202. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.d.ts +7 -0
  203. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +127 -30
  204. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +1 -0
  205. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +20 -14
  206. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +6 -6
  207. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +96 -34
  208. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +11 -2
  209. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +68 -27
  210. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +5 -0
  211. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +125 -13
  212. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +8 -11
  213. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +54 -45
  214. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +11 -10
  215. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +172 -112
  216. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
  217. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
  218. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +2 -44
  219. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +28 -4
  220. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +84 -3
  221. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +9 -2
  222. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +58 -41
  223. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  224. package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocolApps.d.ts +1 -548
  225. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  227. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  228. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  229. package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.js +6 -10
  230. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +0 -187
@@ -1,5 +1,6 @@
1
1
  import { type MarkdownRenderOptions } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer";
2
2
  import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
3
4
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
5
  import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
5
6
  import { IModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service";
@@ -21,7 +22,7 @@ import { CodeBlockModelCollection } from "../../../common/widget/codeBlockModelC
21
22
  import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
22
23
  import { ICodeBlockRenderOptions } from "./codeBlockPart.js";
23
24
  import { EditorPool } from "./chatContentCodePools.js";
24
- import { IChatContentPart, IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
25
+ import { IChatContentPart, IChatContentPartRenderContext } from "./chatContentParts.js";
25
26
  export interface IChatMarkdownContentPartOptions {
26
27
  readonly codeBlockRenderOptions?: ICodeBlockRenderOptions;
27
28
  readonly allowInlineDiffs?: boolean;
@@ -45,6 +46,8 @@ export declare class ChatMarkdownContentPart extends Disposable implements IChat
45
46
  private static ID_POOL;
46
47
  readonly codeblocksPartId: string;
47
48
  readonly domNode: HTMLElement;
49
+ private readonly _onDidChangeHeight;
50
+ readonly onDidChangeHeight: Event<void>;
48
51
  private readonly allRefs;
49
52
  private readonly _codeblocks;
50
53
  get codeblocks(): IChatCodeBlockInfo[];
@@ -1,18 +1,20 @@
1
1
 
2
2
  import { registerCss } from '@codingame/monaco-vscode-api/css';
3
3
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
4
- import { $ as $$1, getWindow, DisposableResizeObserver, isHTMLElement, addDisposableListener, EventType, EventHelper } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
+ import { $ as $$1, clearNode, getWindow, DisposableResizeObserver, isHTMLElement, addDisposableListener, EventType, EventHelper } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
5
5
  import { allowedMarkdownHtmlAttributes } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
6
6
  import { StandardMouseEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/mouseEvent';
7
7
  import { status } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
8
8
  import { HoverStyle } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hover';
9
9
  import { HoverPosition } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverWidget';
10
10
  import { DomScrollableElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
11
+ import { wrapTablesWithScrollable } from './chatMarkdownTableScrolling.js';
11
12
  import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
12
13
  import { findLast } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arraysFind';
13
14
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
14
15
  import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
15
16
  import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
17
+ import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
16
18
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
17
19
  import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
18
20
  import { equalsIgnoreCase } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
@@ -94,12 +96,13 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
94
96
  this.instantiationService = instantiationService;
95
97
  this.aiEditTelemetryService = aiEditTelemetryService;
96
98
  this.codeblocksPartId = String(++ChatMarkdownContentPart_1.ID_POOL);
99
+ this._onDidChangeHeight = this._register(( new Emitter()));
100
+ this.onDidChangeHeight = this._onDidChangeHeight.event;
97
101
  this.allRefs = [];
98
102
  this._codeblocks = [];
99
103
  this.mathLayoutParticipants = ( new Set());
100
104
  const element = context.element;
101
105
  const inUndoStop = findLast(context.content, e => e.kind === "undoStop", context.contentIndex)?.id;
102
- const orderedDisposablesList = [];
103
106
  let globalCodeBlockIndexStart = codeBlockStartIndex;
104
107
  let thisPartCodeBlockIndexStart = 0;
105
108
  this.domNode = $("div.chat-markdown-part");
@@ -110,10 +113,20 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
110
113
  }
111
114
  }
112
115
  const enableMath = configurationService.getValue(ChatConfiguration.EnableMath);
116
+ const renderStore = this._register(( new MutableDisposable()));
113
117
  const doRenderMarkdown = () => {
114
118
  if (this._store.isDisposed) {
115
119
  return;
116
120
  }
121
+ const store = ( new DisposableStore());
122
+ renderStore.value = store;
123
+ clearNode(this.domNode);
124
+ this.allRefs.length = 0;
125
+ this._codeblocks.length = 0;
126
+ this.mathLayoutParticipants.clear();
127
+ globalCodeBlockIndexStart = codeBlockStartIndex;
128
+ thisPartCodeBlockIndexStart = 0;
129
+ const orderedDisposablesList = [];
117
130
  const markedExtensions = enableMath ? coalesce([MarkedKatexSupport.getExtension(getWindow(context.container), {
118
131
  throwOnError: false
119
132
  })]) : [];
@@ -121,7 +134,7 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
121
134
  gfm: true,
122
135
  breaks: true
123
136
  };
124
- const result = this._register(renderer.render(markdown.content, {
137
+ const result = store.add(renderer.render(markdown.content, {
125
138
  sanitizerConfig: MarkedKatexSupport.getSanitizerOptions({
126
139
  allowedTags: allowedChatMarkdownHtmlTags,
127
140
  allowedAttributes: allowedMarkdownHtmlAttributes
@@ -170,7 +183,7 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
170
183
  }
171
184
  }
172
185
  if (languageId === "vscode-extensions") {
173
- const chatExtensions = this._register(instantiationService.createInstance(ChatExtensionsContentPart, {
186
+ const chatExtensions = store.add(instantiationService.createInstance(ChatExtensionsContentPart, {
174
187
  kind: "extensions",
175
188
  extensions: text.split(",")
176
189
  }));
@@ -186,7 +199,13 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
186
199
  try {
187
200
  const parsedBody = parseLocalFileData(text);
188
201
  range = parsedBody.range && Range.lift(parsedBody.range);
189
- textModel = this.textModelService.createModelReference(parsedBody.uri).then(ref => ref.object.textEditorModel);
202
+ const modelRefPromise = this.textModelService.createModelReference(parsedBody.uri);
203
+ textModel = modelRefPromise.then(ref => {
204
+ if (!store.isDisposed) {
205
+ store.add(ref);
206
+ }
207
+ return ref.object.textEditorModel;
208
+ });
190
209
  } catch (e) {
191
210
  return $("div");
192
211
  }
@@ -320,11 +339,11 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
320
339
  })));
321
340
  }
322
341
  const markdownDecorationsRenderer = instantiationService.createInstance(ChatMarkdownDecorationsRenderer);
323
- this._register(
342
+ store.add(
324
343
  markdownDecorationsRenderer.walkTreeAndAnnotateReferenceLinks(markdown, result.element)
325
344
  );
326
345
  const layoutParticipants = ( new Lazy(() => {
327
- const observer = this._register(( new DisposableResizeObserver(() => this.mathLayoutParticipants.forEach(layout => layout()))));
346
+ const observer = store.add(( new DisposableResizeObserver(() => this.mathLayoutParticipants.forEach(layout => layout()))));
328
347
  observer.observe(this.domNode);
329
348
  return this.mathLayoutParticipants;
330
349
  }));
@@ -343,16 +362,16 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
343
362
  });
344
363
  scrollable.scanDomNode();
345
364
  }
346
- orderedDisposablesList.reverse().forEach(d => this._register(d));
365
+ orderedDisposablesList.push(wrapTablesWithScrollable(this.domNode, layoutParticipants));
366
+ orderedDisposablesList.reverse().forEach(d => store.add(d));
347
367
  };
368
+ doRenderMarkdown();
348
369
  if (enableMath && !MarkedKatexSupport.getExtension(getWindow(context.container))) {
349
- MarkedKatexSupport.loadExtension(getWindow(context.container)).catch(e => {
350
- console.error("Failed to load MarkedKatexSupport extension:", e);
351
- }).finally(() => {
370
+ MarkedKatexSupport.loadExtension(getWindow(context.container)).then(() => {
352
371
  doRenderMarkdown();
372
+ }).catch(e => {
373
+ console.error("Failed to load MarkedKatexSupport extension:", e);
353
374
  });
354
- } else {
355
- doRenderMarkdown();
356
375
  }
357
376
  }
358
377
  renderCodeBlockPill(sessionResource, requestId, inUndoStop, codemapperUri) {
@@ -376,7 +395,11 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
376
395
  }).then(e => {
377
396
  this._codeblocks[data.codeBlockPartIndex].codemapperUri = e.codemapperUri;
378
397
  });
379
- editorInfo.render(data, currentWidth);
398
+ editorInfo.render(data, currentWidth).then(() => {
399
+ if (!this._store.isDisposed && isRequestVM(data.element)) {
400
+ this._onDidChangeHeight.fire();
401
+ }
402
+ });
380
403
  return ref;
381
404
  }
382
405
  hasSameContent(other) {
@@ -466,6 +489,16 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
466
489
  this.pillElement.role = "button";
467
490
  this.element.appendChild(this.statusIndicatorContainer);
468
491
  this.element.appendChild(this.pillElement);
492
+ const updateCheckmarks = () => this.element.classList.toggle(
493
+ "show-checkmarks",
494
+ !!this.configurationService.getValue(AccessibilityWorkbenchSettingId.ShowChatCheckmarks)
495
+ );
496
+ updateCheckmarks();
497
+ this._register(this.configurationService.onDidChangeConfiguration(e => {
498
+ if (e.affectsConfiguration(AccessibilityWorkbenchSettingId.ShowChatCheckmarks)) {
499
+ updateCheckmarks();
500
+ }
501
+ }));
469
502
  this.registerListeners();
470
503
  }
471
504
  registerListeners() {
@@ -559,7 +592,7 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
559
592
  statusIconEl.classList.add(...statusIconClasses);
560
593
  const entry = editSession.readEntry(uri, r);
561
594
  const rwRatio = Math.floor((entry?.rewriteRatio.read(r) || 0) * 100);
562
- statusLabelEl.textContent = ( localize(5926, "Applying edits"));
595
+ statusLabelEl.textContent = ( localize(6520, "Applying edits"));
563
596
  const showAnimation = this.configurationService.getValue(ChatConfiguration.ShowCodeBlockProgressAnimation);
564
597
  if (showAnimation) {
565
598
  progressFill.style.width = `${rwRatio}%`;
@@ -568,13 +601,13 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
568
601
  } else {
569
602
  progressFill.style.width = "0%";
570
603
  this.pillElement.classList.remove("progress-filling");
571
- labelDetail.textContent = rwRatio === 0 || !rwRatio ? ( localize(5927, "Generating edits...")) : ( localize(5928, "({0}%)...", rwRatio));
604
+ labelDetail.textContent = rwRatio === 0 || !rwRatio ? ( localize(6521, "Generating edits...")) : ( localize(6522, "({0}%)...", rwRatio));
572
605
  }
573
606
  } else {
574
607
  const statusCodeicon = Codicon.check;
575
608
  statusIconClasses = ThemeIcon.asClassNameArray(statusCodeicon);
576
609
  statusIconEl.classList.add(...statusIconClasses);
577
- statusLabelEl.textContent = ( localize(5929, "Edited"));
610
+ statusLabelEl.textContent = ( localize(6523, "Edited"));
578
611
  const fileKind = uri.path.endsWith("/") ? FileKind.FOLDER : FileKind.FILE;
579
612
  pillIconClasses = getIconClasses(this.modelService, this.languageService, uri, fileKind);
580
613
  iconEl.classList.add(...pillIconClasses);
@@ -594,10 +627,10 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
594
627
  this.currentDiff = changes;
595
628
  labelAdded.textContent = `+${changes.added}`;
596
629
  labelRemoved.textContent = `-${changes.removed}`;
597
- const insertionsFragment = changes.added === 1 ? ( localize(5930, "1 insertion")) : ( localize(5931, "{0} insertions", changes.added));
598
- const deletionsFragment = changes.removed === 1 ? ( localize(5932, "1 deletion")) : ( localize(5933, "{0} deletions", changes.removed));
630
+ const insertionsFragment = changes.added === 1 ? ( localize(6524, "1 insertion")) : ( localize(6525, "{0} insertions", changes.added));
631
+ const deletionsFragment = changes.removed === 1 ? ( localize(6526, "1 deletion")) : ( localize(6527, "{0} deletions", changes.removed));
599
632
  const summary = ( localize(
600
- 5934,
633
+ 6528,
601
634
  "Edited {0}, {1}, {2}",
602
635
  iconText,
603
636
  insertionsFragment,
@@ -0,0 +1,15 @@
1
+ import { Lazy } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lazy";
2
+ import { DisposableStore } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ /**
4
+ * Finds all tables in `domNode` and wraps each in a {@link DomScrollableElement}
5
+ * so they scroll horizontally with the custom VS Code scrollbar instead of the
6
+ * native one. Each wrapped table is pushed onto `orderedDisposablesList` and a
7
+ * `scanDomNode` callback is registered on `layoutParticipants` so the scrollbar
8
+ * re-measures whenever the container is resized.
9
+ *
10
+ * Each column's `min-width` is also set to the maximum character count across
11
+ * all cells in that column (in `ch` units), preventing short-content columns
12
+ * like "001" from being squeezed to one character wide. Single-character columns
13
+ * are left unchanged. This is layout-free: only `textContent` lengths are read.
14
+ */
15
+ export declare function wrapTablesWithScrollable(domNode: HTMLElement, layoutParticipants: Lazy<Set<() => void>>): DisposableStore;
@@ -0,0 +1,55 @@
1
+
2
+ import { isHTMLElement, createElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
3
+ import { DomScrollableElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
4
+ import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
+ import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
6
+
7
+ function wrapTablesWithScrollable(domNode, layoutParticipants) {
8
+ const store = ( new DisposableStore());
9
+ for (const table of domNode.querySelectorAll("table")) {
10
+ if (!isHTMLElement(table)) {
11
+ continue;
12
+ }
13
+ applyTableColumnMinWidths(table);
14
+ const parent = table.parentElement;
15
+ const nextSibling = table.nextSibling;
16
+ const tableContainer = createElement("div");
17
+ tableContainer.appendChild(table);
18
+ const scrollable = store.add(( new DomScrollableElement(tableContainer, {
19
+ vertical: ScrollbarVisibility.Hidden,
20
+ horizontal: ScrollbarVisibility.Auto
21
+ })));
22
+ const scrollNode = scrollable.getDomNode();
23
+ scrollNode.classList.add("rendered-markdown-table-scroll-wrapper");
24
+ parent?.insertBefore(scrollNode, nextSibling);
25
+ layoutParticipants.value.add(() => {
26
+ scrollable.scanDomNode();
27
+ });
28
+ scrollable.scanDomNode();
29
+ }
30
+ return store;
31
+ }
32
+ const TABLE_COLUMN_MIN_WIDTH_CAP_CH = 3;
33
+ function applyTableColumnMinWidths(table) {
34
+ const rows = table.rows;
35
+ const colMaxChars = [];
36
+ for (const row of rows) {
37
+ for (let c = 0; c < row.cells.length; c++) {
38
+ const len = row.cells[c].textContent?.length ?? 0;
39
+ if (len > (colMaxChars[c] ?? 0)) {
40
+ colMaxChars[c] = len;
41
+ }
42
+ }
43
+ }
44
+ const firstRow = rows[0];
45
+ if (firstRow) {
46
+ for (let c = 0; c < firstRow.cells.length; c++) {
47
+ const minCh = colMaxChars[c];
48
+ if (minCh !== undefined && minCh > 1) {
49
+ firstRow.cells[c].style.minWidth = Math.min(minCh, TABLE_COLUMN_MIN_WIDTH_CAP_CH) + "ch";
50
+ }
51
+ }
52
+ }
53
+ }
54
+
55
+ export { wrapTablesWithScrollable };
@@ -5,7 +5,7 @@ import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/
5
5
  import { IMcpService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service";
6
6
  import { IChatMcpServersStarting, IChatMcpServersStartingSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
7
7
  import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
8
- import { IChatContentPart, IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
8
+ import { IChatContentPart, IChatContentPartRenderContext } from "./chatContentParts.js";
9
9
  export declare class ChatMcpServersInteractionContentPart extends Disposable implements IChatContentPart {
10
10
  private readonly data;
11
11
  private readonly context;
@@ -96,19 +96,19 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
96
96
  }
97
97
  updateDetailedProgress(state) {
98
98
  const skipText = createMarkdownCommandLink({
99
- title: ( localize(5935, "Skip?")),
99
+ title: ( localize(6529, "Skip?")),
100
100
  id: McpCommandIds.SkipCurrentAutostart
101
101
  });
102
102
  let content;
103
103
  if (state.starting.length === 0) {
104
104
  content = ( new MarkdownString(undefined, {
105
105
  isTrusted: true
106
- })).appendText(( localize(5936, "Activating MCP extensions...")) + " ").appendMarkdown(skipText);
106
+ })).appendText(( localize(6530, "Activating MCP extensions...")) + " ").appendMarkdown(skipText);
107
107
  } else {
108
108
  const serverLinks = this.createServerCommandLinks(state.starting);
109
109
  content = ( new MarkdownString(undefined, {
110
110
  isTrusted: true
111
- })).appendMarkdown(( localize(5937, "Starting MCP servers {0}...", serverLinks)) + " ").appendMarkdown(skipText);
111
+ })).appendMarkdown(( localize(6531, "Starting MCP servers {0}...", serverLinks)) + " ").appendMarkdown(skipText);
112
112
  }
113
113
  if (this.workingProgressPart) {
114
114
  this.workingProgressPart.updateMessage(content);
@@ -119,7 +119,8 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
119
119
  }, this._markdownRendererService, this.context, true,
120
120
  true,
121
121
  undefined,
122
- undefined));
122
+ undefined,
123
+ false));
123
124
  this.domNode.appendChild(this.workingProgressPart.domNode);
124
125
  }
125
126
  }
@@ -146,12 +147,12 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
146
147
  const count = serversRequiringInteraction.length;
147
148
  const links = this.createServerCommandLinks(serversRequiringInteraction);
148
149
  const content = count === 1 ? ( localize(
149
- 5938,
150
+ 6532,
150
151
  "The MCP server {0} may have new tools and requires interaction to start. [Start it now?]({1})",
151
152
  links,
152
153
  "#start"
153
154
  )) : ( localize(
154
- 5939,
155
+ 6533,
155
156
  "The MCP servers {0} may have new tools and require interaction to start. [Start them now?]({1})",
156
157
  links,
157
158
  "#start"
@@ -193,7 +194,7 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
193
194
  const serversToStart = state.serversRequiringInteraction;
194
195
  for (let i = 0; i < serversToStart.length; i++) {
195
196
  const serverInfo = serversToStart[i];
196
- startLink.textContent = ( localize(5940, "Starting {0}...", serverInfo.label));
197
+ startLink.textContent = ( localize(6534, "Starting {0}...", serverInfo.label));
197
198
  const server = this.mcpService.servers.get().find(s => s.definition.id === serverInfo.id);
198
199
  if (server) {
199
200
  await startServerAndWaitForLiveTools(server, {
@@ -6,7 +6,7 @@ import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench
6
6
  import { IChatMultiDiffData, IChatMultiDiffDataSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
7
7
  import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
8
8
  import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
9
- import { IChatContentPart } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
9
+ import { IChatContentPart } from "./chatContentParts.js";
10
10
  export declare class ChatMultiDiffContentPart extends Disposable implements IChatContentPart {
11
11
  private readonly content;
12
12
  private readonly _element;
@@ -64,7 +64,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
64
64
  const viewListButton = ( new ButtonWithIcon(viewListButtonContainer, {}));
65
65
  this._register(autorun(reader => {
66
66
  const fileCount = this.diffData.read(reader).resources.length;
67
- viewListButton.label = fileCount === 1 ? ( localize(5941, "Changed 1 file")) : ( localize(5942, "Changed {0} files", fileCount));
67
+ viewListButton.label = fileCount === 1 ? ( localize(6535, "Changed 1 file")) : ( localize(6536, "Changed {0} files", fileCount));
68
68
  }));
69
69
  const setExpansionState = () => {
70
70
  viewListButton.icon = this.isCollapsed ? Codicon.chevronRight : Codicon.chevronDown;
@@ -86,7 +86,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
86
86
  renderViewAllFileChangesButton(container) {
87
87
  const button = container.appendChild($(".chat-view-changes-icon"));
88
88
  button.classList.add(...ThemeIcon.asClassNameArray(Codicon.diffMultiple));
89
- button.title = ( localize(5943, "Open Changes"));
89
+ button.title = ( localize(6537, "Open Changes"));
90
90
  return addDisposableListener(button, "click", e => {
91
91
  const source = ( URI.parse(`multi-diff-editor:${( ( new Date()).getMilliseconds().toString()) + ( Math.random().toString())}`));
92
92
  const {
@@ -143,7 +143,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
143
143
  alwaysConsumeMouseWheel: false,
144
144
  accessibilityProvider: {
145
145
  getAriaLabel: element => element.uri.path,
146
- getWidgetAriaLabel: () => ( localize(5944, "File Changes"))
146
+ getWidgetAriaLabel: () => ( localize(6538, "File Changes"))
147
147
  }
148
148
  })
149
149
  );
@@ -259,7 +259,7 @@ class ChatMultiDiffListRenderer {
259
259
  const removedElement = changesSummary.appendChild($(".deletions"));
260
260
  removedElement.textContent = `-${element.diff.removed}`;
261
261
  changesSummary.setAttribute("aria-label", ( localize(
262
- 5945,
262
+ 6539,
263
263
  "{0} lines added, {1} lines removed",
264
264
  element.diff.added,
265
265
  element.diff.removed
@@ -6,7 +6,7 @@ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/pl
6
6
  import { IChatProgressMessage, IChatTask, IChatTaskSerialized, IChatToolInvocation, IChatToolInvocationSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
7
7
  import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
8
8
  import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
9
- import { IChatContentPart, IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
9
+ import { IChatContentPart, IChatContentPartRenderContext } from "./chatContentParts.js";
10
10
  import { IChatMarkdownAnchorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service";
11
11
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
12
12
  import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
@@ -21,10 +21,11 @@ export declare class ChatProgressContentPart extends Disposable implements IChat
21
21
  private readonly showSpinner;
22
22
  private readonly isHidden;
23
23
  private readonly renderedMessage;
24
+ private readonly _fileWidgetStore;
24
25
  private currentContent;
25
26
  constructor(progress: IChatProgressMessage | IChatTask | IChatTaskSerialized | {
26
27
  content: IMarkdownString;
27
- }, chatContentMarkdownRenderer: IMarkdownRenderer, context: IChatContentPartRenderContext, forceShowSpinner: boolean | undefined, forceShowMessage: boolean | undefined, icon: ThemeIcon | undefined, toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized | undefined, instantiationService: IInstantiationService, chatMarkdownAnchorService: IChatMarkdownAnchorService, configurationService: IConfigurationService);
28
+ }, chatContentMarkdownRenderer: IMarkdownRenderer, context: IChatContentPartRenderContext, forceShowSpinner: boolean | undefined, forceShowMessage: boolean | undefined, icon: ThemeIcon | undefined, toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized | undefined, shimmer: boolean | undefined, instantiationService: IInstantiationService, chatMarkdownAnchorService: IChatMarkdownAnchorService, configurationService: IConfigurationService);
28
29
  updateMessage(content: MarkdownString): void;
29
30
  hasSameContent(other: IChatRendererContent, followingContent: IChatRendererContent[], element: ChatTreeItem): boolean;
30
31
  private createApprovalMessage;
@@ -1,10 +1,12 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { $, append } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
+ import { renderAsPlaintext } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
4
5
  import { alert } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
5
6
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
6
7
  import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
7
- import { Disposable, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
+ import { stripIcons } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iconLabels';
9
+ import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
10
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
9
11
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
10
12
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
@@ -28,6 +30,7 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
28
30
  forceShowMessage,
29
31
  icon,
30
32
  toolInvocation,
33
+ shimmer,
31
34
  instantiationService,
32
35
  chatMarkdownAnchorService,
33
36
  configurationService
@@ -39,6 +42,7 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
39
42
  this.chatMarkdownAnchorService = chatMarkdownAnchorService;
40
43
  this.configurationService = configurationService;
41
44
  this.renderedMessage = this._register(( new MutableDisposable()));
45
+ this._fileWidgetStore = this._register(( new DisposableStore()));
42
46
  this.currentContent = progress.content;
43
47
  const followingContent = context.content.slice(context.contentIndex + 1);
44
48
  this.showSpinner = forceShowSpinner ?? shouldShowSpinner(followingContent, context.element);
@@ -47,23 +51,28 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
47
51
  this.domNode = $("");
48
52
  return;
49
53
  }
50
- if (this.showSpinner && !this.configurationService.getValue(AccessibilityWorkbenchSettingId.VerboseChatProgressUpdates)) {
51
- alert(progress.content.value);
54
+ if (this.showSpinner && this.configurationService.getValue(AccessibilityWorkbenchSettingId.VerboseChatProgressUpdates)) {
55
+ alert(stripIcons(renderAsPlaintext(progress.content)));
52
56
  }
53
- const codicon = icon ? icon : this.showSpinner ? ThemeIcon.modify(Codicon.loading, "spin") : Codicon.check;
57
+ const isLoadingIcon = icon && ThemeIcon.isEqual(icon, ThemeIcon.modify(Codicon.loading, "spin"));
58
+ const useShimmer = (shimmer ?? (!icon || isLoadingIcon)) && this.showSpinner;
59
+ const codicon = useShimmer ? Codicon.check : (icon ?? (this.showSpinner ? ThemeIcon.modify(Codicon.loading, "spin") : Codicon.check));
54
60
  const result = this.chatContentMarkdownRenderer.render(progress.content);
55
61
  result.element.classList.add("progress-step");
56
62
  renderFileWidgets(
57
63
  result.element,
58
64
  this.instantiationService,
59
65
  this.chatMarkdownAnchorService,
60
- this._store
66
+ this._fileWidgetStore
61
67
  );
62
68
  const tooltip = this.createApprovalMessage();
63
69
  const progressPart = this._register(
64
70
  instantiationService.createInstance(ChatProgressSubPart, result.element, codicon, tooltip)
65
71
  );
66
72
  this.domNode = progressPart.domNode;
73
+ if (useShimmer) {
74
+ this.domNode.classList.add("shimmer-progress");
75
+ }
67
76
  this.renderedMessage.value = result;
68
77
  }
69
78
  updateMessage(content) {
@@ -72,11 +81,12 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
72
81
  }
73
82
  const result = this._register(this.chatContentMarkdownRenderer.render(content));
74
83
  result.element.classList.add("progress-step");
84
+ this._fileWidgetStore.clear();
75
85
  renderFileWidgets(
76
86
  result.element,
77
87
  this.instantiationService,
78
88
  this.chatMarkdownAnchorService,
79
- this._store
89
+ this._fileWidgetStore
80
90
  );
81
91
  if (this.renderedMessage.value) {
82
92
  this.renderedMessage.value.element.replaceWith(result.element);
@@ -99,7 +109,7 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
99
109
  return this.toolInvocation && getToolApprovalMessage(this.toolInvocation);
100
110
  }
101
111
  };
102
- ChatProgressContentPart = ( __decorate([( __param(7, IInstantiationService)), ( __param(8, IChatMarkdownAnchorService)), ( __param(9, IConfigurationService))], ChatProgressContentPart));
112
+ ChatProgressContentPart = ( __decorate([( __param(8, IInstantiationService)), ( __param(9, IChatMarkdownAnchorService)), ( __param(10, IConfigurationService))], ChatProgressContentPart));
103
113
  function shouldShowSpinner(followingContent, element) {
104
114
  return isResponseVM(element) && !element.isComplete && followingContent.length === 0;
105
115
  }
@@ -114,6 +124,10 @@ let ChatProgressSubPart = class ChatProgressSubPart extends Disposable {
114
124
  content: tooltip,
115
125
  style: HoverStyle.Pointer
116
126
  }));
127
+ this._register(hoverService.setupDelayedHover(messageElement, {
128
+ content: tooltip,
129
+ style: HoverStyle.Pointer
130
+ }));
117
131
  }
118
132
  append(this.domNode, iconElement);
119
133
  messageElement.classList.add("progress-step");
@@ -133,7 +147,7 @@ let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extend
133
147
  ) {
134
148
  const progressMessage = {
135
149
  kind: "progressMessage",
136
- content: ( new MarkdownString()).appendText(( localize(5946, "Working...")))
150
+ content: ( new MarkdownString()).appendText(( localize(6540, "Working")))
137
151
  };
138
152
  super(
139
153
  progressMessage,
@@ -143,14 +157,14 @@ let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extend
143
157
  undefined,
144
158
  undefined,
145
159
  undefined,
160
+ true,
146
161
  instantiationService,
147
162
  chatMarkdownAnchorService,
148
163
  configurationService
149
164
  );
150
- this.domNode.classList.add("working-progress");
151
165
  this._register(languageModelToolsService.onDidPrepareToolCallBecomeUnresponsive(e => {
152
166
  if (isEqual(context.element.sessionResource, e.sessionResource)) {
153
- this.updateMessage(( new MarkdownString(( localize(5947, "Waiting for tool '{0}' to respond...", e.toolData.displayName)))));
167
+ this.updateMessage(( new MarkdownString(( localize(6541, "Waiting for tool '{0}' to respond...", e.toolData.displayName)))));
154
168
  }
155
169
  }));
156
170
  }
@@ -2,13 +2,13 @@ import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/
2
2
  import { IChatPullRequestContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
3
3
  import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
4
4
  import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
5
- import { IChatContentPart } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
6
- import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
5
+ import { IChatContentPart } from "./chatContentParts.js";
6
+ import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
7
7
  export declare class ChatPullRequestContentPart extends Disposable implements IChatContentPart {
8
8
  private readonly pullRequestContent;
9
- private readonly openerService;
9
+ private readonly commandService;
10
10
  readonly domNode: HTMLElement;
11
- constructor(pullRequestContent: IChatPullRequestContent, openerService: IOpenerService);
11
+ constructor(pullRequestContent: IChatPullRequestContent, commandService: ICommandService);
12
12
  hasSameContent(other: IChatRendererContent, followingContent: IChatRendererContent[], element: ChatTreeItem): boolean;
13
13
  addDisposable(disposable: IDisposable): void;
14
14
  }
@@ -6,14 +6,14 @@ import { $, append, addDisposableListener } from '@codingame/monaco-vscode-api/v
6
6
  import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
7
7
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
8
8
  import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
9
- import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
9
+ import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
10
10
 
11
11
  registerCss(chatPullRequestContent);
12
12
  let ChatPullRequestContentPart = class ChatPullRequestContentPart extends Disposable {
13
- constructor(pullRequestContent, openerService) {
13
+ constructor(pullRequestContent, commandService) {
14
14
  super();
15
15
  this.pullRequestContent = pullRequestContent;
16
- this.openerService = openerService;
16
+ this.commandService = commandService;
17
17
  this.domNode = $(".chat-pull-request-content-part");
18
18
  const container = append(this.domNode, $(".container"));
19
19
  const contentContainer = append(container, $(".content-container"));
@@ -22,11 +22,16 @@ let ChatPullRequestContentPart = class ChatPullRequestContentPart extends Dispos
22
22
  icon.classList.add(...ThemeIcon.asClassNameArray(Codicon.gitPullRequest));
23
23
  const titleLink = append(titleContainer, $("a.title"));
24
24
  titleLink.textContent = `${this.pullRequestContent.title} - ${this.pullRequestContent.author}`;
25
- titleLink.href = ( this.pullRequestContent.uri.toString());
25
+ if (this.pullRequestContent.uri) {
26
+ titleLink.href = this.pullRequestContent.uri?.toString();
27
+ }
26
28
  this._register(addDisposableListener(titleLink, "click", e => {
27
29
  e.preventDefault();
28
30
  e.stopPropagation();
29
- this.openerService.open(this.pullRequestContent.uri);
31
+ this.commandService.executeCommand(
32
+ this.pullRequestContent.command.id,
33
+ ...(this.pullRequestContent.command.arguments ?? [])
34
+ );
30
35
  }));
31
36
  }
32
37
  hasSameContent(other, followingContent, element) {
@@ -36,6 +41,6 @@ let ChatPullRequestContentPart = class ChatPullRequestContentPart extends Dispos
36
41
  this._register(disposable);
37
42
  }
38
43
  };
39
- ChatPullRequestContentPart = ( __decorate([( __param(1, IOpenerService))], ChatPullRequestContentPart));
44
+ ChatPullRequestContentPart = ( __decorate([( __param(1, ICommandService))], ChatPullRequestContentPart));
40
45
 
41
46
  export { ChatPullRequestContentPart };