@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
|
@@ -83,7 +83,7 @@ async function openSessionDefault(accessor, session, openOptions) {
|
|
|
83
83
|
}
|
|
84
84
|
return await chatWidgetService.openSession(session.resource, target, options);
|
|
85
85
|
} catch (error) {
|
|
86
|
-
notificationService.error(( localize(
|
|
86
|
+
notificationService.error(( localize(5604, "Failed to open chat session: {0}", toErrorMessage(error))));
|
|
87
87
|
return undefined;
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -8,6 +8,7 @@ import { ITreeNode, ITreeElementRenderDetails, IAsyncDataSource, ITreeSorter, IT
|
|
|
8
8
|
import { Disposable, DisposableStore, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
9
9
|
import { AgentSessionSection, AgentSessionStatus, IAgentSession, IAgentSessionSection, IAgentSessionShowLess, IAgentSessionShowMore, IAgentSessionsModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel";
|
|
10
10
|
import { IconLabel } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabel";
|
|
11
|
+
import { ThemeIcon } from "@codingame/monaco-vscode-api/vscode/vs/base/common/themables";
|
|
11
12
|
import { FuzzyScore } from "@codingame/monaco-vscode-api/vscode/vs/base/common/filters";
|
|
12
13
|
import { IMarkdownRendererService } from "@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer.service";
|
|
13
14
|
import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
|
|
@@ -24,10 +25,12 @@ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/
|
|
|
24
25
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
25
26
|
import { AgentSessionApprovalModel } from "./agentSessionApprovalModel.js";
|
|
26
27
|
import { IChatSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service";
|
|
28
|
+
import { IAccessibilityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service";
|
|
27
29
|
export type AgentSessionListItem = IAgentSession | IAgentSessionSection | IAgentSessionShowMore | IAgentSessionShowLess;
|
|
28
30
|
interface IAgentSessionItemTemplate {
|
|
29
31
|
readonly element: HTMLElement;
|
|
30
32
|
readonly icon: HTMLElement;
|
|
33
|
+
readonly statusIcon: AgentSessionStatusIcon;
|
|
31
34
|
readonly title: IconLabel;
|
|
32
35
|
readonly pinnedIndicator: HTMLElement;
|
|
33
36
|
readonly statusContainer: HTMLElement;
|
|
@@ -47,6 +50,19 @@ interface IAgentSessionItemTemplate {
|
|
|
47
50
|
readonly elementDisposable: DisposableStore;
|
|
48
51
|
readonly disposables: IDisposable;
|
|
49
52
|
}
|
|
53
|
+
declare class AgentSessionStatusIcon extends Disposable {
|
|
54
|
+
private readonly container;
|
|
55
|
+
private readonly getIcon;
|
|
56
|
+
private readonly accessibilityService;
|
|
57
|
+
private static readonly PIXEL_SPINNER_GRID_KEY;
|
|
58
|
+
private static readonly PIXEL_SPINNER_RING_KEY;
|
|
59
|
+
private _currentCacheKey;
|
|
60
|
+
private _lastInputs;
|
|
61
|
+
constructor(container: HTMLElement, getIcon: (session: IAgentSession, statusOnly?: boolean) => ThemeIcon, accessibilityService: IAccessibilityService);
|
|
62
|
+
setStatus(session: IAgentSession, statusOnly?: boolean): void;
|
|
63
|
+
reset(): void;
|
|
64
|
+
private render;
|
|
65
|
+
}
|
|
50
66
|
export interface IAgentSessionRendererOptions {
|
|
51
67
|
readonly disableHover?: boolean;
|
|
52
68
|
readonly hideSessionBadge?: boolean;
|
|
@@ -54,6 +70,12 @@ export interface IAgentSessionRendererOptions {
|
|
|
54
70
|
getHoverPosition(): HoverPosition;
|
|
55
71
|
isGroupedByRepository?(): boolean;
|
|
56
72
|
isSortedByUpdated?(): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Called when a session hover is shown so the host can pause updates that
|
|
75
|
+
* would re-sort the list while the user is reading the hover. The returned
|
|
76
|
+
* disposable resumes updates.
|
|
77
|
+
*/
|
|
78
|
+
pauseSessionUpdates?(): IDisposable;
|
|
57
79
|
}
|
|
58
80
|
export declare class AgentSessionRenderer extends Disposable implements ICompressibleTreeRenderer<IAgentSession, FuzzyScore, IAgentSessionItemTemplate> {
|
|
59
81
|
private readonly options;
|
|
@@ -65,6 +87,7 @@ export declare class AgentSessionRenderer extends Disposable implements ICompres
|
|
|
65
87
|
private readonly instantiationService;
|
|
66
88
|
private readonly contextKeyService;
|
|
67
89
|
private readonly chatSessionsService;
|
|
90
|
+
private readonly accessibilityService;
|
|
68
91
|
static readonly TEMPLATE_ID = "agent-session";
|
|
69
92
|
static readonly APPROVAL_ROW_MAX_LINES = 3;
|
|
70
93
|
private static readonly _APPROVAL_ROW_LINE_HEIGHT;
|
|
@@ -74,7 +97,7 @@ export declare class AgentSessionRenderer extends Disposable implements ICompres
|
|
|
74
97
|
private readonly sessionHover;
|
|
75
98
|
private readonly _onDidChangeItemHeight;
|
|
76
99
|
readonly onDidChangeItemHeight: Event<IAgentSession>;
|
|
77
|
-
constructor(options: IAgentSessionRendererOptions, _approvalModel: AgentSessionApprovalModel | undefined, _activeSessionResource: IObservable<URI | undefined>, markdownRendererService: IMarkdownRendererService, productService: IProductService, hoverService: IHoverService, instantiationService: IInstantiationService, contextKeyService: IContextKeyService, chatSessionsService: IChatSessionsService);
|
|
100
|
+
constructor(options: IAgentSessionRendererOptions, _approvalModel: AgentSessionApprovalModel | undefined, _activeSessionResource: IObservable<URI | undefined>, markdownRendererService: IMarkdownRendererService, productService: IProductService, hoverService: IHoverService, instantiationService: IInstantiationService, contextKeyService: IContextKeyService, chatSessionsService: IChatSessionsService, accessibilityService: IAccessibilityService);
|
|
78
101
|
renderTemplate(container: HTMLElement): IAgentSessionItemTemplate;
|
|
79
102
|
renderElement(session: ITreeNode<IAgentSession, FuzzyScore>, index: number, template: IAgentSessionItemTemplate, details?: ITreeElementRenderDetails): void;
|
|
80
103
|
private triggerResolve;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { registerCss } from '@codingame/monaco-vscode-api/css';
|
|
3
3
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
4
4
|
import * as agentsessionsviewer from './media/agentsessionsviewer.css';
|
|
5
|
-
import { h } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
5
|
+
import { clearNode, h } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
6
6
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
7
7
|
import { NotSelectableGroupId } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/list/list';
|
|
8
8
|
import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
@@ -41,11 +41,75 @@ import { BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/
|
|
|
41
41
|
import { compareIgnoreCase } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
|
|
42
42
|
import { CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
43
43
|
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
44
|
+
import { createPixelSpinner } from '../../../../../base/browser/ui/pixelSpinner/pixelSpinner.js';
|
|
45
|
+
import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
|
|
44
46
|
import { ChatSessionStatus, isSessionInProgressStatus } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
|
|
45
47
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
46
48
|
|
|
47
49
|
var AgentSessionRenderer_1, AgentSessionSectionRenderer_1;
|
|
48
50
|
registerCss(agentsessionsviewer);
|
|
51
|
+
class AgentSessionStatusIcon extends Disposable {
|
|
52
|
+
static {
|
|
53
|
+
this.PIXEL_SPINNER_GRID_KEY = "__pixel_spinner_grid__";
|
|
54
|
+
}
|
|
55
|
+
static {
|
|
56
|
+
this.PIXEL_SPINNER_RING_KEY = "__pixel_spinner_ring__";
|
|
57
|
+
}
|
|
58
|
+
constructor(container, getIcon, accessibilityService) {
|
|
59
|
+
super();
|
|
60
|
+
this.container = container;
|
|
61
|
+
this.getIcon = getIcon;
|
|
62
|
+
this.accessibilityService = accessibilityService;
|
|
63
|
+
this._register(this.accessibilityService.onDidChangeReducedMotion(() => {
|
|
64
|
+
if (this._lastInputs) {
|
|
65
|
+
this.render(this._lastInputs);
|
|
66
|
+
}
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
setStatus(session, statusOnly) {
|
|
70
|
+
const inputs = {
|
|
71
|
+
session,
|
|
72
|
+
statusOnly
|
|
73
|
+
};
|
|
74
|
+
this._lastInputs = inputs;
|
|
75
|
+
this.render(inputs);
|
|
76
|
+
}
|
|
77
|
+
reset() {
|
|
78
|
+
this._currentCacheKey = undefined;
|
|
79
|
+
this._lastInputs = undefined;
|
|
80
|
+
clearNode(this.container);
|
|
81
|
+
}
|
|
82
|
+
render(inputs) {
|
|
83
|
+
const {
|
|
84
|
+
session,
|
|
85
|
+
statusOnly
|
|
86
|
+
} = inputs;
|
|
87
|
+
this.container.className = `agent-session-icon${session.status === ChatSessionStatus.NeedsInput ? " needs-input" : ""}`;
|
|
88
|
+
if ((session.status === ChatSessionStatus.InProgress || session.status === ChatSessionStatus.NeedsInput) && !this.accessibilityService.isMotionReduced()) {
|
|
89
|
+
const isNeedsInput = session.status === ChatSessionStatus.NeedsInput;
|
|
90
|
+
const cacheKey = isNeedsInput ? AgentSessionStatusIcon.PIXEL_SPINNER_RING_KEY : AgentSessionStatusIcon.PIXEL_SPINNER_GRID_KEY;
|
|
91
|
+
this.container.style.color = isNeedsInput ? asCssVariable("list.warningForeground") : asCssVariable("textLink.foreground");
|
|
92
|
+
if (this._currentCacheKey === cacheKey) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
this._currentCacheKey = cacheKey;
|
|
96
|
+
clearNode(this.container);
|
|
97
|
+
createPixelSpinner(this.container, {
|
|
98
|
+
variant: isNeedsInput ? "ring" : "grid"
|
|
99
|
+
});
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const icon = this.getIcon(session, statusOnly);
|
|
103
|
+
const cacheKey = ThemeIcon.asCSSSelector(icon);
|
|
104
|
+
this.container.style.color = icon.color ? asCssVariable(icon.color.id) : "";
|
|
105
|
+
if (this._currentCacheKey === cacheKey) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this._currentCacheKey = cacheKey;
|
|
109
|
+
clearNode(this.container);
|
|
110
|
+
this.container.appendChild(h(`span${cacheKey}`).root);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
49
113
|
let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
50
114
|
static {
|
|
51
115
|
AgentSessionRenderer_1 = this;
|
|
@@ -75,7 +139,8 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
75
139
|
hoverService,
|
|
76
140
|
instantiationService,
|
|
77
141
|
contextKeyService,
|
|
78
|
-
chatSessionsService
|
|
142
|
+
chatSessionsService,
|
|
143
|
+
accessibilityService
|
|
79
144
|
) {
|
|
80
145
|
super();
|
|
81
146
|
this.options = options;
|
|
@@ -87,6 +152,7 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
87
152
|
this.instantiationService = instantiationService;
|
|
88
153
|
this.contextKeyService = contextKeyService;
|
|
89
154
|
this.chatSessionsService = chatSessionsService;
|
|
155
|
+
this.accessibilityService = accessibilityService;
|
|
90
156
|
this.templateId = AgentSessionRenderer_1.TEMPLATE_ID;
|
|
91
157
|
this.sessionHover = this._register(( new MutableDisposable()));
|
|
92
158
|
this._onDidChangeItemHeight = this._register(( new Emitter()));
|
|
@@ -135,6 +201,11 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
135
201
|
return {
|
|
136
202
|
element: elements.item,
|
|
137
203
|
icon: elements.icon,
|
|
204
|
+
statusIcon: disposables.add(( new AgentSessionStatusIcon(
|
|
205
|
+
elements.icon,
|
|
206
|
+
(session, statusOnly) => this.getIcon(session, statusOnly),
|
|
207
|
+
this.accessibilityService
|
|
208
|
+
))),
|
|
138
209
|
title: disposables.add(( new IconLabel(elements.title, {
|
|
139
210
|
supportHighlights: true,
|
|
140
211
|
supportIcons: true
|
|
@@ -176,9 +247,7 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
176
247
|
template.element.removeAttribute("data-section-label");
|
|
177
248
|
}
|
|
178
249
|
if (this.options.useStatusOnlyIcons) {
|
|
179
|
-
|
|
180
|
-
template.icon.className = `agent-session-icon ${ThemeIcon.asClassName(statusIcon)}${session.element.status === ChatSessionStatus.NeedsInput ? " needs-input" : ""}`;
|
|
181
|
-
template.icon.style.color = statusIcon.color ? asCssVariable(statusIcon.color.id) : "";
|
|
250
|
+
template.statusIcon.setStatus(session.element, true);
|
|
182
251
|
if (session.element.providerType === AgentSessionProviders.Background) {
|
|
183
252
|
template.detailsIcon.className = "agent-session-details-icon";
|
|
184
253
|
} else {
|
|
@@ -186,9 +255,7 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
186
255
|
template.detailsIcon.classList.add("visible");
|
|
187
256
|
}
|
|
188
257
|
} else {
|
|
189
|
-
|
|
190
|
-
template.icon.className = `agent-session-icon ${ThemeIcon.asClassName(icon)}${session.element.status === ChatSessionStatus.NeedsInput ? " needs-input" : ""}`;
|
|
191
|
-
template.icon.style.color = icon.color ? asCssVariable(icon.color.id) : "";
|
|
258
|
+
template.statusIcon.setStatus(session.element);
|
|
192
259
|
template.detailsIcon.className = "agent-session-details-icon";
|
|
193
260
|
}
|
|
194
261
|
const markdownTitle = ( new MarkdownString(session.element.label));
|
|
@@ -371,7 +438,7 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
371
438
|
color: themeColorFromId("textLink.foreground")
|
|
372
439
|
};
|
|
373
440
|
}
|
|
374
|
-
if (!statusOnly && session.providerType === AgentSessionProviders.Local) {
|
|
441
|
+
if (!statusOnly && (session.providerType === AgentSessionProviders.Local || session.providerType === AgentSessionProviders.AgentHostCopilot)) {
|
|
375
442
|
return {
|
|
376
443
|
...Codicon.circleSmallFilled,
|
|
377
444
|
color: themeColorFromId("agentSessionReadIndicator.foreground")
|
|
@@ -392,13 +459,13 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
392
459
|
return true;
|
|
393
460
|
}
|
|
394
461
|
if (session.element.status === ChatSessionStatus.InProgress) {
|
|
395
|
-
template.description.textContent = ( localize(
|
|
462
|
+
template.description.textContent = ( localize(5611, "Working..."));
|
|
396
463
|
return true;
|
|
397
464
|
} else if (session.element.status === ChatSessionStatus.NeedsInput) {
|
|
398
|
-
template.description.textContent = ( localize(
|
|
465
|
+
template.description.textContent = ( localize(5612, "Input needed."));
|
|
399
466
|
return true;
|
|
400
467
|
} else if (session.element.status === ChatSessionStatus.Failed) {
|
|
401
|
-
template.description.textContent = ( localize(
|
|
468
|
+
template.description.textContent = ( localize(5613, "Failed"));
|
|
402
469
|
return true;
|
|
403
470
|
}
|
|
404
471
|
template.description.textContent = "";
|
|
@@ -407,7 +474,7 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
407
474
|
toDuration(startTime, endTime, useFullTimeWords, disallowNow) {
|
|
408
475
|
const elapsed = Math.max(Math.round((endTime - startTime) / 1000) * 1000, 1000 );
|
|
409
476
|
if (!disallowNow && elapsed < 60000) {
|
|
410
|
-
return localize(
|
|
477
|
+
return localize(5614, "now");
|
|
411
478
|
}
|
|
412
479
|
return getDurationString(elapsed, useFullTimeWords);
|
|
413
480
|
}
|
|
@@ -422,7 +489,7 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
422
489
|
const date = this.options.isSortedByUpdated?.() ? session.timing.lastRequestEnded ?? session.timing.created : session.timing.created;
|
|
423
490
|
const seconds = Math.round((( new Date()).getTime() - date) / 1000);
|
|
424
491
|
if (seconds < 60) {
|
|
425
|
-
timeLabel = ( localize(
|
|
492
|
+
timeLabel = ( localize(5614, "now"));
|
|
426
493
|
} else {
|
|
427
494
|
timeLabel = sessionDateFromNow(date, true);
|
|
428
495
|
}
|
|
@@ -457,11 +524,22 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
457
524
|
this.sessionHover.value = this.instantiationService.createInstance(AgentSessionHoverWidget, session);
|
|
458
525
|
}
|
|
459
526
|
const widget = this.sessionHover.value;
|
|
527
|
+
let pauseDisposable;
|
|
460
528
|
return {
|
|
461
529
|
id: `agent.session.hover.${( session.resource.toString())}`,
|
|
462
530
|
content: widget.domNode,
|
|
463
531
|
style: HoverStyle.Pointer,
|
|
464
|
-
onDidShow: () =>
|
|
532
|
+
onDidShow: () => {
|
|
533
|
+
const previousPauseDisposable = pauseDisposable;
|
|
534
|
+
pauseDisposable = this.options.pauseSessionUpdates?.();
|
|
535
|
+
previousPauseDisposable?.dispose();
|
|
536
|
+
widget.onRendered();
|
|
537
|
+
},
|
|
538
|
+
onDidHide: () => {
|
|
539
|
+
widget.onHidden();
|
|
540
|
+
pauseDisposable?.dispose();
|
|
541
|
+
pauseDisposable = undefined;
|
|
542
|
+
},
|
|
465
543
|
position: {
|
|
466
544
|
hoverPosition: this.options.getHoverPosition()
|
|
467
545
|
}
|
|
@@ -505,11 +583,11 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
505
583
|
template.approvalButtonContainer.textContent = "";
|
|
506
584
|
const isActive = this._activeSessionResource.read(reader)?.toString() === ( session.element.resource.toString());
|
|
507
585
|
const button = buttonStore.add(( new Button(template.approvalButtonContainer, {
|
|
508
|
-
title: ( localize(
|
|
586
|
+
title: ( localize(5615, "Allow once")),
|
|
509
587
|
secondary: isActive,
|
|
510
588
|
...defaultButtonStyles
|
|
511
589
|
})));
|
|
512
|
-
button.label = ( localize(
|
|
590
|
+
button.label = ( localize(5616, "Allow"));
|
|
513
591
|
buttonStore.add(button.onDidClick(() => info.confirm()));
|
|
514
592
|
}
|
|
515
593
|
if (wasVisible !== visible) {
|
|
@@ -528,21 +606,21 @@ let AgentSessionRenderer = class AgentSessionRenderer extends Disposable {
|
|
|
528
606
|
templateData.disposables.dispose();
|
|
529
607
|
}
|
|
530
608
|
};
|
|
531
|
-
AgentSessionRenderer = AgentSessionRenderer_1 = ( __decorate([( __param(3, IMarkdownRendererService)), ( __param(4, IProductService)), ( __param(5, IHoverService)), ( __param(6, IInstantiationService)), ( __param(7, IContextKeyService)), ( __param(8, IChatSessionsService))], AgentSessionRenderer));
|
|
609
|
+
AgentSessionRenderer = AgentSessionRenderer_1 = ( __decorate([( __param(3, IMarkdownRendererService)), ( __param(4, IProductService)), ( __param(5, IHoverService)), ( __param(6, IInstantiationService)), ( __param(7, IContextKeyService)), ( __param(8, IChatSessionsService)), ( __param(9, IAccessibilityService))], AgentSessionRenderer));
|
|
532
610
|
function toStatusLabel(status) {
|
|
533
611
|
let statusLabel;
|
|
534
612
|
switch (status) {
|
|
535
613
|
case ChatSessionStatus.NeedsInput:
|
|
536
|
-
statusLabel = ( localize(
|
|
614
|
+
statusLabel = ( localize(5617, "Needs Input"));
|
|
537
615
|
break;
|
|
538
616
|
case ChatSessionStatus.InProgress:
|
|
539
|
-
statusLabel = ( localize(
|
|
617
|
+
statusLabel = ( localize(5618, "In Progress"));
|
|
540
618
|
break;
|
|
541
619
|
case ChatSessionStatus.Failed:
|
|
542
|
-
statusLabel = ( localize(
|
|
620
|
+
statusLabel = ( localize(5619, "Failed"));
|
|
543
621
|
break;
|
|
544
622
|
default:
|
|
545
|
-
statusLabel = ( localize(
|
|
623
|
+
statusLabel = ( localize(5620, "Completed"));
|
|
546
624
|
}
|
|
547
625
|
return statusLabel;
|
|
548
626
|
}
|
|
@@ -635,7 +713,7 @@ class AgentSessionShowMoreRenderer {
|
|
|
635
713
|
};
|
|
636
714
|
}
|
|
637
715
|
renderElement(element, _index, template) {
|
|
638
|
-
template.label.textContent = this.options?.compactLabel ? ( localize(
|
|
716
|
+
template.label.textContent = this.options?.compactLabel ? ( localize(5621, "+{0} more", element.element.remainingCount)) : ( localize(5622, "Show {0} More...", element.element.remainingCount));
|
|
639
717
|
template.container.setAttribute("data-section-label", element.element.sectionLabel);
|
|
640
718
|
}
|
|
641
719
|
renderCompressedElements() {
|
|
@@ -670,7 +748,7 @@ class AgentSessionShowLessRenderer {
|
|
|
670
748
|
};
|
|
671
749
|
}
|
|
672
750
|
renderElement(element, _index, template) {
|
|
673
|
-
template.label.textContent = ( localize(
|
|
751
|
+
template.label.textContent = ( localize(5623, "Show less"));
|
|
674
752
|
template.container.setAttribute("data-section-label", element.element.sectionLabel);
|
|
675
753
|
}
|
|
676
754
|
renderCompressedElements() {
|
|
@@ -733,24 +811,24 @@ class AgentSessionsAccessibilityProvider {
|
|
|
733
811
|
return "listitem";
|
|
734
812
|
}
|
|
735
813
|
getWidgetAriaLabel() {
|
|
736
|
-
return localize(
|
|
814
|
+
return localize(5624, "Agent Sessions");
|
|
737
815
|
}
|
|
738
816
|
getAriaLabel(element) {
|
|
739
817
|
if (isAgentSessionSection(element)) {
|
|
740
818
|
const count = element.sessions.length;
|
|
741
819
|
if (count === 1) {
|
|
742
|
-
return localize(
|
|
820
|
+
return localize(5625, "{0} sessions section, {1} session", element.label, count);
|
|
743
821
|
}
|
|
744
|
-
return localize(
|
|
822
|
+
return localize(5626, "{0} sessions section, {1} sessions", element.label, count);
|
|
745
823
|
}
|
|
746
824
|
if (isAgentSessionShowMore(element)) {
|
|
747
|
-
return localize(
|
|
825
|
+
return localize(5627, "Show {0} more sessions", element.remainingCount);
|
|
748
826
|
}
|
|
749
827
|
if (isAgentSessionShowLess(element)) {
|
|
750
|
-
return localize(
|
|
828
|
+
return localize(5628, "Show less sessions");
|
|
751
829
|
}
|
|
752
830
|
return localize(
|
|
753
|
-
|
|
831
|
+
5629,
|
|
754
832
|
"{0} session {1} ({2}), created {3}",
|
|
755
833
|
element.providerLabel,
|
|
756
834
|
element.label,
|
|
@@ -1079,14 +1157,14 @@ function extractRepoNameFromPath(dirPath) {
|
|
|
1079
1157
|
return segments[segments.length - 1];
|
|
1080
1158
|
}
|
|
1081
1159
|
const AgentSessionSectionLabels = {
|
|
1082
|
-
[AgentSessionSection.Pinned]: ( localize(
|
|
1083
|
-
[AgentSessionSection.Today]: ( localize(
|
|
1084
|
-
[AgentSessionSection.Yesterday]: ( localize(
|
|
1085
|
-
[AgentSessionSection.Week]: ( localize(
|
|
1086
|
-
[AgentSessionSection.Older]: ( localize(
|
|
1087
|
-
[AgentSessionSection.Archived]: ( localize(
|
|
1088
|
-
[AgentSessionSection.More]: ( localize(
|
|
1089
|
-
[AgentSessionSection.Repository]: ( localize(
|
|
1160
|
+
[AgentSessionSection.Pinned]: ( localize(5630, "Pinned")),
|
|
1161
|
+
[AgentSessionSection.Today]: ( localize(5631, "Today")),
|
|
1162
|
+
[AgentSessionSection.Yesterday]: ( localize(5632, "Yesterday")),
|
|
1163
|
+
[AgentSessionSection.Week]: ( localize(5633, "Last 7 days")),
|
|
1164
|
+
[AgentSessionSection.Older]: ( localize(5634, "Older")),
|
|
1165
|
+
[AgentSessionSection.Archived]: ( localize(5635, "Archived")),
|
|
1166
|
+
[AgentSessionSection.More]: ( localize(5636, "More")),
|
|
1167
|
+
[AgentSessionSection.Repository]: ( localize(5637, "Other"))
|
|
1090
1168
|
};
|
|
1091
1169
|
const DAY_THRESHOLD = 24 * 60 * 60 * 1000;
|
|
1092
1170
|
const WEEK_THRESHOLD = 7 * DAY_THRESHOLD;
|
|
@@ -1151,10 +1229,10 @@ function sessionDateFromNow(sessionTime, appendAgoLabel) {
|
|
|
1151
1229
|
const startOfYesterday = startOfToday - DAY_THRESHOLD;
|
|
1152
1230
|
const startOfTwoDaysAgo = startOfYesterday - DAY_THRESHOLD;
|
|
1153
1231
|
if (sessionTime < startOfToday && sessionTime >= startOfYesterday) {
|
|
1154
|
-
return appendAgoLabel ? ( localize(
|
|
1232
|
+
return appendAgoLabel ? ( localize(5638, "1 day ago")) : ( localize(5639, "1 day"));
|
|
1155
1233
|
}
|
|
1156
1234
|
if (sessionTime < startOfYesterday && sessionTime >= startOfTwoDaysAgo) {
|
|
1157
|
-
return appendAgoLabel ? ( localize(
|
|
1235
|
+
return appendAgoLabel ? ( localize(5640, "2 days ago")) : ( localize(5641, "2 days"));
|
|
1158
1236
|
}
|
|
1159
1237
|
return fromNow(sessionTime, appendAgoLabel);
|
|
1160
1238
|
}
|
|
@@ -1261,7 +1339,7 @@ let AgentSessionsDragAndDrop = class AgentSessionsDragAndDrop extends Disposable
|
|
|
1261
1339
|
if (sessions.length === 1) {
|
|
1262
1340
|
return sessions[0].label;
|
|
1263
1341
|
}
|
|
1264
|
-
return localize(
|
|
1342
|
+
return localize(5642, "{0} agent sessions", sessions.length);
|
|
1265
1343
|
}
|
|
1266
1344
|
onDragOver(data, targetElement, targetIndex, targetSector, originalEvent) {
|
|
1267
1345
|
return false;
|
package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css
CHANGED
|
@@ -26,6 +26,18 @@
|
|
|
26
26
|
border-radius: 6px;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
/* Suppressed while selected so the selection highlight is not overpainted. */
|
|
30
|
+
.monaco-list-row:not(.selected):not(.focused):not(:hover):has(.agent-session-icon.needs-input) {
|
|
31
|
+
animation: agent-session-needs-input-accent-pulse 3s ease-in-out infinite;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@media (prefers-reduced-motion: reduce) {
|
|
35
|
+
.monaco-list-row:not(.selected):not(.focused):not(:hover):has(.agent-session-icon.needs-input) {
|
|
36
|
+
animation: none;
|
|
37
|
+
background-color: color-mix(in srgb, var(--vscode-list-warningForeground) 8%, transparent);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
29
41
|
.monaco-list-row .force-no-twistie {
|
|
30
42
|
display: none !important;
|
|
31
43
|
}
|
|
@@ -49,6 +61,11 @@
|
|
|
49
61
|
}
|
|
50
62
|
}
|
|
51
63
|
|
|
64
|
+
.monaco-list:focus .monaco-list-row.selected .agent-session-icon > .codicon,
|
|
65
|
+
.monaco-list:focus .monaco-list-row.selected .agent-session-icon > .monaco-pixel-spinner {
|
|
66
|
+
color: var(--vscode-list-activeSelectionForeground) !important;
|
|
67
|
+
}
|
|
68
|
+
|
|
52
69
|
.monaco-list-row.selected .agent-session-item,
|
|
53
70
|
.monaco-list-row.selected .agent-session-title {
|
|
54
71
|
color: unset;
|
|
@@ -427,3 +444,13 @@
|
|
|
427
444
|
opacity: 0.4;
|
|
428
445
|
}
|
|
429
446
|
}
|
|
447
|
+
|
|
448
|
+
/* PROTO: yellow background pulse for "Input needed" session rows. */
|
|
449
|
+
@keyframes agent-session-needs-input-accent-pulse {
|
|
450
|
+
0%, 100% {
|
|
451
|
+
background-color: transparent;
|
|
452
|
+
}
|
|
453
|
+
50% {
|
|
454
|
+
background-color: color-mix(in srgb, var(--vscode-list-warningForeground) 12%, transparent);
|
|
455
|
+
}
|
|
456
|
+
}
|
package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionTypeAvailability.d.ts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { IMarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent";
|
|
2
|
+
import { IChatEntitlementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service";
|
|
3
|
+
import { IChatSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service";
|
|
4
|
+
import { ILanguageModelsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service";
|
|
5
|
+
/**
|
|
6
|
+
* Why a session type cannot currently be selected, or
|
|
7
|
+
* {@link SessionTypeAvailability.Available} when it can.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum SessionTypeAvailability {
|
|
10
|
+
/** Selectable — has an Auto fallback or at least one targeted/BYOK model. */
|
|
11
|
+
Available = 0,
|
|
12
|
+
/** Unusable until the user signs in (the type needs a Copilot account; BYOK is not supported here). */
|
|
13
|
+
SignInRequired = 1,
|
|
14
|
+
/** Unusable, but the user can resolve it by upgrading (Copilot Free / Student). */
|
|
15
|
+
UpgradeRequired = 2,
|
|
16
|
+
/** Unusable with no upgrade path — no models target it and the user is already on a paid plan. */
|
|
17
|
+
NoModels = 3
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Whether the given session type can currently produce a request, and if not,
|
|
21
|
+
* why. A session type is usable when it can fall back to the synthetic "Auto"
|
|
22
|
+
* model ({@link IChatSessionsService.supportsAutoModelForSessionType}) or has at
|
|
23
|
+
* least one model targeting it (e.g. a user-configured BYOK model). A type that
|
|
24
|
+
* does not require its own models ({@link IChatSessionsService.requiresCustomModelsForSessionType})
|
|
25
|
+
* — e.g. the cloud delegation agent, which runs remotely without a local model —
|
|
26
|
+
* also stays usable on a paid plan even with neither an Auto fallback nor a
|
|
27
|
+
* targeted model. When a type is not usable, Copilot Free / Student (EDU) users
|
|
28
|
+
* see an Upgrade affordance ({@link SessionTypeAvailability.UpgradeRequired});
|
|
29
|
+
* paid users whose type genuinely requires its own models but has none simply
|
|
30
|
+
* have no models ({@link SessionTypeAvailability.NoModels}) and are shown an
|
|
31
|
+
* explanation with no upgrade button. A signed-out user gets a Sign-in
|
|
32
|
+
* affordance ({@link SessionTypeAvailability.SignInRequired}) for Copilot-backed
|
|
33
|
+
* types ({@link IChatSessionsService.requiresCopilotSignInForSessionType}), unless
|
|
34
|
+
* anonymous access is enabled; types that don't depend on Copilot stay usable
|
|
35
|
+
* while signed out. Unavailable types are greyed out in the picker either way.
|
|
36
|
+
*
|
|
37
|
+
* While the type's contribution isn't registered yet (e.g. during a window
|
|
38
|
+
* reload before the extension host re-registers), this returns
|
|
39
|
+
* {@link SessionTypeAvailability.Available} so a harness is never locked
|
|
40
|
+
* prematurely; the model picker is the backstop and shows "No models available"
|
|
41
|
+
* for an active session in that window.
|
|
42
|
+
*
|
|
43
|
+
* Shared by the chat input session-type picker and the Agents window harness
|
|
44
|
+
* picker so both surfaces apply the same rule.
|
|
45
|
+
*/
|
|
46
|
+
export declare function getSessionTypeAvailability(chatSessionsService: IChatSessionsService, chatEntitlementService: IChatEntitlementService, languageModelsService: ILanguageModelsService, type: string): SessionTypeAvailability;
|
|
47
|
+
/**
|
|
48
|
+
* The inline description shown for an unavailable session type, or `undefined`
|
|
49
|
+
* when it is available. Free / Student users get an actionable "[Upgrade]"
|
|
50
|
+
* link; paid users with no models get a plain "No models available" note.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getSessionTypeUnavailableDescription(availability: SessionTypeAvailability): IMarkdownString | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* The hover shown for an unavailable session type, or `undefined` when it is
|
|
55
|
+
* available. Free / Student users are prompted to upgrade; paid users with no
|
|
56
|
+
* models get an explanation with no upgrade link.
|
|
57
|
+
*/
|
|
58
|
+
export declare function getSessionTypeUnavailableHover(availability: SessionTypeAvailability): IMarkdownString | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Plain-text description for surfaces that cannot render markdown (e.g. the
|
|
61
|
+
* mobile picker sheet), or `undefined` when the session type is available.
|
|
62
|
+
*/
|
|
63
|
+
export declare function getSessionTypeUnavailableLabel(availability: SessionTypeAvailability): string | undefined;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
|
|
2
|
+
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
3
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
4
|
+
import { ChatEntitlement } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService';
|
|
5
|
+
import { hasModelsTargetingSession } from '../widget/input/chatModelSelectionLogic.js';
|
|
6
|
+
|
|
7
|
+
var SessionTypeAvailability;
|
|
8
|
+
(function(SessionTypeAvailability) {
|
|
9
|
+
SessionTypeAvailability[SessionTypeAvailability["Available"] = 0] = "Available";
|
|
10
|
+
SessionTypeAvailability[SessionTypeAvailability["SignInRequired"] = 1] = "SignInRequired";
|
|
11
|
+
SessionTypeAvailability[SessionTypeAvailability["UpgradeRequired"] = 2] = "UpgradeRequired";
|
|
12
|
+
SessionTypeAvailability[SessionTypeAvailability["NoModels"] = 3] = "NoModels";
|
|
13
|
+
})(SessionTypeAvailability || (SessionTypeAvailability = {}));
|
|
14
|
+
function getSessionTypeAvailability(chatSessionsService, chatEntitlementService, languageModelsService, type) {
|
|
15
|
+
if (!chatSessionsService.getChatSessionContribution(type)) {
|
|
16
|
+
return SessionTypeAvailability.Available;
|
|
17
|
+
}
|
|
18
|
+
const entitlement = chatEntitlementService.entitlement;
|
|
19
|
+
if (entitlement === ChatEntitlement.Unknown && !chatEntitlementService.anonymous && chatSessionsService.requiresCopilotSignInForSessionType(type)) {
|
|
20
|
+
return SessionTypeAvailability.SignInRequired;
|
|
21
|
+
}
|
|
22
|
+
if (hasModelsTargetingSessionType(languageModelsService, type) || chatSessionsService.supportsAutoModelForSessionType(type)) {
|
|
23
|
+
return SessionTypeAvailability.Available;
|
|
24
|
+
}
|
|
25
|
+
const canUpgrade = entitlement === ChatEntitlement.Free || entitlement === ChatEntitlement.EDU;
|
|
26
|
+
if (canUpgrade) {
|
|
27
|
+
return SessionTypeAvailability.UpgradeRequired;
|
|
28
|
+
}
|
|
29
|
+
return chatSessionsService.requiresCustomModelsForSessionType(type) ? SessionTypeAvailability.NoModels : SessionTypeAvailability.Available;
|
|
30
|
+
}
|
|
31
|
+
function hasModelsTargetingSessionType(languageModelsService, type) {
|
|
32
|
+
return ( languageModelsService.getLanguageModelIds().some(id => {
|
|
33
|
+
const metadata = languageModelsService.lookupLanguageModel(id);
|
|
34
|
+
return !!metadata && hasModelsTargetingSession([{
|
|
35
|
+
identifier: id,
|
|
36
|
+
metadata
|
|
37
|
+
}], type);
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
function getSessionTypeUnavailableDescription(availability) {
|
|
41
|
+
switch (availability) {
|
|
42
|
+
case SessionTypeAvailability.SignInRequired:
|
|
43
|
+
return (new MarkdownString(localize(5708, "[Sign in](command:workbench.action.chat.triggerSetup)"), {
|
|
44
|
+
isTrusted: {
|
|
45
|
+
enabledCommands: ["workbench.action.chat.triggerSetup"]
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
case SessionTypeAvailability.UpgradeRequired:
|
|
49
|
+
return (new MarkdownString(localize(5709, "[Upgrade](command:workbench.action.chat.upgradePlan)"), {
|
|
50
|
+
isTrusted: {
|
|
51
|
+
enabledCommands: ["workbench.action.chat.upgradePlan"]
|
|
52
|
+
}
|
|
53
|
+
}));
|
|
54
|
+
case SessionTypeAvailability.NoModels:
|
|
55
|
+
return (new MarkdownString(localize(5710, "No models available")));
|
|
56
|
+
default:
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function getSessionTypeUnavailableHover(availability) {
|
|
61
|
+
switch (availability) {
|
|
62
|
+
case SessionTypeAvailability.SignInRequired:
|
|
63
|
+
{
|
|
64
|
+
const hover = ( new MarkdownString("", {
|
|
65
|
+
isTrusted: {
|
|
66
|
+
enabledCommands: ["workbench.action.chat.triggerSetup"]
|
|
67
|
+
},
|
|
68
|
+
supportThemeIcons: true
|
|
69
|
+
}));
|
|
70
|
+
hover.appendMarkdown(( localize(
|
|
71
|
+
5711,
|
|
72
|
+
"[Sign in to GitHub Copilot](command:workbench.action.chat.triggerSetup) to use this agent."
|
|
73
|
+
)));
|
|
74
|
+
return hover;
|
|
75
|
+
}
|
|
76
|
+
case SessionTypeAvailability.UpgradeRequired:
|
|
77
|
+
{
|
|
78
|
+
const hover = ( new MarkdownString("", {
|
|
79
|
+
isTrusted: {
|
|
80
|
+
enabledCommands: ["workbench.action.chat.upgradePlan"]
|
|
81
|
+
},
|
|
82
|
+
supportThemeIcons: true
|
|
83
|
+
}));
|
|
84
|
+
hover.appendMarkdown(( localize(
|
|
85
|
+
5712,
|
|
86
|
+
"[Upgrade to GitHub Copilot Pro](command:workbench.action.chat.upgradePlan) to use this agent."
|
|
87
|
+
)));
|
|
88
|
+
return hover;
|
|
89
|
+
}
|
|
90
|
+
case SessionTypeAvailability.NoModels:
|
|
91
|
+
return (new MarkdownString(localize(5713, "No models are available for this agent.")));
|
|
92
|
+
default:
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export { SessionTypeAvailability, getSessionTypeAvailability, getSessionTypeUnavailableDescription, getSessionTypeUnavailableHover };
|