@codingame/monaco-vscode-katex-common 26.2.2 → 28.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +10 -4
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +37 -11
- package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +3 -0
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +15 -4
- package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +576 -0
- package/vscode/src/vs/{workbench/contrib → platform}/mcp/common/modelContextProtocolApps.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +176 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +127 -64
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +12 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +106 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +105 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +69 -43
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +35 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +187 -78
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +138 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +394 -87
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +28 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +38 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +113 -116
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +16 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +30 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +250 -132
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +1 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -110
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +9 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +2 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +7 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +22 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.js +11 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +59 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.js +29 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +7 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +26 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +53 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.js +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +24 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.js +11 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +62 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +414 -129
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +19 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +263 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +14 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +98 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +11 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +252 -80
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.d.ts +29 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +246 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +39 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +6 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +36 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +3 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +6 -260
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +5 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +42 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +12 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +65 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatHookContentPart.css +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +356 -415
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +14 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +102 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +68 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/codeBlockPart.css +48 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +47 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +0 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +57 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +24 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatResultListSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +103 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +15 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +44 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +85 -89
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +3 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +15 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +41 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +6 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +21 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +341 -88
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +13 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +440 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +24 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +437 -241
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +77 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +521 -284
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +71 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +664 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +104 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +127 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +57 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +4 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +89 -49
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +87 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +213 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +15 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +7 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +563 -140
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +35 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +26 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +26 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +145 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +36 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +35 -15
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +127 -30
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +20 -14
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +6 -6
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +96 -34
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +11 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +68 -27
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +125 -13
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +8 -11
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +54 -45
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +11 -10
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +172 -112
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +2 -44
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +28 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +84 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +9 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +58 -41
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocolApps.d.ts +1 -548
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.js +6 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +0 -187
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ChatAgentLocation, ChatModeKind } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
2
|
+
import { ILanguageModelChatMetadataAndIdentifier } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels";
|
|
3
|
+
/**
|
|
4
|
+
* Describes the context needed for model selection decisions.
|
|
5
|
+
*/
|
|
6
|
+
export interface IModelSelectionContext {
|
|
7
|
+
readonly location: ChatAgentLocation;
|
|
8
|
+
readonly currentModeKind: ChatModeKind;
|
|
9
|
+
readonly isInlineChatV2Enabled: boolean;
|
|
10
|
+
readonly sessionType: string | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Filter models based on session type.
|
|
14
|
+
* When a session has a specific type (and it's not 'local'), only models targeting that
|
|
15
|
+
* session type are returned. Otherwise, general-purpose models are returned.
|
|
16
|
+
*/
|
|
17
|
+
export declare function filterModelsForSession(models: ILanguageModelChatMetadataAndIdentifier[], sessionType: string | undefined, currentModeKind: ChatModeKind, location: ChatAgentLocation, isInlineChatV2Enabled: boolean): ILanguageModelChatMetadataAndIdentifier[];
|
|
18
|
+
/**
|
|
19
|
+
* Check if a model is suitable for the current chat mode (e.g., agent mode requires tool calling).
|
|
20
|
+
*/
|
|
21
|
+
export declare function isModelSupportedForMode(model: ILanguageModelChatMetadataAndIdentifier, currentModeKind: ChatModeKind): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Check if a model is suitable for inline chat (editor inline) usage.
|
|
24
|
+
*/
|
|
25
|
+
export declare function isModelSupportedForInlineChat(model: ILanguageModelChatMetadataAndIdentifier, location: ChatAgentLocation, isInlineChatV2Enabled: boolean): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Check if any models in the pool target a specific session type.
|
|
28
|
+
*/
|
|
29
|
+
export declare function hasModelsTargetingSession(allModels: ILanguageModelChatMetadataAndIdentifier[], sessionType: string | undefined): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Check if a model is valid for the current session's model pool.
|
|
32
|
+
* If the session has targeted models, the model must target that session type.
|
|
33
|
+
* If no models target this session, the model must not be session-specific.
|
|
34
|
+
*/
|
|
35
|
+
export declare function isModelValidForSession(model: ILanguageModelChatMetadataAndIdentifier, allModels: ILanguageModelChatMetadataAndIdentifier[], sessionType: string | undefined): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Find the default model for a given location from a list of models.
|
|
38
|
+
* Prefers the model marked as default for the location, falls back to the first model.
|
|
39
|
+
*/
|
|
40
|
+
export declare function findDefaultModel(models: ILanguageModelChatMetadataAndIdentifier[], location: ChatAgentLocation): ILanguageModelChatMetadataAndIdentifier | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Determine whether a persisted model selection should be restored.
|
|
43
|
+
*
|
|
44
|
+
* A persisted model should be restored if:
|
|
45
|
+
* 1. The model still exists in the available models list
|
|
46
|
+
* 2. Either the model wasn't the default at the time it was persisted,
|
|
47
|
+
* OR it is currently the default for the location
|
|
48
|
+
*
|
|
49
|
+
* This prevents scenarios where a user's explicit model choice gets overridden
|
|
50
|
+
* when the default model changes, while still tracking default model changes
|
|
51
|
+
* for users who never explicitly chose a model.
|
|
52
|
+
*/
|
|
53
|
+
export declare function shouldRestorePersistedModel(persistedModelId: string, persistedAsDefault: boolean, availableModels: ILanguageModelChatMetadataAndIdentifier[], location: ChatAgentLocation): {
|
|
54
|
+
shouldRestore: boolean;
|
|
55
|
+
model: ILanguageModelChatMetadataAndIdentifier | undefined;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Determines whether the current model should be reset because it is no longer
|
|
59
|
+
* compatible with the current mode, session, or availability.
|
|
60
|
+
*
|
|
61
|
+
* Returns true if the model should be reset to default.
|
|
62
|
+
*/
|
|
63
|
+
export declare function shouldResetModelToDefault(currentModel: ILanguageModelChatMetadataAndIdentifier | undefined, availableModels: ILanguageModelChatMetadataAndIdentifier[], context: IModelSelectionContext, allModels: ILanguageModelChatMetadataAndIdentifier[]): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Determines whether a model from a sync state should be applied to the current view.
|
|
66
|
+
*
|
|
67
|
+
* Returns an action:
|
|
68
|
+
* - `'keep'` - the view already has the same model; no change needed.
|
|
69
|
+
* - `'apply'` - the state model is valid; the caller should switch to it.
|
|
70
|
+
* - `'default'` - the state model is incompatible (wrong session pool, unsupported
|
|
71
|
+
* mode, or missing inline-chat capability); the caller should fall
|
|
72
|
+
* back to the default model for the current location.
|
|
73
|
+
*
|
|
74
|
+
* @param context Optional because some callers (e.g. unit tests, or code paths
|
|
75
|
+
* that only care about session-pool validation) don't have a full UI context
|
|
76
|
+
* available. When omitted, mode and inline-chat checks are skipped and only
|
|
77
|
+
* session-pool membership is validated.
|
|
78
|
+
*/
|
|
79
|
+
export declare function resolveModelFromSyncState(stateModel: ILanguageModelChatMetadataAndIdentifier, currentModel: ILanguageModelChatMetadataAndIdentifier | undefined, allModels: ILanguageModelChatMetadataAndIdentifier[], sessionType: string | undefined, context?: IModelSelectionContext): {
|
|
80
|
+
action: "keep" | "apply" | "default";
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Merges live models with cached models per-vendor.
|
|
84
|
+
* For vendors whose models have resolved, uses live data.
|
|
85
|
+
* For vendors that are contributed but haven't resolved yet (startup race), keeps cached models.
|
|
86
|
+
* Vendors no longer contributed are evicted from cache.
|
|
87
|
+
*/
|
|
88
|
+
export declare function mergeModelsWithCache(liveModels: ILanguageModelChatMetadataAndIdentifier[], cachedModels: ILanguageModelChatMetadataAndIdentifier[], contributedVendors: Set<string>): ILanguageModelChatMetadataAndIdentifier[];
|
|
89
|
+
/**
|
|
90
|
+
* Determines whether the currently selected model should be reset to default
|
|
91
|
+
* when the language model list changes.
|
|
92
|
+
*
|
|
93
|
+
* Returns true if the model should be reset to default (i.e., the selected model
|
|
94
|
+
* is no longer in the available models list).
|
|
95
|
+
*/
|
|
96
|
+
export declare function shouldResetOnModelListChange(currentModelId: string | undefined, availableModels: ILanguageModelChatMetadataAndIdentifier[]): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Determines whether a late-arriving persisted model should be restored.
|
|
99
|
+
* This handles the startup race where the model wasn't available during
|
|
100
|
+
* `initSelectedModel` but arrives later via `onDidChangeLanguageModels`.
|
|
101
|
+
*
|
|
102
|
+
* The model must pass both the persisted-default check and the `isUserSelectable` check.
|
|
103
|
+
*/
|
|
104
|
+
export declare function shouldRestoreLateArrivingModel(persistedModelId: string, persistedAsDefault: boolean, model: ILanguageModelChatMetadataAndIdentifier, location: ChatAgentLocation): boolean;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
|
|
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';
|
|
4
|
+
|
|
5
|
+
function filterModelsForSession(models, sessionType, currentModeKind, location, isInlineChatV2Enabled) {
|
|
6
|
+
if (sessionType && sessionType !== "local" && hasModelsTargetingSession(models, sessionType)) {
|
|
7
|
+
return models.filter(
|
|
8
|
+
entry => entry.metadata?.targetChatSessionType === sessionType && entry.metadata?.isUserSelectable
|
|
9
|
+
);
|
|
10
|
+
}
|
|
11
|
+
return models.filter(
|
|
12
|
+
entry => !entry.metadata?.targetChatSessionType && entry.metadata?.isUserSelectable && isModelSupportedForMode(entry, currentModeKind) && isModelSupportedForInlineChat(entry, location, isInlineChatV2Enabled)
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
function isModelSupportedForMode(model, currentModeKind) {
|
|
16
|
+
if (currentModeKind === ChatModeKind.Agent) {
|
|
17
|
+
return ILanguageModelChatMetadata.suitableForAgentMode(model.metadata);
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
function isModelSupportedForInlineChat(model, location, isInlineChatV2Enabled) {
|
|
22
|
+
if (location !== ChatAgentLocation.EditorInline || !isInlineChatV2Enabled) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
return !!model.metadata.capabilities?.toolCalling;
|
|
26
|
+
}
|
|
27
|
+
function hasModelsTargetingSession(allModels, sessionType) {
|
|
28
|
+
if (!sessionType) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return ( allModels.some(m => m.metadata.targetChatSessionType === sessionType));
|
|
32
|
+
}
|
|
33
|
+
function isModelValidForSession(model, allModels, sessionType) {
|
|
34
|
+
if (hasModelsTargetingSession(allModels, sessionType)) {
|
|
35
|
+
return model.metadata.targetChatSessionType === sessionType;
|
|
36
|
+
}
|
|
37
|
+
return !model.metadata.targetChatSessionType;
|
|
38
|
+
}
|
|
39
|
+
function findDefaultModel(models, location) {
|
|
40
|
+
return models.find(m => m.metadata.isDefaultForLocation[location]) || models[0];
|
|
41
|
+
}
|
|
42
|
+
function shouldRestorePersistedModel(persistedModelId, persistedAsDefault, availableModels, location) {
|
|
43
|
+
const model = availableModels.find(m => m.identifier === persistedModelId);
|
|
44
|
+
if (!model) {
|
|
45
|
+
return {
|
|
46
|
+
shouldRestore: false,
|
|
47
|
+
model: undefined
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
if (!persistedAsDefault || model.metadata.isDefaultForLocation[location]) {
|
|
51
|
+
return {
|
|
52
|
+
shouldRestore: true,
|
|
53
|
+
model
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
shouldRestore: false,
|
|
58
|
+
model
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function shouldResetModelToDefault(currentModel, availableModels, context, allModels) {
|
|
62
|
+
if (!currentModel) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
if (!( availableModels.some(m => m.identifier === currentModel.identifier))) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
if (!isModelSupportedForMode(currentModel, context.currentModeKind)) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
if (!isModelSupportedForInlineChat(currentModel, context.location, context.isInlineChatV2Enabled)) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
if (!isModelValidForSession(currentModel, allModels, context.sessionType)) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
function resolveModelFromSyncState(stateModel, currentModel, allModels, sessionType, context) {
|
|
80
|
+
if (currentModel && currentModel.identifier === stateModel.identifier) {
|
|
81
|
+
return {
|
|
82
|
+
action: "keep"
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (!isModelValidForSession(stateModel, allModels, sessionType)) {
|
|
86
|
+
return {
|
|
87
|
+
action: "default"
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
if (context) {
|
|
91
|
+
if (!isModelSupportedForMode(stateModel, context.currentModeKind)) {
|
|
92
|
+
return {
|
|
93
|
+
action: "default"
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
if (!isModelSupportedForInlineChat(stateModel, context.location, context.isInlineChatV2Enabled)) {
|
|
97
|
+
return {
|
|
98
|
+
action: "default"
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
action: "apply"
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function mergeModelsWithCache(liveModels, cachedModels, contributedVendors) {
|
|
107
|
+
if (liveModels.length > 0) {
|
|
108
|
+
const liveVendors = ( new Set(( liveModels.map(m => m.metadata.vendor))));
|
|
109
|
+
return [...liveModels, ...cachedModels.filter(m => !( liveVendors.has(m.metadata.vendor)) && ( contributedVendors.has(m.metadata.vendor)))];
|
|
110
|
+
}
|
|
111
|
+
return cachedModels;
|
|
112
|
+
}
|
|
113
|
+
function shouldResetOnModelListChange(currentModelId, availableModels) {
|
|
114
|
+
if (!currentModelId) {
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
return !( availableModels.some(m => m.identifier === currentModelId));
|
|
118
|
+
}
|
|
119
|
+
function shouldRestoreLateArrivingModel(persistedModelId, persistedAsDefault, model, location) {
|
|
120
|
+
if (!model.metadata.isUserSelectable) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
const result = shouldRestorePersistedModel(persistedModelId, persistedAsDefault, [model], location);
|
|
124
|
+
return result.shouldRestore;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export { filterModelsForSession, findDefaultModel, hasModelsTargetingSession, isModelSupportedForInlineChat, isModelSupportedForMode, isModelValidForSession, mergeModelsWithCache, resolveModelFromSyncState, shouldResetModelToDefault, shouldResetOnModelListChange, shouldRestoreLateArrivingModel, shouldRestorePersistedModel };
|
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import { IAction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/actions";
|
|
2
|
+
import { IActionWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service";
|
|
2
3
|
import { IActionWidgetDropdownAction } from "../../../../../../platform/actionWidget/browser/actionWidgetDropdown.js";
|
|
4
|
+
import { MenuItemAction } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions";
|
|
5
|
+
import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
|
|
6
|
+
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
7
|
+
import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
|
|
8
|
+
import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
|
|
9
|
+
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
10
|
+
import { IChatSessionsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service";
|
|
3
11
|
import { AgentSessionProviders } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions";
|
|
12
|
+
import { ISessionTypePickerDelegate } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
13
|
+
import { IChatInputPickerOptions } from "./chatInputPickerActionItem.js";
|
|
4
14
|
import { ISessionTypeItem, SessionTypePickerActionItem } from "./sessionTargetPickerActionItem.js";
|
|
5
15
|
/**
|
|
6
16
|
* Action view item for delegating to a remote session (Background or Cloud).
|
|
7
17
|
* This picker allows switching to remote execution providers when the session is not empty.
|
|
8
18
|
*/
|
|
9
19
|
export declare class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
|
|
20
|
+
private readonly _isSessionsWindow;
|
|
21
|
+
constructor(action: MenuItemAction, chatSessionPosition: "sidebar" | "editor", delegate: ISessionTypePickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, keybindingService: IKeybindingService, contextKeyService: IContextKeyService, chatSessionsService: IChatSessionsService, commandService: ICommandService, openerService: IOpenerService, telemetryService: ITelemetryService);
|
|
10
22
|
protected _run(sessionTypeItem: ISessionTypeItem): void;
|
|
11
23
|
protected _getSelectedSessionType(): AgentSessionProviders | undefined;
|
|
12
24
|
protected _isSessionTypeEnabled(type: AgentSessionProviders): boolean;
|
|
@@ -16,7 +28,6 @@ export declare class DelegationSessionPickerActionItem extends SessionTypePicker
|
|
|
16
28
|
order: number;
|
|
17
29
|
showHeader: boolean;
|
|
18
30
|
};
|
|
19
|
-
protected _getSessionDescription(sessionTypeItem: ISessionTypeItem): string | undefined;
|
|
20
31
|
protected _getLearnMore(): IAction;
|
|
21
32
|
protected _getAdditionalActions(): IActionWidgetDropdownAction[];
|
|
22
33
|
}
|
|
@@ -1,12 +1,49 @@
|
|
|
1
1
|
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
2
3
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
3
4
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
4
5
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
6
|
+
import { IActionWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service';
|
|
7
|
+
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
8
|
+
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
9
|
+
import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
|
|
10
|
+
import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
|
|
11
|
+
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
12
|
+
import { IsSessionsWindowContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
13
|
+
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
5
14
|
import { ACTION_ID_NEW_CHAT } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
6
15
|
import { getAgentSessionProvider, AgentSessionProviders, getAgentCanContinueIn, isFirstPartyAgentSessionProvider } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
|
|
7
16
|
import { SessionTypePickerActionItem } from './sessionTargetPickerActionItem.js';
|
|
8
17
|
|
|
9
|
-
class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
|
|
18
|
+
let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
|
|
19
|
+
constructor(
|
|
20
|
+
action,
|
|
21
|
+
chatSessionPosition,
|
|
22
|
+
delegate,
|
|
23
|
+
pickerOptions,
|
|
24
|
+
actionWidgetService,
|
|
25
|
+
keybindingService,
|
|
26
|
+
contextKeyService,
|
|
27
|
+
chatSessionsService,
|
|
28
|
+
commandService,
|
|
29
|
+
openerService,
|
|
30
|
+
telemetryService
|
|
31
|
+
) {
|
|
32
|
+
super(
|
|
33
|
+
action,
|
|
34
|
+
chatSessionPosition,
|
|
35
|
+
delegate,
|
|
36
|
+
pickerOptions,
|
|
37
|
+
actionWidgetService,
|
|
38
|
+
keybindingService,
|
|
39
|
+
contextKeyService,
|
|
40
|
+
chatSessionsService,
|
|
41
|
+
commandService,
|
|
42
|
+
openerService,
|
|
43
|
+
telemetryService
|
|
44
|
+
);
|
|
45
|
+
this._isSessionsWindow = IsSessionsWindowContext.getValue(contextKeyService) === true;
|
|
46
|
+
}
|
|
10
47
|
_run(sessionTypeItem) {
|
|
11
48
|
if (this.delegate.setPendingDelegationTarget) {
|
|
12
49
|
this.delegate.setPendingDelegationTarget(sessionTypeItem.type);
|
|
@@ -25,15 +62,22 @@ class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
|
|
|
25
62
|
_isSessionTypeEnabled(type) {
|
|
26
63
|
const allContributions = this.chatSessionsService.getAllChatSessionContributions();
|
|
27
64
|
const contribution = allContributions.find(contribution => getAgentSessionProvider(contribution.type) === type);
|
|
28
|
-
|
|
65
|
+
const activeProvider = this.delegate.getActiveSessionProvider();
|
|
66
|
+
if (!this._isSessionsWindow && activeProvider !== AgentSessionProviders.Local) {
|
|
29
67
|
return false;
|
|
30
68
|
}
|
|
31
|
-
if (
|
|
69
|
+
if (this._isSessionsWindow && activeProvider !== AgentSessionProviders.Background) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
if (contribution && !contribution.canDelegate && activeProvider !== type ) {
|
|
32
73
|
return false;
|
|
33
74
|
}
|
|
34
75
|
return this._getSelectedSessionType() !== type;
|
|
35
76
|
}
|
|
36
77
|
_isVisible(type) {
|
|
78
|
+
if (this._isSessionsWindow && type === AgentSessionProviders.Local) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
37
81
|
if (this.delegate.getActiveSessionProvider() === type) {
|
|
38
82
|
return true;
|
|
39
83
|
}
|
|
@@ -42,29 +86,22 @@ class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
|
|
|
42
86
|
_getSessionCategory(sessionTypeItem) {
|
|
43
87
|
if (isFirstPartyAgentSessionProvider(sessionTypeItem.type)) {
|
|
44
88
|
return {
|
|
45
|
-
label: ( localize(
|
|
89
|
+
label: ( localize(6818, "Continue In")),
|
|
46
90
|
order: 1,
|
|
47
91
|
showHeader: true
|
|
48
92
|
};
|
|
49
93
|
}
|
|
50
94
|
return {
|
|
51
|
-
label: ( localize(
|
|
95
|
+
label: ( localize(6819, "Continue In (Third Party)")),
|
|
52
96
|
order: 2,
|
|
53
97
|
showHeader: false
|
|
54
98
|
};
|
|
55
99
|
}
|
|
56
|
-
_getSessionDescription(sessionTypeItem) {
|
|
57
|
-
const allContributions = this.chatSessionsService.getAllChatSessionContributions();
|
|
58
|
-
const contribution = allContributions.find(
|
|
59
|
-
contribution => getAgentSessionProvider(contribution.type) === sessionTypeItem.type
|
|
60
|
-
);
|
|
61
|
-
return contribution?.name ? `@${contribution.name}` : undefined;
|
|
62
|
-
}
|
|
63
100
|
_getLearnMore() {
|
|
64
101
|
const learnMoreUrl = "https://aka.ms/vscode-continue-chat-in";
|
|
65
102
|
return {
|
|
66
103
|
id: "workbench.action.chat.agentOverview.learnMoreHandOff",
|
|
67
|
-
label: ( localize(
|
|
104
|
+
label: ( localize(6820, "Learn about agent handoff...")),
|
|
68
105
|
tooltip: learnMoreUrl,
|
|
69
106
|
class: undefined,
|
|
70
107
|
enabled: true,
|
|
@@ -74,10 +111,13 @@ class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
|
|
|
74
111
|
};
|
|
75
112
|
}
|
|
76
113
|
_getAdditionalActions() {
|
|
114
|
+
if (this._isSessionsWindow) {
|
|
115
|
+
return [];
|
|
116
|
+
}
|
|
77
117
|
return [{
|
|
78
118
|
id: "newChatSession",
|
|
79
119
|
class: undefined,
|
|
80
|
-
label: ( localize(
|
|
120
|
+
label: ( localize(6821, "New Chat Session")),
|
|
81
121
|
tooltip: "",
|
|
82
122
|
hover: {
|
|
83
123
|
content: "",
|
|
@@ -87,7 +127,7 @@ class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
|
|
|
87
127
|
icon: Codicon.plus,
|
|
88
128
|
enabled: true,
|
|
89
129
|
category: {
|
|
90
|
-
label: ( localize(
|
|
130
|
+
label: ( localize(6822, "New Chat Session")),
|
|
91
131
|
order: 0,
|
|
92
132
|
showHeader: false
|
|
93
133
|
},
|
|
@@ -97,6 +137,7 @@ class DelegationSessionPickerActionItem extends SessionTypePickerActionItem {
|
|
|
97
137
|
}
|
|
98
138
|
}];
|
|
99
139
|
}
|
|
100
|
-
}
|
|
140
|
+
};
|
|
141
|
+
DelegationSessionPickerActionItem = ( __decorate([( __param(4, IActionWidgetService)), ( __param(5, IKeybindingService)), ( __param(6, IContextKeyService)), ( __param(7, IChatSessionsService)), ( __param(8, ICommandService)), ( __param(9, IOpenerService)), ( __param(10, ITelemetryService))], DelegationSessionPickerActionItem));
|
|
101
142
|
|
|
102
143
|
export { DelegationSessionPickerActionItem };
|
|
@@ -13,9 +13,10 @@ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platfo
|
|
|
13
13
|
import { IChatAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatAgents.service";
|
|
14
14
|
import { IChatMode } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes";
|
|
15
15
|
import { IChatModeService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service";
|
|
16
|
-
import { Target } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/
|
|
16
|
+
import { Target } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
|
|
17
17
|
import { ChatInputPickerActionViewItem, IChatInputPickerOptions } from "./chatInputPickerActionItem.js";
|
|
18
18
|
import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
|
|
19
|
+
import { IWorkbenchAssignmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service";
|
|
19
20
|
export interface IModePickerDelegate {
|
|
20
21
|
readonly currentMode: IObservable<IChatMode>;
|
|
21
22
|
readonly sessionResource: () => URI | undefined;
|
|
@@ -30,12 +31,8 @@ export declare class ModePickerActionItem extends ChatInputPickerActionViewItem
|
|
|
30
31
|
private readonly contextKeyService;
|
|
31
32
|
private readonly menuService;
|
|
32
33
|
private readonly _productService;
|
|
33
|
-
constructor(action: MenuItemAction, delegate: IModePickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, chatAgentService: IChatAgentService, keybindingService: IKeybindingService, configurationService: IConfigurationService, contextKeyService: IContextKeyService, chatModeService: IChatModeService, menuService: IMenuService, commandService: ICommandService, _productService: IProductService, telemetryService: ITelemetryService, openerService: IOpenerService);
|
|
34
|
+
constructor(action: MenuItemAction, delegate: IModePickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, chatAgentService: IChatAgentService, keybindingService: IKeybindingService, configurationService: IConfigurationService, contextKeyService: IContextKeyService, chatModeService: IChatModeService, menuService: IMenuService, commandService: ICommandService, _productService: IProductService, telemetryService: ITelemetryService, openerService: IOpenerService, assignmentService: IWorkbenchAssignmentService);
|
|
34
35
|
private getModePickerActionBarActions;
|
|
36
|
+
render(container: HTMLElement): void;
|
|
35
37
|
protected renderLabel(element: HTMLElement): IDisposable | null;
|
|
36
38
|
}
|
|
37
|
-
/**
|
|
38
|
-
* Returns true if the mode is the built-in 'implement' mode from the chat extension.
|
|
39
|
-
* This mode is hidden from the mode picker but available for handoffs.
|
|
40
|
-
*/
|
|
41
|
-
export declare function isBuiltinImplementMode(mode: IChatMode, productService: IProductService): boolean;
|