@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.
- package/package.json +2 -2
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +17 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +158 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +22 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +16 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +121 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +15 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +29 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +349 -109
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +47 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +104 -62
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +21 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +13 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +29 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +261 -282
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +7 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +184 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +42 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +14 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +11 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +25 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +332 -114
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +10 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +11 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +66 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +28 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +272 -107
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingExternalResourcesWidget.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingExternalResourcesWidget.js +70 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +151 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +96 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +86 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +8 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +273 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +28 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +22 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +81 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +20 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +21 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +2 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +112 -163
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +137 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +108 -38
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +9 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +385 -247
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +23 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +23 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +124 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +24 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +30 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +84 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +170 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalPromptFileSystem.d.ts +47 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalPromptFileSystem.js +95 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +4 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +15 -15
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +4 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +38 -6
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +31 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +12 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +130 -23
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +41 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +55 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +50 -39
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +0 -35
- 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 {
|
|
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(
|
|
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(
|
|
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
|
-
|
|
345
|
+
6866,
|
|
334
346
|
"Session auto approve rule {0} added",
|
|
335
347
|
formatRuleLinks(sessionRules, "session")
|
|
336
348
|
)) : ( localize(
|
|
337
|
-
|
|
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
|
-
|
|
356
|
+
6868,
|
|
345
357
|
"Workspace auto approve rule {0} added",
|
|
346
358
|
formatRuleLinks(workspaceRules, "workspace")
|
|
347
359
|
)) : ( localize(
|
|
348
|
-
|
|
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
|
-
|
|
367
|
+
6870,
|
|
356
368
|
"User auto approve rule {0} added",
|
|
357
369
|
formatRuleLinks(userRules, "user")
|
|
358
370
|
)) : ( localize(
|
|
359
|
-
|
|
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(
|
|
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(
|
|
425
|
+
...getLabelAndTooltip(( localize(6874, "Allow")), AcceptToolConfirmationActionId),
|
|
414
426
|
data: true,
|
|
415
427
|
moreActions
|
|
416
428
|
}, {
|
|
417
|
-
...getLabelAndTooltip(( localize(
|
|
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(
|
|
439
|
+
message: ( localize(6877, "Enable terminal auto approve?")),
|
|
428
440
|
buttons: [{
|
|
429
|
-
label: ( localize(
|
|
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
|
-
|
|
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(
|
|
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
|
+
}
|