@codingame/monaco-vscode-katex-common 28.4.1 → 29.1.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 (154) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
  3. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +17 -15
  4. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +2 -2
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +9 -9
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +3 -1
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +158 -47
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +22 -17
  10. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
  11. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +16 -4
  12. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +121 -14
  13. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +8 -1
  14. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +15 -8
  15. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
  16. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +29 -13
  17. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +349 -109
  18. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +47 -23
  19. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +6 -1
  20. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +104 -62
  21. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +1 -3
  22. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -11
  23. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -40
  24. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +21 -16
  25. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
  26. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
  27. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +8 -1
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +13 -4
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +29 -50
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +261 -282
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.d.ts +2 -1
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +7 -5
  33. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
  34. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.d.ts +31 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +184 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +4 -2
  37. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
  38. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
  39. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
  40. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
  41. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
  42. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
  43. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
  44. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +4 -3
  45. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
  46. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
  47. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +3 -2
  48. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +42 -34
  49. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +1 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +14 -18
  51. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +11 -9
  52. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
  53. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +6 -2
  54. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +25 -2
  55. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +332 -114
  56. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
  57. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +1 -0
  58. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +7 -7
  59. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +2 -0
  60. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +10 -5
  61. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +1 -1
  62. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +11 -16
  63. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.d.ts +7 -1
  64. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +66 -7
  65. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
  66. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +28 -3
  67. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +272 -107
  68. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingExternalResourcesWidget.d.ts +18 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingExternalResourcesWidget.js +70 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
  71. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
  72. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -1
  73. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +6 -3
  74. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
  75. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
  76. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
  77. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +151 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +6 -6
  79. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +96 -10
  80. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +6 -1
  81. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +86 -10
  82. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +7 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +5 -2
  84. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
  85. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -1
  86. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +8 -6
  87. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
  88. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
  89. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.d.ts +28 -0
  90. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +273 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +3 -2
  92. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +28 -16
  93. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +22 -1
  94. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +81 -32
  95. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +20 -7
  97. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +11 -1
  98. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
  99. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.d.ts +6 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +21 -7
  101. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
  102. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +2 -12
  103. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +12 -12
  104. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +0 -6
  105. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +112 -163
  106. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +11 -1
  107. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +9 -1
  108. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +137 -52
  109. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
  110. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +12 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +108 -38
  112. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +9 -3
  113. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +385 -247
  114. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +5 -1
  115. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +23 -7
  116. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +6 -6
  117. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +4 -1
  118. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +4 -2
  119. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +23 -23
  120. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
  121. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
  122. package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +124 -17
  123. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +4 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +24 -7
  125. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +30 -11
  126. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +84 -0
  127. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.d.ts +31 -0
  128. package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +170 -0
  129. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalPromptFileSystem.d.ts +47 -0
  130. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalPromptFileSystem.js +95 -0
  131. package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +4 -1
  132. package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +15 -15
  133. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +1 -1
  134. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +4 -3
  135. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -0
  136. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +38 -6
  137. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +1 -0
  138. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +31 -0
  139. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +12 -3
  140. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +130 -23
  141. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +23 -0
  142. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +41 -0
  143. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
  144. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
  145. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +55 -3
  146. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +4 -1
  147. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +50 -39
  148. package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
  149. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
  150. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
  151. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
  152. package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
  153. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +0 -35
  154. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +0 -440
@@ -99,6 +99,13 @@
99
99
  }
100
100
  }
101
101
 
102
+ .chat-question-header-actions {
103
+ display: flex;
104
+ align-items: center;
105
+ gap: 4px;
106
+ flex-shrink: 0;
107
+ }
108
+
102
109
  .chat-question-close-container {
103
110
  flex-shrink: 0;
104
111
 
@@ -117,6 +124,35 @@
117
124
  background: var(--vscode-toolbar-hoverBackground) !important;
118
125
  }
119
126
  }
127
+
128
+ .monaco-button.chat-question-collapse-toggle {
129
+ min-width: 22px;
130
+ width: 22px;
131
+ height: 22px;
132
+ padding: 0;
133
+ border: none !important;
134
+ box-shadow: none !important;
135
+ background: transparent !important;
136
+ color: var(--vscode-icon-foreground) !important;
137
+ }
138
+
139
+ .monaco-button.chat-question-collapse-toggle:hover:not(.disabled) {
140
+ background: var(--vscode-toolbar-hoverBackground) !important;
141
+ }
142
+ }
143
+ }
144
+
145
+ .interactive-session .chat-question-carousel-container.chat-question-carousel-collapsed {
146
+ .chat-question-carousel-content {
147
+ .chat-question-description,
148
+ .chat-question-input-scrollable,
149
+ .chat-question-validation-message {
150
+ display: none;
151
+ }
152
+ }
153
+
154
+ .chat-question-footer-row {
155
+ display: none;
120
156
  }
121
157
  }
122
158
 
@@ -211,31 +247,52 @@
211
247
  background-color: var(--vscode-list-hoverBackground);
212
248
  }
213
249
 
214
- /* Single-select: highlight entire row when selected */
250
+ /* Single-select: highlight entire row when selected (list not focused) */
215
251
  .chat-question-list-item.selected {
216
- background-color: var(--vscode-list-hoverBackground);
217
- color: var(--vscode-list-activeSelectionForeground);
252
+ background-color: var(--vscode-list-inactiveSelectionBackground, var(--vscode-list-hoverBackground));
253
+ color: var(--vscode-list-inactiveSelectionForeground, var(--vscode-foreground));
218
254
 
219
- .chat-question-label {
220
- color: var(--vscode-list-activeSelectionForeground);
255
+ .chat-question-list-label,
256
+ .chat-question-list-label-title {
257
+ color: var(--vscode-list-inactiveSelectionForeground, var(--vscode-foreground));
221
258
  }
222
259
 
223
260
  .chat-question-list-label-desc {
224
- color: var(--vscode-list-activeSelectionForeground);
225
- opacity: 0.8;
261
+ color: var(--vscode-list-inactiveSelectionForeground, var(--vscode-foreground));
226
262
  }
227
263
 
228
264
  .chat-question-list-indicator.codicon-check {
229
- color: var(--vscode-list-activeSelectionForeground);
265
+ color: var(--vscode-list-inactiveSelectionForeground, var(--vscode-foreground));
230
266
  }
231
267
 
232
268
  .chat-question-list-number {
233
- color: var(--vscode-list-activeSelectionForeground);
269
+ color: var(--vscode-list-inactiveSelectionForeground, var(--vscode-foreground));
234
270
  }
235
271
  }
236
272
 
273
+ /* When the question list has focus, use active selection styling */
274
+ .chat-question-list:focus .chat-question-list-item.selected {
275
+ background-color: var(--vscode-list-activeSelectionBackground, var(--vscode-list-hoverBackground));
276
+ color: var(--vscode-list-activeSelectionForeground, var(--vscode-foreground));
277
+
278
+ .chat-question-label {
279
+ color: var(--vscode-list-activeSelectionForeground, var(--vscode-foreground));
280
+ }
281
+
282
+ .chat-question-list-label-desc {
283
+ color: var(--vscode-list-activeSelectionForeground, var(--vscode-foreground));
284
+ }
285
+
286
+ .chat-question-list-indicator.codicon-check {
287
+ color: var(--vscode-list-activeSelectionForeground, var(--vscode-foreground));
288
+ }
289
+
290
+ .chat-question-list-number {
291
+ color: var(--vscode-list-activeSelectionForeground, var(--vscode-foreground));
292
+ }
293
+ }
237
294
  .chat-question-list-item.selected:hover {
238
- background-color: var(--vscode-list-hoverBackground);
295
+ background-color: var(--vscode-list-inactiveSelectionBackground, var(--vscode-list-hoverBackground));
239
296
  }
240
297
 
241
298
  /* Checkbox for multi-select */
@@ -386,6 +443,35 @@
386
443
  }
387
444
  }
388
445
 
446
+ /* carousel-level message (e.g. from MCP elicitation) */
447
+ .interactive-session .chat-question-carousel-container .chat-question-carousel-message {
448
+ padding: 8px 16px 0;
449
+ font-size: var(--vscode-chat-font-size-body-s);
450
+ color: var(--vscode-descriptionForeground);
451
+ max-height: min(220px, 25vh);
452
+ overflow-y: auto;
453
+ overscroll-behavior: contain;
454
+
455
+ .rendered-markdown p {
456
+ margin: 0;
457
+ }
458
+ }
459
+
460
+ /* field description below question title */
461
+ .interactive-session .chat-question-carousel-container .chat-question-description {
462
+ padding: 4px 16px;
463
+ font-size: var(--vscode-chat-font-size-body-s);
464
+ color: var(--vscode-descriptionForeground);
465
+ }
466
+
467
+ /* validation error message below input area */
468
+ .interactive-session .chat-question-carousel-container .chat-question-validation-message {
469
+ padding: 0 16px 4px;
470
+ font-size: var(--vscode-chat-font-size-body-s);
471
+ color: var(--vscode-editorWarning-foreground);
472
+ flex-shrink: 0;
473
+ }
474
+
389
475
  /* summary (after finished) */
390
476
  .interactive-session .chat-question-carousel-summary {
391
477
  display: flex;
@@ -132,7 +132,6 @@
132
132
  }
133
133
  }
134
134
 
135
- .chat-terminal-output-container.collapsed { display: none; }
136
135
  .chat-terminal-output-container {
137
136
  border: 1px solid var(--vscode-chat-requestBorder);
138
137
  border-bottom-left-radius: var(--vscode-cornerRadius-medium);
@@ -145,6 +144,12 @@
145
144
  padding: 0;
146
145
  }
147
146
 
147
+ /* Keep collapsed output fully hidden so it cannot contribute an extra border line. */
148
+ .chat-terminal-output-container.collapsed,
149
+ .chat-terminal-output-container:not(.expanded) {
150
+ display: none;
151
+ }
152
+
148
153
  .chat-terminal-content-part .chat-terminal-content-title.chat-terminal-content-title-no-bottom-radius {
149
154
  border-bottom-left-radius: 0px;
150
155
  border-bottom-right-radius: 0px;
@@ -13,6 +13,11 @@
13
13
  position: relative;
14
14
  color: var(--vscode-descriptionForeground);
15
15
 
16
+ .chat-thinking-external-resources {
17
+ margin-top: 4px;
18
+ margin-left: 5px;
19
+ }
20
+
16
21
  .chat-used-context {
17
22
  margin: 0px;
18
23
  }
@@ -56,6 +61,9 @@
56
61
  .codicon.codicon-circle-filled {
57
62
  display: none;
58
63
  }
64
+ }
65
+
66
+ &.chat-thinking-active.chat-used-context-collapsed > .chat-used-context-label .monaco-button.monaco-icon-button {
59
67
 
60
68
  .chat-thinking-title-shimmer {
61
69
  background: linear-gradient(90deg,
@@ -92,17 +100,32 @@
92
100
  max-height: none;
93
101
  }
94
102
 
103
+ /* Curved connector from the header to the first thinking item */
104
+ &:not(.chat-used-context-collapsed)::after {
105
+ content: '';
106
+ position: absolute;
107
+ left: 3px;
108
+ top: 22px;
109
+ height: 16px;
110
+ width: 5px;
111
+ border-left: 1px solid var(--vscode-chat-requestBorder);
112
+ border-bottom: 1px solid var(--vscode-chat-requestBorder);
113
+ border-bottom-left-radius: 5px;
114
+ }
115
+
95
116
  .monaco-button.hidden,
96
117
  .chat-pinned-preview.hidden {
97
118
  display: none;
98
119
  }
99
120
 
100
121
  .chat-used-context-list.chat-thinking-collapsible {
101
- border: 1px solid var(--vscode-chat-requestBorder);
102
- border-radius: var(--vscode-cornerRadius-medium);
122
+ border: none;
123
+ border-radius: 0;
103
124
  margin-bottom: 0;
104
125
  position: relative;
105
126
  overflow: hidden;
127
+ padding-top: 0;
128
+ margin-left: 5px;
106
129
 
107
130
  .chat-tool-invocation-part {
108
131
  padding: 4px 12px 4px 18px;
@@ -161,15 +184,16 @@
161
184
 
162
185
  .chat-used-context.chat-hook-outcome-blocked,
163
186
  .chat-used-context.chat-hook-outcome-warning {
164
- padding: 4px 12px 4px 20px;
165
- margin-bottom: 0;
166
- }
187
+ padding: 4px 12px 4px 20px;
188
+ margin-bottom: 0;
189
+ }
167
190
  }
168
191
 
169
192
  .chat-thinking-item.markdown-content {
170
193
  padding: 6px 12px 6px 24px;
171
194
  position: relative;
172
195
  font-size: var(--vscode-chat-font-size-body-s);
196
+
173
197
  .progress-container {
174
198
  margin-bottom: 0px;
175
199
  padding-top: 0px;
@@ -255,7 +279,6 @@
255
279
  > .chat-thinking-icon .codicon.codicon-book {
256
280
  top: 10px;
257
281
  }
258
-
259
282
  }
260
283
 
261
284
  .chat-thinking-spinner-item {
@@ -326,10 +349,31 @@
326
349
  .interactive-session .interactive-response .value .chat-thinking-fixed-mode {
327
350
  outline: none;
328
351
 
352
+ /* Hide the header/collapse button while streaming — it reappears when chat-thinking-streaming is removed */
353
+ &:has(.chat-thinking-streaming) > .chat-used-context-label {
354
+ display: none;
355
+ }
356
+
329
357
  > .monaco-scrollable-element > .shadow {
330
358
  display: none;
331
359
  }
332
360
 
361
+ /* Directional fade indicators via mask-image on the scrollable viewport */
362
+ &.chat-thinking-fade-top > .monaco-scrollable-element {
363
+ mask-image: linear-gradient(to bottom, transparent 0px, black 20px);
364
+ -webkit-mask-image: linear-gradient(to bottom, transparent 0px, black 20px);
365
+ }
366
+
367
+ &.chat-thinking-fade-bottom > .monaco-scrollable-element {
368
+ mask-image: linear-gradient(to top, transparent 0px, black 20px);
369
+ -webkit-mask-image: linear-gradient(to top, transparent 0px, black 20px);
370
+ }
371
+
372
+ &.chat-thinking-fade-top.chat-thinking-fade-bottom > .monaco-scrollable-element {
373
+ mask-image: linear-gradient(to bottom, transparent 0px, black 20px, black calc(100% - 20px), transparent 100%);
374
+ -webkit-mask-image: linear-gradient(to bottom, transparent 0px, black 20px, black calc(100% - 20px), transparent 100%);
375
+ }
376
+
333
377
  &.chat-used-context-collapsed > .monaco-scrollable-element:has(.chat-used-context-list.chat-thinking-collapsible:not(.chat-thinking-streaming)) {
334
378
  display: none;
335
379
  }
@@ -338,6 +382,42 @@
338
382
  max-height: 200px;
339
383
  overflow: hidden;
340
384
  display: block;
385
+ margin-left: 0px;
386
+ padding-left: 0px;
387
+
388
+ .chat-tool-invocation-part {
389
+ padding-left: 13px;
390
+ }
391
+
392
+ .chat-thinking-spinner-item {
393
+ padding-left: 19px;
394
+ }
395
+
396
+ .chat-used-context.chat-hook-outcome-blocked,
397
+ .chat-used-context.chat-hook-outcome-warning {
398
+ padding-left: 15px;
399
+ }
400
+
401
+ .chat-thinking-item.markdown-content {
402
+ padding-left: 19px;
403
+ }
404
+
405
+ .chat-thinking-tool-wrapper .chat-markdown-part.rendered-markdown {
406
+ padding-left: 19px;
407
+ }
408
+
409
+ /* chain of thought lines */
410
+ .chat-thinking-tool-wrapper,
411
+ .chat-thinking-item.markdown-content,
412
+ .chat-thinking-spinner-item {
413
+ &::before {
414
+ left: 5.5px;
415
+ }
416
+
417
+ > .chat-thinking-icon {
418
+ left: 0px;
419
+ }
420
+ }
341
421
  }
342
422
 
343
423
  &:not(.chat-used-context-collapsed) .chat-used-context-list.chat-thinking-collapsible.chat-thinking-streaming {
@@ -349,10 +429,6 @@
349
429
  &:not(.chat-used-context-collapsed) > .monaco-scrollable-element {
350
430
  overflow: visible;
351
431
  height: auto;
352
-
353
- > .scrollbar {
354
- display: none;
355
- }
356
432
  }
357
433
 
358
434
  .chat-used-context-list.chat-thinking-collapsible:not(.chat-thinking-streaming) {
@@ -38,6 +38,13 @@ export declare abstract class AbstractToolConfirmationSubPart extends BaseChatTo
38
38
  protected render(config: IToolConfirmationConfig): void;
39
39
  protected confirmWith(toolInvocation: IChatToolInvocation, reason: ConfirmedReason): void;
40
40
  protected additionalPrimaryActions(): AbstractToolPrimaryAction[];
41
+ /**
42
+ * When true, "Allow Once" stays the primary button even when a
43
+ * session-scoped action is available. Subclasses override this
44
+ * to keep the simple allow-once default (e.g. when combination
45
+ * approval options are present).
46
+ */
47
+ protected useAllowOnceAsPrimary(): boolean;
41
48
  protected abstract createContentElement(): HTMLElement | string;
42
49
  protected abstract getTitle(): string;
43
50
  }
@@ -59,7 +59,7 @@ let AbstractToolConfirmationSubPart = class AbstractToolConfirmationSubPart exte
59
59
  const allowTooltip = keybindingService.appendKeybinding(config.allowLabel, config.allowActionId);
60
60
  const skipTooltip = keybindingService.appendKeybinding(config.skipLabel, config.skipActionId);
61
61
  const additionalActions = this.additionalPrimaryActions();
62
- const sessionAction = additionalActions.find(action => "scope" in action && action.scope === "session");
62
+ const sessionAction = this.useAllowOnceAsPrimary() ? undefined : additionalActions.find(action => "scope" in action && action.scope === "session");
63
63
  const allowAction = {
64
64
  label: config.allowLabel,
65
65
  tooltip: allowTooltip,
@@ -77,7 +77,7 @@ let AbstractToolConfirmationSubPart = class AbstractToolConfirmationSubPart exte
77
77
  data: primaryAction.data,
78
78
  moreActions: moreActions.length > 0 ? moreActions : undefined
79
79
  }, {
80
- label: ( localize(6655, "Skip")),
80
+ label: ( localize(6848, "Skip")),
81
81
  tooltip: skipTooltip,
82
82
  data: () => {
83
83
  this.confirmWith(toolInvocation, {
@@ -118,6 +118,9 @@ let AbstractToolConfirmationSubPart = class AbstractToolConfirmationSubPart exte
118
118
  additionalPrimaryActions() {
119
119
  return [];
120
120
  }
121
+ useAllowOnceAsPrimary() {
122
+ return false;
123
+ }
121
124
  };
122
125
  AbstractToolConfirmationSubPart = ( __decorate([( __param(2, IInstantiationService)), ( __param(3, IKeybindingService)), ( __param(4, IContextKeyService)), ( __param(5, IChatWidgetService)), ( __param(6, ILanguageModelToolsService))], AbstractToolConfirmationSubPart));
123
126
 
@@ -46,9 +46,9 @@ let ExtensionsInstallConfirmationWidgetSubPart = class ExtensionsInstallConfirma
46
46
  append(this.domNode, chatExtensionsContentPart.domNode);
47
47
  const state = toolInvocation.state.get();
48
48
  if (state.type === IChatToolInvocation.StateKind.WaitingForConfirmation) {
49
- const allowLabel = ( localize(6656, "Allow"));
49
+ const allowLabel = ( localize(6849, "Allow"));
50
50
  const allowTooltip = keybindingService.appendKeybinding(allowLabel, AcceptToolConfirmationActionId);
51
- const cancelLabel = ( localize(6657, "Cancel"));
51
+ const cancelLabel = ( localize(6850, "Cancel"));
52
52
  const cancelTooltip = keybindingService.appendKeybinding(cancelLabel, CancelChatActionId);
53
53
  const enableAllowButtonEvent = this._register(( new Emitter()));
54
54
  const buttons = [{
@@ -68,9 +68,9 @@ let ExtensionsInstallConfirmationWidgetSubPart = class ExtensionsInstallConfirma
68
68
  tooltip: cancelTooltip
69
69
  }];
70
70
  const confirmWidget = this._register(instantiationService.createInstance(ChatConfirmationWidget, context, {
71
- title: state.confirmationMessages?.title ?? ( localize(6658, "Install Extensions")),
71
+ title: state.confirmationMessages?.title ?? ( localize(6851, "Install Extensions")),
72
72
  message: state.confirmationMessages?.message ?? ( localize(
73
- 6659,
73
+ 6852,
74
74
  "Click the Install button on the extension and then press Allow when finished."
75
75
  )),
76
76
  buttons
@@ -14,6 +14,6 @@ export declare class ChatInputOutputMarkdownProgressPart extends BaseChatToolInv
14
14
  readonly domNode: HTMLElement;
15
15
  private readonly collapsibleListPart;
16
16
  get codeblocks(): IChatCodeBlockInfo[];
17
- constructor(toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized, context: IChatContentPartRenderContext, codeBlockStartIndex: number, message: string | IMarkdownString, subtitle: string | IMarkdownString | undefined, input: string, output: IToolResultInputOutputDetails["output"] | undefined, isError: boolean, instantiationService: IInstantiationService, modelService: IModelService, languageService: ILanguageService, configurationService: IConfigurationService);
17
+ constructor(toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized, context: IChatContentPartRenderContext, codeBlockStartIndex: number, message: string | IMarkdownString, subtitle: string | IMarkdownString | undefined, input: string, inputLanguage: string | undefined, output: IToolResultInputOutputDetails["output"] | undefined, isError: boolean, instantiationService: IInstantiationService, modelService: IModelService, languageService: ILanguageService, configurationService: IConfigurationService);
18
18
  private getAutoApproveMessageContent;
19
19
  }
@@ -15,7 +15,7 @@ import { ChatResponseResource } from '@codingame/monaco-vscode-api/vscode/vs/wor
15
15
  import { IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
16
16
  import { ChatCollapsibleInputOutputContentPart } from '../chatToolInputOutputContentPart.js';
17
17
  import { BaseChatToolInvocationSubPart } from './chatToolInvocationSubPart.js';
18
- import { getToolApprovalMessage } from './chatToolPartUtilities.js';
18
+ import { shouldShimmerForTool, getToolApprovalMessage } from './chatToolPartUtilities.js';
19
19
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
20
20
 
21
21
  var ChatInputOutputMarkdownProgressPart_1;
@@ -36,6 +36,7 @@ let ChatInputOutputMarkdownProgressPart = class ChatInputOutputMarkdownProgressP
36
36
  message,
37
37
  subtitle,
38
38
  input,
39
+ inputLanguage,
39
40
  output,
40
41
  isError,
41
42
  instantiationService,
@@ -45,10 +46,10 @@ let ChatInputOutputMarkdownProgressPart = class ChatInputOutputMarkdownProgressP
45
46
  ) {
46
47
  super(toolInvocation);
47
48
  let codeBlockIndex = codeBlockStartIndex;
48
- const createCodePart = data => ({
49
+ const createCodePart = (data, languageId = "json") => ({
49
50
  kind: "code",
50
51
  data,
51
- languageId: "json",
52
+ languageId,
52
53
  codeBlockIndex: codeBlockIndex++,
53
54
  ownerMarkdownPartId: this.codeblocksPartId,
54
55
  options: {
@@ -75,7 +76,7 @@ let ChatInputOutputMarkdownProgressPart = class ChatInputOutputMarkdownProgressP
75
76
  subtitle,
76
77
  this.getAutoApproveMessageContent(),
77
78
  context,
78
- createCodePart(input),
79
+ createCodePart(input, inputLanguage),
79
80
  processedOutput && processedOutput.length > 0 ? {
80
81
  parts: ( processedOutput.map((o, i) => {
81
82
  const permalinkBasename = o.type === "ref" || o.uri ? basename(o.uri) : o.mimeType && getExtensionForMimeType(o.mimeType) ? `file${getExtensionForMimeType(o.mimeType)}` : "file" + (o.isText ? ".txt" : ".bin");
@@ -115,7 +116,8 @@ let ChatInputOutputMarkdownProgressPart = class ChatInputOutputMarkdownProgressP
115
116
  }))
116
117
  } : undefined,
117
118
  isError,
118
- (isError && configurationService.getValue(ChatConfiguration.AutoExpandToolFailures)) || (ChatInputOutputMarkdownProgressPart_1._expandedByDefault.get(toolInvocation) ?? false)
119
+ (isError && configurationService.getValue(ChatConfiguration.AutoExpandToolFailures)) || (ChatInputOutputMarkdownProgressPart_1._expandedByDefault.get(toolInvocation) ?? false),
120
+ shouldShimmerForTool(toolInvocation)
119
121
  ));
120
122
  this._register(toDisposable(
121
123
  () => ChatInputOutputMarkdownProgressPart_1._expandedByDefault.set(toolInvocation, collapsibleListPart.expanded)
@@ -141,6 +143,6 @@ let ChatInputOutputMarkdownProgressPart = class ChatInputOutputMarkdownProgressP
141
143
  return getToolApprovalMessage(this.toolInvocation);
142
144
  }
143
145
  };
144
- ChatInputOutputMarkdownProgressPart = ChatInputOutputMarkdownProgressPart_1 = ( __decorate([( __param(8, IInstantiationService)), ( __param(9, IModelService)), ( __param(10, ILanguageService)), ( __param(11, IConfigurationService))], ChatInputOutputMarkdownProgressPart));
146
+ ChatInputOutputMarkdownProgressPart = ChatInputOutputMarkdownProgressPart_1 = ( __decorate([( __param(9, IInstantiationService)), ( __param(10, IModelService)), ( __param(11, ILanguageService)), ( __param(12, IConfigurationService))], ChatInputOutputMarkdownProgressPart));
145
147
 
146
148
  export { ChatInputOutputMarkdownProgressPart };
@@ -84,7 +84,7 @@ let ChatMcpAppModel = class ChatMcpAppModel extends Disposable {
84
84
  this._height = ChatMcpAppModel_1.heightCache.get(this.toolInvocation) ?? 300;
85
85
  this._webview = this._register(this._webviewService.createWebviewElement({
86
86
  origin: this._webviewOrigin,
87
- title: ( localize(6660, "MCP App")),
87
+ title: ( localize(6853, "MCP App")),
88
88
  options: {
89
89
  purpose: WebviewContentPurpose.ChatOutputItem,
90
90
  enableFindWidget: false,
@@ -100,7 +100,7 @@ let ChatMcpAppSubPart = class ChatMcpAppSubPart extends BaseChatToolInvocationSu
100
100
  {
101
101
  container.style.display = "none";
102
102
  const progressMessage = $("span");
103
- progressMessage.textContent = ( localize(6661, "Loading MCP App..."));
103
+ progressMessage.textContent = ( localize(6854, "Loading MCP App..."));
104
104
  const progressPart = this._instantiationService.createInstance(
105
105
  ChatProgressSubPart,
106
106
  progressMessage,
@@ -130,12 +130,12 @@ let ChatMcpAppSubPart = class ChatMcpAppSubPart extends BaseChatToolInvocationSu
130
130
  _showError(container, error) {
131
131
  const errorNode = $(".mcp-app-error");
132
132
  const errorMessage = ( new MarkdownString());
133
- errorMessage.appendText(( localize(6662, "Error loading MCP App: {0}", error.message || String(error))));
133
+ errorMessage.appendText(( localize(6855, "Error loading MCP App: {0}", error.message || String(error))));
134
134
  const errorWidget = this._register(( new ChatErrorWidget(ChatErrorLevel.Error, errorMessage, this._markdownRendererService)));
135
135
  errorNode.appendChild(errorWidget.domNode);
136
136
  const buttonContainer = append(errorNode, $(".chat-buttons-container"));
137
137
  const retryButton = this._register(( new Button(buttonContainer, defaultButtonStyles)));
138
- retryButton.label = ( localize(6663, "Retry"));
138
+ retryButton.label = ( localize(6856, "Retry"));
139
139
  this._register(retryButton.onDidClick(() => {
140
140
  this._model.retry();
141
141
  }));
@@ -0,0 +1,28 @@
1
+ import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
2
+ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
3
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
4
+ import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
5
+ import { IMarkdownRendererService } from "@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer.service";
6
+ import { IChatToolInvocation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
7
+ import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service";
8
+ import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
9
+ import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
10
+ import { IChatContentPartRenderContext } from "../chatContentParts.js";
11
+ import { CollapsibleListPool } from "../chatReferencesContentPart.js";
12
+ import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
13
+ import { AbstractToolConfirmationSubPart } from "./abstractToolConfirmationSubPart.js";
14
+ export declare class ChatModifiedFilesConfirmationSubPart extends AbstractToolConfirmationSubPart {
15
+ private readonly listPool;
16
+ private readonly markdownRendererService;
17
+ private readonly editorService;
18
+ private readonly commandService;
19
+ readonly domNode: HTMLElement;
20
+ readonly codeblocks: IChatCodeBlockInfo[];
21
+ constructor(toolInvocation: IChatToolInvocation, context: IChatContentPartRenderContext, listPool: CollapsibleListPool, instantiationService: IInstantiationService, keybindingService: IKeybindingService, contextKeyService: IContextKeyService, chatWidgetService: IChatWidgetService, languageModelToolsService: ILanguageModelToolsService, markdownRendererService: IMarkdownRendererService, editorService: IEditorService, commandService: ICommandService);
22
+ private createButtons;
23
+ private createWidgetContentElement;
24
+ private createModifiedFilesElement;
25
+ private openAllChanges;
26
+ protected createContentElement(): HTMLElement | string;
27
+ protected getTitle(): string;
28
+ }