@codingame/monaco-vscode-katex-common 28.4.0 → 29.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/actions/browser/buttonbar.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +17 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +158 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +22 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +16 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +121 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +15 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +29 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +349 -109
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +47 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +104 -62
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +21 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +13 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +29 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +261 -282
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +7 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +184 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +42 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +14 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +11 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +25 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +332 -114
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +10 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +11 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.d.ts +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +66 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +28 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +272 -107
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingExternalResourcesWidget.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingExternalResourcesWidget.js +70 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +151 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +96 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +86 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +8 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +273 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +28 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +22 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +81 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +20 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +21 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +2 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +112 -163
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +137 -52
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +108 -38
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +9 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +385 -247
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +23 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +23 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +124 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +24 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +30 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +84 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +170 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalPromptFileSystem.d.ts +47 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/internalCustomizations/internalPromptFileSystem.js +95 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +4 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +15 -15
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +4 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +38 -6
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +31 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +12 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +130 -23
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +41 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +55 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +50 -39
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +0 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +0 -440
|
@@ -53,10 +53,10 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
|
|
|
53
53
|
switch (chatEntitlementService.entitlement) {
|
|
54
54
|
case ChatEntitlement.Pro:
|
|
55
55
|
case ChatEntitlement.ProPlus:
|
|
56
|
-
primaryButtonLabel = ( localize(
|
|
56
|
+
primaryButtonLabel = ( localize(6751, "Manage Paid Premium Requests"));
|
|
57
57
|
break;
|
|
58
58
|
case ChatEntitlement.Free:
|
|
59
|
-
primaryButtonLabel = ( localize(
|
|
59
|
+
primaryButtonLabel = ( localize(6752, "Upgrade to GitHub Copilot Pro"));
|
|
60
60
|
break;
|
|
61
61
|
}
|
|
62
62
|
let hasAddedWaitWarning = false;
|
|
@@ -65,7 +65,7 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
|
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
hasAddedWaitWarning = true;
|
|
68
|
-
append(messageContainer, $(".chat-quota-wait-warning", undefined, ( localize(
|
|
68
|
+
append(messageContainer, $(".chat-quota-wait-warning", undefined, ( localize(6753, "Changes may take a few minutes to take effect."))));
|
|
69
69
|
};
|
|
70
70
|
let hasAddedRetryButton = false;
|
|
71
71
|
const addRetryButtonIfNeeded = () => {
|
|
@@ -78,7 +78,7 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
|
|
|
78
78
|
buttonForeground: asCssVariable(textLinkForeground)
|
|
79
79
|
})));
|
|
80
80
|
retryButton.element.classList.add("chat-quota-error-secondary-button");
|
|
81
|
-
retryButton.label = ( localize(
|
|
81
|
+
retryButton.label = ( localize(6754, "Click to Retry"));
|
|
82
82
|
this._register(retryButton.onDidClick(() => {
|
|
83
83
|
const widget = chatWidgetService.getWidgetBySessionResource(element.sessionResource);
|
|
84
84
|
if (!widget) {
|
|
@@ -24,6 +24,7 @@ export interface IChatReferenceListItem extends IChatContentReference {
|
|
|
24
24
|
description?: string;
|
|
25
25
|
state?: ModifiedFileEntryState;
|
|
26
26
|
excluded?: boolean;
|
|
27
|
+
showModifiedState?: boolean;
|
|
27
28
|
}
|
|
28
29
|
export type IChatCollapsibleListItem = IChatReferenceListItem | IChatWarningMessage;
|
|
29
30
|
export declare class ChatCollapsibleListContentPart extends ChatCollapsibleContentPart {
|
|
@@ -57,7 +57,7 @@ let ChatCollapsibleListContentPart = class ChatCollapsibleListContentPart extend
|
|
|
57
57
|
hoverService,
|
|
58
58
|
configurationService
|
|
59
59
|
) {
|
|
60
|
-
super(labelOverride ?? (data.length > 1 ? ( localize(
|
|
60
|
+
super(labelOverride ?? (data.length > 1 ? ( localize(6755, "Used {0} references", data.length)) : ( localize(6756, "Used {0} reference", 1))), context, hoverMessage, hoverService, configurationService);
|
|
61
61
|
this.data = data;
|
|
62
62
|
this.contentReferencesListPool = contentReferencesListPool;
|
|
63
63
|
this.openerService = openerService;
|
|
@@ -214,7 +214,7 @@ let CollapsibleListPool = class CollapsibleListPool extends Disposable {
|
|
|
214
214
|
return basename(reference.uri.path);
|
|
215
215
|
}
|
|
216
216
|
},
|
|
217
|
-
getWidgetAriaLabel: () => ( localize(
|
|
217
|
+
getWidgetAriaLabel: () => ( localize(6757, "Collapsible Chat References List"))
|
|
218
218
|
},
|
|
219
219
|
dnd: {
|
|
220
220
|
getDragURI: element => getResourceForElement(element)?.toString() ?? null,
|
|
@@ -402,7 +402,7 @@ let CollapsibleListRenderer = class CollapsibleListRenderer {
|
|
|
402
402
|
name: settingId
|
|
403
403
|
}, {
|
|
404
404
|
icon: Codicon.settingsGear,
|
|
405
|
-
title: ( localize(
|
|
405
|
+
title: ( localize(6758, "Open setting '{0}'", settingId)),
|
|
406
406
|
strikethrough: data.excluded,
|
|
407
407
|
extraClasses
|
|
408
408
|
});
|
|
@@ -438,7 +438,7 @@ let CollapsibleListRenderer = class CollapsibleListRenderer {
|
|
|
438
438
|
}
|
|
439
439
|
}
|
|
440
440
|
if (data.state !== undefined) {
|
|
441
|
-
if (templateData.actionBarContainer) {
|
|
441
|
+
if (templateData.actionBarContainer || data.showModifiedState) {
|
|
442
442
|
const diffMeta = data?.options?.diffMeta;
|
|
443
443
|
if (diffMeta) {
|
|
444
444
|
if (!templateData.fileDiffsContainer || !templateData.addedSpan || !templateData.removedSpan) {
|
|
@@ -447,7 +447,7 @@ let CollapsibleListRenderer = class CollapsibleListRenderer {
|
|
|
447
447
|
templateData.addedSpan.textContent = `+${diffMeta.added}`;
|
|
448
448
|
templateData.removedSpan.textContent = `-${diffMeta.removed}`;
|
|
449
449
|
templateData.fileDiffsContainer.setAttribute("aria-label", ( localize(
|
|
450
|
-
|
|
450
|
+
6759,
|
|
451
451
|
"{0} lines added, {1} lines removed",
|
|
452
452
|
diffMeta.added,
|
|
453
453
|
diffMeta.removed
|
|
@@ -528,7 +528,7 @@ registerAction2(class AddToChatAction extends Action2 {
|
|
|
528
528
|
super({
|
|
529
529
|
id: AddToChatAction.id,
|
|
530
530
|
title: {
|
|
531
|
-
...( localize2(
|
|
531
|
+
...( localize2(6760, "Add File to Chat"))
|
|
532
532
|
},
|
|
533
533
|
f1: false,
|
|
534
534
|
menu: [{
|
|
@@ -558,7 +558,7 @@ registerAction2(class OpenChatReferenceLinkAction extends Action2 {
|
|
|
558
558
|
super({
|
|
559
559
|
id: OpenChatReferenceLinkAction.id,
|
|
560
560
|
title: {
|
|
561
|
-
...( localize2(
|
|
561
|
+
...( localize2(6761, "Copy Link"))
|
|
562
562
|
},
|
|
563
563
|
f1: false,
|
|
564
564
|
menu: [{
|
|
@@ -17,6 +17,8 @@ export declare class ChatResourceGroupWidget extends Disposable {
|
|
|
17
17
|
private readonly _contextMenuService;
|
|
18
18
|
private readonly _fileService;
|
|
19
19
|
readonly domNode: HTMLElement;
|
|
20
|
+
private readonly _onDidChangeHeight;
|
|
21
|
+
readonly onDidChangeHeight: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
|
|
20
22
|
constructor(parts: IChatCollapsibleIODataPart[], _instantiationService: IInstantiationService, _contextMenuService: IContextMenuService, _fileService: IFileService);
|
|
21
23
|
private _fillInResourceGroup;
|
|
22
24
|
}
|
|
@@ -4,6 +4,7 @@ import { h } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
|
4
4
|
import { disposableTimeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
5
5
|
import { decodeBase64 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
|
|
6
6
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
7
|
+
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
7
8
|
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
8
9
|
import { basename, joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
9
10
|
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
@@ -31,6 +32,8 @@ let ChatResourceGroupWidget = class ChatResourceGroupWidget extends Disposable {
|
|
|
31
32
|
this._instantiationService = _instantiationService;
|
|
32
33
|
this._contextMenuService = _contextMenuService;
|
|
33
34
|
this._fileService = _fileService;
|
|
35
|
+
this._onDidChangeHeight = this._register(( new Emitter()));
|
|
36
|
+
this.onDidChangeHeight = this._onDidChangeHeight.event;
|
|
34
37
|
const el = h(".chat-collapsible-io-resource-group", [
|
|
35
38
|
h(".chat-collapsible-io-resource-items@items"),
|
|
36
39
|
h(".chat-collapsible-io-resource-actions@actions")
|
|
@@ -135,6 +138,7 @@ let ChatResourceGroupWidget = class ChatResourceGroupWidget extends Disposable {
|
|
|
135
138
|
}
|
|
136
139
|
};
|
|
137
140
|
itemsContainer.appendChild(attachments.domNode);
|
|
141
|
+
this._onDidChangeHeight.fire();
|
|
138
142
|
const toolbar = this._register(this._instantiationService.createInstance(
|
|
139
143
|
MenuWorkbenchToolBar,
|
|
140
144
|
actionsContainer,
|
|
@@ -171,6 +175,7 @@ let ChatResourceGroupWidget = class ChatResourceGroupWidget extends Disposable {
|
|
|
171
175
|
} catch {}
|
|
172
176
|
}
|
|
173
177
|
attachments.updateVariables(entries);
|
|
178
|
+
this._onDidChangeHeight.fire();
|
|
174
179
|
}, IMAGE_DECODE_DELAY_MS));
|
|
175
180
|
}
|
|
176
181
|
}
|
|
@@ -183,7 +188,7 @@ class SaveResourcesAction extends Action2 {
|
|
|
183
188
|
constructor() {
|
|
184
189
|
super({
|
|
185
190
|
id: SaveResourcesAction.ID,
|
|
186
|
-
title: ( localize2(
|
|
191
|
+
title: ( localize2(6762, "Save...")),
|
|
187
192
|
icon: Codicon.cloudDownload,
|
|
188
193
|
menu: [{
|
|
189
194
|
id: MenuId.ChatToolOutputResourceToolbar,
|
|
@@ -213,14 +218,14 @@ class SaveResourcesAction extends Action2 {
|
|
|
213
218
|
await fileService.writeFile(target, contents.value);
|
|
214
219
|
}
|
|
215
220
|
} catch (e) {
|
|
216
|
-
notificationService.error(( localize(
|
|
221
|
+
notificationService.error(( localize(6763, "Failed to save {0}: {1}", basename(part.uri), e)));
|
|
217
222
|
}
|
|
218
223
|
};
|
|
219
224
|
const withProgress = async (thenReveal, todo) => {
|
|
220
225
|
await progressService.withProgress({
|
|
221
226
|
location: ProgressLocation.Notification,
|
|
222
227
|
delay: 5_000,
|
|
223
|
-
title: ( localize(
|
|
228
|
+
title: ( localize(6764, "Saving resources..."))
|
|
224
229
|
}, async report => {
|
|
225
230
|
for (const task of todo) {
|
|
226
231
|
await task();
|
|
@@ -233,7 +238,7 @@ class SaveResourcesAction extends Action2 {
|
|
|
233
238
|
if (workspaceContextService.isInsideWorkspace(thenReveal)) {
|
|
234
239
|
commandService.executeCommand(REVEAL_IN_EXPLORER_COMMAND_ID, thenReveal);
|
|
235
240
|
} else {
|
|
236
|
-
notificationService.info(( localize(
|
|
241
|
+
notificationService.info(( localize(6765, "Saved resources to {0}", labelService.getUriLabel(thenReveal))));
|
|
237
242
|
}
|
|
238
243
|
};
|
|
239
244
|
if (context.parts.length === 1) {
|
|
@@ -245,7 +250,7 @@ class SaveResourcesAction extends Action2 {
|
|
|
245
250
|
await withProgress(uri, [() => savePart(part, false, uri)]);
|
|
246
251
|
} else {
|
|
247
252
|
const uris = await fileDialog.showOpenDialog({
|
|
248
|
-
title: ( localize(
|
|
253
|
+
title: ( localize(6766, "Pick folder to save resources")),
|
|
249
254
|
canSelectFiles: false,
|
|
250
255
|
canSelectFolders: true,
|
|
251
256
|
canSelectMany: false,
|
|
@@ -50,7 +50,7 @@ export declare class ChatSubagentContentPart extends ChatCollapsibleContentPart
|
|
|
50
50
|
private autoExpandedForConfirmation;
|
|
51
51
|
private titleShimmerSpan;
|
|
52
52
|
private titleDetailContainer;
|
|
53
|
-
private
|
|
53
|
+
private readonly _titleDetailRendered;
|
|
54
54
|
/**
|
|
55
55
|
* Check if a tool invocation is the parent subagent tool (the tool that spawns a subagent).
|
|
56
56
|
* A parent subagent tool has subagent toolSpecificData but no subAgentInvocationId.
|
|
@@ -30,7 +30,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
30
30
|
return toolInvocation.toolSpecificData?.kind === "subagent" && !toolInvocation.subAgentInvocationId;
|
|
31
31
|
}
|
|
32
32
|
static extractSubagentInfo(toolInvocation) {
|
|
33
|
-
const defaultDescription = ( localize(
|
|
33
|
+
const defaultDescription = ( localize(6767, "Running subagent..."));
|
|
34
34
|
if (!ChatSubagentContentPart_1.isParentSubagentTool(toolInvocation)) {
|
|
35
35
|
return {
|
|
36
36
|
description: defaultDescription,
|
|
@@ -85,7 +85,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
85
85
|
prompt,
|
|
86
86
|
modelName
|
|
87
87
|
} = ChatSubagentContentPart_1.extractSubagentInfo(toolInvocation);
|
|
88
|
-
const prefix = agentName || ( localize(
|
|
88
|
+
const prefix = agentName || ( localize(6768, "Subagent"));
|
|
89
89
|
const initialTitle = `${prefix}: ${description}`;
|
|
90
90
|
super(initialTitle, context, undefined, hoverService, configurationService);
|
|
91
91
|
this.subAgentInvocationId = subAgentInvocationId;
|
|
@@ -107,6 +107,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
107
107
|
this.toolsWaitingForConfirmation = 0;
|
|
108
108
|
this.userManuallyExpanded = false;
|
|
109
109
|
this.autoExpandedForConfirmation = false;
|
|
110
|
+
this._titleDetailRendered = this._register(( new MutableDisposable()));
|
|
110
111
|
this.description = description;
|
|
111
112
|
this.agentName = agentName;
|
|
112
113
|
this.prompt = prompt;
|
|
@@ -190,7 +191,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
190
191
|
return;
|
|
191
192
|
}
|
|
192
193
|
const lines = this.prompt.split("\n");
|
|
193
|
-
const rawFirstLine = lines[0] || ( localize(
|
|
194
|
+
const rawFirstLine = lines[0] || ( localize(6769, "Prompt"));
|
|
194
195
|
const restOfLines = lines.slice(1).join("\n").trim();
|
|
195
196
|
const titleContent = rcut(rawFirstLine, MAX_TITLE_LENGTH);
|
|
196
197
|
const wasTruncated = rawFirstLine.length > MAX_TITLE_LENGTH;
|
|
@@ -238,7 +239,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
238
239
|
}
|
|
239
240
|
}
|
|
240
241
|
updateTitle() {
|
|
241
|
-
const prefix = this.agentName || ( localize(
|
|
242
|
+
const prefix = this.agentName || ( localize(6768, "Subagent"));
|
|
242
243
|
const shimmerText = `${prefix}: ${this.description}`;
|
|
243
244
|
const toolCallText = this.currentRunningToolMessage && this.isActive ? ` \u2014 ${this.currentRunningToolMessage}` : ``;
|
|
244
245
|
if (!this._collapseButton) {
|
|
@@ -248,10 +249,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
248
249
|
if (!this.isActive) {
|
|
249
250
|
labelElement.textContent = "";
|
|
250
251
|
this.titleShimmerSpan = undefined;
|
|
251
|
-
|
|
252
|
-
this.titleDetailRendered.dispose();
|
|
253
|
-
this.titleDetailRendered = undefined;
|
|
254
|
-
}
|
|
252
|
+
this._titleDetailRendered.clear();
|
|
255
253
|
this.titleDetailContainer = undefined;
|
|
256
254
|
const prefixSpan = $("span");
|
|
257
255
|
prefixSpan.textContent = `${prefix}:`;
|
|
@@ -269,10 +267,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
269
267
|
labelElement.appendChild(this.titleShimmerSpan);
|
|
270
268
|
}
|
|
271
269
|
this.titleShimmerSpan.textContent = shimmerText;
|
|
272
|
-
|
|
273
|
-
this.titleDetailRendered.dispose();
|
|
274
|
-
this.titleDetailRendered = undefined;
|
|
275
|
-
}
|
|
270
|
+
this._titleDetailRendered.clear();
|
|
276
271
|
if (!toolCallText) {
|
|
277
272
|
if (this.titleDetailContainer) {
|
|
278
273
|
this.titleDetailContainer.remove();
|
|
@@ -287,7 +282,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
287
282
|
this.chatMarkdownAnchorService,
|
|
288
283
|
this._store
|
|
289
284
|
);
|
|
290
|
-
this.
|
|
285
|
+
this._titleDetailRendered.value = result;
|
|
291
286
|
if (this.titleDetailContainer) {
|
|
292
287
|
this.titleDetailContainer.replaceWith(result.element);
|
|
293
288
|
} else {
|
|
@@ -304,7 +299,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
304
299
|
return;
|
|
305
300
|
}
|
|
306
301
|
this._hoverDisposable.value = this.hoverService.setupDelayedHover(this._collapseButton.element, {
|
|
307
|
-
content: ( localize(
|
|
302
|
+
content: ( localize(6770, "Model: {0}", this.modelName))
|
|
308
303
|
});
|
|
309
304
|
}
|
|
310
305
|
trackToolState(toolInvocation) {
|
|
@@ -456,7 +451,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
456
451
|
}
|
|
457
452
|
}
|
|
458
453
|
appendHookItem(factory, hookPart) {
|
|
459
|
-
const hookMessage = hookPart.stopReason ? (hookPart.toolDisplayName ? ( localize(
|
|
454
|
+
const hookMessage = hookPart.stopReason ? (hookPart.toolDisplayName ? ( localize(6771, "Blocked {0}", hookPart.toolDisplayName)) : ( localize(6772, "Blocked by hook"))) : (hookPart.toolDisplayName ? ( localize(6773, "Warning for {0}", hookPart.toolDisplayName)) : ( localize(6774, "Hook warning")));
|
|
460
455
|
this.currentRunningToolMessage = hookMessage;
|
|
461
456
|
this.updateTitle();
|
|
462
457
|
if (this.isExpanded() || this.hasExpandedOnce) {
|
|
@@ -539,7 +534,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
539
534
|
return;
|
|
540
535
|
}
|
|
541
536
|
const itemWrapper = $(".chat-thinking-tool-wrapper");
|
|
542
|
-
const icon = getToolInvocationIcon(toolInvocation.toolId);
|
|
537
|
+
const icon = getToolInvocationIcon(toolInvocation.toolId, toolInvocation.icon);
|
|
543
538
|
const iconElement = createThinkingIcon(icon);
|
|
544
539
|
itemWrapper.appendChild(content);
|
|
545
540
|
if (toolInvocation.kind === "toolInvocation") {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
2
2
|
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
4
|
+
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
3
5
|
import { IContextMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service";
|
|
4
6
|
import { IChatMode } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes";
|
|
5
7
|
import { IChatSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service";
|
|
@@ -7,10 +9,13 @@ import { IHandOff } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contr
|
|
|
7
9
|
export interface INextPromptSelection {
|
|
8
10
|
readonly handoff: IHandOff;
|
|
9
11
|
readonly agentId?: string;
|
|
12
|
+
readonly withAutopilot?: boolean;
|
|
10
13
|
}
|
|
11
14
|
export declare class ChatSuggestNextWidget extends Disposable {
|
|
15
|
+
private readonly configurationService;
|
|
12
16
|
private readonly contextMenuService;
|
|
13
17
|
private readonly chatSessionsService;
|
|
18
|
+
private readonly contextKeyService;
|
|
14
19
|
readonly domNode: HTMLElement;
|
|
15
20
|
private readonly _onDidChangeHeight;
|
|
16
21
|
readonly onDidChangeHeight: Event<void>;
|
|
@@ -20,12 +25,13 @@ export declare class ChatSuggestNextWidget extends Disposable {
|
|
|
20
25
|
private titleElement;
|
|
21
26
|
private _currentMode;
|
|
22
27
|
private buttonDisposables;
|
|
23
|
-
constructor(contextMenuService: IContextMenuService, chatSessionsService: IChatSessionsService);
|
|
28
|
+
constructor(configurationService: IConfigurationService, contextMenuService: IContextMenuService, chatSessionsService: IChatSessionsService, contextKeyService: IContextKeyService);
|
|
24
29
|
get height(): number;
|
|
25
30
|
getCurrentMode(): IChatMode | undefined;
|
|
26
31
|
private createSuggestNextWidget;
|
|
27
32
|
render(mode: IChatMode): void;
|
|
28
33
|
private createPromptButton;
|
|
34
|
+
private createAutopilotButton;
|
|
29
35
|
hide(): void;
|
|
30
36
|
dispose(): void;
|
|
31
37
|
}
|
|
@@ -6,15 +6,26 @@ import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/even
|
|
|
6
6
|
import { Disposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
7
7
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
8
8
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
9
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
10
|
+
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
9
11
|
import { IContextMenuService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service';
|
|
12
|
+
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
13
|
+
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
10
14
|
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
11
15
|
import { getAgentSessionProvider, getAgentCanContinueIn, getAgentSessionProviderIcon, getAgentSessionProviderName } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
|
|
12
16
|
|
|
13
17
|
let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
14
|
-
constructor(
|
|
18
|
+
constructor(
|
|
19
|
+
configurationService,
|
|
20
|
+
contextMenuService,
|
|
21
|
+
chatSessionsService,
|
|
22
|
+
contextKeyService
|
|
23
|
+
) {
|
|
15
24
|
super();
|
|
25
|
+
this.configurationService = configurationService;
|
|
16
26
|
this.contextMenuService = contextMenuService;
|
|
17
27
|
this.chatSessionsService = chatSessionsService;
|
|
28
|
+
this.contextKeyService = contextKeyService;
|
|
18
29
|
this._onDidChangeHeight = this._register(( new Emitter()));
|
|
19
30
|
this.onDidChangeHeight = this._onDidChangeHeight.event;
|
|
20
31
|
this._onDidSelectPrompt = this._register(( new Emitter()));
|
|
@@ -42,8 +53,8 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
42
53
|
return;
|
|
43
54
|
}
|
|
44
55
|
this._currentMode = mode;
|
|
45
|
-
const modeName = mode.name.get() || mode.label.get() || ( localize(
|
|
46
|
-
this.titleElement.textContent = ( localize(
|
|
56
|
+
const modeName = mode.name.get() || mode.label.get() || ( localize(6775, "current mode"));
|
|
57
|
+
this.titleElement.textContent = ( localize(6776, "Proceed from {0}", modeName));
|
|
47
58
|
const childrenToRemove = [];
|
|
48
59
|
for (let i = 1; i < this.promptsContainer.children.length; i++) {
|
|
49
60
|
childrenToRemove.push(this.promptsContainer.children[i]);
|
|
@@ -56,9 +67,15 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
56
67
|
}
|
|
57
68
|
this.promptsContainer.removeChild(child);
|
|
58
69
|
}
|
|
70
|
+
const isAutopilotEnabled = this.configurationService.getValue(ChatConfiguration.AutopilotEnabled) !== false;
|
|
71
|
+
const firstAutoSendHandoff = isAutopilotEnabled ? handoffs.find(h => h.send) : undefined;
|
|
59
72
|
for (const handoff of handoffs) {
|
|
60
73
|
const promptButton = this.createPromptButton(handoff);
|
|
61
74
|
this.promptsContainer.appendChild(promptButton);
|
|
75
|
+
if (handoff === firstAutoSendHandoff) {
|
|
76
|
+
const autopilotButton = this.createAutopilotButton(handoff);
|
|
77
|
+
this.promptsContainer.appendChild(autopilotButton);
|
|
78
|
+
}
|
|
62
79
|
}
|
|
63
80
|
this.domNode.style.display = "flex";
|
|
64
81
|
this._onDidChangeHeight.fire();
|
|
@@ -73,15 +90,19 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
73
90
|
const button = $(".chat-welcome-view-suggested-prompt");
|
|
74
91
|
button.setAttribute("tabindex", "0");
|
|
75
92
|
button.setAttribute("role", "button");
|
|
76
|
-
button.setAttribute("aria-label", ( localize(
|
|
93
|
+
button.setAttribute("aria-label", ( localize(6777, "{0}", handoff.label)));
|
|
77
94
|
const titleElement = append(button, $(".chat-welcome-view-suggested-prompt-title"));
|
|
78
95
|
titleElement.textContent = handoff.label;
|
|
79
96
|
const showContinueOn = handoff.showContinueOn ?? true;
|
|
97
|
+
const currentSessionType = this.contextKeyService.getContextKeyValue(ChatContextKeys.chatSessionType.key);
|
|
80
98
|
const contributions = this.chatSessionsService.getAllChatSessionContributions();
|
|
81
99
|
const availableContributions = contributions.filter(c => {
|
|
82
100
|
if (!c.canDelegate) {
|
|
83
101
|
return false;
|
|
84
102
|
}
|
|
103
|
+
if (c.type === currentSessionType) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
85
106
|
const provider = getAgentSessionProvider(c.type);
|
|
86
107
|
return provider !== undefined && getAgentCanContinueIn(provider);
|
|
87
108
|
});
|
|
@@ -90,7 +111,7 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
90
111
|
const dropdownContainer = append(button, $(".chat-suggest-next-dropdown"));
|
|
91
112
|
dropdownContainer.setAttribute("tabindex", "0");
|
|
92
113
|
dropdownContainer.setAttribute("role", "button");
|
|
93
|
-
dropdownContainer.setAttribute("aria-label", ( localize(
|
|
114
|
+
dropdownContainer.setAttribute("aria-label", ( localize(6778, "More options for {0}", handoff.label)));
|
|
94
115
|
dropdownContainer.setAttribute("aria-haspopup", "true");
|
|
95
116
|
const separator = append(dropdownContainer, $(".chat-suggest-next-separator"));
|
|
96
117
|
separator.setAttribute("aria-hidden", "true");
|
|
@@ -105,7 +126,7 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
105
126
|
const name = getAgentSessionProviderName(provider);
|
|
106
127
|
return (new Action(
|
|
107
128
|
contrib.type,
|
|
108
|
-
localize(
|
|
129
|
+
localize(6779, "Continue in {0}", name),
|
|
109
130
|
ThemeIcon.isThemeIcon(icon) ? ThemeIcon.asClassName(icon) : undefined,
|
|
110
131
|
true,
|
|
111
132
|
() => {
|
|
@@ -168,6 +189,44 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
168
189
|
this.buttonDisposables.set(button, disposables);
|
|
169
190
|
return button;
|
|
170
191
|
}
|
|
192
|
+
createAutopilotButton(handoff) {
|
|
193
|
+
const disposables = ( new DisposableStore());
|
|
194
|
+
const handoffLabel = handoff.label;
|
|
195
|
+
const getCurrentHandoff = () => {
|
|
196
|
+
const currentHandoffs = this._currentMode?.handOffs?.get();
|
|
197
|
+
return currentHandoffs?.find(h => h.label === handoffLabel) ?? handoff;
|
|
198
|
+
};
|
|
199
|
+
const label = ( localize(6780, "Start with Autopilot"));
|
|
200
|
+
const button = $(".chat-welcome-view-suggested-prompt");
|
|
201
|
+
button.setAttribute("tabindex", "0");
|
|
202
|
+
button.setAttribute("role", "button");
|
|
203
|
+
button.setAttribute("aria-label", label);
|
|
204
|
+
const titleElement = append(button, $(".chat-welcome-view-suggested-prompt-title"));
|
|
205
|
+
titleElement.textContent = label;
|
|
206
|
+
disposables.add(addDisposableListener(button, "click", () => {
|
|
207
|
+
const currentHandoff = getCurrentHandoff();
|
|
208
|
+
if (currentHandoff) {
|
|
209
|
+
this._onDidSelectPrompt.fire({
|
|
210
|
+
handoff: currentHandoff,
|
|
211
|
+
withAutopilot: true
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}));
|
|
215
|
+
disposables.add(addDisposableListener(button, "keydown", e => {
|
|
216
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
217
|
+
e.preventDefault();
|
|
218
|
+
const currentHandoff = getCurrentHandoff();
|
|
219
|
+
if (currentHandoff) {
|
|
220
|
+
this._onDidSelectPrompt.fire({
|
|
221
|
+
handoff: currentHandoff,
|
|
222
|
+
withAutopilot: true
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}));
|
|
227
|
+
this.buttonDisposables.set(button, disposables);
|
|
228
|
+
return button;
|
|
229
|
+
}
|
|
171
230
|
hide() {
|
|
172
231
|
if (this.domNode.style.display !== "none") {
|
|
173
232
|
this._currentMode = undefined;
|
|
@@ -183,6 +242,6 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
183
242
|
super.dispose();
|
|
184
243
|
}
|
|
185
244
|
};
|
|
186
|
-
ChatSuggestNextWidget = ( __decorate([( __param(0,
|
|
245
|
+
ChatSuggestNextWidget = ( __decorate([( __param(0, IConfigurationService)), ( __param(1, IContextMenuService)), ( __param(2, IChatSessionsService)), ( __param(3, IContextKeyService))], ChatSuggestNextWidget));
|
|
187
246
|
|
|
188
247
|
export { ChatSuggestNextWidget };
|
|
@@ -39,7 +39,7 @@ let ChatTextEditContentPart = class ChatTextEditContentPart extends Disposable {
|
|
|
39
39
|
this.domNode = $(
|
|
40
40
|
".interactive-edits-summary",
|
|
41
41
|
undefined,
|
|
42
|
-
!element.isComplete ? "" : element.isCanceled ? ( localize(
|
|
42
|
+
!element.isComplete ? "" : element.isCanceled ? ( localize(6781, "Making changes was aborted.")) : ( localize(6782, "Made changes."))
|
|
43
43
|
);
|
|
44
44
|
} else {
|
|
45
45
|
this.domNode = $("div");
|
|
@@ -11,8 +11,14 @@ import { IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/
|
|
|
11
11
|
import { IChatMarkdownAnchorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service";
|
|
12
12
|
import { ILanguageModelsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service";
|
|
13
13
|
import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
|
|
14
|
-
export declare function getToolInvocationIcon(toolId: string): ThemeIcon;
|
|
14
|
+
export declare function getToolInvocationIcon(toolId: string, registeredIcon?: ThemeIcon): ThemeIcon;
|
|
15
15
|
export declare function createThinkingIcon(icon: ThemeIcon): HTMLElement;
|
|
16
|
+
/**
|
|
17
|
+
* Builds a phrase pool from defaults and user-configured custom phrases.
|
|
18
|
+
* In 'replace' mode, only custom phrases are used; in 'append' mode (default),
|
|
19
|
+
* custom phrases are added to the defaults.
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildPhrasePool(defaults: string[], configurationService: IConfigurationService): string[];
|
|
16
22
|
export declare class ChatThinkingContentPart extends ChatCollapsibleContentPart implements IChatContentPart {
|
|
17
23
|
private readonly chatContentMarkdownRenderer;
|
|
18
24
|
private streamingCompleted;
|
|
@@ -20,16 +26,19 @@ export declare class ChatThinkingContentPart extends ChatCollapsibleContentPart
|
|
|
20
26
|
private readonly configurationService;
|
|
21
27
|
private readonly chatMarkdownAnchorService;
|
|
22
28
|
private readonly languageModelsService;
|
|
29
|
+
private static _codeBlockRendererSync;
|
|
23
30
|
readonly codeblocks: undefined;
|
|
24
31
|
readonly codeblocksPartId: undefined;
|
|
25
32
|
private readonly _onDidChangeHeight;
|
|
33
|
+
private readonly _asyncRenderCallback;
|
|
26
34
|
private id;
|
|
27
35
|
private content;
|
|
28
36
|
private currentThinkingValue;
|
|
29
37
|
private currentTitle;
|
|
30
38
|
private defaultTitle;
|
|
39
|
+
private readonly workingTitle;
|
|
31
40
|
private textContainer;
|
|
32
|
-
private
|
|
41
|
+
private readonly _markdownResult;
|
|
33
42
|
private wrapper;
|
|
34
43
|
private fixedScrollingMode;
|
|
35
44
|
private autoScrollEnabled;
|
|
@@ -49,20 +58,27 @@ export declare class ChatThinkingContentPart extends ChatCollapsibleContentPart
|
|
|
49
58
|
private workingSpinnerLabel;
|
|
50
59
|
private availableMessagesByCategory;
|
|
51
60
|
private readonly toolWrappersByCallId;
|
|
61
|
+
private readonly toolIconsByCallId;
|
|
62
|
+
private readonly toolLabelsByCallId;
|
|
52
63
|
private readonly toolDisposables;
|
|
64
|
+
private readonly ownedToolParts;
|
|
53
65
|
private pendingRemovals;
|
|
54
66
|
private pendingRemovalFlushDisposable;
|
|
55
67
|
private pendingScrollDisposable;
|
|
56
68
|
private mutationObserverDisposable;
|
|
57
69
|
private isUpdatingDimensions;
|
|
70
|
+
private lastKnownContentHeight;
|
|
71
|
+
private lastKnownScrollTop;
|
|
58
72
|
private titleShimmerSpan;
|
|
59
73
|
private titleDetailContainer;
|
|
60
|
-
private
|
|
74
|
+
private readonly _externalResourceWidget;
|
|
75
|
+
private readonly _titleDetailRendered;
|
|
61
76
|
private getRandomWorkingMessage;
|
|
62
77
|
constructor(content: IChatThinkingPart, context: IChatContentPartRenderContext, chatContentMarkdownRenderer: IMarkdownRenderer, streamingCompleted: boolean, instantiationService: IInstantiationService, configurationService: IConfigurationService, chatMarkdownAnchorService: IChatMarkdownAnchorService, languageModelsService: ILanguageModelsService, hoverService: IHoverService);
|
|
63
78
|
protected shouldInitEarly(): boolean;
|
|
64
79
|
protected initContent(): HTMLElement;
|
|
65
80
|
private handleScroll;
|
|
81
|
+
private updateFadeClasses;
|
|
66
82
|
private syncDimensionsAndScheduleScroll;
|
|
67
83
|
private updateScrollDimensions;
|
|
68
84
|
private scrollToBottom;
|
|
@@ -80,6 +96,13 @@ export declare class ChatThinkingContentPart extends ChatCollapsibleContentPart
|
|
|
80
96
|
collapseContent(): void;
|
|
81
97
|
updateThinking(content: IChatThinkingPart): void;
|
|
82
98
|
getIsActive(): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Returns true when this thinking part has no meaningful content to display:
|
|
101
|
+
* no tool invocations, no lazy items, no hooks, and no thinking text.
|
|
102
|
+
* This happens when a tool is removed from thinking (e.g. due to confirmation)
|
|
103
|
+
* and the thinking part was only created to hold that tool.
|
|
104
|
+
*/
|
|
105
|
+
isEffectivelyEmpty(): boolean;
|
|
83
106
|
markAsInactive(): void;
|
|
84
107
|
finalizeTitleIfDefault(): void;
|
|
85
108
|
private setGeneratedTitleOnAllParts;
|
|
@@ -95,6 +118,7 @@ export declare class ChatThinkingContentPart extends ChatCollapsibleContentPart
|
|
|
95
118
|
domNode: HTMLElement;
|
|
96
119
|
disposable?: IDisposable;
|
|
97
120
|
}, toolInvocationId?: string, toolInvocationOrMarkdown?: IChatToolInvocation | IChatToolInvocationSerialized | IChatMarkdownContent, originalParent?: HTMLElement): void;
|
|
121
|
+
removeMaterializedItem(toolCallId: string): void;
|
|
98
122
|
/**
|
|
99
123
|
* removes/re-establishes a lazy item from the thinking container
|
|
100
124
|
* this is needed so we can check if there are confirmations still needed
|
|
@@ -104,6 +128,7 @@ export declare class ChatThinkingContentPart extends ChatCollapsibleContentPart
|
|
|
104
128
|
private schedulePendingRemovalsFlush;
|
|
105
129
|
private removeStreamingToolEntry;
|
|
106
130
|
private trackToolMetadata;
|
|
131
|
+
private updateExternalResourceParts;
|
|
107
132
|
private appendItemToDOM;
|
|
108
133
|
private materializeLazyItem;
|
|
109
134
|
setupThinkingContainer(content: IChatThinkingPart): void;
|