@codingame/monaco-vscode-katex-common 26.2.2 → 28.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 +37 -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 +576 -0
- package/vscode/src/vs/{workbench/contrib → platform}/mcp/common/modelContextProtocolApps.js +1 -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 +176 -17
- 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 +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +127 -64
- 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/agentSessionApprovalModel.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +106 -0
- 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 +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +105 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +69 -43
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +35 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +187 -78
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +138 -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 +394 -87
- 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 +113 -116
- 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/chatEditing/media/chatEditingEditorOverlay.css +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +1 -1
- 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 +30 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +250 -132
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +1 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -110
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.d.ts +1 -1
- 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.d.ts +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 +2 -4
- 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.d.ts +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/chatCollapsibleContentPart.d.ts +4 -2
- 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 +3 -2
- 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.d.ts +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.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +59 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.js +29 -0
- 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.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.d.ts +1 -1
- 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 +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +7 -6
- 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 +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +53 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.js +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.d.ts +1 -1
- 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.d.ts +1 -1
- 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 +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +24 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +4 -4
- 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 +62 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +414 -129
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -1
- 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 +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +19 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +263 -0
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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 +11 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +252 -80
- 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 +246 -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 +6 -4
- 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.d.ts +3 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +6 -260
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.d.ts +1 -1
- 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.d.ts +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 +65 -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 +356 -415
- 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 +68 -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 +5 -2
- 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.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -2
- 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.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +57 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +24 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatResultListSubPart.d.ts +1 -1
- 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.d.ts +1 -1
- 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 +44 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +85 -89
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +3 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +15 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +4 -2
- 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.d.ts +1 -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.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +2 -2
- 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.d.ts +1 -1
- 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.d.ts +1 -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 +21 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +341 -88
- 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 +440 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +24 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +437 -241
- 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 +77 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +521 -284
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +71 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +664 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +104 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +127 -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 +4 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +89 -49
- 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 +87 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +213 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +15 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +7 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +563 -140
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +35 -26
- 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 +26 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +26 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +145 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +36 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +35 -15
- 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 +127 -30
- 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 +6 -6
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +96 -34
- 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 +2 -44
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +28 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +84 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +9 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +58 -41
- 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/terminal/browser/chatTerminalCommandMirror.js +6 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +0 -187
|
@@ -6,13 +6,15 @@ import { alert } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/ar
|
|
|
6
6
|
import { DomScrollableElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
|
|
7
7
|
import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
|
|
8
8
|
import { IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
9
|
-
import {
|
|
9
|
+
import { ChatConfiguration, ThinkingDisplayMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
10
10
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
11
11
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
12
|
+
import { AccessibilityWorkbenchSettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
12
13
|
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
13
14
|
import { extractCodeblockUrisFromText } from '../../../common/widget/annotations.js';
|
|
14
15
|
import { basename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
15
16
|
import { ChatCollapsibleContentPart } from './chatCollapsibleContentPart.js';
|
|
17
|
+
import { renderFileWidgets } from './chatInlineAnchorWidget.js';
|
|
16
18
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
17
19
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
18
20
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
@@ -24,7 +26,6 @@ import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/
|
|
|
24
26
|
import { IChatMarkdownAnchorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service';
|
|
25
27
|
import { ChatMessageRole } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
26
28
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
27
|
-
import { ExtensionIdentifier } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
|
|
28
29
|
import * as chatThinkingContent from './media/chatThinkingContent.css';
|
|
29
30
|
import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
|
|
30
31
|
import { mainWindow } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/window';
|
|
@@ -43,7 +44,7 @@ function getToolInvocationIcon(toolId) {
|
|
|
43
44
|
if (lowerToolId.includes("read") || lowerToolId.includes("get_file") || lowerToolId.includes("problems")) {
|
|
44
45
|
return Codicon.book;
|
|
45
46
|
}
|
|
46
|
-
if (lowerToolId.includes("edit") || lowerToolId.includes("create")) {
|
|
47
|
+
if (lowerToolId.includes("edit") || lowerToolId.includes("create") || lowerToolId.includes("replace")) {
|
|
47
48
|
return Codicon.pencil;
|
|
48
49
|
}
|
|
49
50
|
if (lowerToolId.includes("terminal")) {
|
|
@@ -67,25 +68,38 @@ var WorkingMessageCategory;
|
|
|
67
68
|
WorkingMessageCategory["Terminal"] = "terminal";
|
|
68
69
|
WorkingMessageCategory["Tool"] = "tool";
|
|
69
70
|
})(WorkingMessageCategory || (WorkingMessageCategory = {}));
|
|
70
|
-
const
|
|
71
|
-
const terminalMessages = [( localize(
|
|
72
|
-
const toolMessages = [( localize(
|
|
71
|
+
const defaultThinkingMessages = [( localize(6595, "Thinking")), ( localize(6596, "Reasoning")), ( localize(6597, "Considering")), ( localize(6598, "Analyzing")), ( localize(6599, "Evaluating"))];
|
|
72
|
+
const terminalMessages = [( localize(6600, "Executing")), ( localize(6601, "Running")), ( localize(6602, "Processing"))];
|
|
73
|
+
const toolMessages = [( localize(6603, "Processing")), ( localize(6604, "Preparing")), ( localize(6605, "Loading")), ( localize(6606, "Analyzing")), ( localize(6607, "Evaluating"))];
|
|
73
74
|
let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsibleContentPart {
|
|
74
75
|
getRandomWorkingMessage(category = WorkingMessageCategory.Tool) {
|
|
75
76
|
let pool = this.availableMessagesByCategory.get(category);
|
|
76
77
|
if (!pool || pool.length === 0) {
|
|
78
|
+
let defaults;
|
|
77
79
|
switch (category) {
|
|
78
80
|
case WorkingMessageCategory.Thinking:
|
|
79
|
-
|
|
81
|
+
defaults = [...defaultThinkingMessages];
|
|
80
82
|
break;
|
|
81
83
|
case WorkingMessageCategory.Terminal:
|
|
82
|
-
|
|
84
|
+
defaults = [...terminalMessages];
|
|
83
85
|
break;
|
|
84
86
|
case WorkingMessageCategory.Tool:
|
|
85
87
|
default:
|
|
86
|
-
|
|
88
|
+
defaults = [...toolMessages];
|
|
87
89
|
break;
|
|
88
90
|
}
|
|
91
|
+
const config = this.configurationService.getValue(ChatConfiguration.ThinkingPhrases);
|
|
92
|
+
const customPhrases = Array.isArray(config?.phrases) ? ( config.phrases.filter(phrase => typeof phrase === "string").map(phrase => phrase.trim())).filter(phrase => phrase.length > 0) : [];
|
|
93
|
+
const mode = config?.mode === "replace" ? "replace" : "append";
|
|
94
|
+
if (customPhrases.length > 0) {
|
|
95
|
+
if (mode === "replace") {
|
|
96
|
+
pool = [...customPhrases];
|
|
97
|
+
} else {
|
|
98
|
+
pool = [...defaults, ...customPhrases];
|
|
99
|
+
}
|
|
100
|
+
} else {
|
|
101
|
+
pool = defaults;
|
|
102
|
+
}
|
|
89
103
|
this.availableMessagesByCategory.set(category, pool);
|
|
90
104
|
}
|
|
91
105
|
const index = Math.floor(Math.random() * pool.length);
|
|
@@ -103,8 +117,8 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
103
117
|
hoverService
|
|
104
118
|
) {
|
|
105
119
|
const initialText = extractTextFromPart(content);
|
|
106
|
-
const extractedTitle = extractTitleFromThinkingContent(initialText) ?? "Working
|
|
107
|
-
super(extractedTitle, context, undefined, hoverService);
|
|
120
|
+
const extractedTitle = extractTitleFromThinkingContent(initialText) ?? "Working";
|
|
121
|
+
super(extractedTitle, context, undefined, hoverService, configurationService);
|
|
108
122
|
this.chatContentMarkdownRenderer = chatContentMarkdownRenderer;
|
|
109
123
|
this.streamingCompleted = streamingCompleted;
|
|
110
124
|
this.instantiationService = instantiationService;
|
|
@@ -112,7 +126,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
112
126
|
this.chatMarkdownAnchorService = chatMarkdownAnchorService;
|
|
113
127
|
this.languageModelsService = languageModelsService;
|
|
114
128
|
this._onDidChangeHeight = this._register(( new Emitter()));
|
|
115
|
-
this.defaultTitle = ( localize(
|
|
129
|
+
this.defaultTitle = ( localize(6608, "Working"));
|
|
116
130
|
this.fixedScrollingMode = false;
|
|
117
131
|
this.autoScrollEnabled = true;
|
|
118
132
|
this.extractedTitles = [];
|
|
@@ -120,6 +134,8 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
120
134
|
this.appendedItemCount = 0;
|
|
121
135
|
this.isActive = true;
|
|
122
136
|
this.toolInvocations = [];
|
|
137
|
+
this.allThinkingParts = [];
|
|
138
|
+
this.hookCount = 0;
|
|
123
139
|
this.lazyItems = [];
|
|
124
140
|
this.hasExpandedOnce = false;
|
|
125
141
|
this.availableMessagesByCategory = ( new Map());
|
|
@@ -129,6 +145,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
129
145
|
this.isUpdatingDimensions = false;
|
|
130
146
|
this.id = content.id;
|
|
131
147
|
this.content = content;
|
|
148
|
+
this.allThinkingParts.push(content);
|
|
132
149
|
const configuredMode = this.configurationService.getValue("chat.agent.thinkingStyle") ?? ThinkingDisplayMode.Collapsed;
|
|
133
150
|
this.fixedScrollingMode = configuredMode === ThinkingDisplayMode.FixedScrolling;
|
|
134
151
|
this.currentTitle = extractedTitle;
|
|
@@ -139,7 +156,9 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
139
156
|
if (initialText.trim()) {
|
|
140
157
|
this.appendedItemCount++;
|
|
141
158
|
}
|
|
142
|
-
|
|
159
|
+
if (this.configurationService.getValue(AccessibilityWorkbenchSettingId.VerboseChatProgressUpdates)) {
|
|
160
|
+
alert(( localize(6609, "Thinking")));
|
|
161
|
+
}
|
|
143
162
|
if (configuredMode === ThinkingDisplayMode.Collapsed) {
|
|
144
163
|
this.setExpanded(false);
|
|
145
164
|
} else if (configuredMode === ThinkingDisplayMode.CollapsedPreview) {
|
|
@@ -149,6 +168,18 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
149
168
|
}
|
|
150
169
|
const node = this.domNode;
|
|
151
170
|
node.classList.add("chat-thinking-box");
|
|
171
|
+
if (!this.streamingCompleted && !this.element.isComplete) {
|
|
172
|
+
if (!this.fixedScrollingMode) {
|
|
173
|
+
node.classList.add("chat-thinking-active");
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (!this.fixedScrollingMode && !this.streamingCompleted && !this.element.isComplete && this._collapseButton) {
|
|
177
|
+
const labelElement = this._collapseButton.labelElement;
|
|
178
|
+
labelElement.textContent = "";
|
|
179
|
+
this.titleShimmerSpan = $("span.chat-thinking-title-shimmer");
|
|
180
|
+
this.titleShimmerSpan.textContent = extractedTitle;
|
|
181
|
+
labelElement.appendChild(this.titleShimmerSpan);
|
|
182
|
+
}
|
|
152
183
|
if (this.fixedScrollingMode) {
|
|
153
184
|
node.classList.add("chat-thinking-fixed-mode");
|
|
154
185
|
this.currentTitle = this.defaultTitle;
|
|
@@ -162,18 +193,23 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
162
193
|
if (isExpanded) {
|
|
163
194
|
this._collapseButton.icon = Codicon.chevronDown;
|
|
164
195
|
} else {
|
|
165
|
-
this._collapseButton.icon =
|
|
196
|
+
this._collapseButton.icon = Codicon.circleFilled;
|
|
166
197
|
}
|
|
167
198
|
}
|
|
168
199
|
}
|
|
169
200
|
}));
|
|
170
201
|
this._register(autorun(r => {
|
|
171
|
-
|
|
202
|
+
const isExpanded = this._isExpanded.read(r);
|
|
203
|
+
if (isExpanded && !this.hasExpandedOnce && this.lazyItems.length > 0) {
|
|
172
204
|
this.hasExpandedOnce = true;
|
|
173
205
|
for (const item of this.lazyItems) {
|
|
174
206
|
this.materializeLazyItem(item);
|
|
175
207
|
}
|
|
176
208
|
}
|
|
209
|
+
if (isExpanded && !this.shouldAllowExpansion()) {
|
|
210
|
+
this.setExpanded(false);
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
177
213
|
this._onDidChangeHeight.fire();
|
|
178
214
|
}));
|
|
179
215
|
const label = this.lastExtractedTitle ?? "";
|
|
@@ -189,10 +225,13 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
189
225
|
if (expanded) {
|
|
190
226
|
this.setTitle(this.defaultTitle, true);
|
|
191
227
|
this.currentTitle = this.defaultTitle;
|
|
192
|
-
} else
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
228
|
+
} else {
|
|
229
|
+
if (this.lastExtractedTitle) {
|
|
230
|
+
this.setTitle(this.lastExtractedTitle);
|
|
231
|
+
} else {
|
|
232
|
+
this.setTitle(this.defaultTitle, true);
|
|
233
|
+
this.currentTitle = this.defaultTitle;
|
|
234
|
+
}
|
|
196
235
|
}
|
|
197
236
|
}));
|
|
198
237
|
}
|
|
@@ -213,7 +252,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
213
252
|
}
|
|
214
253
|
if (!this.streamingCompleted && !this.element.isComplete) {
|
|
215
254
|
this.workingSpinnerElement = $(".chat-thinking-item.chat-thinking-spinner-item");
|
|
216
|
-
const spinnerIcon = createThinkingIcon(
|
|
255
|
+
const spinnerIcon = createThinkingIcon(Codicon.circleFilled);
|
|
217
256
|
this.workingSpinnerElement.appendChild(spinnerIcon);
|
|
218
257
|
this.workingSpinnerLabel = $("span.chat-thinking-spinner-label");
|
|
219
258
|
this.workingSpinnerLabel.textContent = this.getRandomWorkingMessage(WorkingMessageCategory.Thinking);
|
|
@@ -308,6 +347,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
308
347
|
height: viewportHeight,
|
|
309
348
|
scrollHeight: contentHeight
|
|
310
349
|
});
|
|
350
|
+
this.updateDropdownClickability(contentHeight);
|
|
311
351
|
}
|
|
312
352
|
scrollToBottom() {
|
|
313
353
|
if (!this.scrollableElement) {
|
|
@@ -381,21 +421,44 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
381
421
|
}
|
|
382
422
|
}
|
|
383
423
|
}
|
|
424
|
+
setFinalizedTitle(title) {
|
|
425
|
+
if (!this._collapseButton) {
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
const labelElement = this._collapseButton.labelElement;
|
|
429
|
+
labelElement.textContent = "";
|
|
430
|
+
const firstSpaceIndex = title.indexOf(" ");
|
|
431
|
+
if (firstSpaceIndex === -1) {
|
|
432
|
+
labelElement.textContent = title;
|
|
433
|
+
} else {
|
|
434
|
+
const verb = title.substring(0, firstSpaceIndex);
|
|
435
|
+
const rest = title.substring(firstSpaceIndex);
|
|
436
|
+
const verbSpan = $("span");
|
|
437
|
+
verbSpan.textContent = verb;
|
|
438
|
+
labelElement.appendChild(verbSpan);
|
|
439
|
+
const restSpan = $("span.chat-thinking-title-detail-text");
|
|
440
|
+
restSpan.textContent = rest;
|
|
441
|
+
labelElement.appendChild(restSpan);
|
|
442
|
+
}
|
|
443
|
+
this._collapseButton.element.ariaLabel = title;
|
|
444
|
+
}
|
|
384
445
|
setDropdownClickable(clickable) {
|
|
385
446
|
if (this._collapseButton) {
|
|
386
447
|
this._collapseButton.element.style.pointerEvents = clickable ? "auto" : "none";
|
|
387
448
|
}
|
|
388
449
|
if (!clickable && this.streamingCompleted) {
|
|
389
|
-
|
|
450
|
+
this.setFinalizedTitle(this.lastExtractedTitle ?? this.currentTitle);
|
|
390
451
|
}
|
|
391
452
|
}
|
|
392
|
-
|
|
393
|
-
if (
|
|
394
|
-
return;
|
|
453
|
+
shouldAllowExpansion() {
|
|
454
|
+
if (this.toolInvocationCount > 0 || this.lazyItems.length > 0) {
|
|
455
|
+
return true;
|
|
395
456
|
}
|
|
396
|
-
if (this.wrapper
|
|
397
|
-
this.
|
|
398
|
-
|
|
457
|
+
if (this.wrapper) {
|
|
458
|
+
const meaningfulChildren = Array.from(this.wrapper.children).filter(child => child !== this.workingSpinnerElement).length;
|
|
459
|
+
if (meaningfulChildren > 1) {
|
|
460
|
+
return true;
|
|
461
|
+
}
|
|
399
462
|
}
|
|
400
463
|
const contentWithoutTitle = this.currentThinkingValue.trim();
|
|
401
464
|
const titleToCompare = this.lastExtractedTitle ?? this.currentTitle;
|
|
@@ -403,8 +466,20 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
403
466
|
return text.replace(/\*\*(.+?)\*\*/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/`(.+?)`/g, "$1").trim();
|
|
404
467
|
};
|
|
405
468
|
const strippedContent = stripMarkdown(contentWithoutTitle);
|
|
406
|
-
|
|
407
|
-
|
|
469
|
+
return !(!strippedContent || strippedContent === titleToCompare);
|
|
470
|
+
}
|
|
471
|
+
updateDropdownClickability(knownContentHeight) {
|
|
472
|
+
let allowExpansion = this.shouldAllowExpansion();
|
|
473
|
+
if (allowExpansion && this.fixedScrollingMode && !this.streamingCompleted && !this.element.isComplete && this.wrapper) {
|
|
474
|
+
const contentHeight = knownContentHeight ?? this.wrapper.scrollHeight;
|
|
475
|
+
if (contentHeight <= THINKING_SCROLL_MAX_HEIGHT) {
|
|
476
|
+
allowExpansion = false;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
if (!allowExpansion && this.isExpanded()) {
|
|
480
|
+
this.setExpanded(false);
|
|
481
|
+
}
|
|
482
|
+
this.setDropdownClickable(allowExpansion);
|
|
408
483
|
}
|
|
409
484
|
appendToWrapper(element) {
|
|
410
485
|
if (!this.wrapper) {
|
|
@@ -466,6 +541,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
466
541
|
}
|
|
467
542
|
markAsInactive() {
|
|
468
543
|
this.isActive = false;
|
|
544
|
+
this.domNode.classList.remove("chat-thinking-active");
|
|
469
545
|
this.processPendingRemovals();
|
|
470
546
|
if (this.workingSpinnerElement) {
|
|
471
547
|
this.workingSpinnerElement.remove();
|
|
@@ -478,6 +554,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
478
554
|
if (this.wrapper) {
|
|
479
555
|
this.wrapper.classList.remove("chat-thinking-streaming");
|
|
480
556
|
}
|
|
557
|
+
this.domNode.classList.remove("chat-thinking-active");
|
|
481
558
|
this.streamingCompleted = true;
|
|
482
559
|
if (this.mutationObserverDisposable) {
|
|
483
560
|
this.mutationObserverDisposable.dispose();
|
|
@@ -495,25 +572,42 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
495
572
|
this.updateDropdownClickability();
|
|
496
573
|
if (this.content.generatedTitle) {
|
|
497
574
|
this.currentTitle = this.content.generatedTitle;
|
|
498
|
-
|
|
575
|
+
this.setFinalizedTitle(this.content.generatedTitle);
|
|
499
576
|
return;
|
|
500
577
|
}
|
|
501
|
-
const
|
|
502
|
-
if (
|
|
503
|
-
this.currentTitle =
|
|
504
|
-
this.content.generatedTitle =
|
|
505
|
-
|
|
578
|
+
const existingTitle = this.toolInvocations.find(t => t.generatedTitle)?.generatedTitle ?? this.allThinkingParts.find(t => t.generatedTitle)?.generatedTitle;
|
|
579
|
+
if (existingTitle) {
|
|
580
|
+
this.currentTitle = existingTitle;
|
|
581
|
+
this.content.generatedTitle = existingTitle;
|
|
582
|
+
this.setGeneratedTitleOnAllParts(existingTitle);
|
|
583
|
+
this.setFinalizedTitle(existingTitle);
|
|
506
584
|
return;
|
|
507
585
|
}
|
|
508
|
-
if (this.appendedItemCount === 1 && this.currentThinkingValue.trim() === ""
|
|
509
|
-
this.
|
|
510
|
-
|
|
586
|
+
if (this.appendedItemCount === 1 && this.currentThinkingValue.trim() === "") {
|
|
587
|
+
if (!this.singleItemInfo) {
|
|
588
|
+
const lazyItem = this.lazyItems.find(item => item.kind === "tool" && item.originalParent);
|
|
589
|
+
if (lazyItem && lazyItem.kind === "tool") {
|
|
590
|
+
const result = lazyItem.lazy.value;
|
|
591
|
+
this.singleItemInfo = {
|
|
592
|
+
element: result.domNode,
|
|
593
|
+
originalParent: lazyItem.originalParent,
|
|
594
|
+
originalNextSibling: this.domNode
|
|
595
|
+
};
|
|
596
|
+
if (result.disposable) {
|
|
597
|
+
this._register(result.disposable);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
if (this.singleItemInfo && this.restoreSingleItemToOriginalPosition()) {
|
|
602
|
+
return;
|
|
603
|
+
}
|
|
511
604
|
}
|
|
512
605
|
if (this.extractedTitles.length === 1 && this.toolInvocationCount === 0) {
|
|
513
606
|
const title = this.extractedTitles[0];
|
|
514
607
|
this.currentTitle = title;
|
|
515
608
|
this.content.generatedTitle = title;
|
|
516
|
-
|
|
609
|
+
this.setGeneratedTitleOnAllParts(title);
|
|
610
|
+
this.setFinalizedTitle(title);
|
|
517
611
|
return;
|
|
518
612
|
}
|
|
519
613
|
const generateTitles = this.configurationService.getValue(ChatConfiguration.ThinkingGenerateTitles) ?? true;
|
|
@@ -523,25 +617,22 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
523
617
|
}
|
|
524
618
|
this.generateTitleViaLLM();
|
|
525
619
|
}
|
|
526
|
-
|
|
620
|
+
setGeneratedTitleOnAllParts(title) {
|
|
527
621
|
for (const toolInvocation of this.toolInvocations) {
|
|
528
622
|
toolInvocation.generatedTitle = title;
|
|
529
623
|
}
|
|
624
|
+
for (const thinkingPart of this.allThinkingParts) {
|
|
625
|
+
thinkingPart.generatedTitle = title;
|
|
626
|
+
}
|
|
530
627
|
}
|
|
531
628
|
async generateTitleViaLLM() {
|
|
532
629
|
const cts = ( new CancellationTokenSource());
|
|
533
630
|
const timeout = setTimeout(() => cts.cancel(), 5000);
|
|
534
631
|
try {
|
|
535
|
-
|
|
632
|
+
const models = await this.languageModelsService.selectLanguageModels({
|
|
536
633
|
vendor: "copilot",
|
|
537
634
|
id: "copilot-fast"
|
|
538
635
|
});
|
|
539
|
-
if (!models.length) {
|
|
540
|
-
models = await this.languageModelsService.selectLanguageModels({
|
|
541
|
-
vendor: "copilot",
|
|
542
|
-
family: "gpt-4o-mini"
|
|
543
|
-
});
|
|
544
|
-
}
|
|
545
636
|
if (!models.length) {
|
|
546
637
|
this.setFallbackTitle();
|
|
547
638
|
return;
|
|
@@ -561,6 +652,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
561
652
|
OUTPUT FORMAT:
|
|
562
653
|
- MUST be a single sentence
|
|
563
654
|
- MUST be under 10 words
|
|
655
|
+
- The FIRST word MUST be a past tense verb (e.g. "Updated", "Reviewed", "Created", "Searched", "Analyzed")
|
|
564
656
|
- No quotes, no trailing punctuation
|
|
565
657
|
|
|
566
658
|
GENERAL:
|
|
@@ -582,13 +674,13 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
582
674
|
- For reasoning/thinking: "Considered", "Planned", "Analyzed", "Reviewed", "Evaluated"
|
|
583
675
|
- Choose the synonym that best fits the context
|
|
584
676
|
|
|
585
|
-
|
|
586
|
-
-
|
|
587
|
-
-
|
|
588
|
-
|
|
589
|
-
|
|
677
|
+
${this.hookCount > 0 ? `BLOCKED/DENIED CONTENT (hooks detected):
|
|
678
|
+
- Only mention "blocked" if the content explicitly includes hook results that blocked or warned about a tool (e.g. "Blocked terminal" or "Warning for read_file")
|
|
679
|
+
- If blocked items are present alongside normal tool calls, briefly note the block but do NOT let it dominate the summary: e.g. "Updated file.ts, blocked terminal"
|
|
680
|
+
|
|
681
|
+
` : `IMPORTANT: Do NOT use words like "blocked", "denied", or "tried" in the summary - there are no hooks or blocked items in this content. Just summarize normally.
|
|
590
682
|
|
|
591
|
-
RULES FOR TOOL CALLS:
|
|
683
|
+
`}RULES FOR TOOL CALLS:
|
|
592
684
|
1. If the SAME file was both edited AND read: Use a combined phrase like "Reviewed and updated <filename>"
|
|
593
685
|
2. If exactly ONE file was edited: Start with an edit synonym + "<filename>" (include actual filename)
|
|
594
686
|
3. If exactly ONE file was read: Start with a read synonym + "<filename>" (include actual filename)
|
|
@@ -627,13 +719,12 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
627
719
|
- "Edited Button.tsx, Edited Button.css, Edited index.ts" → "Modified 3 files"
|
|
628
720
|
- "Searched codebase for error handling" → "Looked up error handling"
|
|
629
721
|
|
|
630
|
-
|
|
631
|
-
- "
|
|
632
|
-
- "
|
|
633
|
-
- "
|
|
634
|
-
- "Used Read File, but received a warning, Edited utils.ts" → "Read file with a warning, edited utils.ts"
|
|
722
|
+
${this.hookCount > 0 ? `EXAMPLES WITH BLOCKED CONTENT (from hooks):
|
|
723
|
+
- "Blocked terminal, Edited config.ts" → "Edited config.ts, terminal was blocked"
|
|
724
|
+
- "Blocked terminal, Blocked read_file" → "Two tools were blocked by hooks"
|
|
725
|
+
- "Warning for read_file, Edited utils.ts" → "Edited utils.ts with a hook warning"
|
|
635
726
|
|
|
636
|
-
EXAMPLES WITH REASONING HEADERS (no tools):
|
|
727
|
+
` : ""}EXAMPLES WITH REASONING HEADERS (no tools):
|
|
637
728
|
- "Analyzing component architecture" → "Considered component architecture"
|
|
638
729
|
- "Planning refactor strategy" → "Planned refactor strategy"
|
|
639
730
|
- "Reviewing error handling approach, Considering edge cases" → "Analyzed error handling approach"
|
|
@@ -647,7 +738,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
647
738
|
- "Looking at the UserService class, I see it handles..." → "Reviewed UserService implementation"
|
|
648
739
|
|
|
649
740
|
Content: ${context}`;
|
|
650
|
-
const response = await this.languageModelsService.sendChatRequest(models[0],
|
|
741
|
+
const response = await this.languageModelsService.sendChatRequest(models[0], undefined, [{
|
|
651
742
|
role: ChatMessageRole.User,
|
|
652
743
|
content: [{
|
|
653
744
|
type: "text",
|
|
@@ -681,11 +772,9 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
681
772
|
}
|
|
682
773
|
if (generatedTitle && !this._store.isDisposed) {
|
|
683
774
|
this.currentTitle = generatedTitle;
|
|
684
|
-
|
|
685
|
-
this._collapseButton.label = generatedTitle;
|
|
686
|
-
}
|
|
775
|
+
this.setFinalizedTitle(generatedTitle);
|
|
687
776
|
this.content.generatedTitle = generatedTitle;
|
|
688
|
-
this.
|
|
777
|
+
this.setGeneratedTitleOnAllParts(generatedTitle);
|
|
689
778
|
return;
|
|
690
779
|
}
|
|
691
780
|
} catch (error) {} finally {
|
|
@@ -696,7 +785,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
696
785
|
}
|
|
697
786
|
restoreSingleItemToOriginalPosition() {
|
|
698
787
|
if (!this.singleItemInfo) {
|
|
699
|
-
return;
|
|
788
|
+
return false;
|
|
700
789
|
}
|
|
701
790
|
const {
|
|
702
791
|
element,
|
|
@@ -705,7 +794,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
705
794
|
} = this.singleItemInfo;
|
|
706
795
|
if (element.childElementCount > 1) {
|
|
707
796
|
this.singleItemInfo = undefined;
|
|
708
|
-
return;
|
|
797
|
+
return false;
|
|
709
798
|
}
|
|
710
799
|
if (originalNextSibling && originalNextSibling.parentNode === originalParent) {
|
|
711
800
|
originalParent.insertBefore(element, originalNextSibling);
|
|
@@ -714,22 +803,24 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
714
803
|
}
|
|
715
804
|
hide(this.domNode);
|
|
716
805
|
this.singleItemInfo = undefined;
|
|
806
|
+
return true;
|
|
717
807
|
}
|
|
718
808
|
setFallbackTitle() {
|
|
719
809
|
const finalLabel = this.appendedItemCount > 0 ? ( localize(
|
|
720
|
-
|
|
810
|
+
6610,
|
|
721
811
|
"Finished with {0} step{1}",
|
|
722
812
|
this.appendedItemCount,
|
|
723
813
|
this.appendedItemCount === 1 ? "" : "s"
|
|
724
|
-
)) : ( localize(
|
|
814
|
+
)) : ( localize(6611, "Finished Working"));
|
|
725
815
|
this.currentTitle = finalLabel;
|
|
726
816
|
if (this.wrapper) {
|
|
727
817
|
this.wrapper.classList.remove("chat-thinking-streaming");
|
|
728
818
|
}
|
|
819
|
+
this.domNode.classList.remove("chat-thinking-active");
|
|
729
820
|
this.streamingCompleted = true;
|
|
730
821
|
if (this._collapseButton) {
|
|
731
822
|
this._collapseButton.icon = Codicon.check;
|
|
732
|
-
this.
|
|
823
|
+
this.setFinalizedTitle(finalLabel);
|
|
733
824
|
}
|
|
734
825
|
this.updateDropdownClickability();
|
|
735
826
|
}
|
|
@@ -759,7 +850,8 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
759
850
|
lazy: ( new Lazy(factory)),
|
|
760
851
|
toolInvocationId,
|
|
761
852
|
toolInvocationOrMarkdown,
|
|
762
|
-
originalParent
|
|
853
|
+
originalParent,
|
|
854
|
+
isHook: !toolInvocationOrMarkdown && !!toolInvocationId
|
|
763
855
|
};
|
|
764
856
|
this.lazyItems.push(item);
|
|
765
857
|
}
|
|
@@ -770,9 +862,14 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
770
862
|
if (index === -1) {
|
|
771
863
|
return false;
|
|
772
864
|
}
|
|
865
|
+
const removedItem = this.lazyItems[index];
|
|
773
866
|
this.lazyItems.splice(index, 1);
|
|
774
867
|
this.appendedItemCount--;
|
|
775
|
-
|
|
868
|
+
if (removedItem.kind === "tool" && removedItem.isHook) {
|
|
869
|
+
this.hookCount = Math.max(0, this.hookCount - 1);
|
|
870
|
+
} else {
|
|
871
|
+
this.toolInvocationCount--;
|
|
872
|
+
}
|
|
776
873
|
const toolInvocationsIndex = this.toolInvocations.findIndex(
|
|
777
874
|
t => (t.kind === "toolInvocation" || t.kind === "toolInvocationSerialized") && t.toolId === toolInvocationId
|
|
778
875
|
);
|
|
@@ -783,10 +880,28 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
783
880
|
return true;
|
|
784
881
|
}
|
|
785
882
|
processPendingRemovals() {
|
|
786
|
-
|
|
787
|
-
|
|
883
|
+
this.pendingRemovalFlushDisposable?.dispose();
|
|
884
|
+
this.pendingRemovalFlushDisposable = undefined;
|
|
885
|
+
if (this.pendingRemovals.length === 0) {
|
|
886
|
+
return;
|
|
788
887
|
}
|
|
888
|
+
const pendingRemovals = this.pendingRemovals;
|
|
789
889
|
this.pendingRemovals = [];
|
|
890
|
+
for (const pending of pendingRemovals) {
|
|
891
|
+
this.removeStreamingToolEntry(pending.toolCallId, pending.toolLabel);
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
schedulePendingRemovalsFlush() {
|
|
895
|
+
if (this.pendingRemovalFlushDisposable) {
|
|
896
|
+
return;
|
|
897
|
+
}
|
|
898
|
+
this.pendingRemovalFlushDisposable = scheduleAtNextAnimationFrame(getWindow(this.domNode), () => {
|
|
899
|
+
this.pendingRemovalFlushDisposable = undefined;
|
|
900
|
+
if (this._store.isDisposed) {
|
|
901
|
+
return;
|
|
902
|
+
}
|
|
903
|
+
this.processPendingRemovals();
|
|
904
|
+
});
|
|
790
905
|
}
|
|
791
906
|
removeStreamingToolEntry(toolCallId, toolLabel) {
|
|
792
907
|
this.toolDisposables.deleteAndDispose(toolCallId);
|
|
@@ -820,7 +935,12 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
820
935
|
if (!toolInvocationId) {
|
|
821
936
|
return;
|
|
822
937
|
}
|
|
823
|
-
|
|
938
|
+
const isHook = !toolInvocationOrMarkdown;
|
|
939
|
+
if (isHook) {
|
|
940
|
+
this.hookCount++;
|
|
941
|
+
} else {
|
|
942
|
+
this.toolInvocationCount++;
|
|
943
|
+
}
|
|
824
944
|
let toolCallLabel;
|
|
825
945
|
const isToolInvocation = toolInvocationOrMarkdown && (toolInvocationOrMarkdown.kind === "toolInvocation" || toolInvocationOrMarkdown.kind === "toolInvocationSerialized");
|
|
826
946
|
if (isToolInvocation && toolInvocationOrMarkdown.invocationMessage) {
|
|
@@ -865,6 +985,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
865
985
|
toolCallId: toolInvocationOrMarkdown.toolCallId,
|
|
866
986
|
toolLabel: currentToolLabel
|
|
867
987
|
});
|
|
988
|
+
this.schedulePendingRemovalsFlush();
|
|
868
989
|
isComplete = true;
|
|
869
990
|
return;
|
|
870
991
|
}
|
|
@@ -908,9 +1029,9 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
908
1029
|
const codeblockInfo = extractCodeblockUrisFromText(toolInvocationOrMarkdown.content.value);
|
|
909
1030
|
if (codeblockInfo?.uri) {
|
|
910
1031
|
const filename = basename(codeblockInfo.uri);
|
|
911
|
-
toolCallLabel = ( localize(
|
|
1032
|
+
toolCallLabel = ( localize(6612, "Edited {0}", filename));
|
|
912
1033
|
} else {
|
|
913
|
-
toolCallLabel = ( localize(
|
|
1034
|
+
toolCallLabel = ( localize(6613, "Edited file"));
|
|
914
1035
|
}
|
|
915
1036
|
} else {
|
|
916
1037
|
toolCallLabel = toolInvocationId;
|
|
@@ -1002,6 +1123,7 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
1002
1123
|
return;
|
|
1003
1124
|
}
|
|
1004
1125
|
this.appendedItemCount++;
|
|
1126
|
+
this.allThinkingParts.push(content);
|
|
1005
1127
|
this.textContainer = $(".chat-thinking-item.markdown-content");
|
|
1006
1128
|
if (content.value) {
|
|
1007
1129
|
if (this.isExpanded() || this.hasExpandedOnce || (this.fixedScrollingMode && !this.streamingCompleted)) {
|
|
@@ -1029,17 +1151,60 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
1029
1151
|
return;
|
|
1030
1152
|
}
|
|
1031
1153
|
if (omitPrefix) {
|
|
1032
|
-
|
|
1154
|
+
if (this._collapseButton) {
|
|
1155
|
+
const labelElement = this._collapseButton.labelElement;
|
|
1156
|
+
labelElement.textContent = "";
|
|
1157
|
+
const plainSpan = $("span");
|
|
1158
|
+
plainSpan.textContent = title;
|
|
1159
|
+
labelElement.appendChild(plainSpan);
|
|
1160
|
+
this._collapseButton.element.ariaLabel = title;
|
|
1161
|
+
}
|
|
1162
|
+
this.titleShimmerSpan = undefined;
|
|
1163
|
+
this.titleDetailContainer = undefined;
|
|
1164
|
+
if (this.titleDetailRendered) {
|
|
1165
|
+
this.titleDetailRendered.dispose();
|
|
1166
|
+
this.titleDetailRendered = undefined;
|
|
1167
|
+
}
|
|
1033
1168
|
this.currentTitle = title;
|
|
1034
1169
|
return;
|
|
1035
1170
|
}
|
|
1036
|
-
const thinkingLabel = `Working: ${title}`;
|
|
1037
1171
|
this.lastExtractedTitle = title;
|
|
1172
|
+
const thinkingLabel = `Working: ${title}`;
|
|
1038
1173
|
this.currentTitle = thinkingLabel;
|
|
1039
|
-
|
|
1174
|
+
if (!this._collapseButton) {
|
|
1175
|
+
return;
|
|
1176
|
+
}
|
|
1177
|
+
const labelElement = this._collapseButton.labelElement;
|
|
1178
|
+
if (!this.titleShimmerSpan || !this.titleShimmerSpan.parentElement) {
|
|
1179
|
+
labelElement.textContent = "";
|
|
1180
|
+
this.titleShimmerSpan = $("span.chat-thinking-title-shimmer");
|
|
1181
|
+
labelElement.appendChild(this.titleShimmerSpan);
|
|
1182
|
+
}
|
|
1183
|
+
this.titleShimmerSpan.textContent = "Working: ";
|
|
1184
|
+
if (this.titleDetailRendered) {
|
|
1185
|
+
this.titleDetailRendered.dispose();
|
|
1186
|
+
this.titleDetailRendered = undefined;
|
|
1187
|
+
}
|
|
1188
|
+
const result = this.chatContentMarkdownRenderer.render(( new MarkdownString(title)));
|
|
1189
|
+
result.element.classList.add("collapsible-title-content", "chat-thinking-title-detail");
|
|
1190
|
+
renderFileWidgets(
|
|
1191
|
+
result.element,
|
|
1192
|
+
this.instantiationService,
|
|
1193
|
+
this.chatMarkdownAnchorService,
|
|
1194
|
+
this._store
|
|
1195
|
+
);
|
|
1196
|
+
this.titleDetailRendered = result;
|
|
1197
|
+
if (this.titleDetailContainer) {
|
|
1198
|
+
this.titleDetailContainer.replaceWith(result.element);
|
|
1199
|
+
} else {
|
|
1200
|
+
labelElement.appendChild(result.element);
|
|
1201
|
+
}
|
|
1202
|
+
this.titleDetailContainer = result.element;
|
|
1203
|
+
this._collapseButton.element.ariaLabel = thinkingLabel;
|
|
1204
|
+
this._collapseButton.element.ariaExpanded = String(this.isExpanded());
|
|
1040
1205
|
}
|
|
1041
1206
|
hasSameContent(other, _followingContent, _element) {
|
|
1042
|
-
if (other.kind === "toolInvocation" || other.kind === "toolInvocationSerialized" || other.kind === "markdownContent") {
|
|
1207
|
+
if (other.kind === "toolInvocation" || other.kind === "toolInvocationSerialized" || other.kind === "markdownContent" || other.kind === "hook") {
|
|
1043
1208
|
return true;
|
|
1044
1209
|
}
|
|
1045
1210
|
if (other.kind !== "thinking") {
|
|
@@ -1048,15 +1213,22 @@ let ChatThinkingContentPart = class ChatThinkingContentPart extends ChatCollapsi
|
|
|
1048
1213
|
return other?.id !== this.id;
|
|
1049
1214
|
}
|
|
1050
1215
|
dispose() {
|
|
1216
|
+
this.isActive = false;
|
|
1051
1217
|
if (this.markdownResult) {
|
|
1052
1218
|
this.markdownResult.dispose();
|
|
1053
1219
|
this.markdownResult = undefined;
|
|
1054
1220
|
}
|
|
1221
|
+
if (this.titleDetailRendered) {
|
|
1222
|
+
this.titleDetailRendered.dispose();
|
|
1223
|
+
this.titleDetailRendered = undefined;
|
|
1224
|
+
}
|
|
1055
1225
|
if (this.workingSpinnerElement) {
|
|
1056
1226
|
this.workingSpinnerElement.remove();
|
|
1057
1227
|
this.workingSpinnerElement = undefined;
|
|
1058
1228
|
this.workingSpinnerLabel = undefined;
|
|
1059
1229
|
}
|
|
1230
|
+
this.pendingRemovalFlushDisposable?.dispose();
|
|
1231
|
+
this.pendingRemovalFlushDisposable = undefined;
|
|
1060
1232
|
this.pendingScrollDisposable?.dispose();
|
|
1061
1233
|
super.dispose();
|
|
1062
1234
|
}
|