@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
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts
CHANGED
|
@@ -35,6 +35,13 @@ export declare function hasModelsTargetingSession(allModels: ILanguageModelChatM
|
|
|
35
35
|
* If no models target this session, the model must not be session-specific.
|
|
36
36
|
*/
|
|
37
37
|
export declare function isModelValidForSession(model: ILanguageModelChatMetadataAndIdentifier, allModels: ILanguageModelChatMetadataAndIdentifier[], sessionType: string | undefined): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Find a model in `pool` that matches `previous` by id, then family, then
|
|
40
|
+
* name (case-insensitive). Used to carry a selection across model pools
|
|
41
|
+
* (e.g. `copilot/claude-sonnet-4.6` → `agent-host-copilotcli:claude-sonnet-4.6`).
|
|
42
|
+
* Returns `undefined` when no candidate matches.
|
|
43
|
+
*/
|
|
44
|
+
export declare function findBestMatchingModel(previous: ILanguageModelChatMetadataAndIdentifier | undefined, pool: readonly ILanguageModelChatMetadataAndIdentifier[]): ILanguageModelChatMetadataAndIdentifier | undefined;
|
|
38
45
|
/**
|
|
39
46
|
* Find the default model for a given location from a list of models.
|
|
40
47
|
* Prefers the model marked as default for the location, falls back to the first model.
|
|
@@ -82,15 +89,15 @@ export declare function resolveModelFromSyncState(stateModel: ILanguageModelChat
|
|
|
82
89
|
action: "keep" | "apply" | "default";
|
|
83
90
|
};
|
|
84
91
|
/**
|
|
85
|
-
* Merges live models with cached models per-vendor, evicting cache for vendors
|
|
86
|
-
* no longer contributed.
|
|
92
|
+
* Merges live models with cached models per-vendor, evicting cache for vendors no longer contributed.
|
|
87
93
|
*
|
|
88
|
-
* - `resolvedVendors`: vendors
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
+
* - `resolvedVendors`: vendors that have finished resolving. An empty live list for these is authoritative
|
|
95
|
+
* (e.g. BYOK key removed), so their cache is dropped.
|
|
96
|
+
* - Copilot is the exception: its models are gated on an async token that can resolve slower than fast/local BYOK
|
|
97
|
+
* providers, so an early empty resolution is transient. Keeping its cache avoids resetting (and persisting) a
|
|
98
|
+
* restored Copilot selection to a BYOK default, which also preserves the selection across sign-out/in (see #321037).
|
|
99
|
+
* - When nothing is contributed yet and there are no live models (startup / reload), the full cache is returned to
|
|
100
|
+
* avoid flickering the picker to empty.
|
|
94
101
|
*/
|
|
95
102
|
export declare function mergeModelsWithCache(liveModels: ILanguageModelChatMetadataAndIdentifier[], cachedModels: ILanguageModelChatMetadataAndIdentifier[], contributedVendors: Set<string>, resolvedVendors?: ReadonlySet<string>): ILanguageModelChatMetadataAndIdentifier[];
|
|
96
103
|
/**
|
|
@@ -111,4 +118,61 @@ export declare function shouldResetOnModelListChange(currentModelId: string | un
|
|
|
111
118
|
* restoration.
|
|
112
119
|
*/
|
|
113
120
|
export declare function shouldRestoreLateArrivingModel(persistedModelId: string, persistedAsDefault: boolean, model: ILanguageModelChatMetadataAndIdentifier, location: ChatAgentLocation): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Resolve a configured default-model value to a concrete model from the given pool.
|
|
123
|
+
*
|
|
124
|
+
* The configured value (e.g. from `chat.defaultModel`, which may be set
|
|
125
|
+
* by enterprise policy) is matched case-insensitively in this order:
|
|
126
|
+
* 1. `auto` — the synthetic "Auto" model (id `auto`), when present.
|
|
127
|
+
* 2. A full model id — an exact match on `metadata.id`.
|
|
128
|
+
* 3. A model family name (e.g. `opus`, `gemini`) — the model with the highest
|
|
129
|
+
* {@link compareModelVersions version} among models whose `metadata.family` matches.
|
|
130
|
+
*
|
|
131
|
+
* Returns `undefined` when the value is empty or no model matches, letting the caller
|
|
132
|
+
* fall back to its normal default selection.
|
|
133
|
+
*/
|
|
134
|
+
export declare function resolveConfiguredModel(configuredValue: string | undefined, models: ILanguageModelChatMetadataAndIdentifier[]): ILanguageModelChatMetadataAndIdentifier | undefined;
|
|
135
|
+
/**
|
|
136
|
+
* Why a model picker has no model to offer, when that is the case. Drives a
|
|
137
|
+
* "Models" placeholder plus a contextual action instead of a misleading
|
|
138
|
+
* lone "Auto".
|
|
139
|
+
*/
|
|
140
|
+
export declare enum ModelPickerUnavailableReason {
|
|
141
|
+
/** The workspace is untrusted, which disables the model providers. */
|
|
142
|
+
Restricted = "restricted",
|
|
143
|
+
/** Chat requires sign-in / setup before any model is available. */
|
|
144
|
+
SetupRequired = "setupRequired"
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Determines whether a model picker should present an "unavailable" state and,
|
|
148
|
+
* if so, why. Returns `undefined` when the picker has a usable model (or its
|
|
149
|
+
* state is not yet known), so the normal model / Auto label is shown.
|
|
150
|
+
*
|
|
151
|
+
* A model counts as usable only when it is both offered by this picker
|
|
152
|
+
* (`pickerModels`, already filtered to the picker's location / session type) AND
|
|
153
|
+
* currently live in the language model registry (`liveModelIds`). This ignores
|
|
154
|
+
* two kinds of phantom models that would otherwise mask the unavailable state:
|
|
155
|
+
* - stale cross-window machine cache entries (present in `pickerModels` but not live), and
|
|
156
|
+
* - models registered for other surfaces such as agent-host session-scoped models
|
|
157
|
+
* (live in the global registry but not offered by this picker).
|
|
158
|
+
*
|
|
159
|
+
* Once trust has initialized, Restricted Mode takes precedence: an untrusted workspace is
|
|
160
|
+
* reported as Restricted even when a live picker-offered model exists, because Restricted Mode disables all model providers. This matters because a
|
|
161
|
+
* harness's session-scoped models (e.g. `claude-code`, `copilotcli`) register
|
|
162
|
+
* without a trust gate and stay live while untrusted, which would otherwise mask
|
|
163
|
+
* the Restricted state behind a misleading "Auto". In a *trusted* workspace, a
|
|
164
|
+
* live, picker-offered model (e.g. BYOK) wins over setup, so BYOK and anonymous
|
|
165
|
+
* access are never shown a setup-required state regardless of sign-in. `trusted`
|
|
166
|
+
* reflects `isWorkspaceTrusted()` (which is `true` when trust is disabled
|
|
167
|
+
* entirely) and is only authoritative once `trustInitialized` is `true`; until
|
|
168
|
+
* then this returns `undefined` to avoid a trusted workspace briefly rendering as
|
|
169
|
+
* unavailable at startup.
|
|
170
|
+
*/
|
|
171
|
+
export declare function getModelPickerUnavailableReason(context: {
|
|
172
|
+
readonly trustInitialized: boolean;
|
|
173
|
+
readonly trusted: boolean;
|
|
174
|
+
readonly pickerModels: readonly ILanguageModelChatMetadataAndIdentifier[];
|
|
175
|
+
readonly liveModelIds: Iterable<string>;
|
|
176
|
+
readonly requiresSetup: boolean;
|
|
177
|
+
}): ModelPickerUnavailableReason | undefined;
|
|
114
178
|
export {};
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { ChatModeKind, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
3
|
-
import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
3
|
+
import { ILanguageModelChatMetadata, COPILOT_VENDOR_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
4
4
|
|
|
5
5
|
function filterModelsForSession(models, sessionType, currentModeKind, location) {
|
|
6
6
|
if (sessionType && sessionType !== "local" && hasModelsTargetingSession(models, sessionType)) {
|
|
@@ -36,6 +36,15 @@ function isModelValidForSession(model, allModels, sessionType) {
|
|
|
36
36
|
}
|
|
37
37
|
return !model.metadata.targetChatSessionType;
|
|
38
38
|
}
|
|
39
|
+
function findBestMatchingModel(previous, pool) {
|
|
40
|
+
if (!previous || pool.length === 0) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
const id = previous.metadata.id?.trim().toLowerCase();
|
|
44
|
+
const family = previous.metadata.family?.trim().toLowerCase();
|
|
45
|
+
const name = previous.metadata.name?.trim().toLowerCase();
|
|
46
|
+
return (id ? pool.find(m => m.metadata.id?.trim().toLowerCase() === id) : undefined) ?? (family ? pool.find(m => m.metadata.family?.trim().toLowerCase() === family) : undefined) ?? (name ? pool.find(m => m.metadata.name?.trim().toLowerCase() === name) : undefined);
|
|
47
|
+
}
|
|
39
48
|
function findDefaultModel(models, location) {
|
|
40
49
|
return models.find(m => m.metadata.isDefaultForLocation[location]) || models[0];
|
|
41
50
|
}
|
|
@@ -77,14 +86,14 @@ function shouldResetModelToDefault(currentModel, availableModels, context, allMo
|
|
|
77
86
|
return false;
|
|
78
87
|
}
|
|
79
88
|
function resolveModelFromSyncState(stateModel, currentModel, allModels, sessionType, context) {
|
|
80
|
-
if (
|
|
89
|
+
if (!isModelValidForSession(stateModel, allModels, sessionType)) {
|
|
81
90
|
return {
|
|
82
|
-
action: "
|
|
91
|
+
action: "default"
|
|
83
92
|
};
|
|
84
93
|
}
|
|
85
|
-
if (
|
|
94
|
+
if (currentModel && currentModel.identifier === stateModel.identifier) {
|
|
86
95
|
return {
|
|
87
|
-
action: "
|
|
96
|
+
action: "keep"
|
|
88
97
|
};
|
|
89
98
|
}
|
|
90
99
|
if (context) {
|
|
@@ -108,7 +117,16 @@ function mergeModelsWithCache(liveModels, cachedModels, contributedVendors, reso
|
|
|
108
117
|
return cachedModels;
|
|
109
118
|
}
|
|
110
119
|
const liveVendors = ( new Set(( liveModels.map(m => m.metadata.vendor))));
|
|
111
|
-
const usableCached = cachedModels.filter(m =>
|
|
120
|
+
const usableCached = cachedModels.filter(m => {
|
|
121
|
+
const vendor = m.metadata.vendor;
|
|
122
|
+
if (!( contributedVendors.has(vendor)) || ( liveVendors.has(vendor))) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
if (resolvedVendors?.has(vendor) && vendor !== COPILOT_VENDOR_ID) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
return true;
|
|
129
|
+
});
|
|
112
130
|
return [...liveModels, ...usableCached];
|
|
113
131
|
}
|
|
114
132
|
function shouldResetOnModelListChange(currentModelId, availableModels) {
|
|
@@ -124,5 +142,62 @@ function shouldRestoreLateArrivingModel(persistedModelId, persistedAsDefault, mo
|
|
|
124
142
|
const result = shouldRestorePersistedModel(persistedModelId, persistedAsDefault, [model], location);
|
|
125
143
|
return result.shouldRestore;
|
|
126
144
|
}
|
|
145
|
+
const AUTO_MODEL_ID = "auto";
|
|
146
|
+
function compareModelVersions(a, b) {
|
|
147
|
+
const rawA = a ?? "";
|
|
148
|
+
const rawB = b ?? "";
|
|
149
|
+
const segmentsA = rawA.match(/\d+/g)?.map(Number) ?? [];
|
|
150
|
+
const segmentsB = rawB.match(/\d+/g)?.map(Number) ?? [];
|
|
151
|
+
const length = Math.max(segmentsA.length, segmentsB.length);
|
|
152
|
+
for (let i = 0; i < length; i++) {
|
|
153
|
+
const numA = segmentsA[i] ?? 0;
|
|
154
|
+
const numB = segmentsB[i] ?? 0;
|
|
155
|
+
if (numA !== numB) {
|
|
156
|
+
return numA - numB;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return rawA.localeCompare(rawB);
|
|
160
|
+
}
|
|
161
|
+
function resolveConfiguredModel(configuredValue, models) {
|
|
162
|
+
const value = configuredValue?.trim().toLowerCase();
|
|
163
|
+
if (!value) {
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
if (value === AUTO_MODEL_ID) {
|
|
167
|
+
return models.find(m => m.metadata.id?.trim().toLowerCase() === AUTO_MODEL_ID);
|
|
168
|
+
}
|
|
169
|
+
const byId = models.find(m => m.metadata.id?.trim().toLowerCase() === value);
|
|
170
|
+
if (byId) {
|
|
171
|
+
return byId;
|
|
172
|
+
}
|
|
173
|
+
const family = models.filter(m => m.metadata.family?.trim().toLowerCase() === value);
|
|
174
|
+
if (family.length > 0) {
|
|
175
|
+
return family.reduce(
|
|
176
|
+
(latest, candidate) => compareModelVersions(candidate.metadata.version, latest.metadata.version) > 0 ? candidate : latest
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
var ModelPickerUnavailableReason;
|
|
182
|
+
(function(ModelPickerUnavailableReason) {
|
|
183
|
+
ModelPickerUnavailableReason["Restricted"] = "restricted";
|
|
184
|
+
ModelPickerUnavailableReason["SetupRequired"] = "setupRequired";
|
|
185
|
+
})(ModelPickerUnavailableReason || (ModelPickerUnavailableReason = {}));
|
|
186
|
+
function getModelPickerUnavailableReason(context) {
|
|
187
|
+
if (!context.trustInitialized) {
|
|
188
|
+
return undefined;
|
|
189
|
+
}
|
|
190
|
+
if (!context.trusted) {
|
|
191
|
+
return ModelPickerUnavailableReason.Restricted;
|
|
192
|
+
}
|
|
193
|
+
const live = context.liveModelIds instanceof Set ? context.liveModelIds : ( new Set(context.liveModelIds));
|
|
194
|
+
if (( context.pickerModels.some(model => ( live.has(model.identifier))))) {
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
if (context.requiresSetup) {
|
|
198
|
+
return ModelPickerUnavailableReason.SetupRequired;
|
|
199
|
+
}
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
127
202
|
|
|
128
|
-
export { filterModelsForSession, findDefaultModel, hasModelsTargetingSession, isModelSupportedForInlineChat, isModelSupportedForMode, isModelValidForSession, mergeModelsWithCache, resolveModelFromSyncState, shouldResetModelToDefault, shouldResetOnModelListChange, shouldRestoreLateArrivingModel, shouldRestorePersistedModel };
|
|
203
|
+
export { ModelPickerUnavailableReason, filterModelsForSession, findBestMatchingModel, findDefaultModel, getModelPickerUnavailableReason, hasModelsTargetingSession, isModelSupportedForInlineChat, isModelSupportedForMode, isModelValidForSession, mergeModelsWithCache, resolveConfiguredModel, resolveModelFromSyncState, shouldResetModelToDefault, shouldResetOnModelListChange, shouldRestoreLateArrivingModel, shouldRestorePersistedModel };
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js
CHANGED
|
@@ -87,7 +87,7 @@ let MobileChatInputCombinedPickerActionItem = class MobileChatInputCombinedPicke
|
|
|
87
87
|
append(trigger, renderIcon(modeIcon));
|
|
88
88
|
}
|
|
89
89
|
const currentModel = this._modelDelegate.currentModel.get();
|
|
90
|
-
const labelText = currentModel?.metadata.name ?? ( localize(
|
|
90
|
+
const labelText = currentModel?.metadata.name ?? ( localize(8315, "Auto"));
|
|
91
91
|
const labelSpan = append(trigger, $("span.chat-input-picker-label"));
|
|
92
92
|
labelSpan.textContent = labelText;
|
|
93
93
|
const ariaParts = [];
|
|
@@ -96,7 +96,7 @@ let MobileChatInputCombinedPickerActionItem = class MobileChatInputCombinedPicke
|
|
|
96
96
|
ariaParts.push(modeLabel);
|
|
97
97
|
}
|
|
98
98
|
ariaParts.push(labelText);
|
|
99
|
-
trigger.ariaLabel = ( localize(
|
|
99
|
+
trigger.ariaLabel = ( localize(8316, "Pick Mode and Model, {0}", ariaParts.join(", ")));
|
|
100
100
|
}
|
|
101
101
|
onClick() {}
|
|
102
102
|
async _showSheet() {
|
|
@@ -5,7 +5,7 @@ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform
|
|
|
5
5
|
import { IChatMode } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes";
|
|
6
6
|
import { ILanguageModelChatMetadataAndIdentifier } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels";
|
|
7
7
|
import { UserSelectedTools } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatAgents";
|
|
8
|
-
import {
|
|
8
|
+
import { ToolAndToolSetEnablementMap } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
|
|
9
9
|
import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service";
|
|
10
10
|
export declare enum ToolsScope {
|
|
11
11
|
Global = 0,
|
|
@@ -26,11 +26,11 @@ export declare class ChatSelectedTools extends Disposable {
|
|
|
26
26
|
* All tools and tool sets with their enabled state.
|
|
27
27
|
* Tools are filtered based on the current model context.
|
|
28
28
|
*/
|
|
29
|
-
readonly entriesMap: IObservable<
|
|
29
|
+
readonly entriesMap: IObservable<ToolAndToolSetEnablementMap>;
|
|
30
30
|
readonly userSelectedTools: IObservable<UserSelectedTools>;
|
|
31
31
|
get entriesScope(): ToolsScope;
|
|
32
32
|
get currentMode(): IChatMode;
|
|
33
33
|
resetSessionEnablementState(): void;
|
|
34
|
-
set(enablementMap:
|
|
34
|
+
set(enablementMap: ToolAndToolSetEnablementMap, sessionOnly: boolean): void;
|
|
35
35
|
private updateCustomModeTools;
|
|
36
36
|
}
|
|
@@ -10,7 +10,7 @@ import { StorageScope, StorageTarget } from '@codingame/monaco-vscode-api/vscode
|
|
|
10
10
|
import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
|
|
11
11
|
import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
12
12
|
import { PromptsStorage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService';
|
|
13
|
-
import { isToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
|
|
13
|
+
import { isToolSet, ToolAndToolSetEnablementMap } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
|
|
14
14
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
|
|
15
15
|
import { PromptFileRewriter } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/promptSyntax/promptFileRewriter';
|
|
16
16
|
import { ObservableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/map';
|
|
@@ -21,7 +21,7 @@ var ToolEnablementStates;
|
|
|
21
21
|
function fromMap(map) {
|
|
22
22
|
const toolSets = ( new Map()),
|
|
23
23
|
tools = ( new Map());
|
|
24
|
-
for (const [entry, enabled] of map
|
|
24
|
+
for (const [entry, enabled] of map) {
|
|
25
25
|
if (isToolSet(entry)) {
|
|
26
26
|
toolSets.set(entry.id, enabled);
|
|
27
27
|
} else {
|
|
@@ -114,13 +114,16 @@ let ChatSelectedTools = class ChatSelectedTools extends Disposable {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
for (const toolSet of this._toolsService.getToolSetsForModel(lm, r)) {
|
|
117
|
+
if (toolSet.hiddenInToolsPicker) {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
117
120
|
const toolSetEnabled = currentMap.toolSets.get(toolSet.id) !== false;
|
|
118
121
|
map.set(toolSet, toolSetEnabled);
|
|
119
122
|
for (const tool of toolSet.getTools(r)) {
|
|
120
123
|
map.set(tool, toolSetEnabled || currentMap.tools.get(tool.id) === true);
|
|
121
124
|
}
|
|
122
125
|
}
|
|
123
|
-
return map;
|
|
126
|
+
return ToolAndToolSetEnablementMap.fromMap(map);
|
|
124
127
|
});
|
|
125
128
|
this.userSelectedTools = derived(r => {
|
|
126
129
|
const result = {};
|
|
@@ -10,6 +10,7 @@ import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/
|
|
|
10
10
|
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
11
11
|
import { IChatEntitlementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service";
|
|
12
12
|
import { IChatSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service";
|
|
13
|
+
import { ILanguageModelsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service";
|
|
13
14
|
import { AgentSessionTarget } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions";
|
|
14
15
|
import { ISessionTypePickerDelegate } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
15
16
|
import { IChatInputPickerOptions } from "./chatInputPickerActionItem.js";
|
|
@@ -22,7 +23,7 @@ import { IGitService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/co
|
|
|
22
23
|
export declare class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
|
|
23
24
|
private readonly gitService;
|
|
24
25
|
private readonly _isSessionsWindow;
|
|
25
|
-
constructor(action: MenuItemAction, chatSessionPosition: "sidebar" | "editor", delegate: ISessionTypePickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, keybindingService: IKeybindingService, contextKeyService: IContextKeyService, chatSessionsService: IChatSessionsService, commandService: ICommandService, openerService: IOpenerService, telemetryService: ITelemetryService, chatEntitlementService: IChatEntitlementService, configurationService: IConfigurationService, gitService: IGitService);
|
|
26
|
+
constructor(action: MenuItemAction, chatSessionPosition: "sidebar" | "editor", delegate: ISessionTypePickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, keybindingService: IKeybindingService, contextKeyService: IContextKeyService, chatSessionsService: IChatSessionsService, commandService: ICommandService, openerService: IOpenerService, telemetryService: ITelemetryService, chatEntitlementService: IChatEntitlementService, languageModelsService: ILanguageModelsService, configurationService: IConfigurationService, gitService: IGitService);
|
|
26
27
|
protected _run(sessionTypeItem: ISessionTypeItem): void;
|
|
27
28
|
protected _getSelectedSessionType(): AgentSessionTarget | undefined;
|
|
28
29
|
protected _isSessionTypeEnabled(type: AgentSessionTarget): boolean;
|
|
@@ -14,10 +14,13 @@ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platfo
|
|
|
14
14
|
import { IsSessionsWindowContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
15
15
|
import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
|
|
16
16
|
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
17
|
+
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
18
|
+
import { isVisibleEditorChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
17
19
|
import { ACTION_ID_NEW_CHAT } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
18
20
|
import { getAgentSessionProvider, AgentSessionProviders, getAgentCanContinueIn, isFirstPartyAgentSessionProvider } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
|
|
19
21
|
import { SessionTypePickerActionItem } from './sessionTargetPickerActionItem.js';
|
|
20
22
|
import { IGitService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/git/common/gitService.service';
|
|
23
|
+
import { isAgentHostTarget } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
|
|
21
24
|
|
|
22
25
|
let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
|
|
23
26
|
constructor(
|
|
@@ -33,6 +36,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
33
36
|
openerService,
|
|
34
37
|
telemetryService,
|
|
35
38
|
chatEntitlementService,
|
|
39
|
+
languageModelsService,
|
|
36
40
|
configurationService,
|
|
37
41
|
gitService
|
|
38
42
|
) {
|
|
@@ -49,6 +53,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
49
53
|
openerService,
|
|
50
54
|
telemetryService,
|
|
51
55
|
chatEntitlementService,
|
|
56
|
+
languageModelsService,
|
|
52
57
|
configurationService
|
|
53
58
|
);
|
|
54
59
|
this.gitService = gitService;
|
|
@@ -71,12 +76,15 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
71
76
|
}
|
|
72
77
|
_isSessionTypeEnabled(type) {
|
|
73
78
|
const allContributions = this.chatSessionsService.getAllChatSessionContributions();
|
|
74
|
-
const contribution = allContributions.find(
|
|
79
|
+
const contribution = allContributions.find(
|
|
80
|
+
contribution => getAgentSessionProvider(contribution.type) === type || contribution.type === type
|
|
81
|
+
);
|
|
75
82
|
const activeProvider = this.delegate.getActiveSessionProvider();
|
|
76
|
-
|
|
83
|
+
const isAgentHostSource = activeProvider !== undefined && isAgentHostTarget(activeProvider);
|
|
84
|
+
if (!this._isSessionsWindow && activeProvider !== AgentSessionProviders.Local && !isAgentHostSource) {
|
|
77
85
|
return false;
|
|
78
86
|
}
|
|
79
|
-
if (this._isSessionsWindow && activeProvider !== AgentSessionProviders.Background) {
|
|
87
|
+
if (this._isSessionsWindow && activeProvider !== AgentSessionProviders.Background && !isAgentHostSource) {
|
|
80
88
|
return false;
|
|
81
89
|
}
|
|
82
90
|
if (this._isSessionsWindow && type === AgentSessionProviders.Cloud && !this._hasGitRepository()) {
|
|
@@ -100,18 +108,24 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
100
108
|
if (this.delegate.getActiveSessionProvider() === type) {
|
|
101
109
|
return true;
|
|
102
110
|
}
|
|
111
|
+
if (this._isSessionsWindow && type === AgentSessionProviders.Background && this.chatSessionsService.getChatSessionContribution(AgentSessionProviders.AgentHostCopilot)) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
if (!isVisibleEditorChatSessionType(type, this.configurationService, this.chatSessionsService)) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
103
117
|
return getAgentCanContinueIn(type);
|
|
104
118
|
}
|
|
105
119
|
_getSessionCategory(sessionTypeItem) {
|
|
106
120
|
if (isFirstPartyAgentSessionProvider(sessionTypeItem.type)) {
|
|
107
121
|
return {
|
|
108
|
-
label: ( localize(
|
|
122
|
+
label: ( localize(8324, "Continue In")),
|
|
109
123
|
order: 1,
|
|
110
124
|
showHeader: true
|
|
111
125
|
};
|
|
112
126
|
}
|
|
113
127
|
return {
|
|
114
|
-
label: ( localize(
|
|
128
|
+
label: ( localize(8325, "Continue In (Third Party)")),
|
|
115
129
|
order: 2,
|
|
116
130
|
showHeader: false
|
|
117
131
|
};
|
|
@@ -123,7 +137,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
123
137
|
const learnMoreUrl = "https://aka.ms/vscode-continue-chat-in";
|
|
124
138
|
return {
|
|
125
139
|
id: "workbench.action.chat.agentOverview.learnMoreHandOff",
|
|
126
|
-
label: ( localize(
|
|
140
|
+
label: ( localize(8326, "Learn about agent handoff...")),
|
|
127
141
|
tooltip: learnMoreUrl,
|
|
128
142
|
class: undefined,
|
|
129
143
|
enabled: true,
|
|
@@ -139,7 +153,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
139
153
|
return [{
|
|
140
154
|
id: "newChatSession",
|
|
141
155
|
class: undefined,
|
|
142
|
-
label: ( localize(
|
|
156
|
+
label: ( localize(8327, "New Chat Session")),
|
|
143
157
|
tooltip: "",
|
|
144
158
|
hover: {
|
|
145
159
|
content: ""
|
|
@@ -148,7 +162,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
148
162
|
icon: Codicon.plus,
|
|
149
163
|
enabled: true,
|
|
150
164
|
category: {
|
|
151
|
-
label: ( localize(
|
|
165
|
+
label: ( localize(8328, "New Chat Session")),
|
|
152
166
|
order: 0,
|
|
153
167
|
showHeader: false
|
|
154
168
|
},
|
|
@@ -159,6 +173,6 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
159
173
|
}];
|
|
160
174
|
}
|
|
161
175
|
};
|
|
162
|
-
DelegationSessionPickerActionItem = ( __decorate([( __param(4, IActionWidgetService)), ( __param(5, IKeybindingService)), ( __param(6, IContextKeyService)), ( __param(7, IChatSessionsService)), ( __param(8, ICommandService)), ( __param(9, IOpenerService)), ( __param(10, ITelemetryService)), ( __param(11, IChatEntitlementService)), ( __param(12,
|
|
176
|
+
DelegationSessionPickerActionItem = ( __decorate([( __param(4, IActionWidgetService)), ( __param(5, IKeybindingService)), ( __param(6, IContextKeyService)), ( __param(7, IChatSessionsService)), ( __param(8, ICommandService)), ( __param(9, IOpenerService)), ( __param(10, ITelemetryService)), ( __param(11, IChatEntitlementService)), ( __param(12, ILanguageModelsService)), ( __param(13, IConfigurationService)), ( __param(14, IGitService))], DelegationSessionPickerActionItem));
|
|
163
177
|
|
|
164
178
|
export { DelegationSessionPickerActionItem };
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatGoalBannerWidget.css
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
border-top-right-radius: 4px;
|
|
26
26
|
background-color: color-mix(in srgb, var(--vscode-focusBorder) 6%, var(--vscode-editorWidget-background));
|
|
27
27
|
color: var(--vscode-foreground);
|
|
28
|
-
font-size:
|
|
28
|
+
font-size: var(--vscode-agents-fontSize-label1);
|
|
29
29
|
line-height: 18px;
|
|
30
30
|
min-width: 0;
|
|
31
31
|
}
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
|
|
40
40
|
.chat-goal-banner .chat-goal-banner-label {
|
|
41
41
|
flex-shrink: 0;
|
|
42
|
-
font-weight:
|
|
42
|
+
font-weight: var(--vscode-agents-fontWeight-semiBold);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
.chat-goal-banner .chat-goal-banner-text {
|
|
@@ -84,9 +84,9 @@
|
|
|
84
84
|
|
|
85
85
|
/* Title */
|
|
86
86
|
.chat-input-notification .chat-input-notification-title {
|
|
87
|
-
font-size: var(--vscode-
|
|
88
|
-
font-weight:
|
|
89
|
-
line-height:
|
|
87
|
+
font-size: var(--vscode-agents-fontSize-label1);
|
|
88
|
+
font-weight: var(--vscode-agents-fontWeight-semiBold);
|
|
89
|
+
line-height: 18px;
|
|
90
90
|
color: var(--vscode-foreground);
|
|
91
91
|
flex: 1;
|
|
92
92
|
min-width: 0;
|
|
@@ -106,9 +106,19 @@
|
|
|
106
106
|
margin: 0;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
.chat-input-notification .chat-input-notification-title-markdown a,
|
|
110
|
+
.chat-input-notification .chat-input-notification-title-markdown a:visited {
|
|
111
|
+
color: var(--vscode-textLink-foreground);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.chat-input-notification .chat-input-notification-title-markdown a:hover,
|
|
115
|
+
.chat-input-notification .chat-input-notification-title-markdown a:active {
|
|
116
|
+
color: var(--vscode-textLink-activeForeground);
|
|
117
|
+
}
|
|
118
|
+
|
|
109
119
|
.chat-input-notification .chat-input-notification-title-markdown code {
|
|
110
120
|
font-family: var(--monaco-monospace-font);
|
|
111
|
-
font-size:
|
|
121
|
+
font-size: var(--vscode-agents-fontSize-body2);
|
|
112
122
|
padding: 0 3px;
|
|
113
123
|
border-radius: 3px;
|
|
114
124
|
background: var(--vscode-textCodeBlock-background);
|
|
@@ -125,8 +135,8 @@
|
|
|
125
135
|
|
|
126
136
|
/* Description */
|
|
127
137
|
.chat-input-notification .chat-input-notification-description {
|
|
128
|
-
font-size: var(--vscode-
|
|
129
|
-
line-height:
|
|
138
|
+
font-size: var(--vscode-agents-fontSize-label1);
|
|
139
|
+
line-height: 18px;
|
|
130
140
|
color: var(--vscode-descriptionForeground);
|
|
131
141
|
flex: 1 1 auto;
|
|
132
142
|
min-width: 0;
|
|
@@ -146,8 +156,8 @@
|
|
|
146
156
|
|
|
147
157
|
/* Action buttons */
|
|
148
158
|
.chat-input-notification .chat-input-notification-action-button {
|
|
149
|
-
font-size: var(--vscode-
|
|
150
|
-
padding:
|
|
159
|
+
font-size: var(--vscode-agents-fontSize-label2);
|
|
160
|
+
padding: 4px 12px;
|
|
151
161
|
min-width: unset;
|
|
152
162
|
width: auto;
|
|
153
163
|
height: 24px;
|
|
@@ -167,8 +177,9 @@
|
|
|
167
177
|
opacity: 1;
|
|
168
178
|
}
|
|
169
179
|
|
|
170
|
-
/* Dismiss
|
|
171
|
-
.chat-input-notification .chat-input-notification-dismiss
|
|
180
|
+
/* Dismiss + mute icon buttons (header, right-aligned) */
|
|
181
|
+
.chat-input-notification .chat-input-notification-dismiss,
|
|
182
|
+
.chat-input-notification .chat-input-notification-mute {
|
|
172
183
|
display: flex;
|
|
173
184
|
align-items: center;
|
|
174
185
|
justify-content: center;
|
|
@@ -181,14 +192,19 @@
|
|
|
181
192
|
border: none;
|
|
182
193
|
outline: none;
|
|
183
194
|
flex-shrink: 0;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.chat-input-notification .chat-input-notification-dismiss {
|
|
184
198
|
margin-left: auto;
|
|
185
199
|
}
|
|
186
200
|
|
|
187
|
-
.chat-input-notification .chat-input-notification-dismiss:hover
|
|
201
|
+
.chat-input-notification .chat-input-notification-dismiss:hover,
|
|
202
|
+
.chat-input-notification .chat-input-notification-mute:hover {
|
|
188
203
|
background-color: var(--vscode-toolbar-hoverBackground);
|
|
189
204
|
}
|
|
190
205
|
|
|
191
|
-
.chat-input-notification .chat-input-notification-dismiss:focus-visible
|
|
206
|
+
.chat-input-notification .chat-input-notification-dismiss:focus-visible,
|
|
207
|
+
.chat-input-notification .chat-input-notification-mute:focus-visible {
|
|
192
208
|
outline: 1px solid var(--vscode-focusBorder);
|
|
193
209
|
outline-offset: -1px;
|
|
194
210
|
}
|
|
@@ -20,6 +20,8 @@ export interface IModePickerDelegate {
|
|
|
20
20
|
readonly currentMode: IObservable<IChatMode>;
|
|
21
21
|
readonly currentChatModes: IObservable<IChatModes>;
|
|
22
22
|
readonly sessionResource: () => URI | undefined;
|
|
23
|
+
/** Direct mode-change callback for hosts without a registered IChatWidget (bypasses ToggleAgentModeActionId). */
|
|
24
|
+
readonly setMode?: (mode: IChatMode) => void;
|
|
23
25
|
/**
|
|
24
26
|
* When set, the mode picker will show custom agents whose target matches this value.
|
|
25
27
|
* Custom agents without a target are always shown in all session types. If no agents match the target, shows a default "Agent" option.
|
|
@@ -36,3 +38,4 @@ export declare class ModePickerActionItem extends ChatInputPickerActionViewItem
|
|
|
36
38
|
render(container: HTMLElement): void;
|
|
37
39
|
protected renderLabel(element: HTMLElement): IDisposable | null;
|
|
38
40
|
}
|
|
41
|
+
export declare function isModeConsideredBuiltIn(mode: IChatMode, productService: IProductService): boolean;
|
|
@@ -36,8 +36,6 @@ const builtinDefaultIcon = mode => {
|
|
|
36
36
|
switch (mode.name.get().toLowerCase()) {
|
|
37
37
|
case "ask":
|
|
38
38
|
return Codicon.ask;
|
|
39
|
-
case "edit":
|
|
40
|
-
return Codicon.edit;
|
|
41
39
|
case "plan":
|
|
42
40
|
return Codicon.tasklist;
|
|
43
41
|
default:
|
|
@@ -66,15 +64,15 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
|
|
|
66
64
|
});
|
|
67
65
|
const getCustomAgentTarget = () => delegate.customAgentTarget?.() ?? Target.Undefined;
|
|
68
66
|
const builtInCategory = {
|
|
69
|
-
label: ( localize(
|
|
67
|
+
label: ( localize(8349, "Built-In")),
|
|
70
68
|
order: 0
|
|
71
69
|
};
|
|
72
70
|
const customCategory = {
|
|
73
|
-
label: ( localize(
|
|
71
|
+
label: ( localize(8350, "Custom")),
|
|
74
72
|
order: 1
|
|
75
73
|
};
|
|
76
74
|
const policyDisabledCategory = {
|
|
77
|
-
label: ( localize(
|
|
75
|
+
label: ( localize(8351, "Managed by your organization")),
|
|
78
76
|
order: 999,
|
|
79
77
|
showHeader: true
|
|
80
78
|
};
|
|
@@ -89,11 +87,11 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
|
|
|
89
87
|
if (mode.source?.storage === PromptsStorage.extension) {
|
|
90
88
|
icon = Codicon.file;
|
|
91
89
|
id = `viewAgent:${mode.id}`;
|
|
92
|
-
label = ( localize(
|
|
90
|
+
label = ( localize(8352, "View {0} agent", mode.label.get()));
|
|
93
91
|
} else {
|
|
94
92
|
icon = Codicon.edit;
|
|
95
93
|
id = `editAgent:${mode.id}`;
|
|
96
|
-
label = ( localize(
|
|
94
|
+
label = ( localize(8353, "Edit {0} agent", mode.label.get()));
|
|
97
95
|
}
|
|
98
96
|
const modeResource = mode.uri;
|
|
99
97
|
toolbarActions.push({
|
|
@@ -125,6 +123,13 @@ let ModePickerActionItem = class ModePickerActionItem extends ChatInputPickerAct
|
|
|
125
123
|
if (isDisabledViaPolicy) {
|
|
126
124
|
return;
|
|
127
125
|
}
|
|
126
|
+
if (this.delegate.setMode && !this.delegate.sessionResource()) {
|
|
127
|
+
this.delegate.setMode(mode);
|
|
128
|
+
if (this.element) {
|
|
129
|
+
this.renderLabel(this.element);
|
|
130
|
+
}
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
128
133
|
const result = await commandService.executeCommand(ToggleAgentModeActionId, {
|
|
129
134
|
modeId: mode.id,
|
|
130
135
|
sessionResource: this.delegate.sessionResource()
|
|
@@ -308,12 +313,8 @@ function isModeConsideredBuiltIn(mode, productService) {
|
|
|
308
313
|
return !isOrganizationPromptFile(modeUri, mode.source.extensionId, productService);
|
|
309
314
|
}
|
|
310
315
|
function shouldShowBuiltInMode(mode, assignments, agentModeDisabledViaPolicy) {
|
|
311
|
-
if (mode.id === ChatMode.Edit.id
|
|
312
|
-
|
|
313
|
-
return agentModeDisabledViaPolicy;
|
|
314
|
-
} else {
|
|
315
|
-
return !agentModeDisabledViaPolicy;
|
|
316
|
-
}
|
|
316
|
+
if (mode.id === ChatMode.Edit.id) {
|
|
317
|
+
return agentModeDisabledViaPolicy;
|
|
317
318
|
}
|
|
318
319
|
if (mode.id === ChatMode.Ask.id || mode.name.get().toLowerCase() === "ask") {
|
|
319
320
|
if (mode.id === ChatMode.Ask.id) {
|
|
@@ -325,4 +326,4 @@ function shouldShowBuiltInMode(mode, assignments, agentModeDisabledViaPolicy) {
|
|
|
325
326
|
return true;
|
|
326
327
|
}
|
|
327
328
|
|
|
328
|
-
export { ModePickerActionItem };
|
|
329
|
+
export { ModePickerActionItem, isModeConsideredBuiltIn };
|