@codingame/monaco-vscode-katex-common 34.1.3 → 35.0.1
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/base/browser/animationSync.d.ts +36 -0
- package/vscode/src/vs/base/browser/animationSync.js +23 -0
- package/vscode/src/vs/base/browser/ui/pixelSpinner/pixelSpinner.js +23 -2
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +3 -2
- package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.d.ts +5 -5
- package/vscode/src/vs/platform/agentHost/common/fileEditDiff.d.ts +32 -0
- package/vscode/src/vs/platform/agentHost/common/fileEditDiff.js +33 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentFeedbackAnnotations.d.ts +90 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentFeedbackAttachments.d.ts +30 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentToolCallMeta.d.ts +65 -0
- package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.d.ts +16 -5
- package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.js +3 -2
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-resource-watch/reducer.d.ts +21 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +8 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionReducers.d.ts +9 -0
- package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +105 -28
- 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 +15 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +74 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +98 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +31 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +45 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +163 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostFolderPickerActionItem.d.ts +47 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostFolderPickerActionItem.js +172 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +7 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionReferenceAttachment.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSnapshotController.d.ts +116 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSnapshotController.js +348 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostChatInputPicker.css +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/stateToProgressAdapter.d.ts +211 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/stateToProgressAdapter.js +64 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +13 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +30 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +29 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +24 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +119 -41
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionTypeAvailability.d.ts +63 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionTypeAvailability.js +97 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +5 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +105 -88
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +46 -48
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +98 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +9 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatTurnPills.css +162 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.d.ts +9 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +95 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +22 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +151 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +20 -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 +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +61 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAutoModeResolutionContentPart.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAutoModeResolutionContentPart.js +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +81 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.js +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.js +9 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.d.ts +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.js +21 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +40 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpAuthenticationContentPart.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpAuthenticationContentPart.js +140 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersStartingContentPart.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersStartingContentPart.js +58 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +29 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +44 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +12 -66
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +39 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +167 -43
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.d.ts +1 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +9 -86
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSystemNotificationContentPart.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSystemNotificationContentPart.js +23 -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 +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +141 -72
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +17 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTurnPillsPart.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTurnPillsPart.js +110 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatAgentFeedbackReviewConfirmation.css +133 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatAutoModeResolution.css +30 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +18 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +23 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +33 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSubagentContent.css +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +44 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +21 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatAgentFeedbackReviewConfirmationSubPart.d.ts +48 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatAgentFeedbackReviewConfirmationSubPart.js +279 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +43 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +53 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +7 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +24 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/{chatMissingSandboxDepsConfirmationSubPart.d.ts → chatSandboxPrerequisiteConfirmationSubPart.d.ts} +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/{chatMissingSandboxDepsConfirmationSubPart.js → chatSandboxPrerequisiteConfirmationSubPart.js} +14 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +30 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +41 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +12 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +43 -35
- 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 +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +11 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeHelper.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeHelper.js +51 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +4 -4
- 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 +18 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +266 -98
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +8 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatRestoreCheckpointActionViewItem.d.ts +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatRestoreCheckpointActionViewItem.js +135 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatTurnPills.d.ts +85 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatTurnPills.js +275 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +18 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +84 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatGoalBannerWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +52 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +187 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +435 -139
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatePersistence.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatePersistence.js +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationLogic.d.ts +50 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationLogic.js +49 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationStore.d.ts +79 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationStore.js +127 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +84 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +658 -430
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +72 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +82 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +23 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatGoalBannerWidget.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +28 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +15 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +60 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +18 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +49 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +141 -81
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +7 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +30 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerInputActionItem.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerInputActionItem.js +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +469 -148
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +11 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +79 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +71 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +107 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatErrorMessages.d.ts +110 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatErrorMessages.js +37 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +13 -11
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +57 -21
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +18 -18
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +4 -4
- 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/common/inlineChat.js +30 -30
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.d.ts +39 -8
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.js +168 -72
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatusActionViewItem.d.ts +0 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatusActionViewItem.js +0 -147
|
@@ -140,7 +140,7 @@ let ChatListWidget = class ChatListWidget extends Disposable {
|
|
|
140
140
|
options.inputEditorBackground ?? "chat.requestEditor.background",
|
|
141
141
|
options.resultEditorBackground ?? "chat.responseEditor.background"
|
|
142
142
|
));
|
|
143
|
-
|
|
143
|
+
this._delegate = scopedInstantiationService.createInstance(ChatListDelegate, options.defaultElementHeight ?? 200);
|
|
144
144
|
const rendererDelegate = {
|
|
145
145
|
getListLength: () => this._tree.getNode(null).visibleChildrenCount,
|
|
146
146
|
onDidScroll: this.onDidScroll,
|
|
@@ -188,7 +188,7 @@ let ChatListWidget = class ChatListWidget extends Disposable {
|
|
|
188
188
|
WorkbenchObjectTree,
|
|
189
189
|
"ChatList",
|
|
190
190
|
this._container,
|
|
191
|
-
|
|
191
|
+
this._delegate,
|
|
192
192
|
[this._renderer],
|
|
193
193
|
{
|
|
194
194
|
identityProvider: {
|
|
@@ -312,6 +312,8 @@ let ChatListWidget = class ChatListWidget extends Disposable {
|
|
|
312
312
|
const items = this._viewModel.getItems();
|
|
313
313
|
this._lastItem = items.at(-1);
|
|
314
314
|
this._lastItemIdContextKey.set(this._lastItem ? [this._lastItem.id] : []);
|
|
315
|
+
const previousItem = items.at(-2);
|
|
316
|
+
const needsInitialPreviousItemHeight = (isRequestVM(previousItem) || isResponseVM(previousItem)) && previousItem.currentRenderedHeight === undefined;
|
|
315
317
|
const treeItems = ( items.map(item => ({
|
|
316
318
|
element: item,
|
|
317
319
|
collapsed: false,
|
|
@@ -337,6 +339,9 @@ let ChatListWidget = class ChatListWidget extends Disposable {
|
|
|
337
339
|
}
|
|
338
340
|
});
|
|
339
341
|
});
|
|
342
|
+
if (needsInitialPreviousItemHeight) {
|
|
343
|
+
this.updateLastItemMinHeight();
|
|
344
|
+
}
|
|
340
345
|
}
|
|
341
346
|
setScrollLock(value) {
|
|
342
347
|
this._scrollLock = value;
|
|
@@ -511,7 +516,7 @@ let ChatListWidget = class ChatListWidget extends Disposable {
|
|
|
511
516
|
const secondToLastItem = this._viewModel?.getItems().at(-2);
|
|
512
517
|
const maxRequestShownHeight = 200;
|
|
513
518
|
const secondToLastItemHeight = Math.min(
|
|
514
|
-
(isRequestVM(secondToLastItem) || isResponseVM(secondToLastItem)) ? secondToLastItem.currentRenderedHeight ?? 150 : 150,
|
|
519
|
+
(isRequestVM(secondToLastItem) || isResponseVM(secondToLastItem)) ? secondToLastItem.currentRenderedHeight ?? this._delegate.getMeasuredHeight(secondToLastItem) ?? 150 : 150,
|
|
515
520
|
maxRequestShownHeight
|
|
516
521
|
);
|
|
517
522
|
const lastItemMinHeight = Math.max(contentHeight - (secondToLastItemHeight + 10), 0);
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatRestoreCheckpointActionViewItem.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IMenuEntryActionViewItemOptions, MenuEntryActionViewItem } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/menuEntryActionViewItem";
|
|
2
|
+
import { MenuItemAction } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions";
|
|
3
|
+
import { IAccessibilityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service";
|
|
4
|
+
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
5
|
+
import { IContextMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service";
|
|
6
|
+
import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
|
|
7
|
+
import { INotificationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service";
|
|
8
|
+
import { IThemeService } from "@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service";
|
|
9
|
+
/**
|
|
10
|
+
* Action view item for the "Restore Checkpoint" action that adds an inline
|
|
11
|
+
* confirmation affordance: when the current request (and the requests after it)
|
|
12
|
+
* have edits that would be discarded, the first click does not restore but
|
|
13
|
+
* instead turns the button into a "Confirm" button with an adjacent "Cancel"
|
|
14
|
+
* button. A second click on "Confirm" runs the restore, while "Cancel" (or
|
|
15
|
+
* losing focus / pressing Escape) reverts the button to its default state.
|
|
16
|
+
*
|
|
17
|
+
* This gives a lightweight, in-place warning for sessions (such as agent host
|
|
18
|
+
* sessions) where the modal removal-confirmation dialog does not apply.
|
|
19
|
+
*/
|
|
20
|
+
export declare class ChatRestoreCheckpointActionViewItem extends MenuEntryActionViewItem {
|
|
21
|
+
private readonly _needsConfirmation;
|
|
22
|
+
private _confirming;
|
|
23
|
+
private _cancelButton;
|
|
24
|
+
private readonly _confirmDisposables;
|
|
25
|
+
constructor(action: MenuItemAction, options: IMenuEntryActionViewItemOptions | undefined, _needsConfirmation: (context: unknown) => boolean, keybindingService: IKeybindingService, notificationService: INotificationService, contextKeyService: IContextKeyService, themeService: IThemeService, contextMenuService: IContextMenuService, accessibilityService: IAccessibilityService);
|
|
26
|
+
render(container: HTMLElement): void;
|
|
27
|
+
onClick(event: MouseEvent): Promise<void>;
|
|
28
|
+
private _setConfirming;
|
|
29
|
+
private _updateConfirmUI;
|
|
30
|
+
protected updateLabel(): void;
|
|
31
|
+
protected getTooltip(): string;
|
|
32
|
+
}
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatRestoreCheckpointActionViewItem.js
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { append, $, reset, addDisposableListener, EventType, EventHelper } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
4
|
+
import { StandardKeyboardEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/keyboardEvent';
|
|
5
|
+
import { renderLabelWithIcons } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabels';
|
|
6
|
+
import { KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
|
|
7
|
+
import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
8
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
9
|
+
import { MenuEntryActionViewItem } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/menuEntryActionViewItem';
|
|
10
|
+
import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
|
|
11
|
+
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
12
|
+
import { IContextMenuService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service';
|
|
13
|
+
import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
|
|
14
|
+
import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
|
|
15
|
+
import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
|
|
16
|
+
|
|
17
|
+
let ChatRestoreCheckpointActionViewItem = class ChatRestoreCheckpointActionViewItem extends MenuEntryActionViewItem {
|
|
18
|
+
constructor(
|
|
19
|
+
action,
|
|
20
|
+
options,
|
|
21
|
+
_needsConfirmation,
|
|
22
|
+
keybindingService,
|
|
23
|
+
notificationService,
|
|
24
|
+
contextKeyService,
|
|
25
|
+
themeService,
|
|
26
|
+
contextMenuService,
|
|
27
|
+
accessibilityService
|
|
28
|
+
) {
|
|
29
|
+
super(
|
|
30
|
+
action,
|
|
31
|
+
options,
|
|
32
|
+
keybindingService,
|
|
33
|
+
notificationService,
|
|
34
|
+
contextKeyService,
|
|
35
|
+
themeService,
|
|
36
|
+
contextMenuService,
|
|
37
|
+
accessibilityService
|
|
38
|
+
);
|
|
39
|
+
this._needsConfirmation = _needsConfirmation;
|
|
40
|
+
this._confirming = false;
|
|
41
|
+
this._confirmDisposables = this._register(( new DisposableStore()));
|
|
42
|
+
}
|
|
43
|
+
render(container) {
|
|
44
|
+
super.render(container);
|
|
45
|
+
container.classList.add("chat-restore-checkpoint-item");
|
|
46
|
+
const cancelButton = this._cancelButton = append(container, $("a.action-label.chat-restore-checkpoint-cancel"));
|
|
47
|
+
cancelButton.setAttribute("role", "button");
|
|
48
|
+
cancelButton.tabIndex = -1;
|
|
49
|
+
reset(cancelButton, ...renderLabelWithIcons(`$(close)`));
|
|
50
|
+
const cancelLabel = ( localize(8211, "Cancel restoring this checkpoint"));
|
|
51
|
+
cancelButton.title = cancelLabel;
|
|
52
|
+
cancelButton.setAttribute("aria-label", cancelLabel);
|
|
53
|
+
this._register(addDisposableListener(cancelButton, EventType.CLICK, e => {
|
|
54
|
+
EventHelper.stop(e, true);
|
|
55
|
+
this._setConfirming(false);
|
|
56
|
+
this.label?.focus();
|
|
57
|
+
}));
|
|
58
|
+
this._register(addDisposableListener(container, EventType.KEY_DOWN, e => {
|
|
59
|
+
const event = ( new StandardKeyboardEvent(e));
|
|
60
|
+
if (!event.equals(KeyCode.Enter) && !event.equals(KeyCode.Space)) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (this._confirming) {
|
|
64
|
+
EventHelper.stop(e, true);
|
|
65
|
+
this._setConfirming(false);
|
|
66
|
+
void super.onClick(( new MouseEvent("click")));
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (this._needsConfirmation(this._context)) {
|
|
70
|
+
EventHelper.stop(e, true);
|
|
71
|
+
this._setConfirming(true);
|
|
72
|
+
}
|
|
73
|
+
}));
|
|
74
|
+
this._updateConfirmUI();
|
|
75
|
+
}
|
|
76
|
+
async onClick(event) {
|
|
77
|
+
if (this._confirming) {
|
|
78
|
+
this._setConfirming(false);
|
|
79
|
+
return super.onClick(event);
|
|
80
|
+
}
|
|
81
|
+
if (this._needsConfirmation(this._context)) {
|
|
82
|
+
event.preventDefault();
|
|
83
|
+
event.stopPropagation();
|
|
84
|
+
this._setConfirming(true);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
return super.onClick(event);
|
|
88
|
+
}
|
|
89
|
+
_setConfirming(value) {
|
|
90
|
+
if (this._confirming === value) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
this._confirming = value;
|
|
94
|
+
this._confirmDisposables.clear();
|
|
95
|
+
if (value && this.element) {
|
|
96
|
+
this._confirmDisposables.add(addDisposableListener(this.element, EventType.FOCUS_OUT, e => {
|
|
97
|
+
const next = e.relatedTarget;
|
|
98
|
+
if (!next || !this.element?.contains(next)) {
|
|
99
|
+
this._setConfirming(false);
|
|
100
|
+
}
|
|
101
|
+
}));
|
|
102
|
+
this._confirmDisposables.add(addDisposableListener(this.element, EventType.KEY_DOWN, e => {
|
|
103
|
+
const event = ( new StandardKeyboardEvent(e));
|
|
104
|
+
if (event.equals(KeyCode.Escape)) {
|
|
105
|
+
EventHelper.stop(e, true);
|
|
106
|
+
this._setConfirming(false);
|
|
107
|
+
this.label?.focus();
|
|
108
|
+
}
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
this._updateConfirmUI();
|
|
112
|
+
}
|
|
113
|
+
_updateConfirmUI() {
|
|
114
|
+
this.element?.classList.toggle("confirming", this._confirming);
|
|
115
|
+
this._cancelButton?.classList.toggle("hidden", !this._confirming);
|
|
116
|
+
this.updateLabel();
|
|
117
|
+
this.updateTooltip();
|
|
118
|
+
}
|
|
119
|
+
updateLabel() {
|
|
120
|
+
if (this._confirming && this.label) {
|
|
121
|
+
reset(this.label, ...renderLabelWithIcons(`${( localize(8212, "Discard Edits"))}`));
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
super.updateLabel();
|
|
125
|
+
}
|
|
126
|
+
getTooltip() {
|
|
127
|
+
if (this._confirming) {
|
|
128
|
+
return localize(8213, "Confirm restoring this checkpoint and discarding later edits");
|
|
129
|
+
}
|
|
130
|
+
return super.getTooltip();
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
ChatRestoreCheckpointActionViewItem = ( __decorate([( __param(3, IKeybindingService)), ( __param(4, INotificationService)), ( __param(5, IContextKeyService)), ( __param(6, IThemeService)), ( __param(7, IContextMenuService)), ( __param(8, IAccessibilityService))], ChatRestoreCheckpointActionViewItem));
|
|
134
|
+
|
|
135
|
+
export { ChatRestoreCheckpointActionViewItem };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
3
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
4
|
+
import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
|
|
5
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
6
|
+
import { IContextMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service";
|
|
7
|
+
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
8
|
+
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
|
|
9
|
+
import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
|
|
10
|
+
/** Aggregate diff counts shown in the changes pill (scoped to a single turn). */
|
|
11
|
+
export interface IDiffStats {
|
|
12
|
+
readonly files: number;
|
|
13
|
+
readonly insertions: number;
|
|
14
|
+
readonly deletions: number;
|
|
15
|
+
}
|
|
16
|
+
export declare const EMPTY_DIFF_STATS: IDiffStats;
|
|
17
|
+
/** A markdown/HTML file the preview pill can open. */
|
|
18
|
+
export interface IPreviewFile {
|
|
19
|
+
readonly uri: URI;
|
|
20
|
+
readonly kind: "markdown" | "html";
|
|
21
|
+
/** Whether the file was created (vs. edited) during the turn. */
|
|
22
|
+
readonly created: boolean;
|
|
23
|
+
}
|
|
24
|
+
/** Classify a resource as a previewable markdown or HTML file, if applicable. */
|
|
25
|
+
export declare function previewKind(uri: URI): "markdown" | "html" | undefined;
|
|
26
|
+
export declare function diffStatsEqual(a: IDiffStats, b: IDiffStats): boolean;
|
|
27
|
+
export declare function previewFilesEqual(a: readonly IPreviewFile[], b: readonly IPreviewFile[]): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Open a previewable file: markdown files open as a markdown preview, HTML files
|
|
30
|
+
* open in the integrated browser (desktop only), falling back to the default
|
|
31
|
+
* opener when neither is available (e.g. web).
|
|
32
|
+
*/
|
|
33
|
+
export declare function openChatPreviewFile(file: IPreviewFile, commandService: ICommandService, openerService: IOpenerService, logService: ILogService): Promise<void>;
|
|
34
|
+
/** The data and interactions a {@link ChatTurnPillsWidget} reflects. */
|
|
35
|
+
export interface IChatTurnPillsModel {
|
|
36
|
+
readonly stats: IObservable<IDiffStats>;
|
|
37
|
+
readonly previewFiles: IObservable<readonly IPreviewFile[]>;
|
|
38
|
+
/** When `false` the changes pill stays hidden regardless of the data. */
|
|
39
|
+
readonly changesEnabled: IObservable<boolean>;
|
|
40
|
+
/** When `false` the preview pill stays hidden regardless of the data. */
|
|
41
|
+
readonly previewEnabled: IObservable<boolean>;
|
|
42
|
+
openChanges(): void;
|
|
43
|
+
openPreviewFile(file: IPreviewFile): void;
|
|
44
|
+
}
|
|
45
|
+
/** Per-pill visibility for the agent turn status pills ({@link ChatConfiguration.TurnStatusPills}). */
|
|
46
|
+
export interface IChatTurnStatusPillsConfig {
|
|
47
|
+
readonly changes: boolean;
|
|
48
|
+
readonly preview: boolean;
|
|
49
|
+
}
|
|
50
|
+
/** Observe the per-pill turn status pills visibility setting. */
|
|
51
|
+
export declare function observeTurnStatusPillsConfig(configurationService: IConfigurationService): IObservable<IChatTurnStatusPillsConfig>;
|
|
52
|
+
/**
|
|
53
|
+
* A toolbar of clickable pills reflecting a single turn's status. Used both as a
|
|
54
|
+
* floating widget above the chat input (live, active turn) and inside a completed
|
|
55
|
+
* chat response. The pills are actions inside a {@link ToolBar}:
|
|
56
|
+
*
|
|
57
|
+
* - **Changes** — `<n> Files +ins -del` for the turn. Activating it opens the
|
|
58
|
+
* changes.
|
|
59
|
+
* - **Preview** — shown when the turn created or edited a markdown or HTML file.
|
|
60
|
+
* Rendered as a resource label (file icon + name) with a "preview" description
|
|
61
|
+
* for the primary file. Activating it opens that file as a markdown preview or
|
|
62
|
+
* in the integrated browser; when several exist, a dropdown lists them all.
|
|
63
|
+
*
|
|
64
|
+
* The data and the open actions are supplied by the {@link IChatTurnPillsModel}
|
|
65
|
+
* so the same widget serves surfaces with different data sources.
|
|
66
|
+
*/
|
|
67
|
+
export declare class ChatTurnPillsWidget extends Disposable {
|
|
68
|
+
private readonly _model;
|
|
69
|
+
private readonly _contextMenuService;
|
|
70
|
+
readonly element: HTMLElement;
|
|
71
|
+
/** Whether the widget currently has any pill to show. */
|
|
72
|
+
readonly isVisible: IObservable<boolean>;
|
|
73
|
+
private readonly _toolbar;
|
|
74
|
+
private readonly _changesAction;
|
|
75
|
+
private readonly _previewAction;
|
|
76
|
+
private readonly _resourceLabels;
|
|
77
|
+
/** Ids of the currently mounted pills, so we only rebuild the toolbar when the set changes. */
|
|
78
|
+
private _visibleSignature;
|
|
79
|
+
constructor(_model: IChatTurnPillsModel, _contextMenuService: IContextMenuService, instantiationService: IInstantiationService);
|
|
80
|
+
private _showChanges;
|
|
81
|
+
private _showPreview;
|
|
82
|
+
private _updateVisibleActions;
|
|
83
|
+
private _openPrimaryPreview;
|
|
84
|
+
private _showAllPreviews;
|
|
85
|
+
}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
|
|
2
|
+
import { registerCss } from '@codingame/monaco-vscode-api/css';
|
|
3
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
4
|
+
import { reset, $, append } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
5
|
+
import { ActionsOrientation } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/actionbar/actionbar';
|
|
6
|
+
import { BaseActionViewItem } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/actionbar/actionViewItems';
|
|
7
|
+
import { Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
|
|
8
|
+
import { ToolBar } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/toolbar/toolbar';
|
|
9
|
+
import { Action, toAction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
|
|
10
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
11
|
+
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
12
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
13
|
+
import { isEqual, basename } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
14
|
+
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
15
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
16
|
+
import { BrowserViewCommandId } from '@codingame/monaco-vscode-api/vscode/vs/platform/browserView/common/browserView';
|
|
17
|
+
import { IContextMenuService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service';
|
|
18
|
+
import { FileKind } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files';
|
|
19
|
+
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
20
|
+
import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
|
|
21
|
+
import { defaultButtonStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
|
|
22
|
+
import { ResourceLabels, DEFAULT_LABELS_CONTAINER } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/labels';
|
|
23
|
+
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
24
|
+
import * as chatTurnPills from '../media/chatTurnPills.css';
|
|
25
|
+
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
26
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
27
|
+
|
|
28
|
+
registerCss(chatTurnPills);
|
|
29
|
+
const CHANGES_PILL_ACTION_ID = "chat.turnPills.changes";
|
|
30
|
+
const PREVIEW_PILL_ACTION_ID = "chat.turnPills.preview";
|
|
31
|
+
const TRANSPARENT_BUTTON_STYLES = {
|
|
32
|
+
buttonBackground: undefined,
|
|
33
|
+
buttonHoverBackground: undefined,
|
|
34
|
+
buttonForeground: undefined,
|
|
35
|
+
buttonSeparator: undefined,
|
|
36
|
+
buttonSecondaryBackground: undefined,
|
|
37
|
+
buttonSecondaryHoverBackground: undefined,
|
|
38
|
+
buttonSecondaryForeground: undefined,
|
|
39
|
+
buttonSecondaryBorder: undefined,
|
|
40
|
+
buttonBorder: undefined
|
|
41
|
+
};
|
|
42
|
+
const EMPTY_DIFF_STATS = {
|
|
43
|
+
files: 0,
|
|
44
|
+
insertions: 0,
|
|
45
|
+
deletions: 0
|
|
46
|
+
};
|
|
47
|
+
function previewKind(uri) {
|
|
48
|
+
const path = uri.path.toLowerCase();
|
|
49
|
+
if (path.endsWith(".md") || path.endsWith(".markdown")) {
|
|
50
|
+
return "markdown";
|
|
51
|
+
}
|
|
52
|
+
if (path.endsWith(".html") || path.endsWith(".htm")) {
|
|
53
|
+
return "html";
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
function diffStatsEqual(a, b) {
|
|
58
|
+
return a.files === b.files && a.insertions === b.insertions && a.deletions === b.deletions;
|
|
59
|
+
}
|
|
60
|
+
function previewFilesEqual(a, b) {
|
|
61
|
+
if (a.length !== b.length) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
for (let i = 0; i < a.length; i++) {
|
|
65
|
+
if (a[i].kind !== b[i].kind || a[i].created !== b[i].created || !isEqual(a[i].uri, b[i].uri)) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
async function openChatPreviewFile(file, commandService, openerService, logService) {
|
|
72
|
+
try {
|
|
73
|
+
if (file.kind === "markdown") {
|
|
74
|
+
await commandService.executeCommand("markdown.showPreview", file.uri);
|
|
75
|
+
} else {
|
|
76
|
+
await commandService.executeCommand(BrowserViewCommandId.Open, ( file.uri.toString()));
|
|
77
|
+
}
|
|
78
|
+
} catch (err) {
|
|
79
|
+
logService.trace("[ChatTurnPills] Falling back to default opener for preview", err);
|
|
80
|
+
await openerService.open(file.uri);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const TURN_STATUS_PILLS_DEFAULT = {
|
|
84
|
+
changes: false,
|
|
85
|
+
preview: false
|
|
86
|
+
};
|
|
87
|
+
function observeTurnStatusPillsConfig(configurationService) {
|
|
88
|
+
return observableConfigValue(
|
|
89
|
+
ChatConfiguration.TurnStatusPills,
|
|
90
|
+
TURN_STATUS_PILLS_DEFAULT,
|
|
91
|
+
configurationService
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
class ChangesPillActionViewItem extends BaseActionViewItem {
|
|
95
|
+
constructor(action, options, _statsObs) {
|
|
96
|
+
super(undefined, action, options);
|
|
97
|
+
this._statsObs = _statsObs;
|
|
98
|
+
}
|
|
99
|
+
render(container) {
|
|
100
|
+
this.element = container;
|
|
101
|
+
container.classList.add("chat-turn-pill-changes");
|
|
102
|
+
const button = this._button = this._register(( new Button(container, {
|
|
103
|
+
secondary: true,
|
|
104
|
+
small: true,
|
|
105
|
+
...defaultButtonStyles
|
|
106
|
+
})));
|
|
107
|
+
button.element.classList.add("monaco-text-button", "chat-turn-pill-changes-button");
|
|
108
|
+
this._register(button.onDidClick(() => {
|
|
109
|
+
if (this._action.enabled) {
|
|
110
|
+
this.actionRunner.run(this._action, this._context);
|
|
111
|
+
}
|
|
112
|
+
}));
|
|
113
|
+
this._register(autorun(reader => {
|
|
114
|
+
this._statsObs.read(reader);
|
|
115
|
+
this._updateLabel();
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
_updateLabel() {
|
|
119
|
+
if (!this._button) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const {
|
|
123
|
+
files,
|
|
124
|
+
insertions,
|
|
125
|
+
deletions
|
|
126
|
+
} = this._statsObs.get();
|
|
127
|
+
const filesLabel = files === 1 ? ( localize(8214, "{0} File", files)) : ( localize(8215, "{0} Files", files));
|
|
128
|
+
reset(this._button.element, $(
|
|
129
|
+
`span.chat-turn-pill-meta-icon${ThemeIcon.asCSSSelector(Codicon.diffMultiple)}`
|
|
130
|
+
), $("span.chat-turn-pill-meta-label", undefined, filesLabel), $("span.chat-turn-pill-meta-added", undefined, `+${insertions}`), $("span.chat-turn-pill-meta-removed", undefined, `-${deletions}`));
|
|
131
|
+
this._button.setTitle(( localize(8216, "View Changes")));
|
|
132
|
+
this._button.element.setAttribute("aria-label", ( localize(8217, "View Changes: {0}, +{1}, -{2}", filesLabel, insertions, deletions)));
|
|
133
|
+
}
|
|
134
|
+
focus() {
|
|
135
|
+
this._button?.focus();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
class PreviewPillActionViewItem extends BaseActionViewItem {
|
|
139
|
+
constructor(action, options, _previewFilesObs, _resourceLabels, _openFile, _showAll) {
|
|
140
|
+
super(undefined, action, options);
|
|
141
|
+
this._previewFilesObs = _previewFilesObs;
|
|
142
|
+
this._resourceLabels = _resourceLabels;
|
|
143
|
+
this._openFile = _openFile;
|
|
144
|
+
this._showAll = _showAll;
|
|
145
|
+
}
|
|
146
|
+
render(container) {
|
|
147
|
+
this.element = container;
|
|
148
|
+
container.classList.add("chat-turn-pill-preview");
|
|
149
|
+
const primary = this._primary = this._register(( new Button(container, {
|
|
150
|
+
...TRANSPARENT_BUTTON_STYLES
|
|
151
|
+
})));
|
|
152
|
+
primary.element.classList.add("chat-turn-pill-preview-primary");
|
|
153
|
+
const label = this._register(this._resourceLabels.create(primary.element));
|
|
154
|
+
this._register(primary.onDidClick(() => {
|
|
155
|
+
const primaryFile = this._previewFilesObs.get().at(0);
|
|
156
|
+
if (primaryFile) {
|
|
157
|
+
this._openFile(primaryFile);
|
|
158
|
+
}
|
|
159
|
+
}));
|
|
160
|
+
const separator = append(container, $(".chat-turn-pill-preview-separator"));
|
|
161
|
+
const chevron = this._register(( new Button(container, {
|
|
162
|
+
...TRANSPARENT_BUTTON_STYLES
|
|
163
|
+
})));
|
|
164
|
+
chevron.element.classList.add("chat-turn-pill-preview-chevron");
|
|
165
|
+
append(chevron.element, $(`span${ThemeIcon.asCSSSelector(Codicon.chevronDown)}`));
|
|
166
|
+
const moreLabel = ( localize(8218, "Show All Previewable Files"));
|
|
167
|
+
chevron.setTitle(moreLabel);
|
|
168
|
+
chevron.setAriaLabel(moreLabel);
|
|
169
|
+
this._register(chevron.onDidClick(() => this._showAll(chevron.element)));
|
|
170
|
+
this._register(autorun(reader => {
|
|
171
|
+
const files = this._previewFilesObs.read(reader);
|
|
172
|
+
const primaryFile = files.at(0);
|
|
173
|
+
if (primaryFile) {
|
|
174
|
+
label.setResource({
|
|
175
|
+
resource: primaryFile.uri,
|
|
176
|
+
name: basename(primaryFile.uri),
|
|
177
|
+
description: ( localize(8219, "preview"))
|
|
178
|
+
}, {
|
|
179
|
+
fileKind: FileKind.FILE
|
|
180
|
+
});
|
|
181
|
+
const tooltip = ( localize(8220, "Open Preview: {0}", basename(primaryFile.uri)));
|
|
182
|
+
primary.setTitle(tooltip);
|
|
183
|
+
primary.setAriaLabel(tooltip);
|
|
184
|
+
}
|
|
185
|
+
const hasMultiple = files.length > 1;
|
|
186
|
+
separator.classList.toggle("hidden", !hasMultiple);
|
|
187
|
+
chevron.element.classList.toggle("hidden", !hasMultiple);
|
|
188
|
+
}));
|
|
189
|
+
}
|
|
190
|
+
focus() {
|
|
191
|
+
this._primary?.focus();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
let ChatTurnPillsWidget = class ChatTurnPillsWidget extends Disposable {
|
|
195
|
+
constructor(_model, _contextMenuService, instantiationService) {
|
|
196
|
+
super();
|
|
197
|
+
this._model = _model;
|
|
198
|
+
this._contextMenuService = _contextMenuService;
|
|
199
|
+
this.element = $(".chat-turn-pills.show-file-icons.hidden");
|
|
200
|
+
this._resourceLabels = this._register(
|
|
201
|
+
instantiationService.createInstance(ResourceLabels, DEFAULT_LABELS_CONTAINER)
|
|
202
|
+
);
|
|
203
|
+
this._changesAction = this._register(( new Action(CHANGES_PILL_ACTION_ID, ( localize(8216, "View Changes")), undefined, true, async () => this._model.openChanges())));
|
|
204
|
+
this._previewAction = this._register(( new Action(PREVIEW_PILL_ACTION_ID, ( localize(8221, "Open Preview")), undefined, true, async () => this._openPrimaryPreview())));
|
|
205
|
+
this._toolbar = this._register(( new ToolBar(this.element, this._contextMenuService, {
|
|
206
|
+
orientation: ActionsOrientation.HORIZONTAL,
|
|
207
|
+
ariaLabel: ( localize(8222, "Turn status")),
|
|
208
|
+
actionViewItemProvider: (action, options) => {
|
|
209
|
+
if (action.id === CHANGES_PILL_ACTION_ID) {
|
|
210
|
+
return ( new ChangesPillActionViewItem(action, options, this._model.stats));
|
|
211
|
+
}
|
|
212
|
+
if (action.id === PREVIEW_PILL_ACTION_ID) {
|
|
213
|
+
return ( new PreviewPillActionViewItem(
|
|
214
|
+
action,
|
|
215
|
+
options,
|
|
216
|
+
this._model.previewFiles,
|
|
217
|
+
this._resourceLabels,
|
|
218
|
+
file => this._model.openPreviewFile(file),
|
|
219
|
+
anchor => this._showAllPreviews(anchor)
|
|
220
|
+
));
|
|
221
|
+
}
|
|
222
|
+
return undefined;
|
|
223
|
+
}
|
|
224
|
+
})));
|
|
225
|
+
this.isVisible = derived(this, reader => this._showChanges(reader) || this._showPreview(reader));
|
|
226
|
+
this._register(autorun(reader => {
|
|
227
|
+
this._updateVisibleActions(this._showChanges(reader), this._showPreview(reader));
|
|
228
|
+
}));
|
|
229
|
+
}
|
|
230
|
+
_showChanges(reader) {
|
|
231
|
+
return this._model.changesEnabled.read(reader) && this._model.stats.read(reader).files > 0;
|
|
232
|
+
}
|
|
233
|
+
_showPreview(reader) {
|
|
234
|
+
return this._model.previewEnabled.read(reader) && this._model.previewFiles.read(reader).length > 0;
|
|
235
|
+
}
|
|
236
|
+
_updateVisibleActions(showChanges, showPreview) {
|
|
237
|
+
const actions = [];
|
|
238
|
+
if (showChanges) {
|
|
239
|
+
actions.push(this._changesAction);
|
|
240
|
+
}
|
|
241
|
+
if (showPreview) {
|
|
242
|
+
actions.push(this._previewAction);
|
|
243
|
+
}
|
|
244
|
+
const signature = ( actions.map(a => a.id)).join(",");
|
|
245
|
+
if (signature !== this._visibleSignature) {
|
|
246
|
+
this._visibleSignature = signature;
|
|
247
|
+
this._toolbar.setActions(actions);
|
|
248
|
+
}
|
|
249
|
+
this.element.classList.toggle("hidden", actions.length === 0);
|
|
250
|
+
}
|
|
251
|
+
_openPrimaryPreview() {
|
|
252
|
+
const primaryFile = this._model.previewFiles.get().at(0);
|
|
253
|
+
if (primaryFile) {
|
|
254
|
+
this._model.openPreviewFile(primaryFile);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
_showAllPreviews(anchor) {
|
|
258
|
+
const files = this._model.previewFiles.get();
|
|
259
|
+
if (files.length === 0) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
this._contextMenuService.showContextMenu({
|
|
263
|
+
getAnchor: () => anchor,
|
|
264
|
+
getActions: () => ( files.map(file => toAction({
|
|
265
|
+
id: `${PREVIEW_PILL_ACTION_ID}.${( file.uri.toString())}`,
|
|
266
|
+
label: basename(file.uri),
|
|
267
|
+
class: ThemeIcon.asClassName(file.kind === "html" ? Codicon.globe : Codicon.openPreview),
|
|
268
|
+
run: () => this._model.openPreviewFile(file)
|
|
269
|
+
})))
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
ChatTurnPillsWidget = ( __decorate([( __param(1, IContextMenuService)), ( __param(2, IInstantiationService))], ChatTurnPillsWidget));
|
|
274
|
+
|
|
275
|
+
export { ChatTurnPillsWidget, EMPTY_DIFF_STATS, diffStatsEqual, observeTurnStatusPillsConfig, openChatPreviewFile, previewFilesEqual, previewKind };
|
|
@@ -158,12 +158,16 @@ export declare class ChatWidget extends Disposable implements IChatWidget {
|
|
|
158
158
|
private agentInInput;
|
|
159
159
|
private _visible;
|
|
160
160
|
get visible(): boolean;
|
|
161
|
+
private _inputVisible;
|
|
161
162
|
private _instructionFilesCheckPromise;
|
|
162
163
|
private _instructionFilesExist;
|
|
163
164
|
private _isRenderingWelcome;
|
|
164
165
|
private _lockedAgent?;
|
|
165
166
|
private readonly _lockedToCodingAgentContextKey;
|
|
166
167
|
private readonly _lockedCodingAgentIdContextKey;
|
|
168
|
+
private readonly _readOnlyContextKey;
|
|
169
|
+
private readonly _chatIsAgentHostSessionContextKey;
|
|
170
|
+
private readonly _chatAgentHostProviderIdContextKey;
|
|
167
171
|
private readonly _chatSessionSupportsForkContextKey;
|
|
168
172
|
private readonly _agentSupportsAttachmentsContextKey;
|
|
169
173
|
private readonly _sessionIsEmptyContextKey;
|
|
@@ -257,6 +261,19 @@ export declare class ChatWidget extends Disposable implements IChatWidget {
|
|
|
257
261
|
*/
|
|
258
262
|
private _handleDelegationExit;
|
|
259
263
|
private archiveLocalParentSession;
|
|
264
|
+
/**
|
|
265
|
+
* Mark the chat shown in this widget as read-only (non-interactive) or not.
|
|
266
|
+
* Read-only chats hide the composer and expose a context key so mutating
|
|
267
|
+
* actions (e.g. Start Over, Restore Checkpoint) are not offered.
|
|
268
|
+
*/
|
|
269
|
+
setReadOnly(readOnly: boolean): void;
|
|
270
|
+
/**
|
|
271
|
+
* Show or hide the input part. Hidden inputs are removed from the DOM flow
|
|
272
|
+
* and not reserved during layout so the message list takes the full height.
|
|
273
|
+
* Used to render read-only (non-interactive) chats without a composer.
|
|
274
|
+
*/
|
|
275
|
+
setInputVisible(visible: boolean): void;
|
|
276
|
+
private _applyInputVisibility;
|
|
260
277
|
setVisible(visible: boolean): void;
|
|
261
278
|
private createList;
|
|
262
279
|
startEditing(requestId: string): void;
|
|
@@ -282,7 +299,7 @@ export declare class ChatWidget extends Disposable implements IChatWidget {
|
|
|
282
299
|
setInput(value?: string): void;
|
|
283
300
|
getInput(): string;
|
|
284
301
|
getContrib<T extends IChatWidgetContrib>(id: string): T | undefined;
|
|
285
|
-
lockToCodingAgent(name: string, displayName: string, agentId: string): void;
|
|
302
|
+
lockToCodingAgent(name: string, displayName: string, agentId: string, agentHostProviderId?: string): void;
|
|
286
303
|
unlockFromCodingAgent(): void;
|
|
287
304
|
get isLockedToCodingAgent(): boolean;
|
|
288
305
|
get lockedAgentId(): string | undefined;
|