@codingame/monaco-vscode-katex-common 26.2.2 → 27.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +10 -4
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +35 -11
- package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +3 -0
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +15 -4
- package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +548 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +168 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +67 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +12 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +42 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +63 -40
- 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 +7 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +77 -73
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +69 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +381 -83
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +28 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +38 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +109 -113
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +16 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +28 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +226 -123
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -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/chatAttachmentsContentPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +9 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +7 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +22 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.js +11 -3
- 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/chatDiffBlockPart.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.js +6 -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.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +26 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +51 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -7
- 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.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +20 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.js +11 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +36 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +166 -45
- 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 +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +16 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +14 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +98 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.js +1 -0
- 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 +10 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +241 -78
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.d.ts +29 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +252 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +39 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +36 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +5 -5
- 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.d.ts +5 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +42 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +12 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +48 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatHookContentPart.css +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +351 -422
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +14 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +102 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +69 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/codeBlockPart.css +48 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +47 -23
- 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 +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +0 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +103 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +15 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +61 -66
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +7 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +41 -2
- 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.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +6 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +17 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +310 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +13 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +441 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +24 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +392 -86
- 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 +52 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +271 -187
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +668 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +57 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +2 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +78 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +86 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +9 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +393 -134
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +36 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +20 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +25 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +141 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +18 -13
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +108 -27
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +20 -14
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +4 -6
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +74 -32
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +11 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +68 -27
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +125 -13
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +8 -11
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +54 -45
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +11 -10
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +172 -112
- 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/inlineChat.css +0 -42
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +27 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +83 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +58 -33
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocolApps.d.ts +1 -548
- 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/input/modelPickerActionItem.js +0 -187
- /package/vscode/src/vs/{workbench/contrib → platform}/mcp/common/modelContextProtocolApps.js +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { ProgressBar } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/progressbar/progressbar';
|
|
4
|
+
import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
|
|
5
|
+
import { toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
6
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
7
|
+
import { ILanguageService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service';
|
|
8
|
+
import { IModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service';
|
|
9
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
10
|
+
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
11
|
+
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
12
|
+
import { IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
13
|
+
import { ChatCollapsibleInputOutputContentPart } from '../chatToolInputOutputContentPart.js';
|
|
14
|
+
import { BaseChatToolInvocationSubPart } from './chatToolInvocationSubPart.js';
|
|
15
|
+
import { getToolApprovalMessage } from './chatToolPartUtilities.js';
|
|
16
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
17
|
+
|
|
18
|
+
var ChatSimpleToolProgressPart_1;
|
|
19
|
+
let ChatSimpleToolProgressPart = class ChatSimpleToolProgressPart extends BaseChatToolInvocationSubPart {
|
|
20
|
+
static {
|
|
21
|
+
ChatSimpleToolProgressPart_1 = this;
|
|
22
|
+
}
|
|
23
|
+
static {
|
|
24
|
+
this._expandedByDefault = ( new WeakMap());
|
|
25
|
+
}
|
|
26
|
+
get codeblocks() {
|
|
27
|
+
return this.collapsibleListPart.codeblocks;
|
|
28
|
+
}
|
|
29
|
+
constructor(
|
|
30
|
+
toolInvocation,
|
|
31
|
+
context,
|
|
32
|
+
codeBlockStartIndex,
|
|
33
|
+
message,
|
|
34
|
+
subtitle,
|
|
35
|
+
data,
|
|
36
|
+
isError,
|
|
37
|
+
instantiationService,
|
|
38
|
+
modelService,
|
|
39
|
+
languageService,
|
|
40
|
+
configurationService
|
|
41
|
+
) {
|
|
42
|
+
super(toolInvocation);
|
|
43
|
+
let codeBlockIndex = codeBlockStartIndex;
|
|
44
|
+
const createIOPart = (content, label) => {
|
|
45
|
+
return {
|
|
46
|
+
kind: "code",
|
|
47
|
+
data: content,
|
|
48
|
+
languageId: "plaintext",
|
|
49
|
+
codeBlockIndex: codeBlockIndex++,
|
|
50
|
+
ownerMarkdownPartId: this.codeblocksPartId,
|
|
51
|
+
options: {
|
|
52
|
+
hideToolbar: true,
|
|
53
|
+
reserveWidth: 19,
|
|
54
|
+
maxHeightInLines: 13,
|
|
55
|
+
verticalPadding: 5,
|
|
56
|
+
editorOptions: {
|
|
57
|
+
wordWrap: "on"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
const inputPart = createIOPart(data.input);
|
|
63
|
+
const outputParts = data.output ? [createIOPart(data.output)] : undefined;
|
|
64
|
+
const collapsibleListPart = this.collapsibleListPart = this._register(instantiationService.createInstance(
|
|
65
|
+
ChatCollapsibleInputOutputContentPart,
|
|
66
|
+
message,
|
|
67
|
+
subtitle,
|
|
68
|
+
this.getAutoApprovalMessageContent(),
|
|
69
|
+
context,
|
|
70
|
+
inputPart,
|
|
71
|
+
outputParts ? {
|
|
72
|
+
parts: outputParts
|
|
73
|
+
} : undefined,
|
|
74
|
+
isError,
|
|
75
|
+
(isError && configurationService.getValue(ChatConfiguration.AutoExpandToolFailures)) || (ChatSimpleToolProgressPart_1._expandedByDefault.get(toolInvocation) ?? false)
|
|
76
|
+
));
|
|
77
|
+
this._register(toDisposable(
|
|
78
|
+
() => ChatSimpleToolProgressPart_1._expandedByDefault.set(toolInvocation, collapsibleListPart.expanded)
|
|
79
|
+
));
|
|
80
|
+
const progressObservable = toolInvocation.kind === "toolInvocation" ? ( toolInvocation.state.map(
|
|
81
|
+
(s, r) => s.type === IChatToolInvocation.StateKind.Executing ? s.progress.read(r) : undefined
|
|
82
|
+
)) : undefined;
|
|
83
|
+
const progressBar = ( new Lazy(() => this._register(( new ProgressBar(collapsibleListPart.domNode)))));
|
|
84
|
+
if (progressObservable) {
|
|
85
|
+
this._register(autorun(reader => {
|
|
86
|
+
const progress = progressObservable?.read(reader);
|
|
87
|
+
if (progress?.message) {
|
|
88
|
+
collapsibleListPart.title = progress.message;
|
|
89
|
+
}
|
|
90
|
+
if (progress?.progress && !IChatToolInvocation.isComplete(toolInvocation, reader)) {
|
|
91
|
+
progressBar.value.setWorked(progress.progress * 100);
|
|
92
|
+
}
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
95
|
+
this.domNode = collapsibleListPart.domNode;
|
|
96
|
+
}
|
|
97
|
+
getAutoApprovalMessageContent() {
|
|
98
|
+
return getToolApprovalMessage(this.toolInvocation);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
ChatSimpleToolProgressPart = ChatSimpleToolProgressPart_1 = ( __decorate([( __param(7, IInstantiationService)), ( __param(8, IModelService)), ( __param(9, ILanguageService)), ( __param(10, IConfigurationService))], ChatSimpleToolProgressPart));
|
|
102
|
+
|
|
103
|
+
export { ChatSimpleToolProgressPart };
|
|
@@ -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(6568, "Enable Auto Approve...")),
|
|
117
117
|
data: {
|
|
118
118
|
type: "enable"
|
|
119
119
|
}
|
|
@@ -175,9 +175,6 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
175
175
|
uriPromise: Promise.resolve(model.uri),
|
|
176
176
|
chatSessionResource: this.context.element.sessionResource
|
|
177
177
|
});
|
|
178
|
-
this._register(editor.object.onDidChangeContentHeight(() => {
|
|
179
|
-
editor.object.layout(this.currentWidthDelegate());
|
|
180
|
-
}));
|
|
181
178
|
this._register(model.onDidChangeContent(e => {
|
|
182
179
|
const currentValue = model.getValue();
|
|
183
180
|
if (currentValue !== initialContent) {
|
|
@@ -322,7 +319,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
322
319
|
}
|
|
323
320
|
const target = scope === "workspace" ? ConfigurationTarget.WORKSPACE : ConfigurationTarget.USER;
|
|
324
321
|
const settingsUri = createCommandUri(TerminalContribCommandId.OpenTerminalSettingsLink, target);
|
|
325
|
-
return `[\`${e.key}\`](${( settingsUri.toString())} "${( localize(
|
|
322
|
+
return `[\`${e.key}\`](${( settingsUri.toString())} "${( localize(6569, "View rule in settings"))}")`;
|
|
326
323
|
})).join(", ");
|
|
327
324
|
}
|
|
328
325
|
const mdTrustSettings = {
|
|
@@ -333,33 +330,33 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
333
330
|
const parts = [];
|
|
334
331
|
if (sessionRules.length > 0) {
|
|
335
332
|
parts.push(sessionRules.length === 1 ? ( localize(
|
|
336
|
-
|
|
333
|
+
6570,
|
|
337
334
|
"Session auto approve rule {0} added",
|
|
338
335
|
formatRuleLinks(sessionRules, "session")
|
|
339
336
|
)) : ( localize(
|
|
340
|
-
|
|
337
|
+
6571,
|
|
341
338
|
"Session auto approve rules {0} added",
|
|
342
339
|
formatRuleLinks(sessionRules, "session")
|
|
343
340
|
)));
|
|
344
341
|
}
|
|
345
342
|
if (workspaceRules.length > 0) {
|
|
346
343
|
parts.push(workspaceRules.length === 1 ? ( localize(
|
|
347
|
-
|
|
344
|
+
6572,
|
|
348
345
|
"Workspace auto approve rule {0} added",
|
|
349
346
|
formatRuleLinks(workspaceRules, "workspace")
|
|
350
347
|
)) : ( localize(
|
|
351
|
-
|
|
348
|
+
6573,
|
|
352
349
|
"Workspace auto approve rules {0} added",
|
|
353
350
|
formatRuleLinks(workspaceRules, "workspace")
|
|
354
351
|
)));
|
|
355
352
|
}
|
|
356
353
|
if (userRules.length > 0) {
|
|
357
354
|
parts.push(userRules.length === 1 ? ( localize(
|
|
358
|
-
|
|
355
|
+
6574,
|
|
359
356
|
"User auto approve rule {0} added",
|
|
360
357
|
formatRuleLinks(userRules, "user")
|
|
361
358
|
)) : ( localize(
|
|
362
|
-
|
|
359
|
+
6575,
|
|
363
360
|
"User auto approve rules {0} added",
|
|
364
361
|
formatRuleLinks(userRules, "user")
|
|
365
362
|
)));
|
|
@@ -389,7 +386,7 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
389
386
|
enabledCommands: [TerminalContribCommandId.DisableSessionAutoApproval]
|
|
390
387
|
}
|
|
391
388
|
};
|
|
392
|
-
terminalData.autoApproveInfo = ( new MarkdownString(`${( localize(
|
|
389
|
+
terminalData.autoApproveInfo = ( new MarkdownString(`${( localize(6576, "All commands will be auto approved for this session"))} ([${( localize(6577, "Disable"))}](${( disableUri.toString())}))`, mdTrustSettings));
|
|
393
390
|
toolConfirmKind = ToolConfirmKind.UserAction;
|
|
394
391
|
break;
|
|
395
392
|
}
|
|
@@ -413,11 +410,11 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
413
410
|
};
|
|
414
411
|
};
|
|
415
412
|
return [{
|
|
416
|
-
...getLabelAndTooltip(( localize(
|
|
413
|
+
...getLabelAndTooltip(( localize(6578, "Allow")), AcceptToolConfirmationActionId),
|
|
417
414
|
data: true,
|
|
418
415
|
moreActions
|
|
419
416
|
}, {
|
|
420
|
-
...getLabelAndTooltip(( localize(
|
|
417
|
+
...getLabelAndTooltip(( localize(6579, "Skip")), SkipToolConfirmationActionId, ( localize(6580, "Proceed without executing this command"))),
|
|
421
418
|
data: {
|
|
422
419
|
type: "skip"
|
|
423
420
|
},
|
|
@@ -427,9 +424,9 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
427
424
|
async _showAutoApproveWarning() {
|
|
428
425
|
const promptResult = await this.dialogService.prompt({
|
|
429
426
|
type: Severity.Info,
|
|
430
|
-
message: ( localize(
|
|
427
|
+
message: ( localize(6581, "Enable terminal auto approve?")),
|
|
431
428
|
buttons: [{
|
|
432
|
-
label: ( localize(
|
|
429
|
+
label: ( localize(6582, "Enable")),
|
|
433
430
|
run: () => true
|
|
434
431
|
}],
|
|
435
432
|
cancelButton: true,
|
|
@@ -437,11 +434,11 @@ let ChatTerminalToolConfirmationSubPart = class ChatTerminalToolConfirmationSubP
|
|
|
437
434
|
icon: Codicon.shield,
|
|
438
435
|
markdownDetails: [{
|
|
439
436
|
markdown: ( new MarkdownString(( localize(
|
|
440
|
-
|
|
437
|
+
6583,
|
|
441
438
|
"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."
|
|
442
439
|
))))
|
|
443
440
|
}, {
|
|
444
|
-
markdown: ( new MarkdownString(`[${( localize(
|
|
441
|
+
markdown: ( new MarkdownString(`[${( localize(6584, "Learn more about the potential risks and how to avoid them."))}](https://code.visualstudio.com/docs/copilot/security#_security-considerations)`))
|
|
445
442
|
}]
|
|
446
443
|
}
|
|
447
444
|
});
|
|
@@ -49,6 +49,7 @@ export declare class ChatTerminalToolProgressPart extends BaseChatToolInvocation
|
|
|
49
49
|
private readonly _decoration;
|
|
50
50
|
private _userToggledOutput;
|
|
51
51
|
private _isInThinkingContainer;
|
|
52
|
+
private _usesCollapsibleWrapper;
|
|
52
53
|
private _thinkingCollapsibleWrapper;
|
|
53
54
|
private markdownPart;
|
|
54
55
|
get codeblocks(): IChatCodeBlockInfo[];
|
|
@@ -22,6 +22,7 @@ import { timeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/asyn
|
|
|
22
22
|
import { ITerminalChatService, ITerminalService, ITerminalConfigurationService, ITerminalEditorService, ITerminalGroupService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
|
|
23
23
|
import { Disposable, MutableDisposable, toDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
24
24
|
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
25
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
25
26
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
26
27
|
import { getTerminalCommandDecorationTooltip, getTerminalCommandDecorationState, DecorationSelector } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/xterm/decorationStyles';
|
|
27
28
|
import { DomScrollableElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
|
|
@@ -33,7 +34,7 @@ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
|
33
34
|
import { stripIcons } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iconLabels';
|
|
34
35
|
import { IAccessibleViewService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/browser/accessibleView.service';
|
|
35
36
|
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
36
|
-
import { AccessibilityVerbositySettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
37
|
+
import { AccessibilityWorkbenchSettingId, AccessibilityVerbositySettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
37
38
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
38
39
|
import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
|
|
39
40
|
import { DetachedTerminalCommandMirror, DetachedTerminalSnapshotMirror } from '../../../../../terminal/browser/chatTerminalCommandMirror.js';
|
|
@@ -56,6 +57,7 @@ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/misc
|
|
|
56
57
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
57
58
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
|
|
58
59
|
import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
|
|
60
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
59
61
|
|
|
60
62
|
registerCss(chatTerminalToolProgressPart);
|
|
61
63
|
const MIN_OUTPUT_ROWS = 1;
|
|
@@ -194,6 +196,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
194
196
|
this._continueInBackgroundAction = this._register(( new MutableDisposable()));
|
|
195
197
|
this._userToggledOutput = false;
|
|
196
198
|
this._isInThinkingContainer = false;
|
|
199
|
+
this._usesCollapsibleWrapper = false;
|
|
197
200
|
this._elementIndex = context.elementIndex;
|
|
198
201
|
this._contentIndex = context.contentIndex;
|
|
199
202
|
this._sessionResource = context.element.sessionResource;
|
|
@@ -274,7 +277,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
274
277
|
const markdownOptions = {
|
|
275
278
|
codeBlockRenderOptions,
|
|
276
279
|
accessibilityOptions: pastTenseMessage ? {
|
|
277
|
-
statusMessage: ( localize(
|
|
280
|
+
statusMessage: ( localize(6585, "{0}", stripIcons(pastTenseMessage)))
|
|
278
281
|
} : undefined
|
|
279
282
|
};
|
|
280
283
|
this.markdownPart = this._register(_instantiationService.createInstance(
|
|
@@ -299,12 +302,24 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
299
302
|
));
|
|
300
303
|
this._decoration.update();
|
|
301
304
|
const terminalToolsInThinking = this._configurationService.getValue(ChatConfiguration.TerminalToolsInThinking);
|
|
305
|
+
const isSimpleTerminal = this._configurationService.getValue(ChatConfiguration.SimpleTerminalCollapsible);
|
|
302
306
|
const requiresConfirmation = toolInvocation.kind === "toolInvocation" && IChatToolInvocation.getConfirmationMessages(toolInvocation);
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
307
|
+
this._isInThinkingContainer = terminalToolsInThinking && !requiresConfirmation;
|
|
308
|
+
this._usesCollapsibleWrapper = this._isInThinkingContainer || isSimpleTerminal;
|
|
309
|
+
if (this._usesCollapsibleWrapper) {
|
|
310
|
+
this.domNode = this._createCollapsibleWrapper(progressPart.domNode, displayCommand, toolInvocation, context);
|
|
306
311
|
} else {
|
|
307
312
|
this.domNode = progressPart.domNode;
|
|
313
|
+
const updateCheckmarks = () => this.domNode.classList.toggle(
|
|
314
|
+
"show-checkmarks",
|
|
315
|
+
!!this._configurationService.getValue(AccessibilityWorkbenchSettingId.ShowChatCheckmarks)
|
|
316
|
+
);
|
|
317
|
+
updateCheckmarks();
|
|
318
|
+
this._register(this._configurationService.onDidChangeConfiguration(e => {
|
|
319
|
+
if (e.affectsConfiguration(AccessibilityWorkbenchSettingId.ShowChatCheckmarks)) {
|
|
320
|
+
updateCheckmarks();
|
|
321
|
+
}
|
|
322
|
+
}));
|
|
308
323
|
}
|
|
309
324
|
const hasStoredOutput = !!terminalData.terminalCommandOutput;
|
|
310
325
|
if (expandedStateByInvocation.get(toolInvocation) || (this._isInThinkingContainer && IChatToolInvocation.isComplete(toolInvocation) && hasStoredOutput)) {
|
|
@@ -328,6 +343,15 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
328
343
|
isComplete
|
|
329
344
|
));
|
|
330
345
|
this._thinkingCollapsibleWrapper = wrapper;
|
|
346
|
+
let isFirstRun = true;
|
|
347
|
+
this._register(autorun(r => {
|
|
348
|
+
const expanded = wrapper.expanded.read(r);
|
|
349
|
+
if (isFirstRun) {
|
|
350
|
+
isFirstRun = false;
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
this._toggleOutput(expanded);
|
|
354
|
+
}));
|
|
331
355
|
return wrapper.domNode;
|
|
332
356
|
}
|
|
333
357
|
expandCollapsibleWrapper() {
|
|
@@ -441,7 +465,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
441
465
|
if (this._store.isDisposed) {
|
|
442
466
|
return;
|
|
443
467
|
}
|
|
444
|
-
if (this.
|
|
468
|
+
if (this._usesCollapsibleWrapper) {
|
|
445
469
|
return;
|
|
446
470
|
}
|
|
447
471
|
const resolvedCommand = command ?? this._getResolvedCommand();
|
|
@@ -532,7 +556,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
532
556
|
hasRealOutput
|
|
533
557
|
})));
|
|
534
558
|
store.add(autoExpand.onDidRequestExpand(() => {
|
|
535
|
-
if (this.
|
|
559
|
+
if (this._usesCollapsibleWrapper) {
|
|
536
560
|
this.expandCollapsibleWrapper();
|
|
537
561
|
}
|
|
538
562
|
this._toggleOutput(true);
|
|
@@ -835,7 +859,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
835
859
|
if (!commandText) {
|
|
836
860
|
return;
|
|
837
861
|
}
|
|
838
|
-
const ariaLabel = ( localize(
|
|
862
|
+
const ariaLabel = ( localize(6586, "Terminal output for {0}", commandText));
|
|
839
863
|
const scrollableDomNode = this._scrollableContainer.getDomNode();
|
|
840
864
|
scrollableDomNode.setAttribute("role", "region");
|
|
841
865
|
const accessibleViewHint = this._accessibleViewService.getOpenAriaHint(AccessibilityVerbositySettingId.TerminalChatOutput);
|
|
@@ -848,26 +872,26 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
848
872
|
if (!commandText) {
|
|
849
873
|
return undefined;
|
|
850
874
|
}
|
|
851
|
-
const commandHeader = ( localize(
|
|
875
|
+
const commandHeader = ( localize(6587, "Command: {0}", commandText));
|
|
852
876
|
if (command) {
|
|
853
877
|
const rawOutput = command.getOutput();
|
|
854
878
|
if (!rawOutput || rawOutput.trim().length === 0) {
|
|
855
|
-
return `${commandHeader}\n${( localize(
|
|
879
|
+
return `${commandHeader}\n${( localize(6588, "No output was produced by the command."))}`;
|
|
856
880
|
}
|
|
857
881
|
const lines = rawOutput.split("\n");
|
|
858
882
|
return `${commandHeader}\n${lines.join("\n").trimEnd()}`;
|
|
859
883
|
}
|
|
860
884
|
const snapshot = this._getTerminalCommandOutput();
|
|
861
885
|
if (!snapshot) {
|
|
862
|
-
return `${commandHeader}\n${( localize(
|
|
886
|
+
return `${commandHeader}\n${( localize(6589, "Command output is no longer available."))}`;
|
|
863
887
|
}
|
|
864
888
|
const plain = removeAnsiEscapeCodes((snapshot.text ?? ""));
|
|
865
889
|
if (!plain.trim().length) {
|
|
866
|
-
return `${commandHeader}\n${( localize(
|
|
890
|
+
return `${commandHeader}\n${( localize(6588, "No output was produced by the command."))}`;
|
|
867
891
|
}
|
|
868
892
|
let outputText = plain.trimEnd();
|
|
869
893
|
if (snapshot.truncated) {
|
|
870
|
-
outputText += `\n${( localize(
|
|
894
|
+
outputText += `\n${( localize(6590, "Output truncated."))}`;
|
|
871
895
|
}
|
|
872
896
|
return `${commandHeader}\n${outputText}`;
|
|
873
897
|
}
|
|
@@ -946,7 +970,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
946
970
|
if (result.lineCount && result.lineCount > 0) {
|
|
947
971
|
this._hideEmptyMessage();
|
|
948
972
|
}
|
|
949
|
-
this._layoutOutput(result.lineCount
|
|
973
|
+
this._layoutOutput(result.lineCount);
|
|
950
974
|
if (this._isAtBottom) {
|
|
951
975
|
this._scrollOutputToBottom();
|
|
952
976
|
}
|
|
@@ -977,17 +1001,17 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
977
1001
|
}
|
|
978
1002
|
if (!hasOutput) {
|
|
979
1003
|
if (commandFinished) {
|
|
980
|
-
this._showEmptyMessage(( localize(
|
|
1004
|
+
this._showEmptyMessage(( localize(6588, "No output was produced by the command.")));
|
|
981
1005
|
}
|
|
982
1006
|
} else {
|
|
983
1007
|
this._hideEmptyMessage();
|
|
984
1008
|
}
|
|
985
|
-
this._layoutOutput(result?.lineCount ?? 0
|
|
1009
|
+
this._layoutOutput(result?.lineCount ?? 0);
|
|
986
1010
|
return true;
|
|
987
1011
|
}
|
|
988
1012
|
async _renderSnapshotOutput(snapshot) {
|
|
989
1013
|
if (this._snapshotMirror) {
|
|
990
|
-
this._layoutOutput(snapshot.lineCount ?? 0
|
|
1014
|
+
this._layoutOutput(snapshot.lineCount ?? 0);
|
|
991
1015
|
return;
|
|
992
1016
|
}
|
|
993
1017
|
if (this._store.isDisposed) {
|
|
@@ -1004,18 +1028,18 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
1004
1028
|
if (hasText) {
|
|
1005
1029
|
this._hideEmptyMessage();
|
|
1006
1030
|
} else {
|
|
1007
|
-
this._showEmptyMessage(( localize(
|
|
1031
|
+
this._showEmptyMessage(( localize(6588, "No output was produced by the command.")));
|
|
1008
1032
|
}
|
|
1009
1033
|
const lineCount = result?.lineCount ?? snapshot.lineCount ?? 0;
|
|
1010
|
-
this._layoutOutput(lineCount
|
|
1034
|
+
this._layoutOutput(lineCount);
|
|
1011
1035
|
}
|
|
1012
1036
|
_renderUnavailableMessage(liveTerminalInstance) {
|
|
1013
1037
|
clearNode(this._terminalContainer);
|
|
1014
1038
|
this._lastRenderedLineCount = undefined;
|
|
1015
1039
|
if (!liveTerminalInstance) {
|
|
1016
|
-
this._showEmptyMessage(( localize(
|
|
1040
|
+
this._showEmptyMessage(( localize(6591, "Terminal is no longer available.")));
|
|
1017
1041
|
} else {
|
|
1018
|
-
this._showEmptyMessage(( localize(
|
|
1042
|
+
this._showEmptyMessage(( localize(6592, "Command information is not available.")));
|
|
1019
1043
|
}
|
|
1020
1044
|
}
|
|
1021
1045
|
async _resolveLiveTerminal() {
|
|
@@ -1055,7 +1079,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
1055
1079
|
this._scrollableContainer.scanDomNode();
|
|
1056
1080
|
}
|
|
1057
1081
|
}
|
|
1058
|
-
_layoutOutput(lineCount
|
|
1082
|
+
_layoutOutput(lineCount) {
|
|
1059
1083
|
if (!this._scrollableContainer) {
|
|
1060
1084
|
return;
|
|
1061
1085
|
}
|
|
@@ -1064,17 +1088,11 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
1064
1088
|
} else {
|
|
1065
1089
|
lineCount = this._lastRenderedLineCount;
|
|
1066
1090
|
}
|
|
1067
|
-
if (maxColumnWidth !== undefined) {
|
|
1068
|
-
this._lastRenderedMaxColumnWidth = maxColumnWidth;
|
|
1069
|
-
} else {
|
|
1070
|
-
maxColumnWidth = this._lastRenderedMaxColumnWidth;
|
|
1071
|
-
}
|
|
1072
1091
|
this._scrollableContainer.scanDomNode();
|
|
1073
1092
|
if (!this.isExpanded || lineCount === undefined) {
|
|
1074
1093
|
return;
|
|
1075
1094
|
}
|
|
1076
1095
|
const scrollableDomNode = this._scrollableContainer.getDomNode();
|
|
1077
|
-
this._applyContentWidth(maxColumnWidth);
|
|
1078
1096
|
const rowHeight = this._computeRowHeightPx();
|
|
1079
1097
|
const padding = this._getOutputPadding();
|
|
1080
1098
|
const minHeight = rowHeight * MIN_OUTPUT_ROWS + padding;
|
|
@@ -1117,34 +1135,6 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
1117
1135
|
const paddingBottom = Number.parseFloat(style.paddingBottom || "0");
|
|
1118
1136
|
return paddingTop + paddingBottom;
|
|
1119
1137
|
}
|
|
1120
|
-
_applyContentWidth(maxColumnWidth) {
|
|
1121
|
-
if (!this._scrollableContainer) {
|
|
1122
|
-
return;
|
|
1123
|
-
}
|
|
1124
|
-
const window = getActiveWindow();
|
|
1125
|
-
const font = this._terminalConfigurationService.getFont(window);
|
|
1126
|
-
const charWidth = font.charWidth;
|
|
1127
|
-
if (!charWidth || !maxColumnWidth || maxColumnWidth <= 0) {
|
|
1128
|
-
return;
|
|
1129
|
-
}
|
|
1130
|
-
const horizontalPadding = 24;
|
|
1131
|
-
const cursorWidth = charWidth;
|
|
1132
|
-
const contentWidth = Math.ceil(maxColumnWidth * charWidth) + horizontalPadding + cursorWidth;
|
|
1133
|
-
const parentWidth = this.domNode.parentElement?.clientWidth ?? 0;
|
|
1134
|
-
const scrollableDomNode = this._scrollableContainer.getDomNode();
|
|
1135
|
-
if (parentWidth > 0 && contentWidth < parentWidth) {
|
|
1136
|
-
scrollableDomNode.style.width = `${contentWidth}px`;
|
|
1137
|
-
this._outputBody.style.width = `${contentWidth}px`;
|
|
1138
|
-
this._terminalContainer.style.width = `${contentWidth}px`;
|
|
1139
|
-
this._terminalContainer.classList.add("chat-terminal-output-terminal-clipped");
|
|
1140
|
-
} else {
|
|
1141
|
-
scrollableDomNode.style.width = "";
|
|
1142
|
-
this._outputBody.style.width = "";
|
|
1143
|
-
this._terminalContainer.style.width = "";
|
|
1144
|
-
this._terminalContainer.classList.remove("chat-terminal-output-terminal-clipped");
|
|
1145
|
-
}
|
|
1146
|
-
this._scrollableContainer.scanDomNode();
|
|
1147
|
-
}
|
|
1148
1138
|
_computeRowHeightPx() {
|
|
1149
1139
|
const window = getActiveWindow();
|
|
1150
1140
|
const font = this._terminalConfigurationService.getFont(window);
|
|
@@ -1168,7 +1158,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
1168
1158
|
ChatTerminalToolOutputSection = ( __decorate([( __param(5, IAccessibleViewService)), ( __param(6, IInstantiationService)), ( __param(7, ITerminalConfigurationService)), ( __param(8, IThemeService)), ( __param(9, IContextKeyService))], ChatTerminalToolOutputSection));
|
|
1169
1159
|
let ToggleChatTerminalOutputAction = class ToggleChatTerminalOutputAction extends Action {
|
|
1170
1160
|
constructor(_toggle, _keybindingService, _telemetryService) {
|
|
1171
|
-
super(TerminalContribCommandId.ToggleChatTerminalOutput, ( localize(
|
|
1161
|
+
super(TerminalContribCommandId.ToggleChatTerminalOutput, ( localize(6593, "Show Output")), ThemeIcon.asClassName(Codicon.chevronRight), true);
|
|
1172
1162
|
this._toggle = _toggle;
|
|
1173
1163
|
this._keybindingService = _keybindingService;
|
|
1174
1164
|
this._telemetryService = _telemetryService;
|
|
@@ -1191,10 +1181,10 @@ let ToggleChatTerminalOutputAction = class ToggleChatTerminalOutputAction extend
|
|
|
1191
1181
|
}
|
|
1192
1182
|
_updatePresentation() {
|
|
1193
1183
|
if (this._expanded) {
|
|
1194
|
-
this.label = ( localize(
|
|
1184
|
+
this.label = ( localize(6594, "Hide Output"));
|
|
1195
1185
|
this.class = ThemeIcon.asClassName(Codicon.chevronDown);
|
|
1196
1186
|
} else {
|
|
1197
|
-
this.label = ( localize(
|
|
1187
|
+
this.label = ( localize(6593, "Show Output"));
|
|
1198
1188
|
this.class = ThemeIcon.asClassName(Codicon.chevronRight);
|
|
1199
1189
|
}
|
|
1200
1190
|
}
|
|
@@ -1218,7 +1208,7 @@ let FocusChatInstanceAction = class FocusChatInstanceAction extends Action {
|
|
|
1218
1208
|
) {
|
|
1219
1209
|
super(
|
|
1220
1210
|
TerminalContribCommandId.FocusChatInstanceAction,
|
|
1221
|
-
isTerminalHidden ? ( localize(
|
|
1211
|
+
isTerminalHidden ? ( localize(6595, "Show and Focus Terminal")) : ( localize(6596, "Focus Terminal")),
|
|
1222
1212
|
ThemeIcon.asClassName(Codicon.openInProduct),
|
|
1223
1213
|
true
|
|
1224
1214
|
);
|
|
@@ -1234,7 +1224,7 @@ let FocusChatInstanceAction = class FocusChatInstanceAction extends Action {
|
|
|
1234
1224
|
this._updateTooltip();
|
|
1235
1225
|
}
|
|
1236
1226
|
async run() {
|
|
1237
|
-
this.label = this._instance?.shellLaunchConfig.hideFromUser ? ( localize(
|
|
1227
|
+
this.label = this._instance?.shellLaunchConfig.hideFromUser ? ( localize(6597, "Show and Focus Terminal")) : ( localize(6596, "Focus Terminal"));
|
|
1238
1228
|
this._updateTooltip();
|
|
1239
1229
|
let target = "none";
|
|
1240
1230
|
let location = "panel";
|
|
@@ -1291,7 +1281,7 @@ let FocusChatInstanceAction = class FocusChatInstanceAction extends Action {
|
|
|
1291
1281
|
FocusChatInstanceAction = ( __decorate([( __param(5, ITerminalService)), ( __param(6, ITerminalEditorService)), ( __param(7, ITerminalGroupService)), ( __param(8, IKeybindingService)), ( __param(9, ITelemetryService))], FocusChatInstanceAction));
|
|
1292
1282
|
let ContinueInBackgroundAction = class ContinueInBackgroundAction extends Action {
|
|
1293
1283
|
constructor(_terminalToolSessionId, _terminalChatService) {
|
|
1294
|
-
super(TerminalContribCommandId.ContinueInBackground, ( localize(
|
|
1284
|
+
super(TerminalContribCommandId.ContinueInBackground, ( localize(6598, "Continue in Background")), ThemeIcon.asClassName(Codicon.debugContinue), true);
|
|
1295
1285
|
this._terminalToolSessionId = _terminalToolSessionId;
|
|
1296
1286
|
this._terminalChatService = _terminalChatService;
|
|
1297
1287
|
}
|
|
@@ -1307,14 +1297,18 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
|
|
|
1307
1297
|
context,
|
|
1308
1298
|
initialExpanded,
|
|
1309
1299
|
isComplete,
|
|
1310
|
-
hoverService
|
|
1300
|
+
hoverService,
|
|
1301
|
+
configurationService
|
|
1311
1302
|
) {
|
|
1312
1303
|
const title = isComplete ? `Ran \`${commandText}\`` : `Running \`${commandText}\``;
|
|
1313
|
-
super(title, context, undefined, hoverService);
|
|
1304
|
+
super(title, context, undefined, hoverService, configurationService);
|
|
1314
1305
|
this._terminalContentElement = contentElement;
|
|
1315
1306
|
this._commandText = commandText;
|
|
1316
1307
|
this._isComplete = isComplete;
|
|
1317
1308
|
this.domNode.classList.add("chat-terminal-thinking-collapsible");
|
|
1309
|
+
if (isComplete) {
|
|
1310
|
+
this.icon = Codicon.check;
|
|
1311
|
+
}
|
|
1318
1312
|
this._setCodeFormattedTitle();
|
|
1319
1313
|
this.setExpanded(initialExpanded);
|
|
1320
1314
|
}
|
|
@@ -1324,7 +1318,7 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
|
|
|
1324
1318
|
}
|
|
1325
1319
|
const labelElement = this._collapseButton.labelElement;
|
|
1326
1320
|
labelElement.textContent = "";
|
|
1327
|
-
const prefixText = this._isComplete ? ( localize(
|
|
1321
|
+
const prefixText = this._isComplete ? ( localize(6599, "Ran ")) : ( localize(6600, "Running "));
|
|
1328
1322
|
const ranText = createTextNode(prefixText);
|
|
1329
1323
|
const codeElement = createElement("code");
|
|
1330
1324
|
codeElement.textContent = this._commandText;
|
|
@@ -1336,6 +1330,7 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
|
|
|
1336
1330
|
return;
|
|
1337
1331
|
}
|
|
1338
1332
|
this._isComplete = true;
|
|
1333
|
+
this.icon = Codicon.check;
|
|
1339
1334
|
this._setCodeFormattedTitle();
|
|
1340
1335
|
}
|
|
1341
1336
|
initContent() {
|
|
@@ -1350,6 +1345,6 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
|
|
|
1350
1345
|
return false;
|
|
1351
1346
|
}
|
|
1352
1347
|
};
|
|
1353
|
-
ChatTerminalThinkingCollapsibleWrapper = ( __decorate([( __param(5, IHoverService))], ChatTerminalThinkingCollapsibleWrapper));
|
|
1348
|
+
ChatTerminalThinkingCollapsibleWrapper = ( __decorate([( __param(5, IHoverService)), ( __param(6, IConfigurationService))], ChatTerminalThinkingCollapsibleWrapper));
|
|
1354
1349
|
|
|
1355
1350
|
export { ChatTerminalToolProgressPart, ContinueInBackgroundAction, FocusChatInstanceAction, ToggleChatTerminalOutputAction };
|
|
@@ -32,7 +32,7 @@ export declare class ToolConfirmationSubPart extends AbstractToolConfirmationSub
|
|
|
32
32
|
private markdownParts;
|
|
33
33
|
get codeblocks(): IChatCodeBlockInfo[];
|
|
34
34
|
constructor(toolInvocation: IChatToolInvocation, context: IChatContentPartRenderContext, renderer: IMarkdownRenderer, editorPool: EditorPool, currentWidthDelegate: () => number, codeBlockModelCollection: CodeBlockModelCollection, codeBlockStartIndex: number, instantiationService: IInstantiationService, keybindingService: IKeybindingService, modelService: IModelService, languageService: ILanguageService, contextKeyService: IContextKeyService, chatWidgetService: IChatWidgetService, commandService: ICommandService, markerService: IMarkerService, languageModelToolsService: ILanguageModelToolsService, chatMarkdownAnchorService: IChatMarkdownAnchorService, confirmationService: ILanguageModelToolsConfirmationService);
|
|
35
|
-
protected additionalPrimaryActions(): (Separator | import("
|
|
35
|
+
protected additionalPrimaryActions(): (Separator | import("./abstractToolConfirmationSubPart.js").IAbstractToolPrimaryAction)[];
|
|
36
36
|
protected createContentElement(): HTMLElement | string;
|
|
37
37
|
protected getTitle(): string;
|
|
38
38
|
private _makeMarkdownPart;
|
|
@@ -82,8 +82,8 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
|
|
|
82
82
|
this.render({
|
|
83
83
|
allowActionId: AcceptToolConfirmationActionId,
|
|
84
84
|
skipActionId: SkipToolConfirmationActionId,
|
|
85
|
-
allowLabel: state.confirmationMessages.confirmResults ? ( localize(
|
|
86
|
-
skipLabel: ( localize(
|
|
85
|
+
allowLabel: state.confirmationMessages.confirmResults ? ( localize(6601, "Allow and Review Once")) : ( localize(6602, "Allow Once")),
|
|
86
|
+
skipLabel: ( localize(6603, "Proceed without running this tool")),
|
|
87
87
|
partType: "chatToolConfirmation",
|
|
88
88
|
subtitle: typeof toolInvocation.originMessage === "string" ? toolInvocation.originMessage : toolInvocation.originMessage?.value
|
|
89
89
|
});
|
|
@@ -108,6 +108,7 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
|
|
|
108
108
|
actions.push({
|
|
109
109
|
label: action.label,
|
|
110
110
|
tooltip: action.detail,
|
|
111
|
+
scope: action.scope,
|
|
111
112
|
data: async () => {
|
|
112
113
|
const shouldConfirm = await action.select();
|
|
113
114
|
if (shouldConfirm) {
|
|
@@ -121,7 +122,7 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
|
|
|
121
122
|
}
|
|
122
123
|
if (state.confirmationMessages?.confirmResults) {
|
|
123
124
|
actions.unshift({
|
|
124
|
-
label: ( localize(
|
|
125
|
+
label: ( localize(6604, "Allow and Skip Reviewing Result")),
|
|
125
126
|
data: () => {
|
|
126
127
|
state.confirmationMessages.confirmResults = undefined;
|
|
127
128
|
this.confirmWith(this.toolInvocation, {
|
|
@@ -156,11 +157,11 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
|
|
|
156
157
|
};
|
|
157
158
|
const elements = h("div", [h(".message@messageContainer", [
|
|
158
159
|
h(".message-wrapper@message"),
|
|
159
|
-
h(".see-more@showMore", [h("a", [( localize(
|
|
160
|
+
h(".see-more@showMore", [h("a", [( localize(6605, "Show More"))])])
|
|
160
161
|
]), h(".editor@editor"), h(".disclaimer@disclaimer")]);
|
|
161
162
|
if (toolInvocation.toolSpecificData?.kind === "input" && toolInvocation.toolSpecificData.rawInput && !isEmptyObject(toolInvocation.toolSpecificData.rawInput)) {
|
|
162
163
|
const titleEl = createElement("h3");
|
|
163
|
-
titleEl.textContent = ( localize(
|
|
164
|
+
titleEl.textContent = ( localize(6606, "Input"));
|
|
164
165
|
elements.editor.appendChild(titleEl);
|
|
165
166
|
const inputData = toolInvocation.toolSpecificData;
|
|
166
167
|
const codeBlockRenderOptions = {
|
|
@@ -225,9 +226,6 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
|
|
|
225
226
|
uriPromise: Promise.resolve(model.uri),
|
|
226
227
|
chatSessionResource: this.context.element.sessionResource
|
|
227
228
|
});
|
|
228
|
-
this._register(editor.object.onDidChangeContentHeight(() => {
|
|
229
|
-
editor.object.layout(this.currentWidthDelegate());
|
|
230
|
-
}));
|
|
231
229
|
this._register(model.onDidChangeContent(e => {
|
|
232
230
|
try {
|
|
233
231
|
inputData.rawInput = JSON.parse(model.getValue());
|
|
@@ -236,7 +234,7 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
|
|
|
236
234
|
elements.editor.append(editor.object.element);
|
|
237
235
|
if (canSeeMore) {
|
|
238
236
|
const seeMore = h("div.see-more", [h("a@link")]);
|
|
239
|
-
seeMore.link.textContent = ( localize(
|
|
237
|
+
seeMore.link.textContent = ( localize(6607, "See more"));
|
|
240
238
|
this._register(addDisposableGenericMouseDownListener(seeMore.link, () => {
|
|
241
239
|
try {
|
|
242
240
|
const parsed = JSON.parse(model.getValue());
|