@codingame/monaco-vscode-katex-common 26.2.2 → 27.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +10 -4
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +35 -11
- package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +3 -0
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +15 -4
- package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +548 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +168 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +67 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +12 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +42 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +63 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +7 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +77 -73
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +69 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +381 -83
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +28 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +38 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +109 -113
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +16 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +28 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +226 -123
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +9 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +7 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +22 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.js +11 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +5 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +26 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +51 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +20 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.js +11 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +36 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +166 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +16 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +14 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +98 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +10 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +241 -78
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.d.ts +29 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +252 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +39 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +36 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +5 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +42 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +12 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +48 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatHookContentPart.css +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +351 -422
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +14 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +102 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +69 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/codeBlockPart.css +48 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +47 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +0 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +103 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +15 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +61 -66
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +7 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +41 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +6 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +17 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +310 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +13 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +441 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +24 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +392 -86
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +52 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +271 -187
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +668 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +57 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +2 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +78 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +86 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +9 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +393 -134
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +36 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +20 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +25 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +141 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +18 -13
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +108 -27
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +20 -14
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +4 -6
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +74 -32
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +11 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +68 -27
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +125 -13
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +8 -11
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +54 -45
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +11 -10
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +172 -112
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +0 -42
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +27 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +83 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +58 -33
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocolApps.d.ts +1 -548
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +0 -187
- /package/vscode/src/vs/{workbench/contrib → platform}/mcp/common/modelContextProtocolApps.js +0 -0
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js
CHANGED
|
@@ -5,6 +5,7 @@ import { $ } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
|
5
5
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
6
6
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
7
|
import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
|
|
8
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
8
9
|
import { HOOK_TYPES, HookType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/hookSchema';
|
|
9
10
|
import { ChatCollapsibleContentPart } from './chatCollapsibleContentPart.js';
|
|
10
11
|
import * as chatHookContentPart from './media/chatHookContentPart.css';
|
|
@@ -14,13 +15,13 @@ function getHookTypeLabel(hookType) {
|
|
|
14
15
|
return HOOK_TYPES.find(hook => hook.id === hookType)?.label ?? hookType;
|
|
15
16
|
}
|
|
16
17
|
let ChatHookContentPart = class ChatHookContentPart extends ChatCollapsibleContentPart {
|
|
17
|
-
constructor(hookPart, context, hoverService) {
|
|
18
|
+
constructor(hookPart, context, hoverService, configurationService) {
|
|
18
19
|
const hookTypeLabel = getHookTypeLabel(hookPart.hookType);
|
|
19
20
|
const isStopped = !!hookPart.stopReason;
|
|
20
21
|
const isWarning = !!hookPart.systemMessage;
|
|
21
22
|
const toolName = hookPart.toolDisplayName;
|
|
22
|
-
const title = isStopped ? (toolName ? ( localize(
|
|
23
|
-
super(title, context, undefined, hoverService);
|
|
23
|
+
const title = isStopped ? (toolName ? ( localize(6413, "Blocked {0} - {1} hook", toolName, hookTypeLabel)) : ( localize(6414, "Blocked by {0} hook", hookTypeLabel))) : (toolName ? ( localize(6415, "Warning for {0} - {1} hook", toolName, hookTypeLabel)) : ( localize(6416, "Warning from {0} hook", hookTypeLabel)));
|
|
24
|
+
super(title, context, undefined, hoverService, configurationService);
|
|
24
25
|
this.hookPart = hookPart;
|
|
25
26
|
this.icon = isStopped ? Codicon.error : isWarning ? Codicon.warning : Codicon.check;
|
|
26
27
|
if (isStopped) {
|
|
@@ -50,6 +51,6 @@ let ChatHookContentPart = class ChatHookContentPart extends ChatCollapsibleConte
|
|
|
50
51
|
return other.hookType === this.hookPart.hookType && other.stopReason === this.hookPart.stopReason && other.systemMessage === this.hookPart.systemMessage && other.toolDisplayName === this.hookPart.toolDisplayName;
|
|
51
52
|
}
|
|
52
53
|
};
|
|
53
|
-
ChatHookContentPart = ( __decorate([( __param(2, IHoverService))], ChatHookContentPart));
|
|
54
|
+
ChatHookContentPart = ( __decorate([( __param(2, IHoverService)), ( __param(3, IConfigurationService))], ChatHookContentPart));
|
|
54
55
|
|
|
55
56
|
export { ChatHookContentPart };
|
|
@@ -39,7 +39,6 @@ export declare class InlineAnchorWidget extends Disposable {
|
|
|
39
39
|
private readonly notebookDocumentService;
|
|
40
40
|
private readonly openerService;
|
|
41
41
|
static readonly className = "chat-inline-anchor-widget";
|
|
42
|
-
private readonly _chatResourceContext;
|
|
43
42
|
readonly data: ContentRefData;
|
|
44
43
|
constructor(element: HTMLAnchorElement | HTMLElement, inlineReference: IChatContentInlineReference, metadata: InlineAnchorWidgetMetadata | undefined, configurationService: IConfigurationService, originalContextKeyService: IContextKeyService, contextMenuService: IContextMenuService, fileService: IFileService, hoverService: IHoverService, instantiationService: IInstantiationService, labelService: ILabelService, languageService: ILanguageService, menuService: IMenuService, modelService: IModelService, telemetryService: ITelemetryService, themeService: IThemeService, notebookDocumentService: INotebookDocumentService, openerService: IOpenerService);
|
|
45
44
|
getHTMLElement(): HTMLElement;
|
|
@@ -41,7 +41,7 @@ import { globMatchesResource } from '@codingame/monaco-vscode-api/vscode/vs/work
|
|
|
41
41
|
import { INotebookDocumentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/notebook/common/notebookDocumentService.service';
|
|
42
42
|
import { ExplorerFolderContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/files/common/files';
|
|
43
43
|
import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
|
|
44
|
-
import {
|
|
44
|
+
import { hookUpSymbolAttachmentDragAndContextMenu, chatAttachmentResourceContextKey } from '../../attachments/chatAttachmentWidgets.js';
|
|
45
45
|
import { IChatMarkdownAnchorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service';
|
|
46
46
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
47
47
|
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
@@ -133,13 +133,10 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
133
133
|
} : {
|
|
134
134
|
uri: inlineReference.inlineReference
|
|
135
135
|
};
|
|
136
|
-
const contextKeyService = this._register(originalContextKeyService.createScoped(element));
|
|
137
|
-
this._chatResourceContext = chatAttachmentResourceContextKey.bindTo(contextKeyService);
|
|
138
136
|
element.classList.add(InlineAnchorWidget_1.className, "show-file-icons");
|
|
139
137
|
let iconText;
|
|
140
138
|
let iconClasses;
|
|
141
139
|
let location;
|
|
142
|
-
let updateContextKeys;
|
|
143
140
|
if (this.data.kind === "symbol") {
|
|
144
141
|
const symbol = this.data.symbol;
|
|
145
142
|
location = this.data.symbol.location;
|
|
@@ -152,7 +149,7 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
152
149
|
SymbolKinds.toIcon(symbol.kind)
|
|
153
150
|
)];
|
|
154
151
|
this._store.add(instantiationService.invokeFunction(
|
|
155
|
-
accessor => hookUpSymbolAttachmentDragAndContextMenu(accessor, element,
|
|
152
|
+
accessor => hookUpSymbolAttachmentDragAndContextMenu(accessor, element, originalContextKeyService, {
|
|
156
153
|
value: symbol.location,
|
|
157
154
|
name: symbol.name,
|
|
158
155
|
kind: symbol.kind
|
|
@@ -186,23 +183,28 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
186
183
|
this._register(themeService.onDidFileIconThemeChange(() => {
|
|
187
184
|
refreshIconClasses();
|
|
188
185
|
}));
|
|
189
|
-
|
|
186
|
+
let isDirectory = false;
|
|
190
187
|
fileService.stat(location.uri).then(stat => {
|
|
191
|
-
|
|
188
|
+
isDirectory = stat.isDirectory;
|
|
192
189
|
if (stat.isDirectory) {
|
|
193
190
|
fileKind = FileKind.FOLDER;
|
|
194
191
|
refreshIconClasses();
|
|
195
192
|
}
|
|
196
193
|
}).catch(() => {});
|
|
194
|
+
const contextKeyService = this._register(originalContextKeyService.createScoped(element));
|
|
195
|
+
chatAttachmentResourceContextKey.bindTo(contextKeyService).set(( location.uri.toString()));
|
|
196
|
+
const isFolderContext = ExplorerFolderContext.bindTo(contextKeyService);
|
|
197
|
+
let contextMenuInitialized = false;
|
|
197
198
|
this._register(
|
|
198
199
|
addDisposableListener(element, EventType.CONTEXT_MENU, async domEvent => {
|
|
199
200
|
const event = ( new StandardMouseEvent(getWindow(domEvent), domEvent));
|
|
200
201
|
EventHelper.stop(domEvent, true);
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
202
|
+
if (!contextMenuInitialized) {
|
|
203
|
+
contextMenuInitialized = true;
|
|
204
|
+
const resourceContextKey = ( new StaticResourceContextKey(contextKeyService, fileService, languageService, modelService));
|
|
205
|
+
resourceContextKey.set(location.uri);
|
|
205
206
|
}
|
|
207
|
+
isFolderContext.set(isDirectory);
|
|
206
208
|
if (this._store.isDisposed) {
|
|
207
209
|
return;
|
|
208
210
|
}
|
|
@@ -220,10 +222,10 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
220
222
|
);
|
|
221
223
|
if (location.range) {
|
|
222
224
|
if (location.range.startLineNumber === location.range.endLineNumber) {
|
|
223
|
-
element.setAttribute("aria-label", ( localize(
|
|
225
|
+
element.setAttribute("aria-label", ( localize(6417, "{0} line {1}", filePathLabel, location.range.startLineNumber)));
|
|
224
226
|
} else {
|
|
225
227
|
element.setAttribute("aria-label", ( localize(
|
|
226
|
-
|
|
228
|
+
6418,
|
|
227
229
|
"{0} lines {1} to {2}",
|
|
228
230
|
filePathLabel,
|
|
229
231
|
location.range.startLineNumber,
|
|
@@ -232,9 +234,6 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
232
234
|
}
|
|
233
235
|
}
|
|
234
236
|
}
|
|
235
|
-
const resourceContextKey = ( new StaticResourceContextKey(contextKeyService, fileService, languageService, modelService));
|
|
236
|
-
resourceContextKey.set(location.uri);
|
|
237
|
-
this._chatResourceContext.set(( location.uri.toString()));
|
|
238
237
|
const iconEl = $("span.icon");
|
|
239
238
|
iconEl.classList.add(...iconClasses);
|
|
240
239
|
element.replaceChildren(iconEl, $("span.icon-label", {}, ...iconText));
|
|
@@ -302,7 +301,7 @@ registerAction2(class AddFileToChatAction extends Action2 {
|
|
|
302
301
|
constructor() {
|
|
303
302
|
super({
|
|
304
303
|
id: AddFileToChatAction.id,
|
|
305
|
-
title: ( localize2(
|
|
304
|
+
title: ( localize2(6419, "Add File to Chat")),
|
|
306
305
|
menu: [{
|
|
307
306
|
id: MenuId.ChatInlineResourceAnchorContext,
|
|
308
307
|
group: "chat",
|
|
@@ -326,7 +325,7 @@ registerAction2(class CopyResourceAction extends Action2 {
|
|
|
326
325
|
constructor() {
|
|
327
326
|
super({
|
|
328
327
|
id: CopyResourceAction.id,
|
|
329
|
-
title: ( localize2(
|
|
328
|
+
title: ( localize2(6420, "Copy")),
|
|
330
329
|
f1: false,
|
|
331
330
|
precondition: chatAttachmentResourceContextKey,
|
|
332
331
|
keybinding: {
|
|
@@ -353,7 +352,7 @@ registerAction2(class OpenToSideResourceAction extends Action2 {
|
|
|
353
352
|
constructor() {
|
|
354
353
|
super({
|
|
355
354
|
id: OpenToSideResourceAction.id,
|
|
356
|
-
title: ( localize2(
|
|
355
|
+
title: ( localize2(6421, "Open to the Side")),
|
|
357
356
|
f1: false,
|
|
358
357
|
precondition: chatAttachmentResourceContextKey,
|
|
359
358
|
keybinding: {
|
|
@@ -419,8 +418,8 @@ registerAction2(class GoToDefinitionAction extends Action2 {
|
|
|
419
418
|
super({
|
|
420
419
|
id: GoToDefinitionAction.id,
|
|
421
420
|
title: {
|
|
422
|
-
...( localize2(
|
|
423
|
-
mnemonicTitle: ( localize(
|
|
421
|
+
...( localize2(6422, "Go to Definition")),
|
|
422
|
+
mnemonicTitle: ( localize(6423, "Go to &&Definition"))
|
|
424
423
|
},
|
|
425
424
|
menu: ( [
|
|
426
425
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -477,8 +476,8 @@ registerAction2(class GoToTypeDefinitionsAction extends Action2 {
|
|
|
477
476
|
super({
|
|
478
477
|
id: GoToTypeDefinitionsAction.id,
|
|
479
478
|
title: {
|
|
480
|
-
...( localize2(
|
|
481
|
-
mnemonicTitle: ( localize(
|
|
479
|
+
...( localize2(6424, "Go to Type Definitions")),
|
|
480
|
+
mnemonicTitle: ( localize(6425, "Go to &&Type Definitions"))
|
|
482
481
|
},
|
|
483
482
|
menu: ( [
|
|
484
483
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -503,8 +502,8 @@ registerAction2(class GoToImplementations extends Action2 {
|
|
|
503
502
|
super({
|
|
504
503
|
id: GoToImplementations.id,
|
|
505
504
|
title: {
|
|
506
|
-
...( localize2(
|
|
507
|
-
mnemonicTitle: ( localize(
|
|
505
|
+
...( localize2(6426, "Go to Implementations")),
|
|
506
|
+
mnemonicTitle: ( localize(6427, "Go to &&Implementations"))
|
|
508
507
|
},
|
|
509
508
|
menu: ( [
|
|
510
509
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -529,8 +528,8 @@ registerAction2(class GoToReferencesAction extends Action2 {
|
|
|
529
528
|
super({
|
|
530
529
|
id: GoToReferencesAction.id,
|
|
531
530
|
title: {
|
|
532
|
-
...( localize2(
|
|
533
|
-
mnemonicTitle: ( localize(
|
|
531
|
+
...( localize2(6428, "Go to References")),
|
|
532
|
+
mnemonicTitle: ( localize(6429, "Go to &&References"))
|
|
534
533
|
},
|
|
535
534
|
menu: ( [
|
|
536
535
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type MarkdownRenderOptions } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer";
|
|
2
2
|
import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
|
+
import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
3
4
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
4
5
|
import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
|
|
5
6
|
import { IModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service";
|
|
@@ -45,6 +46,8 @@ export declare class ChatMarkdownContentPart extends Disposable implements IChat
|
|
|
45
46
|
private static ID_POOL;
|
|
46
47
|
readonly codeblocksPartId: string;
|
|
47
48
|
readonly domNode: HTMLElement;
|
|
49
|
+
private readonly _onDidChangeHeight;
|
|
50
|
+
readonly onDidChangeHeight: Event<void>;
|
|
48
51
|
private readonly allRefs;
|
|
49
52
|
private readonly _codeblocks;
|
|
50
53
|
get codeblocks(): IChatCodeBlockInfo[];
|
|
@@ -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 { $ as $$1, getWindow, DisposableResizeObserver, isHTMLElement, addDisposableListener, EventType, EventHelper } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
4
|
+
import { $ as $$1, clearNode, getWindow, DisposableResizeObserver, isHTMLElement, addDisposableListener, EventType, EventHelper } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
5
5
|
import { allowedMarkdownHtmlAttributes } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
|
|
6
6
|
import { StandardMouseEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/mouseEvent';
|
|
7
7
|
import { status } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
|
|
@@ -13,6 +13,7 @@ import { findLast } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arr
|
|
|
13
13
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
14
14
|
import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
|
|
15
15
|
import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
16
|
+
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
16
17
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
17
18
|
import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
|
|
18
19
|
import { equalsIgnoreCase } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
|
|
@@ -94,12 +95,13 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
94
95
|
this.instantiationService = instantiationService;
|
|
95
96
|
this.aiEditTelemetryService = aiEditTelemetryService;
|
|
96
97
|
this.codeblocksPartId = String(++ChatMarkdownContentPart_1.ID_POOL);
|
|
98
|
+
this._onDidChangeHeight = this._register(( new Emitter()));
|
|
99
|
+
this.onDidChangeHeight = this._onDidChangeHeight.event;
|
|
97
100
|
this.allRefs = [];
|
|
98
101
|
this._codeblocks = [];
|
|
99
102
|
this.mathLayoutParticipants = ( new Set());
|
|
100
103
|
const element = context.element;
|
|
101
104
|
const inUndoStop = findLast(context.content, e => e.kind === "undoStop", context.contentIndex)?.id;
|
|
102
|
-
const orderedDisposablesList = [];
|
|
103
105
|
let globalCodeBlockIndexStart = codeBlockStartIndex;
|
|
104
106
|
let thisPartCodeBlockIndexStart = 0;
|
|
105
107
|
this.domNode = $("div.chat-markdown-part");
|
|
@@ -110,10 +112,20 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
110
112
|
}
|
|
111
113
|
}
|
|
112
114
|
const enableMath = configurationService.getValue(ChatConfiguration.EnableMath);
|
|
115
|
+
const renderStore = this._register(( new MutableDisposable()));
|
|
113
116
|
const doRenderMarkdown = () => {
|
|
114
117
|
if (this._store.isDisposed) {
|
|
115
118
|
return;
|
|
116
119
|
}
|
|
120
|
+
const store = ( new DisposableStore());
|
|
121
|
+
renderStore.value = store;
|
|
122
|
+
clearNode(this.domNode);
|
|
123
|
+
this.allRefs.length = 0;
|
|
124
|
+
this._codeblocks.length = 0;
|
|
125
|
+
this.mathLayoutParticipants.clear();
|
|
126
|
+
globalCodeBlockIndexStart = codeBlockStartIndex;
|
|
127
|
+
thisPartCodeBlockIndexStart = 0;
|
|
128
|
+
const orderedDisposablesList = [];
|
|
117
129
|
const markedExtensions = enableMath ? coalesce([MarkedKatexSupport.getExtension(getWindow(context.container), {
|
|
118
130
|
throwOnError: false
|
|
119
131
|
})]) : [];
|
|
@@ -121,7 +133,7 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
121
133
|
gfm: true,
|
|
122
134
|
breaks: true
|
|
123
135
|
};
|
|
124
|
-
const result =
|
|
136
|
+
const result = store.add(renderer.render(markdown.content, {
|
|
125
137
|
sanitizerConfig: MarkedKatexSupport.getSanitizerOptions({
|
|
126
138
|
allowedTags: allowedChatMarkdownHtmlTags,
|
|
127
139
|
allowedAttributes: allowedMarkdownHtmlAttributes
|
|
@@ -170,7 +182,7 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
170
182
|
}
|
|
171
183
|
}
|
|
172
184
|
if (languageId === "vscode-extensions") {
|
|
173
|
-
const chatExtensions =
|
|
185
|
+
const chatExtensions = store.add(instantiationService.createInstance(ChatExtensionsContentPart, {
|
|
174
186
|
kind: "extensions",
|
|
175
187
|
extensions: text.split(",")
|
|
176
188
|
}));
|
|
@@ -186,7 +198,13 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
186
198
|
try {
|
|
187
199
|
const parsedBody = parseLocalFileData(text);
|
|
188
200
|
range = parsedBody.range && Range.lift(parsedBody.range);
|
|
189
|
-
|
|
201
|
+
const modelRefPromise = this.textModelService.createModelReference(parsedBody.uri);
|
|
202
|
+
textModel = modelRefPromise.then(ref => {
|
|
203
|
+
if (!store.isDisposed) {
|
|
204
|
+
store.add(ref);
|
|
205
|
+
}
|
|
206
|
+
return ref.object.textEditorModel;
|
|
207
|
+
});
|
|
190
208
|
} catch (e) {
|
|
191
209
|
return $("div");
|
|
192
210
|
}
|
|
@@ -320,11 +338,11 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
320
338
|
})));
|
|
321
339
|
}
|
|
322
340
|
const markdownDecorationsRenderer = instantiationService.createInstance(ChatMarkdownDecorationsRenderer);
|
|
323
|
-
|
|
341
|
+
store.add(
|
|
324
342
|
markdownDecorationsRenderer.walkTreeAndAnnotateReferenceLinks(markdown, result.element)
|
|
325
343
|
);
|
|
326
344
|
const layoutParticipants = ( new Lazy(() => {
|
|
327
|
-
const observer =
|
|
345
|
+
const observer = store.add(( new DisposableResizeObserver(() => this.mathLayoutParticipants.forEach(layout => layout()))));
|
|
328
346
|
observer.observe(this.domNode);
|
|
329
347
|
return this.mathLayoutParticipants;
|
|
330
348
|
}));
|
|
@@ -343,16 +361,15 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
343
361
|
});
|
|
344
362
|
scrollable.scanDomNode();
|
|
345
363
|
}
|
|
346
|
-
orderedDisposablesList.reverse().forEach(d =>
|
|
364
|
+
orderedDisposablesList.reverse().forEach(d => store.add(d));
|
|
347
365
|
};
|
|
366
|
+
doRenderMarkdown();
|
|
348
367
|
if (enableMath && !MarkedKatexSupport.getExtension(getWindow(context.container))) {
|
|
349
|
-
MarkedKatexSupport.loadExtension(getWindow(context.container)).
|
|
350
|
-
console.error("Failed to load MarkedKatexSupport extension:", e);
|
|
351
|
-
}).finally(() => {
|
|
368
|
+
MarkedKatexSupport.loadExtension(getWindow(context.container)).then(() => {
|
|
352
369
|
doRenderMarkdown();
|
|
370
|
+
}).catch(e => {
|
|
371
|
+
console.error("Failed to load MarkedKatexSupport extension:", e);
|
|
353
372
|
});
|
|
354
|
-
} else {
|
|
355
|
-
doRenderMarkdown();
|
|
356
373
|
}
|
|
357
374
|
}
|
|
358
375
|
renderCodeBlockPill(sessionResource, requestId, inUndoStop, codemapperUri) {
|
|
@@ -376,7 +393,11 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
376
393
|
}).then(e => {
|
|
377
394
|
this._codeblocks[data.codeBlockPartIndex].codemapperUri = e.codemapperUri;
|
|
378
395
|
});
|
|
379
|
-
editorInfo.render(data, currentWidth)
|
|
396
|
+
editorInfo.render(data, currentWidth).then(() => {
|
|
397
|
+
if (!this._store.isDisposed && isRequestVM(data.element)) {
|
|
398
|
+
this._onDidChangeHeight.fire();
|
|
399
|
+
}
|
|
400
|
+
});
|
|
380
401
|
return ref;
|
|
381
402
|
}
|
|
382
403
|
hasSameContent(other) {
|
|
@@ -466,6 +487,16 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
466
487
|
this.pillElement.role = "button";
|
|
467
488
|
this.element.appendChild(this.statusIndicatorContainer);
|
|
468
489
|
this.element.appendChild(this.pillElement);
|
|
490
|
+
const updateCheckmarks = () => this.element.classList.toggle(
|
|
491
|
+
"show-checkmarks",
|
|
492
|
+
!!this.configurationService.getValue(AccessibilityWorkbenchSettingId.ShowChatCheckmarks)
|
|
493
|
+
);
|
|
494
|
+
updateCheckmarks();
|
|
495
|
+
this._register(this.configurationService.onDidChangeConfiguration(e => {
|
|
496
|
+
if (e.affectsConfiguration(AccessibilityWorkbenchSettingId.ShowChatCheckmarks)) {
|
|
497
|
+
updateCheckmarks();
|
|
498
|
+
}
|
|
499
|
+
}));
|
|
469
500
|
this.registerListeners();
|
|
470
501
|
}
|
|
471
502
|
registerListeners() {
|
|
@@ -559,7 +590,7 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
559
590
|
statusIconEl.classList.add(...statusIconClasses);
|
|
560
591
|
const entry = editSession.readEntry(uri, r);
|
|
561
592
|
const rwRatio = Math.floor((entry?.rewriteRatio.read(r) || 0) * 100);
|
|
562
|
-
statusLabelEl.textContent = ( localize(
|
|
593
|
+
statusLabelEl.textContent = ( localize(6430, "Applying edits"));
|
|
563
594
|
const showAnimation = this.configurationService.getValue(ChatConfiguration.ShowCodeBlockProgressAnimation);
|
|
564
595
|
if (showAnimation) {
|
|
565
596
|
progressFill.style.width = `${rwRatio}%`;
|
|
@@ -568,13 +599,13 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
568
599
|
} else {
|
|
569
600
|
progressFill.style.width = "0%";
|
|
570
601
|
this.pillElement.classList.remove("progress-filling");
|
|
571
|
-
labelDetail.textContent = rwRatio === 0 || !rwRatio ? ( localize(
|
|
602
|
+
labelDetail.textContent = rwRatio === 0 || !rwRatio ? ( localize(6431, "Generating edits...")) : ( localize(6432, "({0}%)...", rwRatio));
|
|
572
603
|
}
|
|
573
604
|
} else {
|
|
574
605
|
const statusCodeicon = Codicon.check;
|
|
575
606
|
statusIconClasses = ThemeIcon.asClassNameArray(statusCodeicon);
|
|
576
607
|
statusIconEl.classList.add(...statusIconClasses);
|
|
577
|
-
statusLabelEl.textContent = ( localize(
|
|
608
|
+
statusLabelEl.textContent = ( localize(6433, "Edited"));
|
|
578
609
|
const fileKind = uri.path.endsWith("/") ? FileKind.FOLDER : FileKind.FILE;
|
|
579
610
|
pillIconClasses = getIconClasses(this.modelService, this.languageService, uri, fileKind);
|
|
580
611
|
iconEl.classList.add(...pillIconClasses);
|
|
@@ -594,10 +625,10 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
594
625
|
this.currentDiff = changes;
|
|
595
626
|
labelAdded.textContent = `+${changes.added}`;
|
|
596
627
|
labelRemoved.textContent = `-${changes.removed}`;
|
|
597
|
-
const insertionsFragment = changes.added === 1 ? ( localize(
|
|
598
|
-
const deletionsFragment = changes.removed === 1 ? ( localize(
|
|
628
|
+
const insertionsFragment = changes.added === 1 ? ( localize(6434, "1 insertion")) : ( localize(6435, "{0} insertions", changes.added));
|
|
629
|
+
const deletionsFragment = changes.removed === 1 ? ( localize(6436, "1 deletion")) : ( localize(6437, "{0} deletions", changes.removed));
|
|
599
630
|
const summary = ( localize(
|
|
600
|
-
|
|
631
|
+
6438,
|
|
601
632
|
"Edited {0}, {1}, {2}",
|
|
602
633
|
iconText,
|
|
603
634
|
insertionsFragment,
|
|
@@ -96,19 +96,19 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
|
|
|
96
96
|
}
|
|
97
97
|
updateDetailedProgress(state) {
|
|
98
98
|
const skipText = createMarkdownCommandLink({
|
|
99
|
-
title: ( localize(
|
|
99
|
+
title: ( localize(6439, "Skip?")),
|
|
100
100
|
id: McpCommandIds.SkipCurrentAutostart
|
|
101
101
|
});
|
|
102
102
|
let content;
|
|
103
103
|
if (state.starting.length === 0) {
|
|
104
104
|
content = ( new MarkdownString(undefined, {
|
|
105
105
|
isTrusted: true
|
|
106
|
-
})).appendText(( localize(
|
|
106
|
+
})).appendText(( localize(6440, "Activating MCP extensions...")) + " ").appendMarkdown(skipText);
|
|
107
107
|
} else {
|
|
108
108
|
const serverLinks = this.createServerCommandLinks(state.starting);
|
|
109
109
|
content = ( new MarkdownString(undefined, {
|
|
110
110
|
isTrusted: true
|
|
111
|
-
})).appendMarkdown(( localize(
|
|
111
|
+
})).appendMarkdown(( localize(6441, "Starting MCP servers {0}...", serverLinks)) + " ").appendMarkdown(skipText);
|
|
112
112
|
}
|
|
113
113
|
if (this.workingProgressPart) {
|
|
114
114
|
this.workingProgressPart.updateMessage(content);
|
|
@@ -119,7 +119,8 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
|
|
|
119
119
|
}, this._markdownRendererService, this.context, true,
|
|
120
120
|
true,
|
|
121
121
|
undefined,
|
|
122
|
-
undefined
|
|
122
|
+
undefined,
|
|
123
|
+
false));
|
|
123
124
|
this.domNode.appendChild(this.workingProgressPart.domNode);
|
|
124
125
|
}
|
|
125
126
|
}
|
|
@@ -146,12 +147,12 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
|
|
|
146
147
|
const count = serversRequiringInteraction.length;
|
|
147
148
|
const links = this.createServerCommandLinks(serversRequiringInteraction);
|
|
148
149
|
const content = count === 1 ? ( localize(
|
|
149
|
-
|
|
150
|
+
6442,
|
|
150
151
|
"The MCP server {0} may have new tools and requires interaction to start. [Start it now?]({1})",
|
|
151
152
|
links,
|
|
152
153
|
"#start"
|
|
153
154
|
)) : ( localize(
|
|
154
|
-
|
|
155
|
+
6443,
|
|
155
156
|
"The MCP servers {0} may have new tools and require interaction to start. [Start them now?]({1})",
|
|
156
157
|
links,
|
|
157
158
|
"#start"
|
|
@@ -193,7 +194,7 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
|
|
|
193
194
|
const serversToStart = state.serversRequiringInteraction;
|
|
194
195
|
for (let i = 0; i < serversToStart.length; i++) {
|
|
195
196
|
const serverInfo = serversToStart[i];
|
|
196
|
-
startLink.textContent = ( localize(
|
|
197
|
+
startLink.textContent = ( localize(6444, "Starting {0}...", serverInfo.label));
|
|
197
198
|
const server = this.mcpService.servers.get().find(s => s.definition.id === serverInfo.id);
|
|
198
199
|
if (server) {
|
|
199
200
|
await startServerAndWaitForLiveTools(server, {
|
|
@@ -64,7 +64,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
|
|
|
64
64
|
const viewListButton = ( new ButtonWithIcon(viewListButtonContainer, {}));
|
|
65
65
|
this._register(autorun(reader => {
|
|
66
66
|
const fileCount = this.diffData.read(reader).resources.length;
|
|
67
|
-
viewListButton.label = fileCount === 1 ? ( localize(
|
|
67
|
+
viewListButton.label = fileCount === 1 ? ( localize(6445, "Changed 1 file")) : ( localize(6446, "Changed {0} files", fileCount));
|
|
68
68
|
}));
|
|
69
69
|
const setExpansionState = () => {
|
|
70
70
|
viewListButton.icon = this.isCollapsed ? Codicon.chevronRight : Codicon.chevronDown;
|
|
@@ -86,7 +86,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
|
|
|
86
86
|
renderViewAllFileChangesButton(container) {
|
|
87
87
|
const button = container.appendChild($(".chat-view-changes-icon"));
|
|
88
88
|
button.classList.add(...ThemeIcon.asClassNameArray(Codicon.diffMultiple));
|
|
89
|
-
button.title = ( localize(
|
|
89
|
+
button.title = ( localize(6447, "Open Changes"));
|
|
90
90
|
return addDisposableListener(button, "click", e => {
|
|
91
91
|
const source = ( URI.parse(`multi-diff-editor:${( ( new Date()).getMilliseconds().toString()) + ( Math.random().toString())}`));
|
|
92
92
|
const {
|
|
@@ -143,7 +143,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
|
|
|
143
143
|
alwaysConsumeMouseWheel: false,
|
|
144
144
|
accessibilityProvider: {
|
|
145
145
|
getAriaLabel: element => element.uri.path,
|
|
146
|
-
getWidgetAriaLabel: () => ( localize(
|
|
146
|
+
getWidgetAriaLabel: () => ( localize(6448, "File Changes"))
|
|
147
147
|
}
|
|
148
148
|
})
|
|
149
149
|
);
|
|
@@ -259,7 +259,7 @@ class ChatMultiDiffListRenderer {
|
|
|
259
259
|
const removedElement = changesSummary.appendChild($(".deletions"));
|
|
260
260
|
removedElement.textContent = `-${element.diff.removed}`;
|
|
261
261
|
changesSummary.setAttribute("aria-label", ( localize(
|
|
262
|
-
|
|
262
|
+
6449,
|
|
263
263
|
"{0} lines added, {1} lines removed",
|
|
264
264
|
element.diff.added,
|
|
265
265
|
element.diff.removed
|
|
@@ -21,10 +21,11 @@ export declare class ChatProgressContentPart extends Disposable implements IChat
|
|
|
21
21
|
private readonly showSpinner;
|
|
22
22
|
private readonly isHidden;
|
|
23
23
|
private readonly renderedMessage;
|
|
24
|
+
private readonly _fileWidgetStore;
|
|
24
25
|
private currentContent;
|
|
25
26
|
constructor(progress: IChatProgressMessage | IChatTask | IChatTaskSerialized | {
|
|
26
27
|
content: IMarkdownString;
|
|
27
|
-
}, chatContentMarkdownRenderer: IMarkdownRenderer, context: IChatContentPartRenderContext, forceShowSpinner: boolean | undefined, forceShowMessage: boolean | undefined, icon: ThemeIcon | undefined, toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized | undefined, instantiationService: IInstantiationService, chatMarkdownAnchorService: IChatMarkdownAnchorService, configurationService: IConfigurationService);
|
|
28
|
+
}, chatContentMarkdownRenderer: IMarkdownRenderer, context: IChatContentPartRenderContext, forceShowSpinner: boolean | undefined, forceShowMessage: boolean | undefined, icon: ThemeIcon | undefined, toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized | undefined, shimmer: boolean | undefined, instantiationService: IInstantiationService, chatMarkdownAnchorService: IChatMarkdownAnchorService, configurationService: IConfigurationService);
|
|
28
29
|
updateMessage(content: MarkdownString): void;
|
|
29
30
|
hasSameContent(other: IChatRendererContent, followingContent: IChatRendererContent[], element: ChatTreeItem): boolean;
|
|
30
31
|
private createApprovalMessage;
|
|
@@ -4,7 +4,7 @@ import { $, append } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/d
|
|
|
4
4
|
import { alert } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
|
|
5
5
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
6
6
|
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
7
|
-
import { Disposable, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
7
|
+
import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
8
8
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
9
9
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
10
10
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
@@ -28,6 +28,7 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
|
|
|
28
28
|
forceShowMessage,
|
|
29
29
|
icon,
|
|
30
30
|
toolInvocation,
|
|
31
|
+
shimmer,
|
|
31
32
|
instantiationService,
|
|
32
33
|
chatMarkdownAnchorService,
|
|
33
34
|
configurationService
|
|
@@ -39,6 +40,7 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
|
|
|
39
40
|
this.chatMarkdownAnchorService = chatMarkdownAnchorService;
|
|
40
41
|
this.configurationService = configurationService;
|
|
41
42
|
this.renderedMessage = this._register(( new MutableDisposable()));
|
|
43
|
+
this._fileWidgetStore = this._register(( new DisposableStore()));
|
|
42
44
|
this.currentContent = progress.content;
|
|
43
45
|
const followingContent = context.content.slice(context.contentIndex + 1);
|
|
44
46
|
this.showSpinner = forceShowSpinner ?? shouldShowSpinner(followingContent, context.element);
|
|
@@ -50,20 +52,25 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
|
|
|
50
52
|
if (this.showSpinner && !this.configurationService.getValue(AccessibilityWorkbenchSettingId.VerboseChatProgressUpdates)) {
|
|
51
53
|
alert(progress.content.value);
|
|
52
54
|
}
|
|
53
|
-
const
|
|
55
|
+
const isLoadingIcon = icon && ThemeIcon.isEqual(icon, ThemeIcon.modify(Codicon.loading, "spin"));
|
|
56
|
+
const useShimmer = (shimmer ?? (!icon || isLoadingIcon)) && this.showSpinner;
|
|
57
|
+
const codicon = useShimmer ? Codicon.check : (icon ?? (this.showSpinner ? ThemeIcon.modify(Codicon.loading, "spin") : Codicon.check));
|
|
54
58
|
const result = this.chatContentMarkdownRenderer.render(progress.content);
|
|
55
59
|
result.element.classList.add("progress-step");
|
|
56
60
|
renderFileWidgets(
|
|
57
61
|
result.element,
|
|
58
62
|
this.instantiationService,
|
|
59
63
|
this.chatMarkdownAnchorService,
|
|
60
|
-
this.
|
|
64
|
+
this._fileWidgetStore
|
|
61
65
|
);
|
|
62
66
|
const tooltip = this.createApprovalMessage();
|
|
63
67
|
const progressPart = this._register(
|
|
64
68
|
instantiationService.createInstance(ChatProgressSubPart, result.element, codicon, tooltip)
|
|
65
69
|
);
|
|
66
70
|
this.domNode = progressPart.domNode;
|
|
71
|
+
if (useShimmer) {
|
|
72
|
+
this.domNode.classList.add("shimmer-progress");
|
|
73
|
+
}
|
|
67
74
|
this.renderedMessage.value = result;
|
|
68
75
|
}
|
|
69
76
|
updateMessage(content) {
|
|
@@ -72,11 +79,12 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
|
|
|
72
79
|
}
|
|
73
80
|
const result = this._register(this.chatContentMarkdownRenderer.render(content));
|
|
74
81
|
result.element.classList.add("progress-step");
|
|
82
|
+
this._fileWidgetStore.clear();
|
|
75
83
|
renderFileWidgets(
|
|
76
84
|
result.element,
|
|
77
85
|
this.instantiationService,
|
|
78
86
|
this.chatMarkdownAnchorService,
|
|
79
|
-
this.
|
|
87
|
+
this._fileWidgetStore
|
|
80
88
|
);
|
|
81
89
|
if (this.renderedMessage.value) {
|
|
82
90
|
this.renderedMessage.value.element.replaceWith(result.element);
|
|
@@ -99,7 +107,7 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
|
|
|
99
107
|
return this.toolInvocation && getToolApprovalMessage(this.toolInvocation);
|
|
100
108
|
}
|
|
101
109
|
};
|
|
102
|
-
ChatProgressContentPart = ( __decorate([( __param(
|
|
110
|
+
ChatProgressContentPart = ( __decorate([( __param(8, IInstantiationService)), ( __param(9, IChatMarkdownAnchorService)), ( __param(10, IConfigurationService))], ChatProgressContentPart));
|
|
103
111
|
function shouldShowSpinner(followingContent, element) {
|
|
104
112
|
return isResponseVM(element) && !element.isComplete && followingContent.length === 0;
|
|
105
113
|
}
|
|
@@ -114,6 +122,10 @@ let ChatProgressSubPart = class ChatProgressSubPart extends Disposable {
|
|
|
114
122
|
content: tooltip,
|
|
115
123
|
style: HoverStyle.Pointer
|
|
116
124
|
}));
|
|
125
|
+
this._register(hoverService.setupDelayedHover(messageElement, {
|
|
126
|
+
content: tooltip,
|
|
127
|
+
style: HoverStyle.Pointer
|
|
128
|
+
}));
|
|
117
129
|
}
|
|
118
130
|
append(this.domNode, iconElement);
|
|
119
131
|
messageElement.classList.add("progress-step");
|
|
@@ -133,7 +145,7 @@ let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extend
|
|
|
133
145
|
) {
|
|
134
146
|
const progressMessage = {
|
|
135
147
|
kind: "progressMessage",
|
|
136
|
-
content: ( new MarkdownString()).appendText(( localize(
|
|
148
|
+
content: ( new MarkdownString()).appendText(( localize(6450, "Working")))
|
|
137
149
|
};
|
|
138
150
|
super(
|
|
139
151
|
progressMessage,
|
|
@@ -143,14 +155,14 @@ let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extend
|
|
|
143
155
|
undefined,
|
|
144
156
|
undefined,
|
|
145
157
|
undefined,
|
|
158
|
+
true,
|
|
146
159
|
instantiationService,
|
|
147
160
|
chatMarkdownAnchorService,
|
|
148
161
|
configurationService
|
|
149
162
|
);
|
|
150
|
-
this.domNode.classList.add("working-progress");
|
|
151
163
|
this._register(languageModelToolsService.onDidPrepareToolCallBecomeUnresponsive(e => {
|
|
152
164
|
if (isEqual(context.element.sessionResource, e.sessionResource)) {
|
|
153
|
-
this.updateMessage(( new MarkdownString(( localize(
|
|
165
|
+
this.updateMessage(( new MarkdownString(( localize(6451, "Waiting for tool '{0}' to respond...", e.toolData.displayName)))));
|
|
154
166
|
}
|
|
155
167
|
}));
|
|
156
168
|
}
|