@codingame/monaco-vscode-katex-common 34.1.3 → 35.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/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
|
@@ -6,11 +6,12 @@ import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/reso
|
|
|
6
6
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
7
|
import { ILanguageService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service';
|
|
8
8
|
import { IModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service';
|
|
9
|
+
import { ITextModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service';
|
|
9
10
|
import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
|
|
10
11
|
import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
|
|
11
12
|
import { SIDE_GROUP } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService';
|
|
12
13
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
13
|
-
import { ChatEditPillElement } from './chatEditPillElement.js';
|
|
14
|
+
import { ChatEditPillElement, isResourceContentEmpty } from './chatEditPillElement.js';
|
|
14
15
|
|
|
15
16
|
let ChatExternalEditContentPart = class ChatExternalEditContentPart extends ChatEditPillElement {
|
|
16
17
|
get domNode() {
|
|
@@ -23,11 +24,13 @@ let ChatExternalEditContentPart = class ChatExternalEditContentPart extends Chat
|
|
|
23
24
|
modelService,
|
|
24
25
|
languageService,
|
|
25
26
|
hoverService,
|
|
26
|
-
editorService
|
|
27
|
+
editorService,
|
|
28
|
+
textModelService
|
|
27
29
|
) {
|
|
28
30
|
super(labelService, modelService, languageService, hoverService);
|
|
29
31
|
this.edit = edit;
|
|
30
32
|
this.editorService = editorService;
|
|
33
|
+
this.textModelService = textModelService;
|
|
31
34
|
this._onDidChangeDiff = this._register(( new Emitter()));
|
|
32
35
|
this.onDidChangeDiff = this._onDidChangeDiff.event;
|
|
33
36
|
this.render(edit);
|
|
@@ -45,10 +48,10 @@ let ChatExternalEditContentPart = class ChatExternalEditContentPart extends Chat
|
|
|
45
48
|
if (edit.diff && (edit.diff.added > 0 || edit.diff.removed > 0)) {
|
|
46
49
|
this.setDiff(edit.diff);
|
|
47
50
|
const fileName = this.labelService.getUriBasenameLabel(edit.uri);
|
|
48
|
-
const insertionsFragment = edit.diff.added === 1 ? ( localize(
|
|
49
|
-
const deletionsFragment = edit.diff.removed === 1 ? ( localize(
|
|
51
|
+
const insertionsFragment = edit.diff.added === 1 ? ( localize(7809, "1 insertion")) : ( localize(7810, "{0} insertions", edit.diff.added));
|
|
52
|
+
const deletionsFragment = edit.diff.removed === 1 ? ( localize(7811, "1 deletion")) : ( localize(7812, "{0} deletions", edit.diff.removed));
|
|
50
53
|
this.setAriaLabel(( localize(
|
|
51
|
-
|
|
54
|
+
7813,
|
|
52
55
|
"Edited {0}, {1}, {2}",
|
|
53
56
|
fileName,
|
|
54
57
|
insertionsFragment,
|
|
@@ -69,7 +72,7 @@ let ChatExternalEditContentPart = class ChatExternalEditContentPart extends Chat
|
|
|
69
72
|
this.setAriaLabel(`${label} ${this.labelService.getUriBasenameLabel(edit.uri)}`);
|
|
70
73
|
}
|
|
71
74
|
}
|
|
72
|
-
openEdit(
|
|
75
|
+
async openEdit(
|
|
73
76
|
{
|
|
74
77
|
editorOptions: options,
|
|
75
78
|
openToSide
|
|
@@ -77,6 +80,13 @@ let ChatExternalEditContentPart = class ChatExternalEditContentPart extends Chat
|
|
|
77
80
|
) {
|
|
78
81
|
const group = openToSide ? SIDE_GROUP : undefined;
|
|
79
82
|
if (this.edit.beforeContentUri && this.edit.afterContentUri) {
|
|
83
|
+
if (this.edit.editKind === "edit" && (this.edit.diff?.removed ?? 0) === 0 && (await isResourceContentEmpty(this.textModelService, this.edit.beforeContentUri))) {
|
|
84
|
+
this.editorService.openEditor({
|
|
85
|
+
resource: this.edit.uri,
|
|
86
|
+
options
|
|
87
|
+
}, group);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
80
90
|
this.editorService.openEditor({
|
|
81
91
|
original: {
|
|
82
92
|
resource: this.edit.beforeContentUri
|
|
@@ -105,28 +115,28 @@ let ChatExternalEditContentPart = class ChatExternalEditContentPart extends Chat
|
|
|
105
115
|
return (isEqual(other.uri, this.edit.uri) && other.editKind === this.edit.editKind && (other.diff?.added ?? 0) === (this.edit.diff?.added ?? 0) && (other.diff?.removed ?? 0) === (this.edit.diff?.removed ?? 0));
|
|
106
116
|
}
|
|
107
117
|
};
|
|
108
|
-
ChatExternalEditContentPart = ( __decorate([( __param(2, ILabelService)), ( __param(3, IModelService)), ( __param(4, ILanguageService)), ( __param(5, IHoverService)), ( __param(6, IEditorService))], ChatExternalEditContentPart));
|
|
118
|
+
ChatExternalEditContentPart = ( __decorate([( __param(2, ILabelService)), ( __param(3, IModelService)), ( __param(4, ILanguageService)), ( __param(5, IHoverService)), ( __param(6, IEditorService)), ( __param(7, ITextModelService))], ChatExternalEditContentPart));
|
|
109
119
|
function describeEdit(edit) {
|
|
110
120
|
switch (edit.editKind) {
|
|
111
121
|
case "create":
|
|
112
122
|
return {
|
|
113
123
|
icon: Codicon.check,
|
|
114
|
-
label: ( localize(
|
|
124
|
+
label: ( localize(7814, "Created"))
|
|
115
125
|
};
|
|
116
126
|
case "delete":
|
|
117
127
|
return {
|
|
118
128
|
icon: Codicon.check,
|
|
119
|
-
label: ( localize(
|
|
129
|
+
label: ( localize(7815, "Deleted"))
|
|
120
130
|
};
|
|
121
131
|
case "rename":
|
|
122
132
|
return {
|
|
123
133
|
icon: Codicon.check,
|
|
124
|
-
label: ( localize(
|
|
134
|
+
label: ( localize(7816, "Renamed"))
|
|
125
135
|
};
|
|
126
136
|
case "edit":
|
|
127
137
|
return {
|
|
128
138
|
icon: Codicon.check,
|
|
129
|
-
label: ( localize(
|
|
139
|
+
label: ( localize(7817, "Edited"))
|
|
130
140
|
};
|
|
131
141
|
}
|
|
132
142
|
}
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js
CHANGED
|
@@ -20,7 +20,7 @@ let ChatHookContentPart = class ChatHookContentPart extends ChatCollapsibleConte
|
|
|
20
20
|
const isStopped = !!hookPart.stopReason;
|
|
21
21
|
const isWarning = !!hookPart.systemMessage;
|
|
22
22
|
const toolName = hookPart.toolDisplayName;
|
|
23
|
-
const title = isStopped ? (toolName ? ( localize(
|
|
23
|
+
const title = isStopped ? (toolName ? ( localize(7818, "Blocked {0} - {1} hook", toolName, hookTypeLabel)) : ( localize(7819, "Blocked by {0} hook", hookTypeLabel))) : (toolName ? ( localize(7820, "Warning for {0} - {1} hook", toolName, hookTypeLabel)) : ( localize(7821, "Warning from {0} hook", hookTypeLabel)));
|
|
24
24
|
super(title, context, undefined, hoverService, configurationService);
|
|
25
25
|
this.hookPart = hookPart;
|
|
26
26
|
this.icon = isStopped ? Codicon.error : isWarning ? Codicon.warning : Codicon.check;
|
|
@@ -246,10 +246,10 @@ let InlineAnchorWidget = class InlineAnchorWidget extends Disposable {
|
|
|
246
246
|
);
|
|
247
247
|
if (location.range) {
|
|
248
248
|
if (location.range.startLineNumber === location.range.endLineNumber) {
|
|
249
|
-
element.setAttribute("aria-label", ( localize(
|
|
249
|
+
element.setAttribute("aria-label", ( localize(7822, "{0} line {1}", filePathLabel, location.range.startLineNumber)));
|
|
250
250
|
} else {
|
|
251
251
|
element.setAttribute("aria-label", ( localize(
|
|
252
|
-
|
|
252
|
+
7823,
|
|
253
253
|
"{0} lines {1} to {2}",
|
|
254
254
|
filePathLabel,
|
|
255
255
|
location.range.startLineNumber,
|
|
@@ -319,7 +319,7 @@ registerAction2(class AddFileToChatAction extends Action2 {
|
|
|
319
319
|
constructor() {
|
|
320
320
|
super({
|
|
321
321
|
id: AddFileToChatAction.id,
|
|
322
|
-
title: ( localize2(
|
|
322
|
+
title: ( localize2(7824, "Add File to Chat")),
|
|
323
323
|
menu: [{
|
|
324
324
|
id: MenuId.ChatInlineResourceAnchorContext,
|
|
325
325
|
group: "chat",
|
|
@@ -343,7 +343,7 @@ registerAction2(class CopyResourceAction extends Action2 {
|
|
|
343
343
|
constructor() {
|
|
344
344
|
super({
|
|
345
345
|
id: CopyResourceAction.id,
|
|
346
|
-
title: ( localize2(
|
|
346
|
+
title: ( localize2(7825, "Copy")),
|
|
347
347
|
f1: false,
|
|
348
348
|
precondition: chatAttachmentResourceContextKey,
|
|
349
349
|
keybinding: {
|
|
@@ -370,7 +370,7 @@ registerAction2(class OpenToSideResourceAction extends Action2 {
|
|
|
370
370
|
constructor() {
|
|
371
371
|
super({
|
|
372
372
|
id: OpenToSideResourceAction.id,
|
|
373
|
-
title: ( localize2(
|
|
373
|
+
title: ( localize2(7826, "Open to the Side")),
|
|
374
374
|
f1: false,
|
|
375
375
|
precondition: chatAttachmentResourceContextKey,
|
|
376
376
|
keybinding: {
|
|
@@ -436,8 +436,8 @@ registerAction2(class GoToDefinitionAction extends Action2 {
|
|
|
436
436
|
super({
|
|
437
437
|
id: GoToDefinitionAction.id,
|
|
438
438
|
title: {
|
|
439
|
-
...( localize2(
|
|
440
|
-
mnemonicTitle: ( localize(
|
|
439
|
+
...( localize2(7827, "Go to Definition")),
|
|
440
|
+
mnemonicTitle: ( localize(7828, "Go to &&Definition"))
|
|
441
441
|
},
|
|
442
442
|
menu: ( [
|
|
443
443
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -494,8 +494,8 @@ registerAction2(class GoToTypeDefinitionsAction extends Action2 {
|
|
|
494
494
|
super({
|
|
495
495
|
id: GoToTypeDefinitionsAction.id,
|
|
496
496
|
title: {
|
|
497
|
-
...( localize2(
|
|
498
|
-
mnemonicTitle: ( localize(
|
|
497
|
+
...( localize2(7829, "Go to Type Definitions")),
|
|
498
|
+
mnemonicTitle: ( localize(7830, "Go to &&Type Definitions"))
|
|
499
499
|
},
|
|
500
500
|
menu: ( [
|
|
501
501
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -520,8 +520,8 @@ registerAction2(class GoToImplementations extends Action2 {
|
|
|
520
520
|
super({
|
|
521
521
|
id: GoToImplementations.id,
|
|
522
522
|
title: {
|
|
523
|
-
...( localize2(
|
|
524
|
-
mnemonicTitle: ( localize(
|
|
523
|
+
...( localize2(7831, "Go to Implementations")),
|
|
524
|
+
mnemonicTitle: ( localize(7832, "Go to &&Implementations"))
|
|
525
525
|
},
|
|
526
526
|
menu: ( [
|
|
527
527
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -546,8 +546,8 @@ registerAction2(class GoToReferencesAction extends Action2 {
|
|
|
546
546
|
super({
|
|
547
547
|
id: GoToReferencesAction.id,
|
|
548
548
|
title: {
|
|
549
|
-
...( localize2(
|
|
550
|
-
mnemonicTitle: ( localize(
|
|
549
|
+
...( localize2(7833, "Go to References")),
|
|
550
|
+
mnemonicTitle: ( localize(7834, "Go to &&References"))
|
|
551
551
|
},
|
|
552
552
|
menu: ( [
|
|
553
553
|
MenuId.ChatInlineSymbolAnchorContext,
|
|
@@ -4,6 +4,7 @@ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"
|
|
|
4
4
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
5
5
|
import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
|
|
6
6
|
import { IModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service";
|
|
7
|
+
import { ITextModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service";
|
|
7
8
|
import { IMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions.service";
|
|
8
9
|
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
9
10
|
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
@@ -18,6 +19,7 @@ import { IEditSessionDiffStats, IEditSessionEntryDiff } from "@codingame/monaco-
|
|
|
18
19
|
import { IChatProgressRenderableResponseContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel";
|
|
19
20
|
import { IChatMarkdownContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
20
21
|
import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service";
|
|
22
|
+
import { IChatSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service";
|
|
21
23
|
import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
22
24
|
import { IChatOutputRendererService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.service";
|
|
23
25
|
import { ICodeBlockRenderOptions } from "./codeBlockPart.js";
|
|
@@ -43,6 +45,7 @@ export declare class ChatMarkdownContentPart extends Disposable implements IChat
|
|
|
43
45
|
private readonly instantiationService;
|
|
44
46
|
private readonly aiEditTelemetryService;
|
|
45
47
|
private readonly chatOutputRendererService;
|
|
48
|
+
private readonly chatSessionsService;
|
|
46
49
|
private static ID_POOL;
|
|
47
50
|
readonly codeblocksPartId: string;
|
|
48
51
|
readonly domNode: HTMLElement;
|
|
@@ -60,7 +63,7 @@ export declare class ChatMarkdownContentPart extends Disposable implements IChat
|
|
|
60
63
|
private readonly mathLayoutParticipants;
|
|
61
64
|
/** Incremental rendering morpher — only created when the experiment is enabled. */
|
|
62
65
|
private _incrementalMorpher;
|
|
63
|
-
constructor(markdown: IChatMarkdownContent, context: IChatContentPartRenderContext, editorPool: EditorPool, fillInIncompleteTokens: boolean | undefined, codeBlockStartIndex: number | undefined, renderer: IMarkdownRenderer, markdownRenderOptions: MarkdownRenderOptions | undefined, currentWidth: number, rendererOptions: IChatMarkdownContentPartOptions, contextKeyService: IContextKeyService, configurationService: IConfigurationService, instantiationService: IInstantiationService, aiEditTelemetryService: IAiEditTelemetryService, chatOutputRendererService: IChatOutputRendererService);
|
|
66
|
+
constructor(markdown: IChatMarkdownContent, context: IChatContentPartRenderContext, editorPool: EditorPool, fillInIncompleteTokens: boolean | undefined, codeBlockStartIndex: number | undefined, renderer: IMarkdownRenderer, markdownRenderOptions: MarkdownRenderOptions | undefined, currentWidth: number, rendererOptions: IChatMarkdownContentPartOptions, contextKeyService: IContextKeyService, configurationService: IConfigurationService, instantiationService: IInstantiationService, aiEditTelemetryService: IAiEditTelemetryService, chatOutputRendererService: IChatOutputRendererService, chatSessionsService: IChatSessionsService);
|
|
64
67
|
dispose(): void;
|
|
65
68
|
private renderCodeBlockPill;
|
|
66
69
|
private renderChatOutputCodeBlock;
|
|
@@ -102,12 +105,13 @@ export declare class CollapsedCodeBlock extends ChatEditPillElement {
|
|
|
102
105
|
private readonly menuService;
|
|
103
106
|
private readonly chatService;
|
|
104
107
|
private readonly configurationService;
|
|
108
|
+
private readonly textModelService;
|
|
105
109
|
private currentDiff;
|
|
106
110
|
get diff(): IEditSessionEntryDiff | undefined;
|
|
107
111
|
private readonly _onDidChangeDiff;
|
|
108
112
|
readonly onDidChangeDiff: Event<IEditSessionEntryDiff>;
|
|
109
113
|
private readonly progressStore;
|
|
110
|
-
constructor(sessionResource: URI, requestId: string, inUndoStop: string | undefined, labelService: ILabelService, editorService: IEditorService, modelService: IModelService, languageService: ILanguageService, contextMenuService: IContextMenuService, contextKeyService: IContextKeyService, menuService: IMenuService, hoverService: IHoverService, chatService: IChatService, configurationService: IConfigurationService);
|
|
114
|
+
constructor(sessionResource: URI, requestId: string, inUndoStop: string | undefined, labelService: ILabelService, editorService: IEditorService, modelService: IModelService, languageService: ILanguageService, contextMenuService: IContextMenuService, contextKeyService: IContextKeyService, menuService: IMenuService, hoverService: IHoverService, chatService: IChatService, configurationService: IConfigurationService, textModelService: ITextModelService);
|
|
111
115
|
private showDiff;
|
|
112
116
|
/**
|
|
113
117
|
* @param uri URI of the file on-disk being changed
|
|
@@ -24,6 +24,7 @@ import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core
|
|
|
24
24
|
import { isLocation } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages';
|
|
25
25
|
import { ILanguageService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service';
|
|
26
26
|
import { IModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service';
|
|
27
|
+
import { ITextModelService } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service';
|
|
27
28
|
import { EditDeltaInfo } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/textModelEditSource';
|
|
28
29
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
29
30
|
import { getFlatContextMenuActions } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/menuEntryActionViewItem';
|
|
@@ -42,6 +43,7 @@ import { IAiEditTelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/
|
|
|
42
43
|
import { MarkedKatexSupport } from '../../../../markdown/browser/markedKatexSupport.js';
|
|
43
44
|
import { extractCodeblockUrisFromText, extractVulnerabilitiesFromText } from '../../../common/widget/annotations.js';
|
|
44
45
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
|
|
46
|
+
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
45
47
|
import { isResponseVM, isRequestVM } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
|
|
46
48
|
import { ChatConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
47
49
|
import { IChatOutputRendererService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.service';
|
|
@@ -50,7 +52,7 @@ import { parseUnifiedDiff, MarkdownDiffBlockPart } from './chatDiffBlockPart.js'
|
|
|
50
52
|
import { ChatMarkdownDecorationsRenderer } from './chatMarkdownDecorationsRenderer.js';
|
|
51
53
|
import { CodeBlockPart } from './codeBlockPart.js';
|
|
52
54
|
import * as chatCodeBlockPill from './media/chatCodeBlockPill.css';
|
|
53
|
-
import { ChatEditPillElement } from './chatEditPillElement.js';
|
|
55
|
+
import { ChatEditPillElement, isResourceContentEmpty } from './chatEditPillElement.js';
|
|
54
56
|
import { ChatExtensionsContentPart } from './chatExtensionsContentPart.js';
|
|
55
57
|
import { ChatProgressSubPart } from './chatProgressContentPart.js';
|
|
56
58
|
import { IncrementalDOMMorpher } from './chatIncrementalRendering/chatIncrementalRendering.js';
|
|
@@ -87,7 +89,8 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
87
89
|
configurationService,
|
|
88
90
|
instantiationService,
|
|
89
91
|
aiEditTelemetryService,
|
|
90
|
-
chatOutputRendererService
|
|
92
|
+
chatOutputRendererService,
|
|
93
|
+
chatSessionsService
|
|
91
94
|
) {
|
|
92
95
|
super();
|
|
93
96
|
this.markdown = markdown;
|
|
@@ -96,6 +99,7 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
96
99
|
this.instantiationService = instantiationService;
|
|
97
100
|
this.aiEditTelemetryService = aiEditTelemetryService;
|
|
98
101
|
this.chatOutputRendererService = chatOutputRendererService;
|
|
102
|
+
this.chatSessionsService = chatSessionsService;
|
|
99
103
|
this.codeblocksPartId = String(++ChatMarkdownContentPart_1.ID_POOL);
|
|
100
104
|
this._onDidChangeHeight = this._register(( new Emitter()));
|
|
101
105
|
this.onDidChangeHeight = this._onDidChangeHeight.event;
|
|
@@ -161,6 +165,12 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
161
165
|
gfm: true,
|
|
162
166
|
breaks: true
|
|
163
167
|
};
|
|
168
|
+
const configuredUriTransformer = markdownRenderOptions?.transformUri;
|
|
169
|
+
const transformUri = isResponseVM(element) ? (href, kind) => this.chatSessionsService.resolveChatResponseUri(
|
|
170
|
+
element.sessionResource,
|
|
171
|
+
configuredUriTransformer?.(href, kind) ?? href,
|
|
172
|
+
kind
|
|
173
|
+
) : configuredUriTransformer;
|
|
164
174
|
const result = store.add(renderer.render(this.markdown.content, {
|
|
165
175
|
sanitizerConfig: MarkedKatexSupport.getSanitizerOptions({
|
|
166
176
|
allowedTags: allowedChatMarkdownHtmlTags,
|
|
@@ -313,7 +323,8 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
313
323
|
},
|
|
314
324
|
markedOptions: markedOpts,
|
|
315
325
|
markedExtensions,
|
|
316
|
-
...markdownRenderOptions
|
|
326
|
+
...markdownRenderOptions,
|
|
327
|
+
transformUri
|
|
317
328
|
}, this.domNode));
|
|
318
329
|
if (isResponseVM(element) && !element.model.codeBlockInfos && element.model.isComplete) {
|
|
319
330
|
element.model.initializeCodeBlockInfos(( this._codeblocks.map(info => {
|
|
@@ -323,7 +334,7 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
323
334
|
feature: "sideBarChat",
|
|
324
335
|
editDeltaInfo: info.editDeltaInfo,
|
|
325
336
|
languageId: info.languageId,
|
|
326
|
-
modeId: element.model.request?.modeInfo?.
|
|
337
|
+
modeId: element.model.request?.modeInfo?.telemetryModeId,
|
|
327
338
|
modelId: element.model.request?.modelId,
|
|
328
339
|
applyCodeBlockSuggestionId: undefined,
|
|
329
340
|
source: undefined,
|
|
@@ -506,7 +517,7 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
506
517
|
this._register(disposable);
|
|
507
518
|
}
|
|
508
519
|
};
|
|
509
|
-
ChatMarkdownContentPart = ChatMarkdownContentPart_1 = ( __decorate([( __param(9, IContextKeyService)), ( __param(10, IConfigurationService)), ( __param(11, IInstantiationService)), ( __param(12, IAiEditTelemetryService)), ( __param(13, IChatOutputRendererService))], ChatMarkdownContentPart));
|
|
520
|
+
ChatMarkdownContentPart = ChatMarkdownContentPart_1 = ( __decorate([( __param(9, IContextKeyService)), ( __param(10, IConfigurationService)), ( __param(11, IInstantiationService)), ( __param(12, IAiEditTelemetryService)), ( __param(13, IChatOutputRendererService)), ( __param(14, IChatSessionsService))], ChatMarkdownContentPart));
|
|
510
521
|
function equalsInlineReferences(a, b) {
|
|
511
522
|
if (a === b) {
|
|
512
523
|
return true;
|
|
@@ -587,7 +598,7 @@ let ChatOutputCodeBlockPart = ChatOutputCodeBlockPart_1 = class ChatOutputCodeBl
|
|
|
587
598
|
this._disposeCts = this._register(( new CancellationTokenSource()));
|
|
588
599
|
this._renderedOutputPart = this._register(( new MutableDisposable()));
|
|
589
600
|
this.reuseKey = ChatOutputCodeBlockPart_1.reuseKey(context.element.id, codeBlockIndex, identifier);
|
|
590
|
-
const title = ( localize(
|
|
601
|
+
const title = ( localize(7835, "Rendered code block {0}", codeBlockIndex + 1));
|
|
591
602
|
this.element = $(".interactive-result-code-block.chat-output-code-block.tool-output-part");
|
|
592
603
|
this.element.tabIndex = -1;
|
|
593
604
|
this.element.ariaLabel = title;
|
|
@@ -604,7 +615,7 @@ let ChatOutputCodeBlockPart = ChatOutputCodeBlockPart_1 = class ChatOutputCodeBl
|
|
|
604
615
|
parent.style.height = `${partState.height}px`;
|
|
605
616
|
}
|
|
606
617
|
const progressMessage = $("span");
|
|
607
|
-
progressMessage.textContent = ( localize(
|
|
618
|
+
progressMessage.textContent = ( localize(7836, "Rendering code block..."));
|
|
608
619
|
const progressPart = this._register(this.instantiationService.createInstance(
|
|
609
620
|
ChatProgressSubPart,
|
|
610
621
|
progressMessage,
|
|
@@ -680,7 +691,7 @@ let ChatOutputCodeBlockPart = ChatOutputCodeBlockPart_1 = class ChatOutputCodeBl
|
|
|
680
691
|
iconElement.classList.add(...ThemeIcon.asClassNameArray(Codicon.error));
|
|
681
692
|
errorHeaderNode.append(iconElement);
|
|
682
693
|
const errorTitleNode = $(".output-error-title");
|
|
683
|
-
errorTitleNode.textContent = ( localize(
|
|
694
|
+
errorTitleNode.textContent = ( localize(7837, "Error rendering the code block"));
|
|
684
695
|
errorHeaderNode.append(errorTitleNode);
|
|
685
696
|
const errorMessageNode = $(".output-error-details");
|
|
686
697
|
errorMessageNode.textContent = error?.message || String(error);
|
|
@@ -706,7 +717,8 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends ChatEditPillElement {
|
|
|
706
717
|
menuService,
|
|
707
718
|
hoverService,
|
|
708
719
|
chatService,
|
|
709
|
-
configurationService
|
|
720
|
+
configurationService,
|
|
721
|
+
textModelService
|
|
710
722
|
) {
|
|
711
723
|
super(labelService, modelService, languageService, hoverService);
|
|
712
724
|
this.sessionResource = sessionResource;
|
|
@@ -718,6 +730,7 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends ChatEditPillElement {
|
|
|
718
730
|
this.menuService = menuService;
|
|
719
731
|
this.chatService = chatService;
|
|
720
732
|
this.configurationService = configurationService;
|
|
733
|
+
this.textModelService = textModelService;
|
|
721
734
|
this._onDidChangeDiff = this._register(( new Emitter()));
|
|
722
735
|
this.onDidChangeDiff = this._onDidChangeDiff.event;
|
|
723
736
|
this.progressStore = this._store.add(( new DisposableStore()));
|
|
@@ -743,13 +756,21 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends ChatEditPillElement {
|
|
|
743
756
|
});
|
|
744
757
|
}));
|
|
745
758
|
}
|
|
746
|
-
showDiff(
|
|
759
|
+
async showDiff(
|
|
747
760
|
{
|
|
748
761
|
editorOptions: options,
|
|
749
762
|
openToSide
|
|
750
763
|
}
|
|
751
764
|
) {
|
|
765
|
+
const group = openToSide ? SIDE_GROUP : undefined;
|
|
752
766
|
if (this.currentDiff) {
|
|
767
|
+
if (this.currentDiff.removed === 0 && (await isResourceContentEmpty(this.textModelService, this.currentDiff.originalURI)) && this.uri) {
|
|
768
|
+
this.editorService.openEditor({
|
|
769
|
+
resource: this.uri,
|
|
770
|
+
options
|
|
771
|
+
}, group);
|
|
772
|
+
return;
|
|
773
|
+
}
|
|
753
774
|
this.editorService.openEditor({
|
|
754
775
|
original: {
|
|
755
776
|
resource: this.currentDiff.originalURI
|
|
@@ -758,12 +779,12 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends ChatEditPillElement {
|
|
|
758
779
|
resource: this.currentDiff.modifiedURI
|
|
759
780
|
},
|
|
760
781
|
options
|
|
761
|
-
},
|
|
782
|
+
}, group);
|
|
762
783
|
} else if (this.uri) {
|
|
763
784
|
this.editorService.openEditor({
|
|
764
785
|
resource: this.uri,
|
|
765
786
|
options
|
|
766
|
-
},
|
|
787
|
+
}, group);
|
|
767
788
|
}
|
|
768
789
|
}
|
|
769
790
|
render(uri) {
|
|
@@ -790,7 +811,7 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends ChatEditPillElement {
|
|
|
790
811
|
this.progressStore.add(autorun(r => {
|
|
791
812
|
if (isStreaming.read(r)) {
|
|
792
813
|
const codicon = ThemeIcon.modify(Codicon.loading, "spin");
|
|
793
|
-
this.setStatus(codicon, ( localize(
|
|
814
|
+
this.setStatus(codicon, ( localize(7838, "Applying edits")));
|
|
794
815
|
const entry = editSession.readEntry(uri, r);
|
|
795
816
|
const rwRatio = Math.floor((entry?.rewriteRatio.read(r) || 0) * 100);
|
|
796
817
|
const showAnimation = this.configurationService.getValue(ChatConfiguration.ShowCodeBlockProgressAnimation);
|
|
@@ -799,10 +820,10 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends ChatEditPillElement {
|
|
|
799
820
|
this.setLabelDetail("");
|
|
800
821
|
} else {
|
|
801
822
|
this.setProgressFill(undefined);
|
|
802
|
-
this.setLabelDetail(rwRatio === 0 || !rwRatio ? ( localize(
|
|
823
|
+
this.setLabelDetail(rwRatio === 0 || !rwRatio ? ( localize(7839, "Generating edits...")) : ( localize(7840, "({0}%)...", rwRatio)));
|
|
803
824
|
}
|
|
804
825
|
} else {
|
|
805
|
-
this.setStatus(Codicon.check, ( localize(
|
|
826
|
+
this.setStatus(Codicon.check, ( localize(7841, "Edited")));
|
|
806
827
|
this.setProgressFill(undefined);
|
|
807
828
|
this.setLabelDetail("");
|
|
808
829
|
}
|
|
@@ -819,10 +840,10 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends ChatEditPillElement {
|
|
|
819
840
|
added: changes.added,
|
|
820
841
|
removed: changes.removed
|
|
821
842
|
});
|
|
822
|
-
const insertionsFragment = changes.added === 1 ? ( localize(
|
|
823
|
-
const deletionsFragment = changes.removed === 1 ? ( localize(
|
|
843
|
+
const insertionsFragment = changes.added === 1 ? ( localize(7842, "1 insertion")) : ( localize(7843, "{0} insertions", changes.added));
|
|
844
|
+
const deletionsFragment = changes.removed === 1 ? ( localize(7844, "1 deletion")) : ( localize(7845, "{0} deletions", changes.removed));
|
|
824
845
|
this.setAriaLabel(( localize(
|
|
825
|
-
|
|
846
|
+
7846,
|
|
826
847
|
"Edited {0}, {1}, {2}",
|
|
827
848
|
iconText,
|
|
828
849
|
insertionsFragment,
|
|
@@ -835,7 +856,7 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends ChatEditPillElement {
|
|
|
835
856
|
}));
|
|
836
857
|
}
|
|
837
858
|
};
|
|
838
|
-
CollapsedCodeBlock = ( __decorate([( __param(3, ILabelService)), ( __param(4, IEditorService)), ( __param(5, IModelService)), ( __param(6, ILanguageService)), ( __param(7, IContextMenuService)), ( __param(8, IContextKeyService)), ( __param(9, IMenuService)), ( __param(10, IHoverService)), ( __param(11, IChatService)), ( __param(12, IConfigurationService))], CollapsedCodeBlock));
|
|
859
|
+
CollapsedCodeBlock = ( __decorate([( __param(3, ILabelService)), ( __param(4, IEditorService)), ( __param(5, IModelService)), ( __param(6, ILanguageService)), ( __param(7, IContextMenuService)), ( __param(8, IContextKeyService)), ( __param(9, IMenuService)), ( __param(10, IHoverService)), ( __param(11, IChatService)), ( __param(12, IConfigurationService)), ( __param(13, ITextModelService))], CollapsedCodeBlock));
|
|
839
860
|
function fixCodeText(text, languageId) {
|
|
840
861
|
if (languageId === "php") {
|
|
841
862
|
if (!text.trim().startsWith("<?")) {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IMarkdownRendererService } from "@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer.service";
|
|
3
|
+
import { IAgentHostCustomizationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.service";
|
|
4
|
+
import { IChatMcpAuthenticationRequired } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
5
|
+
import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
6
|
+
import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
|
|
7
|
+
import { IChatContentPart } from "./chatContentParts.js";
|
|
8
|
+
export declare class ChatMcpAuthenticationContentPart extends Disposable implements IChatContentPart {
|
|
9
|
+
private readonly data;
|
|
10
|
+
private readonly markdownRendererService;
|
|
11
|
+
private readonly agentHostCustomizationService;
|
|
12
|
+
readonly domNode: HTMLElement;
|
|
13
|
+
private readonly rendered;
|
|
14
|
+
/**
|
|
15
|
+
* Whether this part was ever shown. Used to distinguish the initial empty
|
|
16
|
+
* state (the part is emitted with an empty `servers` observable that is
|
|
17
|
+
* populated immediately after) from the terminal state where every server
|
|
18
|
+
* has been authenticated — only the latter marks the part
|
|
19
|
+
* {@link IChatMcpAuthenticationRequired.isUsed used}.
|
|
20
|
+
*/
|
|
21
|
+
private _hasBeenVisible;
|
|
22
|
+
/**
|
|
23
|
+
* The MCP server currently being authenticated, or `undefined` when idle.
|
|
24
|
+
* While set, the part shows an "Authenticating …" progress message for that
|
|
25
|
+
* server and stays visible regardless of the underlying auth-required state.
|
|
26
|
+
*/
|
|
27
|
+
private readonly _authenticating;
|
|
28
|
+
constructor(data: IChatMcpAuthenticationRequired, markdownRendererService: IMarkdownRendererService, agentHostCustomizationService: IAgentHostCustomizationService);
|
|
29
|
+
private render;
|
|
30
|
+
private _renderMessage;
|
|
31
|
+
private authenticate;
|
|
32
|
+
private updateVisibility;
|
|
33
|
+
hasSameContent(other: IChatRendererContent, _followingContent: IChatRendererContent[], _element: ChatTreeItem): boolean;
|
|
34
|
+
addDisposable(disposable: IDisposable): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
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 { $, clearNode } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
5
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
6
|
+
import { escapeMarkdownSyntaxTokens, MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
7
|
+
import { Disposable, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
8
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
9
|
+
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
10
|
+
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
11
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
12
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-root/state';
|
|
13
|
+
import { McpServerStatus } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-session/state';
|
|
14
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-chat/state';
|
|
15
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-terminal/state';
|
|
16
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-changeset/state';
|
|
17
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-resource-watch/state';
|
|
18
|
+
import { IMarkdownRendererService } from '@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer.service';
|
|
19
|
+
import { IAgentHostCustomizationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostCustomizationService.service';
|
|
20
|
+
import * as chatMcpServersInteractionContent from './media/chatMcpServersInteractionContent.css';
|
|
21
|
+
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
22
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
23
|
+
|
|
24
|
+
registerCss(chatMcpServersInteractionContent);
|
|
25
|
+
let ChatMcpAuthenticationContentPart = class ChatMcpAuthenticationContentPart extends Disposable {
|
|
26
|
+
constructor(data, markdownRendererService, agentHostCustomizationService) {
|
|
27
|
+
super();
|
|
28
|
+
this.data = data;
|
|
29
|
+
this.markdownRendererService = markdownRendererService;
|
|
30
|
+
this.agentHostCustomizationService = agentHostCustomizationService;
|
|
31
|
+
this.rendered = this._register(( new MutableDisposable()));
|
|
32
|
+
this._hasBeenVisible = false;
|
|
33
|
+
this._authenticating = observableValue(this, undefined);
|
|
34
|
+
this.domNode = $(".chat-mcp-servers-interaction");
|
|
35
|
+
this._register(autorun(reader => {
|
|
36
|
+
const servers = this.data.servers.read(reader);
|
|
37
|
+
const authenticating = this._authenticating.read(reader);
|
|
38
|
+
this.render(servers, authenticating);
|
|
39
|
+
this.updateVisibility(servers, authenticating);
|
|
40
|
+
}));
|
|
41
|
+
this._register(this.agentHostCustomizationService.onDidChangeCustomizations(
|
|
42
|
+
() => this.updateVisibility(this.data.servers.get(), this._authenticating.get())
|
|
43
|
+
));
|
|
44
|
+
}
|
|
45
|
+
render(servers, authenticating) {
|
|
46
|
+
clearNode(this.domNode);
|
|
47
|
+
this.rendered.clear();
|
|
48
|
+
if (authenticating) {
|
|
49
|
+
this._renderMessage(ThemeIcon.modify(Codicon.loading, "spin"), ( localize(
|
|
50
|
+
7847,
|
|
51
|
+
"Authenticating {0}...",
|
|
52
|
+
"`" + escapeMarkdownSyntaxTokens(authenticating.name) + "`"
|
|
53
|
+
)));
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (!servers.length) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const links = ( servers.map(server => "`" + escapeMarkdownSyntaxTokens(server.name) + "`")).join(", ");
|
|
60
|
+
const content = servers.length === 1 ? ( localize(
|
|
61
|
+
7848,
|
|
62
|
+
"The MCP server {0} requires authentication. [Authenticate](#authenticate)?",
|
|
63
|
+
links
|
|
64
|
+
)) : ( localize(
|
|
65
|
+
7849,
|
|
66
|
+
"The MCP servers {0} require authentication. [Authenticate](#authenticate)?",
|
|
67
|
+
links
|
|
68
|
+
));
|
|
69
|
+
this._renderMessage(Codicon.mcp, content, {
|
|
70
|
+
href: "#authenticate",
|
|
71
|
+
run: () => void this.authenticate()
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
_renderMessage(icon, content, action) {
|
|
75
|
+
const container = $(".chat-mcp-servers-interaction-hint");
|
|
76
|
+
const messageContainer = $(".chat-mcp-servers-message");
|
|
77
|
+
const iconElement = $(".chat-mcp-servers-icon");
|
|
78
|
+
iconElement.classList.add(...ThemeIcon.asClassNameArray(icon));
|
|
79
|
+
const rendered = this.rendered.value = this.markdownRendererService.render(( new MarkdownString(content, {
|
|
80
|
+
isTrusted: true
|
|
81
|
+
})), action ? {
|
|
82
|
+
actionHandler: href => {
|
|
83
|
+
if (href !== action.href) {
|
|
84
|
+
return Promise.resolve(false);
|
|
85
|
+
}
|
|
86
|
+
action.run();
|
|
87
|
+
return Promise.resolve(true);
|
|
88
|
+
}
|
|
89
|
+
} : undefined);
|
|
90
|
+
messageContainer.appendChild(iconElement);
|
|
91
|
+
messageContainer.appendChild(rendered.element);
|
|
92
|
+
container.appendChild(messageContainer);
|
|
93
|
+
this.domNode.appendChild(container);
|
|
94
|
+
if (action) {
|
|
95
|
+
const actionLink = rendered.element.querySelector(`a[data-href="${action.href}"]`);
|
|
96
|
+
if (actionLink) {
|
|
97
|
+
actionLink.setAttribute("role", "button");
|
|
98
|
+
actionLink.href = "";
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async authenticate() {
|
|
103
|
+
const sessionResource = URI.revive(this.data.sessionResource);
|
|
104
|
+
try {
|
|
105
|
+
for (const server of this.data.servers.get()) {
|
|
106
|
+
this._authenticating.set(server, undefined);
|
|
107
|
+
await this.agentHostCustomizationService.authenticateMcpServer(sessionResource, server.id);
|
|
108
|
+
}
|
|
109
|
+
} finally {
|
|
110
|
+
this._authenticating.set(undefined, undefined);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
updateVisibility(dataServers, authenticating) {
|
|
114
|
+
if (authenticating) {
|
|
115
|
+
this.domNode.style.display = "";
|
|
116
|
+
this._hasBeenVisible = true;
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const sessionResource = URI.revive(this.data.sessionResource);
|
|
120
|
+
const servers = this.agentHostCustomizationService.getMcpServers(sessionResource);
|
|
121
|
+
const visible = ( dataServers.some(server => ( servers.some(
|
|
122
|
+
current => current.id === server.id && current.status === McpServerStatus.AuthRequired
|
|
123
|
+
))));
|
|
124
|
+
this.domNode.style.display = visible ? "" : "none";
|
|
125
|
+
if (visible) {
|
|
126
|
+
this._hasBeenVisible = true;
|
|
127
|
+
} else if (this._hasBeenVisible) {
|
|
128
|
+
this.data.isUsed = true;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
hasSameContent(other, _followingContent, _element) {
|
|
132
|
+
return other.kind === "mcpAuthenticationRequired";
|
|
133
|
+
}
|
|
134
|
+
addDisposable(disposable) {
|
|
135
|
+
this._register(disposable);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
ChatMcpAuthenticationContentPart = ( __decorate([( __param(1, IMarkdownRendererService)), ( __param(2, IAgentHostCustomizationService))], ChatMcpAuthenticationContentPart));
|
|
139
|
+
|
|
140
|
+
export { ChatMcpAuthenticationContentPart };
|