@codingame/monaco-vscode-katex-common 32.0.1 → 33.0.7
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/platform/agentHost/common/claudeSessionConfigKeys.d.ts +30 -0
- package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.js +8 -0
- package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.d.ts +32 -0
- package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.js +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
- 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.js +56 -36
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +114 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +87 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +502 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +188 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostChatInputPicker.css +153 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +52 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +23 -20
- 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.d.ts +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +40 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -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.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +217 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +44 -44
- 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.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
- 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 +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +36 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +12 -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 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +8 -13
- 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/chatTerminalToolProgressPart.css +16 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +1 -1
- 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/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/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +24 -21
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +72 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +2 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +7 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +5 -5
- 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 +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/media/toolRiskBadge.css +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +25 -5
- 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 +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +41 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +31 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +89 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +203 -107
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +18 -18
- 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 +32 -81
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +18 -18
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +3 -3
- 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 +2 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +30 -30
- 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/notebook/browser/controller/cellOperations.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
- 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/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +4 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +29 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +27 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +17 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +150 -69
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +9 -14
|
@@ -148,8 +148,13 @@ export declare class ChatTerminalThinkingCollapsibleWrapper extends ChatCollapsi
|
|
|
148
148
|
private readonly _isSandboxWrapped;
|
|
149
149
|
private _isComplete;
|
|
150
150
|
private readonly _isSkipped;
|
|
151
|
-
|
|
151
|
+
private _isRunningInBackground;
|
|
152
|
+
private readonly _onFocusTerminal;
|
|
153
|
+
private readonly _showLinkDisposables;
|
|
154
|
+
private _showLinkElement;
|
|
155
|
+
constructor(commandText: string, isSandboxWrapped: boolean, contentElement: HTMLElement, context: IChatContentPartRenderContext, initialExpanded: boolean, isComplete: boolean, isSkipped: boolean, isRunningInBackground: boolean, onFocusTerminal: (() => void) | undefined, hoverService: IHoverService, configurationService: IConfigurationService);
|
|
152
156
|
private _setCodeFormattedTitle;
|
|
157
|
+
private _updateShowLink;
|
|
153
158
|
markComplete(): void;
|
|
154
159
|
protected initContent(): HTMLElement;
|
|
155
160
|
expand(): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import { registerCss } from '@codingame/monaco-vscode-api/css';
|
|
3
3
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
4
|
-
import { h, addDisposableListener, EventType, DisposableResizeObserver, clearNode, getActiveWindow, getComputedStyle, createTextNode, createElement,
|
|
4
|
+
import { h, addDisposableListener, EventType, DisposableResizeObserver, clearNode, getActiveWindow, getComputedStyle, createTextNode, createElement, $, EventHelper } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
5
5
|
import { MarkdownString, isMarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
6
6
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
7
7
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
@@ -27,6 +27,8 @@ import { Event, Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/comm
|
|
|
27
27
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
28
28
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
29
29
|
import { getTerminalCommandDecorationTooltip, getTerminalCommandDecorationState, DecorationSelector } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/xterm/decorationStyles';
|
|
30
|
+
import { StandardKeyboardEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/keyboardEvent';
|
|
31
|
+
import { KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
|
|
30
32
|
import { DomScrollableElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
|
|
31
33
|
import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
|
|
32
34
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
@@ -325,7 +327,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
325
327
|
const markdownOptions = {
|
|
326
328
|
codeBlockRenderOptions,
|
|
327
329
|
accessibilityOptions: pastTenseMessage ? {
|
|
328
|
-
statusMessage: ( localize(
|
|
330
|
+
statusMessage: ( localize(7416, "{0}", stripIcons(pastTenseMessage)))
|
|
329
331
|
} : undefined
|
|
330
332
|
};
|
|
331
333
|
this.markdownPart = this._register(_instantiationService.createInstance(
|
|
@@ -410,7 +412,10 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
410
412
|
}
|
|
411
413
|
_createCollapsibleWrapper(contentElement, commandText, toolInvocation, context) {
|
|
412
414
|
const truncatedCommand = commandText.length > MAX_COMMAND_TITLE_LENGTH ? commandText.substring(0, MAX_COMMAND_TITLE_LENGTH) + "..." : commandText;
|
|
413
|
-
const
|
|
415
|
+
const toolInvocationComplete = IChatToolInvocation.isComplete(toolInvocation);
|
|
416
|
+
const commandHasNotFinished = this._terminalData.terminalCommandState?.exitCode === undefined;
|
|
417
|
+
const isRunningInBackground = toolInvocationComplete && commandHasNotFinished && (this._terminalData.isBackground === true || this._terminalData.didContinueInBackground === true);
|
|
418
|
+
const isComplete = toolInvocationComplete && !isRunningInBackground;
|
|
414
419
|
const isSkipped = IChatToolInvocation.executionConfirmedOrDenied(toolInvocation)?.type === ToolConfirmKind.Skipped;
|
|
415
420
|
const autoExpandFailures = this._configurationService.getValue(ChatConfiguration.AutoExpandToolFailures);
|
|
416
421
|
const hasError = autoExpandFailures && this._terminalData.terminalCommandState?.exitCode !== undefined && this._terminalData.terminalCommandState.exitCode !== 0;
|
|
@@ -423,7 +428,9 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
423
428
|
context,
|
|
424
429
|
initialExpanded,
|
|
425
430
|
isComplete,
|
|
426
|
-
isSkipped
|
|
431
|
+
isSkipped,
|
|
432
|
+
isRunningInBackground,
|
|
433
|
+
() => this.focusTerminal()
|
|
427
434
|
));
|
|
428
435
|
this._thinkingCollapsibleWrapper = wrapper;
|
|
429
436
|
let isFirstRun = true;
|
|
@@ -531,12 +538,12 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
531
538
|
this._actionBarActions.clear();
|
|
532
539
|
const actions = [];
|
|
533
540
|
if (this._toolbarCanContinueInBackground) {
|
|
534
|
-
const action = ( new Action(TerminalContribCommandId.ContinueInBackground, ( localize(
|
|
541
|
+
const action = ( new Action(TerminalContribCommandId.ContinueInBackground, ( localize(7417, "Continue in Background")), ThemeIcon.asClassName(Codicon.debugContinue), true, () => this.continueInBackground()));
|
|
535
542
|
this._actionBarActions.add(action);
|
|
536
543
|
actions.push(action);
|
|
537
544
|
}
|
|
538
545
|
if (this._toolbarHasInstance) {
|
|
539
|
-
const focusLabel = this._toolbarIsHiddenTerminal ? ( localize(
|
|
546
|
+
const focusLabel = this._toolbarIsHiddenTerminal ? ( localize(7418, "Show and Focus Terminal")) : ( localize(7419, "Focus Terminal"));
|
|
540
547
|
const action = ( new Action(
|
|
541
548
|
TerminalContribCommandId.FocusChatInstanceAction,
|
|
542
549
|
focusLabel,
|
|
@@ -549,7 +556,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
549
556
|
}
|
|
550
557
|
if (this._toolbarHasOutput && !this._usesCollapsibleWrapper) {
|
|
551
558
|
const toggleIcon = this._toolbarOutputExpanded ? Codicon.chevronDown : Codicon.chevronRight;
|
|
552
|
-
const toggleLabel = this._toolbarOutputExpanded ? ( localize(
|
|
559
|
+
const toggleLabel = this._toolbarOutputExpanded ? ( localize(7420, "Hide Output")) : ( localize(7421, "Show Output"));
|
|
553
560
|
const action = ( new Action(
|
|
554
561
|
TerminalContribCommandId.ToggleChatTerminalOutput,
|
|
555
562
|
toggleLabel,
|
|
@@ -777,7 +784,7 @@ let ChatTerminalToolProgressPart = class ChatTerminalToolProgressPart extends Ba
|
|
|
777
784
|
widget?.focusInput();
|
|
778
785
|
}
|
|
779
786
|
async focusTerminal() {
|
|
780
|
-
const instance = this.
|
|
787
|
+
const instance = await this._ensureTerminalInstance();
|
|
781
788
|
let target = "none";
|
|
782
789
|
let location = "panel";
|
|
783
790
|
if (instance) {
|
|
@@ -982,7 +989,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
982
989
|
if (!commandText) {
|
|
983
990
|
return;
|
|
984
991
|
}
|
|
985
|
-
const ariaLabel = ( localize(
|
|
992
|
+
const ariaLabel = ( localize(7422, "Terminal output for {0}", commandText));
|
|
986
993
|
const scrollableDomNode = this._scrollableContainer.getDomNode();
|
|
987
994
|
scrollableDomNode.setAttribute("role", "region");
|
|
988
995
|
const accessibleViewHint = this._accessibleViewService.getOpenAriaHint(AccessibilityVerbositySettingId.TerminalChatOutput);
|
|
@@ -995,26 +1002,26 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
995
1002
|
if (!commandText) {
|
|
996
1003
|
return undefined;
|
|
997
1004
|
}
|
|
998
|
-
const commandHeader = ( localize(
|
|
1005
|
+
const commandHeader = ( localize(7423, "Command: {0}", commandText));
|
|
999
1006
|
if (command) {
|
|
1000
1007
|
const rawOutput = command.getOutput();
|
|
1001
1008
|
if (!rawOutput || rawOutput.trim().length === 0) {
|
|
1002
|
-
return `${commandHeader}\n${( localize(
|
|
1009
|
+
return `${commandHeader}\n${( localize(7424, "No output was produced by the command."))}`;
|
|
1003
1010
|
}
|
|
1004
1011
|
const lines = rawOutput.split("\n");
|
|
1005
1012
|
return `${commandHeader}\n${lines.join("\n").trimEnd()}`;
|
|
1006
1013
|
}
|
|
1007
1014
|
const snapshot = this._getTerminalCommandOutput();
|
|
1008
1015
|
if (!snapshot) {
|
|
1009
|
-
return `${commandHeader}\n${( localize(
|
|
1016
|
+
return `${commandHeader}\n${( localize(7425, "Command output is no longer available."))}`;
|
|
1010
1017
|
}
|
|
1011
1018
|
const plain = removeAnsiEscapeCodes((snapshot.text ?? ""));
|
|
1012
1019
|
if (!plain.trim().length) {
|
|
1013
|
-
return `${commandHeader}\n${( localize(
|
|
1020
|
+
return `${commandHeader}\n${( localize(7424, "No output was produced by the command."))}`;
|
|
1014
1021
|
}
|
|
1015
1022
|
let outputText = plain.trimEnd();
|
|
1016
1023
|
if (snapshot.truncated) {
|
|
1017
|
-
outputText += `\n${( localize(
|
|
1024
|
+
outputText += `\n${( localize(7426, "Output truncated."))}`;
|
|
1018
1025
|
}
|
|
1019
1026
|
return `${commandHeader}\n${outputText}`;
|
|
1020
1027
|
}
|
|
@@ -1126,7 +1133,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
1126
1133
|
}
|
|
1127
1134
|
if (!hasOutput) {
|
|
1128
1135
|
if (commandFinished) {
|
|
1129
|
-
this._showEmptyMessage(( localize(
|
|
1136
|
+
this._showEmptyMessage(( localize(7424, "No output was produced by the command.")));
|
|
1130
1137
|
}
|
|
1131
1138
|
} else {
|
|
1132
1139
|
this._hideEmptyMessage();
|
|
@@ -1153,7 +1160,7 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
1153
1160
|
if (hasText) {
|
|
1154
1161
|
this._hideEmptyMessage();
|
|
1155
1162
|
} else {
|
|
1156
|
-
this._showEmptyMessage(( localize(
|
|
1163
|
+
this._showEmptyMessage(( localize(7424, "No output was produced by the command.")));
|
|
1157
1164
|
}
|
|
1158
1165
|
const lineCount = result?.lineCount ?? snapshot.lineCount ?? 0;
|
|
1159
1166
|
this._layoutOutput(lineCount);
|
|
@@ -1162,9 +1169,9 @@ let ChatTerminalToolOutputSection = class ChatTerminalToolOutputSection extends
|
|
|
1162
1169
|
clearNode(this._terminalContainer);
|
|
1163
1170
|
this._lastRenderedLineCount = undefined;
|
|
1164
1171
|
if (!liveTerminalInstance) {
|
|
1165
|
-
this._showEmptyMessage(( localize(
|
|
1172
|
+
this._showEmptyMessage(( localize(7427, "Terminal is no longer available.")));
|
|
1166
1173
|
} else {
|
|
1167
|
-
this._showEmptyMessage(( localize(
|
|
1174
|
+
this._showEmptyMessage(( localize(7428, "Command information is not available.")));
|
|
1168
1175
|
}
|
|
1169
1176
|
}
|
|
1170
1177
|
async _resolveLiveTerminal() {
|
|
@@ -1286,21 +1293,27 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
|
|
|
1286
1293
|
initialExpanded,
|
|
1287
1294
|
isComplete,
|
|
1288
1295
|
isSkipped,
|
|
1296
|
+
isRunningInBackground,
|
|
1297
|
+
onFocusTerminal,
|
|
1289
1298
|
hoverService,
|
|
1290
1299
|
configurationService
|
|
1291
1300
|
) {
|
|
1292
|
-
const title = isSkipped ? ( localize(
|
|
1301
|
+
const title = isSkipped ? ( localize(7429, "Skipped {0}", commandText)) : isRunningInBackground ? ( localize(7430, "Running {0} in background", commandText)) : isComplete ? ( localize(7431, "Ran {0}", commandText)) : ( localize(7432, "Running {0}", commandText));
|
|
1293
1302
|
super(title, context, undefined, hoverService, configurationService);
|
|
1303
|
+
this._showLinkDisposables = this._register(( new MutableDisposable()));
|
|
1294
1304
|
this._terminalContentElement = contentElement;
|
|
1295
1305
|
this._commandText = commandText;
|
|
1296
1306
|
this._isSandboxWrapped = isSandboxWrapped;
|
|
1297
1307
|
this._isComplete = isComplete;
|
|
1298
1308
|
this._isSkipped = isSkipped;
|
|
1309
|
+
this._isRunningInBackground = isRunningInBackground;
|
|
1310
|
+
this._onFocusTerminal = onFocusTerminal;
|
|
1299
1311
|
this.domNode.classList.add("chat-terminal-thinking-collapsible");
|
|
1300
1312
|
if (isComplete) {
|
|
1301
1313
|
this.icon = Codicon.check;
|
|
1302
1314
|
}
|
|
1303
1315
|
this._setCodeFormattedTitle();
|
|
1316
|
+
this._updateShowLink();
|
|
1304
1317
|
this.setExpanded(initialExpanded);
|
|
1305
1318
|
}
|
|
1306
1319
|
_setCodeFormattedTitle() {
|
|
@@ -1310,8 +1323,8 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
|
|
|
1310
1323
|
const labelElement = this._collapseButton.labelElement;
|
|
1311
1324
|
labelElement.textContent = "";
|
|
1312
1325
|
if (this._isSandboxWrapped) {
|
|
1313
|
-
const prefixText = this._isSkipped ? ( localize(
|
|
1314
|
-
const suffixText = ( localize(
|
|
1326
|
+
const prefixText = this._isSkipped ? ( localize(7433, "Skipped ")) : this._isComplete ? ( localize(7434, "Ran ")) : ( localize(7435, "Running "));
|
|
1327
|
+
const suffixText = this._isRunningInBackground ? ( localize(7436, " in sandbox (background)")) : ( localize(7437, " in sandbox"));
|
|
1315
1328
|
labelElement.appendChild(createTextNode(prefixText));
|
|
1316
1329
|
const codeElement = createElement("code");
|
|
1317
1330
|
codeElement.textContent = this._commandText;
|
|
@@ -1319,20 +1332,56 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
|
|
|
1319
1332
|
labelElement.appendChild(createTextNode(suffixText));
|
|
1320
1333
|
return;
|
|
1321
1334
|
}
|
|
1322
|
-
const prefixText = this._isSkipped ? ( localize(
|
|
1335
|
+
const prefixText = this._isSkipped ? ( localize(7438, "Skipped ")) : this._isComplete ? ( localize(7439, "Ran ")) : ( localize(7440, "Running "));
|
|
1323
1336
|
const ranText = createTextNode(prefixText);
|
|
1324
1337
|
const codeElement = createElement("code");
|
|
1325
1338
|
codeElement.textContent = this._commandText;
|
|
1326
1339
|
labelElement.appendChild(ranText);
|
|
1327
1340
|
labelElement.appendChild(codeElement);
|
|
1341
|
+
if (this._isRunningInBackground) {
|
|
1342
|
+
labelElement.appendChild(createTextNode(( localize(7441, " in background"))));
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
_updateShowLink() {
|
|
1346
|
+
this._showLinkElement?.remove();
|
|
1347
|
+
this._showLinkElement = undefined;
|
|
1348
|
+
this._showLinkDisposables.value = undefined;
|
|
1349
|
+
if (!this._isRunningInBackground || !this._onFocusTerminal || !this._collapseButton) {
|
|
1350
|
+
return;
|
|
1351
|
+
}
|
|
1352
|
+
const labelElement = this._collapseButton.labelElement;
|
|
1353
|
+
const store = ( new DisposableStore());
|
|
1354
|
+
this._showLinkDisposables.value = store;
|
|
1355
|
+
const container = $("span.chat-terminal-show-link-container");
|
|
1356
|
+
container.appendChild(createTextNode(" — "));
|
|
1357
|
+
const showLink = $("span.chat-terminal-show-link");
|
|
1358
|
+
showLink.textContent = ( localize(7442, "Show"));
|
|
1359
|
+
showLink.role = "button";
|
|
1360
|
+
showLink.tabIndex = 0;
|
|
1361
|
+
store.add(addDisposableListener(showLink, EventType.CLICK, e => {
|
|
1362
|
+
EventHelper.stop(e, true);
|
|
1363
|
+
this._onFocusTerminal?.();
|
|
1364
|
+
}));
|
|
1365
|
+
store.add(addDisposableListener(showLink, EventType.KEY_DOWN, e => {
|
|
1366
|
+
const keyboardEvent = ( new StandardKeyboardEvent(e));
|
|
1367
|
+
if (keyboardEvent.equals(KeyCode.Enter) || keyboardEvent.equals(KeyCode.Space)) {
|
|
1368
|
+
EventHelper.stop(e, true);
|
|
1369
|
+
this._onFocusTerminal?.();
|
|
1370
|
+
}
|
|
1371
|
+
}));
|
|
1372
|
+
container.appendChild(showLink);
|
|
1373
|
+
labelElement.appendChild(container);
|
|
1374
|
+
this._showLinkElement = container;
|
|
1328
1375
|
}
|
|
1329
1376
|
markComplete() {
|
|
1330
1377
|
if (this._isComplete) {
|
|
1331
1378
|
return;
|
|
1332
1379
|
}
|
|
1333
1380
|
this._isComplete = true;
|
|
1381
|
+
this._isRunningInBackground = false;
|
|
1334
1382
|
this.icon = Codicon.check;
|
|
1335
1383
|
this._setCodeFormattedTitle();
|
|
1384
|
+
this._updateShowLink();
|
|
1336
1385
|
}
|
|
1337
1386
|
initContent() {
|
|
1338
1387
|
const listWrapper = $(".chat-used-context-list.chat-terminal-thinking-content");
|
|
@@ -1346,6 +1395,6 @@ let ChatTerminalThinkingCollapsibleWrapper = class ChatTerminalThinkingCollapsib
|
|
|
1346
1395
|
return false;
|
|
1347
1396
|
}
|
|
1348
1397
|
};
|
|
1349
|
-
ChatTerminalThinkingCollapsibleWrapper = ( __decorate([( __param(
|
|
1398
|
+
ChatTerminalThinkingCollapsibleWrapper = ( __decorate([( __param(9, IHoverService)), ( __param(10, IConfigurationService))], ChatTerminalThinkingCollapsibleWrapper));
|
|
1350
1399
|
|
|
1351
1400
|
export { ChatTerminalThinkingCollapsibleWrapper, ChatTerminalToolProgressPart };
|
|
@@ -54,7 +54,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
|
|
|
54
54
|
this.domNode = elements.root;
|
|
55
55
|
this.domNode.tabIndex = -1;
|
|
56
56
|
this.domNode.setAttribute("role", "group");
|
|
57
|
-
this.domNode.setAttribute("aria-label", ( localize(
|
|
57
|
+
this.domNode.setAttribute("aria-label", ( localize(7443, "Tool confirmation carousel")));
|
|
58
58
|
this.collapsedTitle = elements.collapsedTitle;
|
|
59
59
|
this.agentLabel = elements.agentLabel;
|
|
60
60
|
this.contentContainer = elements.content;
|
|
@@ -74,7 +74,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
|
|
|
74
74
|
small: true
|
|
75
75
|
})));
|
|
76
76
|
this.allowAllButton.element.classList.add("chat-tool-carousel-allow-all-button");
|
|
77
|
-
this.allowAllButton.label = ( localize(
|
|
77
|
+
this.allowAllButton.label = ( localize(7444, "Allow All"));
|
|
78
78
|
this._register(this.allowAllButton.onDidClick(() => this.allowAll()));
|
|
79
79
|
this.expandContentButton = this._register(( new Button(elements.overlayActions, {
|
|
80
80
|
...defaultButtonStyles,
|
|
@@ -96,7 +96,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
|
|
|
96
96
|
})));
|
|
97
97
|
this.dismissButton.element.classList.add("chat-tool-carousel-dismiss-button");
|
|
98
98
|
this.dismissButton.label = `$(${Codicon.close.id})`;
|
|
99
|
-
const dismissButtonLabel = this.items.length === 1 ? ( localize(
|
|
99
|
+
const dismissButtonLabel = this.items.length === 1 ? ( localize(7445, "Skip")) : ( localize(7446, "Skip All"));
|
|
100
100
|
this.dismissButton.element.setAttribute("aria-label", dismissButtonLabel);
|
|
101
101
|
this.dismissButton.element.title = dismissButtonLabel;
|
|
102
102
|
this._register(this.dismissButton.onDidClick(() => this.skipAll()));
|
|
@@ -107,7 +107,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
|
|
|
107
107
|
})));
|
|
108
108
|
this.prevButton.element.classList.add("chat-tool-carousel-nav-arrow");
|
|
109
109
|
this.prevButton.label = `$(${Codicon.chevronLeft.id})`;
|
|
110
|
-
this.prevButton.element.setAttribute("aria-label", ( localize(
|
|
110
|
+
this.prevButton.element.setAttribute("aria-label", ( localize(7447, "Previous")));
|
|
111
111
|
this._register(this.prevButton.onDidClick(() => this.navigateRelative(-1)));
|
|
112
112
|
this.nextButton = this._register(( new Button(elements.navArrows, {
|
|
113
113
|
...defaultButtonStyles,
|
|
@@ -116,7 +116,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
|
|
|
116
116
|
})));
|
|
117
117
|
this.nextButton.element.classList.add("chat-tool-carousel-nav-arrow");
|
|
118
118
|
this.nextButton.label = `$(${Codicon.chevronRight.id})`;
|
|
119
|
-
this.nextButton.element.setAttribute("aria-label", ( localize(
|
|
119
|
+
this.nextButton.element.setAttribute("aria-label", ( localize(7448, "Next")));
|
|
120
120
|
this._register(this.nextButton.onDidClick(() => this.navigateRelative(1)));
|
|
121
121
|
this._register(addDisposableListener(this.agentLabel, "click", e => {
|
|
122
122
|
e.preventDefault();
|
|
@@ -308,7 +308,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
|
|
|
308
308
|
if (item?.agentName) {
|
|
309
309
|
this.agentLabel.textContent = `\u2014 ${item.agentName}`;
|
|
310
310
|
this.agentLabel.disabled = !item.subAgentInvocationId || !item.scrollToSubagent;
|
|
311
|
-
this.agentLabel.title = ( localize(
|
|
311
|
+
this.agentLabel.title = ( localize(7449, "Scroll to {0}", item.agentName));
|
|
312
312
|
this.agentLabel.setAttribute("aria-label", this.agentLabel.title);
|
|
313
313
|
show(this.agentLabel);
|
|
314
314
|
} else {
|
|
@@ -326,7 +326,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
|
|
|
326
326
|
setVisibility(multi, this.nextButton.element);
|
|
327
327
|
setVisibility(multi, this.allowAllButton.element);
|
|
328
328
|
setVisibility(this.canExpandContent, this.expandContentButton.element);
|
|
329
|
-
this.allowAllButton.label = multi ? ( localize(
|
|
329
|
+
this.allowAllButton.label = multi ? ( localize(7444, "Allow All")) : ( localize(7450, "Allow"));
|
|
330
330
|
this.updateExpandContentButton();
|
|
331
331
|
}
|
|
332
332
|
renderActiveContent() {
|
|
@@ -381,7 +381,7 @@ class ChatToolConfirmationCarouselPart extends Disposable {
|
|
|
381
381
|
}
|
|
382
382
|
updateExpandContentButton() {
|
|
383
383
|
const expanded = this.canExpandContent && this._isContentExpanded;
|
|
384
|
-
const label = expanded ? ( localize(
|
|
384
|
+
const label = expanded ? ( localize(7451, "Restore Confirmation Size")) : ( localize(7452, "Expand Confirmation Up"));
|
|
385
385
|
this.expandContentButton.label = expanded ? `$(${Codicon.screenNormal.id})` : `$(${Codicon.screenFull.id})`;
|
|
386
386
|
this.expandContentButton.element.setAttribute("aria-label", label);
|
|
387
387
|
this.expandContentButton.element.setAttribute("aria-expanded", String(expanded));
|
|
@@ -78,8 +78,8 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
|
|
|
78
78
|
this.render({
|
|
79
79
|
allowActionId: AcceptToolConfirmationActionId,
|
|
80
80
|
skipActionId: SkipToolConfirmationActionId,
|
|
81
|
-
allowLabel: state.confirmationMessages.confirmResults ? ( localize(
|
|
82
|
-
skipLabel: ( localize(
|
|
81
|
+
allowLabel: state.confirmationMessages.confirmResults ? ( localize(7453, "Allow and Review Once")) : ( localize(7454, "Allow Once")),
|
|
82
|
+
skipLabel: ( localize(7455, "Proceed without running this tool")),
|
|
83
83
|
partType: "chatToolConfirmation",
|
|
84
84
|
subtitle: typeof toolInvocation.originMessage === "string" ? toolInvocation.originMessage : toolInvocation.originMessage?.value
|
|
85
85
|
});
|
|
@@ -125,7 +125,7 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
|
|
|
125
125
|
}
|
|
126
126
|
if (state.confirmationMessages?.confirmResults) {
|
|
127
127
|
actions.unshift({
|
|
128
|
-
label: ( localize(
|
|
128
|
+
label: ( localize(7456, "Allow and Skip Reviewing Result")),
|
|
129
129
|
data: () => {
|
|
130
130
|
state.confirmationMessages.confirmResults = undefined;
|
|
131
131
|
this.confirmWith(this.toolInvocation, {
|
|
@@ -167,11 +167,11 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
|
|
|
167
167
|
};
|
|
168
168
|
const elements = h("div", [h(".message@messageContainer", [
|
|
169
169
|
h(".message-wrapper@message"),
|
|
170
|
-
h(".see-more@showMore", [h("a", [( localize(
|
|
170
|
+
h(".see-more@showMore", [h("a", [( localize(7457, "Show More"))])])
|
|
171
171
|
]), h(".editor@editor"), h(".disclaimer@disclaimer")]);
|
|
172
172
|
if (toolInvocation.toolSpecificData?.kind === "input" && toolInvocation.toolSpecificData.rawInput && !isEmptyObject(toolInvocation.toolSpecificData.rawInput)) {
|
|
173
173
|
const titleEl = createElement("h3");
|
|
174
|
-
titleEl.textContent = ( localize(
|
|
174
|
+
titleEl.textContent = ( localize(7458, "Input"));
|
|
175
175
|
elements.editor.appendChild(titleEl);
|
|
176
176
|
const inputData = toolInvocation.toolSpecificData;
|
|
177
177
|
const codeBlockRenderOptions = {
|
|
@@ -241,7 +241,7 @@ let ToolConfirmationSubPart = class ToolConfirmationSubPart extends AbstractTool
|
|
|
241
241
|
elements.editor.append(editor.object.element);
|
|
242
242
|
if (canSeeMore) {
|
|
243
243
|
const seeMore = h("div.see-more", [h("a@link")]);
|
|
244
|
-
seeMore.link.textContent = ( localize(
|
|
244
|
+
seeMore.link.textContent = ( localize(7459, "See more"));
|
|
245
245
|
this._register(addDisposableGenericMouseDownListener(seeMore.link, () => {
|
|
246
246
|
try {
|
|
247
247
|
const parsed = JSON.parse(model.getValue());
|
|
@@ -2,22 +2,20 @@ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"
|
|
|
2
2
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
3
3
|
import { IChatToolInvocation, IChatToolInvocationSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
4
4
|
import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
5
|
-
import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
|
|
6
5
|
import { IChatOutputRendererService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.service";
|
|
7
6
|
import { IChatContentPartRenderContext } from "../chatContentParts.js";
|
|
7
|
+
import { IChatOutputPartStateCache } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatOutputPartStateCache.service";
|
|
8
8
|
import { BaseChatToolInvocationSubPart } from "./chatToolInvocationSubPart.js";
|
|
9
|
-
import { IChatToolOutputStateCache } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.service";
|
|
10
9
|
export declare class ChatToolOutputSubPart extends BaseChatToolInvocationSubPart {
|
|
11
10
|
private readonly context;
|
|
12
11
|
private readonly onDidRemount;
|
|
13
12
|
private readonly chatOutputItemRendererService;
|
|
14
|
-
private readonly chatWidgetService;
|
|
15
13
|
private readonly instantiationService;
|
|
16
14
|
private readonly stateCache;
|
|
17
15
|
readonly domNode: HTMLElement;
|
|
18
16
|
readonly codeblocks: IChatCodeBlockInfo[];
|
|
19
17
|
private readonly _disposeCts;
|
|
20
|
-
constructor(toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized, context: IChatContentPartRenderContext, onDidRemount: Event<void>, chatOutputItemRendererService: IChatOutputRendererService,
|
|
18
|
+
constructor(toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized, context: IChatContentPartRenderContext, onDidRemount: Event<void>, chatOutputItemRendererService: IChatOutputRendererService, instantiationService: IInstantiationService, stateCache: IChatOutputPartStateCache);
|
|
21
19
|
dispose(): void;
|
|
22
20
|
private createOutputPart;
|
|
23
21
|
}
|
|
@@ -7,15 +7,13 @@ import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/
|
|
|
7
7
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
8
8
|
import { isCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
9
9
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
10
|
-
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
11
10
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
12
11
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
13
12
|
import { IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
14
|
-
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
15
13
|
import { IChatOutputRendererService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.service';
|
|
16
14
|
import { ChatProgressSubPart } from '../chatProgressContentPart.js';
|
|
15
|
+
import { IChatOutputPartStateCache } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatOutputPartStateCache.service';
|
|
17
16
|
import { BaseChatToolInvocationSubPart } from './chatToolInvocationSubPart.js';
|
|
18
|
-
import { IChatToolOutputStateCache } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputStateCache.service';
|
|
19
17
|
|
|
20
18
|
let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvocationSubPart {
|
|
21
19
|
constructor(
|
|
@@ -23,7 +21,6 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
|
|
|
23
21
|
context,
|
|
24
22
|
onDidRemount,
|
|
25
23
|
chatOutputItemRendererService,
|
|
26
|
-
chatWidgetService,
|
|
27
24
|
instantiationService,
|
|
28
25
|
stateCache
|
|
29
26
|
) {
|
|
@@ -31,7 +28,6 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
|
|
|
31
28
|
this.context = context;
|
|
32
29
|
this.onDidRemount = onDidRemount;
|
|
33
30
|
this.chatOutputItemRendererService = chatOutputItemRendererService;
|
|
34
|
-
this.chatWidgetService = chatWidgetService;
|
|
35
31
|
this.instantiationService = instantiationService;
|
|
36
32
|
this.stateCache = stateCache;
|
|
37
33
|
this.codeblocks = [];
|
|
@@ -64,18 +60,14 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
|
|
|
64
60
|
const parent = $("div.webview-output");
|
|
65
61
|
parent.style.maxHeight = "80vh";
|
|
66
62
|
const partState = this.stateCache.get(toolInvocation.toolCallId) ?? {
|
|
67
|
-
height: 0
|
|
68
|
-
webviewOrigin: generateUuid()
|
|
63
|
+
height: 0
|
|
69
64
|
};
|
|
70
65
|
this.stateCache.set(toolInvocation.toolCallId, partState);
|
|
71
66
|
if (partState.height) {
|
|
72
67
|
parent.style.height = `${partState.height}px`;
|
|
73
68
|
}
|
|
74
|
-
if (partState.webviewOrigin) {
|
|
75
|
-
partState.webviewOrigin = partState.webviewOrigin;
|
|
76
|
-
}
|
|
77
69
|
const progressMessage = $("span");
|
|
78
|
-
progressMessage.textContent = ( localize(
|
|
70
|
+
progressMessage.textContent = ( localize(7460, "Rendering tool output..."));
|
|
79
71
|
const progressPart = this._register(this.instantiationService.createInstance(
|
|
80
72
|
ChatProgressSubPart,
|
|
81
73
|
progressMessage,
|
|
@@ -84,8 +76,8 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
|
|
|
84
76
|
));
|
|
85
77
|
parent.appendChild(progressPart.domNode);
|
|
86
78
|
this.chatOutputItemRendererService.renderOutputPart(details.output.mimeType, details.output.value.buffer, parent, {
|
|
87
|
-
|
|
88
|
-
|
|
79
|
+
webviewState: partState.webviewState,
|
|
80
|
+
chatSessionResource: this.context.element.sessionResource
|
|
89
81
|
}, this._disposeCts.token).then(renderedItem => {
|
|
90
82
|
if (this._disposeCts.token.isCancellationRequested) {
|
|
91
83
|
return;
|
|
@@ -98,13 +90,6 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
|
|
|
98
90
|
this._register(renderedItem.onDidChangeHeight(newHeight => {
|
|
99
91
|
partState.height = newHeight;
|
|
100
92
|
}));
|
|
101
|
-
this._register(renderedItem.webview.onDidWheel(e => {
|
|
102
|
-
this.chatWidgetService.getWidgetBySessionResource(this.context.element.sessionResource)?.delegateScrollFromMouseWheelEvent({
|
|
103
|
-
...e,
|
|
104
|
-
preventDefault: () => {},
|
|
105
|
-
stopPropagation: () => {}
|
|
106
|
-
});
|
|
107
|
-
}));
|
|
108
93
|
this._register(this.context.onDidChangeVisibility(visible => {
|
|
109
94
|
if (visible) {
|
|
110
95
|
renderedItem.reinitialize();
|
|
@@ -125,7 +110,7 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
|
|
|
125
110
|
iconElement.classList.add(...ThemeIcon.asClassNameArray(Codicon.error));
|
|
126
111
|
errorHeaderNode.append(iconElement);
|
|
127
112
|
const errorTitleNode = $(".output-error-title");
|
|
128
|
-
errorTitleNode.textContent = ( localize(
|
|
113
|
+
errorTitleNode.textContent = ( localize(7461, "Error rendering the tool output"));
|
|
129
114
|
errorHeaderNode.append(errorTitleNode);
|
|
130
115
|
const errorMessageNode = $(".output-error-details");
|
|
131
116
|
errorMessageNode.textContent = error?.message || String(error);
|
|
@@ -135,6 +120,6 @@ let ChatToolOutputSubPart = class ChatToolOutputSubPart extends BaseChatToolInvo
|
|
|
135
120
|
return parent;
|
|
136
121
|
}
|
|
137
122
|
};
|
|
138
|
-
ChatToolOutputSubPart = ( __decorate([( __param(3, IChatOutputRendererService)), ( __param(4,
|
|
123
|
+
ChatToolOutputSubPart = ( __decorate([( __param(3, IChatOutputRendererService)), ( __param(4, IInstantiationService)), ( __param(5, IChatOutputPartStateCache))], ChatToolOutputSubPart));
|
|
139
124
|
|
|
140
125
|
export { ChatToolOutputSubPart };
|
|
@@ -26,20 +26,20 @@ function getApprovalMessageFromReason(reason) {
|
|
|
26
26
|
let md;
|
|
27
27
|
switch (reason.type) {
|
|
28
28
|
case ToolConfirmKind.Setting:
|
|
29
|
-
md = ( localize(
|
|
29
|
+
md = ( localize(7462, "Auto approved by {0}", createMarkdownCommandLink({
|
|
30
30
|
text: "`" + reason.id + "`",
|
|
31
31
|
id: "workbench.action.openSettings",
|
|
32
32
|
arguments: [reason.id],
|
|
33
|
-
tooltip: ( localize(
|
|
33
|
+
tooltip: ( localize(7463, "Open settings"))
|
|
34
34
|
}, false)));
|
|
35
35
|
break;
|
|
36
36
|
case ToolConfirmKind.LmServicePerTool:
|
|
37
|
-
md = reason.scope === "session" ? ( localize(
|
|
37
|
+
md = reason.scope === "session" ? ( localize(7464, "Auto approved for this session")) : reason.scope === "workspace" ? ( localize(7465, "Auto approved for this workspace")) : ( localize(7466, "Auto approved for this profile"));
|
|
38
38
|
md += " (" + createMarkdownCommandLink({
|
|
39
|
-
text: ( localize(
|
|
39
|
+
text: ( localize(7467, "Edit")),
|
|
40
40
|
id: "workbench.action.chat.editToolApproval",
|
|
41
41
|
arguments: [reason.scope],
|
|
42
|
-
tooltip: ( localize(
|
|
42
|
+
tooltip: ( localize(7468, "Edit tool approval settings"))
|
|
43
43
|
}) + ")";
|
|
44
44
|
break;
|
|
45
45
|
case ToolConfirmKind.ConfirmationNotNeeded:
|
|
@@ -46,8 +46,8 @@ let ChatToolPostExecuteConfirmationPart = class ChatToolPostExecuteConfirmationP
|
|
|
46
46
|
this.render({
|
|
47
47
|
allowActionId: AcceptToolPostConfirmationActionId,
|
|
48
48
|
skipActionId: SkipToolPostConfirmationActionId,
|
|
49
|
-
allowLabel: ( localize(
|
|
50
|
-
skipLabel: ( localize(
|
|
49
|
+
allowLabel: ( localize(7469, "Allow Once")),
|
|
50
|
+
skipLabel: ( localize(7470, "Skip Results")),
|
|
51
51
|
partType: "chatToolPostConfirmation",
|
|
52
52
|
subtitle: typeof subtitle === "string" ? subtitle : subtitle?.value
|
|
53
53
|
});
|
|
@@ -63,7 +63,7 @@ let ChatToolPostExecuteConfirmationPart = class ChatToolPostExecuteConfirmationP
|
|
|
63
63
|
return this.createResultsDisplay(this.toolInvocation, state.contentForModel);
|
|
64
64
|
}
|
|
65
65
|
getTitle() {
|
|
66
|
-
return localize(
|
|
66
|
+
return localize(7471, "Approve Tool Result");
|
|
67
67
|
}
|
|
68
68
|
additionalPrimaryActions() {
|
|
69
69
|
const actions = super.additionalPrimaryActions();
|
|
@@ -99,7 +99,7 @@ let ChatToolPostExecuteConfirmationPart = class ChatToolPostExecuteConfirmationP
|
|
|
99
99
|
createResultsDisplay(toolInvocation, contentForModel) {
|
|
100
100
|
const container = $(".tool-postconfirm-display");
|
|
101
101
|
if (!contentForModel || contentForModel.length === 0) {
|
|
102
|
-
container.textContent = ( localize(
|
|
102
|
+
container.textContent = ( localize(7472, "No results to display"));
|
|
103
103
|
return container;
|
|
104
104
|
}
|
|
105
105
|
const parts = [];
|
|
@@ -214,7 +214,7 @@ let ChatToolPostExecuteConfirmationPart = class ChatToolPostExecuteConfirmationP
|
|
|
214
214
|
outputSubPart.domNode.classList.add("tool-postconfirm-display");
|
|
215
215
|
return outputSubPart.domNode;
|
|
216
216
|
}
|
|
217
|
-
container.textContent = ( localize(
|
|
217
|
+
container.textContent = ( localize(7473, "No displayable results"));
|
|
218
218
|
return container;
|
|
219
219
|
}
|
|
220
220
|
};
|
|
@@ -35,7 +35,7 @@ let ChatToolProgressSubPart = class ChatToolProgressSubPart extends BaseChatTool
|
|
|
35
35
|
}
|
|
36
36
|
createProgressPart() {
|
|
37
37
|
const isComplete = IChatToolInvocation.isComplete(this.toolInvocation);
|
|
38
|
-
if (isComplete && this.toolIsConfirmed && this.toolInvocation.pastTenseMessage) {
|
|
38
|
+
if (isComplete && this.toolIsConfirmed && (this.toolInvocation.pastTenseMessage || this.toolInvocation.invocationMessage)) {
|
|
39
39
|
const key = this.getAnnouncementKey("complete");
|
|
40
40
|
const completionContent = this.toolInvocation.pastTenseMessage ?? this.toolInvocation.invocationMessage;
|
|
41
41
|
if (!this.hasMeaningfulContent(completionContent)) {
|
|
@@ -55,8 +55,8 @@ let ChatToolProgressSubPart = class ChatToolProgressSubPart extends BaseChatTool
|
|
|
55
55
|
if (state.type === IChatToolInvocation.StateKind.Cancelled && state.reasonMessage) {
|
|
56
56
|
progressContent = state.reasonMessage;
|
|
57
57
|
} else if (state.type === IChatToolInvocation.StateKind.Executing) {
|
|
58
|
-
const
|
|
59
|
-
progressContent =
|
|
58
|
+
const progressMessage = state.progress.read(reader)?.message;
|
|
59
|
+
progressContent = this.hasMeaningfulContent(progressMessage) ? progressMessage : this.toolInvocation.invocationMessage;
|
|
60
60
|
} else {
|
|
61
61
|
progressContent = this.toolInvocation.invocationMessage;
|
|
62
62
|
}
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
display: inline-flex;
|
|
26
26
|
align-items: center;
|
|
27
27
|
justify-content: center;
|
|
28
|
-
min-width:
|
|
29
|
-
font-size:
|
|
28
|
+
min-width: 12px;
|
|
29
|
+
font-size: 12px;
|
|
30
30
|
line-height: 1;
|
|
31
31
|
color: var(--tool-risk-accent, var(--vscode-descriptionForeground));
|
|
32
32
|
}
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
display: inline-flex;
|
|
49
49
|
align-items: center;
|
|
50
50
|
justify-content: center;
|
|
51
|
-
font-size:
|
|
51
|
+
font-size: 12px;
|
|
52
52
|
line-height: 1;
|
|
53
53
|
color: var(--vscode-descriptionForeground);
|
|
54
54
|
cursor: pointer;
|
|
@@ -6,6 +6,7 @@ import { IToolRiskAssessment } from "../../../tools/chatToolRiskAssessmentServic
|
|
|
6
6
|
export declare class ToolRiskBadgeWidget extends Disposable {
|
|
7
7
|
private readonly _hoverService;
|
|
8
8
|
readonly domNode: HTMLElement;
|
|
9
|
+
get isDisposed(): boolean;
|
|
9
10
|
private readonly _iconEl;
|
|
10
11
|
private readonly _textEl;
|
|
11
12
|
private readonly _detailsIconEl;
|