@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
@@ -0,0 +1,273 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { $, append, addDisposableListener } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
4
+ import { ButtonWithIcon, Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
5
+ import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
6
+ import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
7
+ import { toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
8
+ import { hasKey } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
9
+ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
10
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
11
+ import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
12
+ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
13
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
14
+ import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
15
+ import { IMarkdownRendererService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer.service';
16
+ import { defaultButtonStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
17
+ import { IChatToolInvocation, ToolConfirmKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
18
+ import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
19
+ import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService';
20
+ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
21
+ import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
22
+ import { ChatCustomConfirmationWidget } from '../chatConfirmationWidget.js';
23
+ import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
24
+ import { AbstractToolConfirmationSubPart } from './abstractToolConfirmationSubPart.js';
25
+
26
+ let ChatModifiedFilesConfirmationSubPart = class ChatModifiedFilesConfirmationSubPart extends AbstractToolConfirmationSubPart {
27
+ constructor(
28
+ toolInvocation,
29
+ context,
30
+ listPool,
31
+ instantiationService,
32
+ keybindingService,
33
+ contextKeyService,
34
+ chatWidgetService,
35
+ languageModelToolsService,
36
+ markdownRendererService,
37
+ editorService,
38
+ commandService
39
+ ) {
40
+ super(
41
+ toolInvocation,
42
+ context,
43
+ instantiationService,
44
+ keybindingService,
45
+ contextKeyService,
46
+ chatWidgetService,
47
+ languageModelToolsService
48
+ );
49
+ this.listPool = listPool;
50
+ this.markdownRendererService = markdownRendererService;
51
+ this.editorService = editorService;
52
+ this.commandService = commandService;
53
+ this.codeblocks = [];
54
+ const state = toolInvocation.state.get();
55
+ if (state.type !== IChatToolInvocation.StateKind.WaitingForConfirmation || !state.confirmationMessages?.title) {
56
+ throw ( new Error("Modified files confirmation messages are missing"));
57
+ }
58
+ const data = toolInvocation.toolSpecificData;
59
+ if (!data || data.kind !== "modifiedFilesConfirmation") {
60
+ throw ( new Error("Modified files confirmation data is missing"));
61
+ }
62
+ const tool = languageModelToolsService.getTool(toolInvocation.toolId);
63
+ const confirmWidget = this._register(
64
+ this.instantiationService.createInstance(ChatCustomConfirmationWidget, this.context, {
65
+ title: this.getTitle(),
66
+ icon: tool?.icon && hasKey(tool.icon, {
67
+ id: true
68
+ }) ? tool.icon : Codicon.tools,
69
+ subtitle: typeof toolInvocation.originMessage === "string" ? toolInvocation.originMessage : toolInvocation.originMessage?.value,
70
+ buttons: this.createButtons(data.options),
71
+ message: this.createWidgetContentElement(state.confirmationMessages.message, data)
72
+ })
73
+ );
74
+ const hasToolConfirmation = ChatContextKeys.Editing.hasToolConfirmation.bindTo(this.contextKeyService);
75
+ hasToolConfirmation.set(true);
76
+ this._register(confirmWidget.onDidClick(button => {
77
+ button.data();
78
+ this.chatWidgetService.getWidgetBySessionResource(this.context.element.sessionResource)?.focusInput();
79
+ }));
80
+ this._register(toDisposable(() => hasToolConfirmation.reset()));
81
+ this.domNode = confirmWidget.domNode;
82
+ }
83
+ createButtons(options) {
84
+ const [primaryOption, ...secondaryOptions] = options;
85
+ return [{
86
+ label: primaryOption,
87
+ data: () => this.confirmWith(this.toolInvocation, {
88
+ type: ToolConfirmKind.UserAction,
89
+ selectedButton: primaryOption
90
+ }),
91
+ moreActions: ( secondaryOptions.map(option => ({
92
+ label: option,
93
+ data: () => this.confirmWith(this.toolInvocation, {
94
+ type: ToolConfirmKind.UserAction,
95
+ selectedButton: option
96
+ })
97
+ })))
98
+ }];
99
+ }
100
+ createWidgetContentElement(message, data) {
101
+ const container = $(".chat-modified-files-confirmation");
102
+ if (message) {
103
+ const renderedMessage = this._register(
104
+ this.markdownRendererService.render(typeof message === "string" ? ( new MarkdownString(message)) : message)
105
+ );
106
+ container.append(renderedMessage.element);
107
+ }
108
+ container.append(this.createModifiedFilesElement(data));
109
+ return container;
110
+ }
111
+ createModifiedFilesElement(data) {
112
+ const container = $(
113
+ ".chat-modified-files-confirmation-list.chat-editing-session-container.show-file-icons"
114
+ );
115
+ const overview = append(container, $(".chat-editing-session-overview"));
116
+ const title = append(overview, $(".working-set-title"));
117
+ const titleButton = this._register(( new ButtonWithIcon(title, {
118
+ buttonBackground: undefined,
119
+ buttonBorder: undefined,
120
+ buttonForeground: undefined,
121
+ buttonHoverBackground: undefined,
122
+ buttonSecondaryBackground: undefined,
123
+ buttonSecondaryForeground: undefined,
124
+ buttonSecondaryHoverBackground: undefined,
125
+ buttonSeparator: undefined,
126
+ supportIcons: true
127
+ })));
128
+ const actions = append(overview, $(".chat-editing-session-actions"));
129
+ const countsContainer = $(".working-set-line-counts");
130
+ const addedSpan = append(countsContainer, $(".working-set-lines-added"));
131
+ const removedSpan = append(countsContainer, $(".working-set-lines-removed"));
132
+ titleButton.element.appendChild(countsContainer);
133
+ const filesLabel = data.modifiedFiles.length === 1 ? ( localize(6857, "1 file changed")) : ( localize(6858, "{0} files changed", data.modifiedFiles.length));
134
+ titleButton.label = filesLabel;
135
+ let added = 0;
136
+ let removed = 0;
137
+ let hasDiffStats = false;
138
+ for (const file of data.modifiedFiles) {
139
+ if (typeof file.insertions === "number" || typeof file.deletions === "number") {
140
+ hasDiffStats = true;
141
+ added += file.insertions ?? 0;
142
+ removed += file.deletions ?? 0;
143
+ }
144
+ }
145
+ if (hasDiffStats) {
146
+ addedSpan.textContent = `+${added}`;
147
+ removedSpan.textContent = `-${removed}`;
148
+ titleButton.element.setAttribute("aria-label", ( localize(
149
+ 6859,
150
+ "{0}, {1} lines added, {2} lines removed",
151
+ filesLabel,
152
+ added,
153
+ removed
154
+ )));
155
+ countsContainer.setAttribute("aria-label", ( localize(6860, "{0} lines added, {1} lines removed", added, removed)));
156
+ } else {
157
+ countsContainer.remove();
158
+ titleButton.element.setAttribute("aria-label", filesLabel);
159
+ }
160
+ const viewAllChangesButton = this._register(( new Button(actions, {
161
+ ...defaultButtonStyles,
162
+ secondary: true,
163
+ small: true,
164
+ supportIcons: true,
165
+ ariaLabel: ( localize(6861, "View All Changes")),
166
+ title: ( localize(6861, "View All Changes"))
167
+ })));
168
+ viewAllChangesButton.element.classList.add("default-colors");
169
+ viewAllChangesButton.icon = Codicon.diffMultiple;
170
+ viewAllChangesButton.label = " ";
171
+ this._register(viewAllChangesButton.onDidClick(async () => {
172
+ await this.openAllChanges(data);
173
+ }));
174
+ const listReference = this._register(this.listPool.get());
175
+ const list = listReference.object;
176
+ const listItems = ( data.modifiedFiles.map(file => {
177
+ const resource = URI.revive(file.uri);
178
+ const originalUri = file.originalUri ? URI.revive(file.originalUri) : undefined;
179
+ return {
180
+ kind: "reference",
181
+ reference: resource,
182
+ title: file.title,
183
+ description: file.description,
184
+ state: ModifiedFileEntryState.Accepted,
185
+ showModifiedState: true,
186
+ options: {
187
+ diffMeta: typeof file.insertions === "number" || typeof file.deletions === "number" ? {
188
+ added: file.insertions ?? 0,
189
+ removed: file.deletions ?? 0
190
+ } : undefined,
191
+ originalUri,
192
+ status: undefined
193
+ }
194
+ };
195
+ }));
196
+ this._register(list.onDidOpen(async e => {
197
+ if (e.element?.kind !== "reference" || !URI.isUri(e.element.reference)) {
198
+ return;
199
+ }
200
+ const modifiedUri = e.element.reference;
201
+ const originalUri = e.element.options?.originalUri;
202
+ if (originalUri) {
203
+ await this.editorService.openEditor({
204
+ original: {
205
+ resource: originalUri
206
+ },
207
+ modified: {
208
+ resource: modifiedUri
209
+ },
210
+ options: e.editorOptions
211
+ });
212
+ return;
213
+ }
214
+ await this.editorService.openEditor({
215
+ resource: modifiedUri,
216
+ options: e.editorOptions
217
+ });
218
+ }));
219
+ const maxItemsShown = 6;
220
+ const itemsShown = Math.min(listItems.length, maxItemsShown);
221
+ const height = itemsShown * 22;
222
+ const workingSetContainer = append(container, $(".chat-editing-session-list.collapsed"));
223
+ list.layout(height);
224
+ list.getHTMLElement().style.height = `${height}px`;
225
+ list.splice(0, list.length, listItems);
226
+ workingSetContainer.append(list.getHTMLElement());
227
+ let isCollapsed = true;
228
+ const setExpansionState = () => {
229
+ titleButton.icon = isCollapsed ? Codicon.chevronRight : Codicon.chevronDown;
230
+ workingSetContainer.classList.toggle("collapsed", isCollapsed);
231
+ };
232
+ setExpansionState();
233
+ const toggleWorkingSet = () => {
234
+ isCollapsed = !isCollapsed;
235
+ setExpansionState();
236
+ };
237
+ this._register(titleButton.onDidClick(toggleWorkingSet));
238
+ this._register(addDisposableListener(overview, "click", e => {
239
+ if (e.defaultPrevented) {
240
+ return;
241
+ }
242
+ const target = e.target;
243
+ if (target.closest(".monaco-button")) {
244
+ return;
245
+ }
246
+ toggleWorkingSet();
247
+ }));
248
+ return container;
249
+ }
250
+ async openAllChanges(data) {
251
+ await this.commandService.executeCommand("_workbench.openMultiDiffEditor", {
252
+ title: ( localize(6862, "All Changes")),
253
+ resources: ( data.modifiedFiles.map(file => ({
254
+ originalUri: file.originalUri ? URI.revive(file.originalUri) : undefined,
255
+ modifiedUri: URI.revive(file.uri)
256
+ })))
257
+ });
258
+ }
259
+ createContentElement() {
260
+ throw ( new Error("Not used"));
261
+ }
262
+ getTitle() {
263
+ const state = this.toolInvocation.state.get();
264
+ if (state.type !== IChatToolInvocation.StateKind.WaitingForConfirmation) {
265
+ return "";
266
+ }
267
+ const title = state.confirmationMessages?.title;
268
+ return typeof title === "string" ? title : title?.value ?? "";
269
+ }
270
+ };
271
+ ChatModifiedFilesConfirmationSubPart = ( __decorate([( __param(3, IInstantiationService)), ( __param(4, IKeybindingService)), ( __param(5, IContextKeyService)), ( __param(6, IChatWidgetService)), ( __param(7, ILanguageModelToolsService)), ( __param(8, IMarkdownRendererService)), ( __param(9, IEditorService)), ( __param(10, ICommandService))], ChatModifiedFilesConfirmationSubPart));
272
+
273
+ export { ChatModifiedFilesConfirmationSubPart };
@@ -12,7 +12,7 @@ import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbe
12
12
  import { IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
13
13
  import { ChatCollapsibleInputOutputContentPart } from '../chatToolInputOutputContentPart.js';
14
14
  import { BaseChatToolInvocationSubPart } from './chatToolInvocationSubPart.js';
15
- import { getToolApprovalMessage } from './chatToolPartUtilities.js';
15
+ import { shouldShimmerForTool, getToolApprovalMessage } from './chatToolPartUtilities.js';
16
16
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
17
17
 
18
18
  var ChatSimpleToolProgressPart_1;
@@ -72,7 +72,8 @@ let ChatSimpleToolProgressPart = class ChatSimpleToolProgressPart extends BaseCh
72
72
  parts: outputParts
73
73
  } : undefined,
74
74
  isError,
75
- (isError && configurationService.getValue(ChatConfiguration.AutoExpandToolFailures)) || (ChatSimpleToolProgressPart_1._expandedByDefault.get(toolInvocation) ?? false)
75
+ (isError && configurationService.getValue(ChatConfiguration.AutoExpandToolFailures)) || (ChatSimpleToolProgressPart_1._expandedByDefault.get(toolInvocation) ?? false),
76
+ shouldShimmerForTool(toolInvocation)
76
77
  ));
77
78
  this._register(toDisposable(
78
79
  () => ChatSimpleToolProgressPart_1._expandedByDefault.set(toolInvocation, collapsibleListPart.expanded)
@@ -7,7 +7,7 @@ import { Separator } from '@codingame/monaco-vscode-api/vscode/vs/base/common/ac
7
7
  import { asArray } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
8
8
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
9
9
  import { ErrorNoTelemetry } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
10
- import { createCommandUri, MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
10
+ import { MarkdownString, createCommandUri } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
11
11
  import { thenRegisterOrDispose, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
12
12
  import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
13
13
  import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
@@ -113,7 +113,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
113
113
  moreActions = [];
114
114
  if (!autoApproveWarningAccepted) {
115
115
  moreActions.push({
116
- label: ( localize(6664, "Enable Auto Approve...")),
116
+ label: ( localize(6863, "Enable Auto Approve...")),
117
117
  data: {
118
118
  type: "enable"
119
119
  }
@@ -203,6 +203,18 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
203
203
  buttons: this._createButtons(moreActions)
204
204
  })
205
205
  );
206
+ if (terminalData.requestUnsandboxedExecution) {
207
+ const reasonText = (terminalData.requestUnsandboxedExecutionReason && terminalData.requestUnsandboxedExecutionReason.trim()) || ( localize(
208
+ 6864,
209
+ "The model did not provide a reason for requesting unsandboxed execution."
210
+ ));
211
+ const unsandboxedReasonMarkdown = ( new MarkdownString(undefined, {
212
+ supportThemeIcons: true
213
+ }));
214
+ unsandboxedReasonMarkdown.appendMarkdown(`$(${Codicon.info.id}) `);
215
+ unsandboxedReasonMarkdown.appendText(reasonText);
216
+ this._appendMarkdownPart(elements.disclaimer, unsandboxedReasonMarkdown, codeBlockRenderOptions);
217
+ }
206
218
  if (disclaimer) {
207
219
  this._appendMarkdownPart(elements.disclaimer, disclaimer, codeBlockRenderOptions);
208
220
  }
@@ -319,7 +331,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
319
331
  }
320
332
  const target = scope === "workspace" ? ConfigurationTarget.WORKSPACE : ConfigurationTarget.USER;
321
333
  const settingsUri = createCommandUri(TerminalContribCommandId.OpenTerminalSettingsLink, target);
322
- return `[\`${e.key}\`](${( settingsUri.toString())} "${( localize(6665, "View rule in settings"))}")`;
334
+ return `[\`${e.key}\`](${( settingsUri.toString())} "${( localize(6865, "View rule in settings"))}")`;
323
335
  })).join(", ");
324
336
  }
325
337
  const mdTrustSettings = {
@@ -330,33 +342,33 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
330
342
  const parts = [];
331
343
  if (sessionRules.length > 0) {
332
344
  parts.push(sessionRules.length === 1 ? ( localize(
333
- 6666,
345
+ 6866,
334
346
  "Session auto approve rule {0} added",
335
347
  formatRuleLinks(sessionRules, "session")
336
348
  )) : ( localize(
337
- 6667,
349
+ 6867,
338
350
  "Session auto approve rules {0} added",
339
351
  formatRuleLinks(sessionRules, "session")
340
352
  )));
341
353
  }
342
354
  if (workspaceRules.length > 0) {
343
355
  parts.push(workspaceRules.length === 1 ? ( localize(
344
- 6668,
356
+ 6868,
345
357
  "Workspace auto approve rule {0} added",
346
358
  formatRuleLinks(workspaceRules, "workspace")
347
359
  )) : ( localize(
348
- 6669,
360
+ 6869,
349
361
  "Workspace auto approve rules {0} added",
350
362
  formatRuleLinks(workspaceRules, "workspace")
351
363
  )));
352
364
  }
353
365
  if (userRules.length > 0) {
354
366
  parts.push(userRules.length === 1 ? ( localize(
355
- 6670,
367
+ 6870,
356
368
  "User auto approve rule {0} added",
357
369
  formatRuleLinks(userRules, "user")
358
370
  )) : ( localize(
359
- 6671,
371
+ 6871,
360
372
  "User auto approve rules {0} added",
361
373
  formatRuleLinks(userRules, "user")
362
374
  )));
@@ -386,7 +398,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
386
398
  enabledCommands: [TerminalContribCommandId.DisableSessionAutoApproval]
387
399
  }
388
400
  };
389
- terminalData.autoApproveInfo = ( new MarkdownString(`${( localize(6672, "All commands will be auto approved for this session"))} ([${( localize(6673, "Disable"))}](${( disableUri.toString())}))`, mdTrustSettings));
401
+ terminalData.autoApproveInfo = ( new MarkdownString(`${( localize(6872, "All commands will be auto approved for this session"))} ([${( localize(6873, "Disable"))}](${( disableUri.toString())}))`, mdTrustSettings));
390
402
  toolConfirmKind = ToolConfirmKind.UserAction;
391
403
  break;
392
404
  }
@@ -410,11 +422,11 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
410
422
  };
411
423
  };
412
424
  return [{
413
- ...getLabelAndTooltip(( localize(6674, "Allow")), AcceptToolConfirmationActionId),
425
+ ...getLabelAndTooltip(( localize(6874, "Allow")), AcceptToolConfirmationActionId),
414
426
  data: true,
415
427
  moreActions
416
428
  }, {
417
- ...getLabelAndTooltip(( localize(6675, "Skip")), SkipToolConfirmationActionId, ( localize(6676, "Proceed without executing this command"))),
429
+ ...getLabelAndTooltip(( localize(6875, "Skip")), SkipToolConfirmationActionId, ( localize(6876, "Proceed without executing this command"))),
418
430
  data: {
419
431
  type: "skip"
420
432
  },
@@ -424,9 +436,9 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
424
436
  async _showAutoApproveWarning() {
425
437
  const promptResult = await this.dialogService.prompt({
426
438
  type: Severity.Info,
427
- message: ( localize(6677, "Enable terminal auto approve?")),
439
+ message: ( localize(6877, "Enable terminal auto approve?")),
428
440
  buttons: [{
429
- label: ( localize(6678, "Enable")),
441
+ label: ( localize(6878, "Enable")),
430
442
  run: () => true
431
443
  }],
432
444
  cancelButton: true,
@@ -434,11 +446,11 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
434
446
  icon: Codicon.shield,
435
447
  markdownDetails: [{
436
448
  markdown: ( new MarkdownString(( localize(
437
- 6679,
449
+ 6879,
438
450
  "This will enable a configurable subset of commands to run in the terminal autonomously. It provides *best effort protections* and assumes the agent is not acting maliciously."
439
451
  ))))
440
452
  }, {
441
- markdown: ( new MarkdownString(`[${( localize(6680, "Learn more about the potential risks and how to avoid them."))}](https://code.visualstudio.com/docs/copilot/security#_security-considerations)`))
453
+ markdown: ( new MarkdownString(`[${( localize(6880, "Learn more about the potential risks and how to avoid them."))}](https://code.visualstudio.com/docs/copilot/security#_security-considerations)`))
442
454
  }]
443
455
  }
444
456
  });
@@ -2,10 +2,12 @@ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/pl
2
2
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
3
3
  import { IChatToolInvocation, IChatToolInvocationSerialized, type IChatTerminalToolInvocationData, type ILegacyChatTerminalToolInvocationData } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
4
4
  import { CodeBlockModelCollection } from "../../../../common/widget/codeBlockModelCollection.js";
5
- import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
5
+ import { ChatTreeItem, IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
6
6
  import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
7
7
  import { IChatContentPartRenderContext } from "../chatContentParts.js";
8
8
  import { BaseChatToolInvocationSubPart } from "./chatToolInvocationSubPart.js";
9
+ import { ChatCollapsibleContentPart } from "../chatCollapsibleContentPart.js";
10
+ import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
9
11
  import { Action, IAction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/actions";
10
12
  import { IChatTerminalToolProgressPart, ITerminalInstance } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal";
11
13
  import { ITerminalChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service";
@@ -14,6 +16,7 @@ import { ITerminalEditorService } from "@codingame/monaco-vscode-api/vscode/vs/w
14
16
  import { ITerminalService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service";
15
17
  import { ITerminalCommand } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/capabilities/capabilities";
16
18
  import { IMarkdownRenderer } from "@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer";
19
+ import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
17
20
  import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
18
21
  import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
19
22
  import { EditorPool } from "../chatContentCodePools.js";
@@ -75,6 +78,12 @@ export declare class ChatTerminalToolProgressPart extends BaseChatToolInvocation
75
78
  get elementIndex(): number;
76
79
  get contentIndex(): number;
77
80
  constructor(toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized, terminalData: IChatTerminalToolInvocationData | ILegacyChatTerminalToolInvocationData, context: IChatContentPartRenderContext, renderer: IMarkdownRenderer, editorPool: EditorPool, currentWidthDelegate: () => number, codeBlockStartIndex: number, codeBlockModelCollection: CodeBlockModelCollection, _instantiationService: IInstantiationService, _terminalChatService: ITerminalChatService, _terminalService: ITerminalService, _contextKeyService: IContextKeyService, _chatWidgetService: IChatWidgetService, _keybindingService: IKeybindingService, _configurationService: IConfigurationService);
81
+ /**
82
+ * Renders image attachment pills below the terminal output when the tool
83
+ * result contains image data parts. For collapsible wrappers, the single
84
+ * widget is reparented between inside/outside based on expanded state.
85
+ */
86
+ private _renderImagePills;
78
87
  private _createCollapsibleWrapper;
79
88
  expandCollapsibleWrapper(): void;
80
89
  markCollapsibleWrapperComplete(): void;
@@ -157,3 +166,15 @@ export declare class ContinueInBackgroundAction extends Action implements IActio
157
166
  constructor(_terminalToolSessionId: string, _terminalChatService: ITerminalChatService);
158
167
  run(): Promise<void>;
159
168
  }
169
+ export declare class ChatTerminalThinkingCollapsibleWrapper extends ChatCollapsibleContentPart {
170
+ private readonly _terminalContentElement;
171
+ private readonly _commandText;
172
+ private readonly _isSandboxWrapped;
173
+ private _isComplete;
174
+ constructor(commandText: string, isSandboxWrapped: boolean, contentElement: HTMLElement, context: IChatContentPartRenderContext, initialExpanded: boolean, isComplete: boolean, hoverService: IHoverService, configurationService: IConfigurationService);
175
+ private _setCodeFormattedTitle;
176
+ markComplete(): void;
177
+ protected initContent(): HTMLElement;
178
+ expand(): void;
179
+ hasSameContent(_other: IChatRendererContent, _followingContent: IChatRendererContent[], _element: ChatTreeItem): boolean;
180
+ }