@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/chatSessions/chatSessions.contribution.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
3
|
import { sep } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
|
|
4
4
|
import { raceCancellationError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
5
|
-
import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
5
|
+
import { CancellationToken, CancellationTokenSource } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
6
6
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
7
7
|
import { Emitter, AsyncEmitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
8
8
|
import { Disposable, DisposableMap, DisposableStore, combinedDisposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
@@ -39,13 +39,13 @@ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/in
|
|
|
39
39
|
import { renderAsPlaintext } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
|
|
40
40
|
import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
|
|
41
41
|
import { ChatViewId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
|
|
42
|
-
import { AgentSessionProviders,
|
|
43
|
-
import { BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
42
|
+
import { AgentSessionProviders, getAgentSessionProviderName } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentSessions';
|
|
43
|
+
import { isCancellationError, BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
44
44
|
import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
|
|
45
45
|
import { LocalChatSessionUri } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
|
|
46
46
|
import { assertNever } from '@codingame/monaco-vscode-api/vscode/vs/base/common/assert';
|
|
47
47
|
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
48
|
-
import { Target } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/
|
|
48
|
+
import { Target } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
49
49
|
import { autorun, autorunIterableDelta } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
50
50
|
import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
|
|
51
51
|
import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
|
|
@@ -53,39 +53,39 @@ import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/v
|
|
|
53
53
|
const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
54
54
|
extensionPoint: "chatSessions",
|
|
55
55
|
jsonSchema: {
|
|
56
|
-
description: ( localize(
|
|
56
|
+
description: ( localize(6010, "Contributes chat session integrations to the chat widget.")),
|
|
57
57
|
type: "array",
|
|
58
58
|
items: {
|
|
59
59
|
type: "object",
|
|
60
60
|
additionalProperties: false,
|
|
61
61
|
properties: {
|
|
62
62
|
type: {
|
|
63
|
-
description: ( localize(
|
|
63
|
+
description: ( localize(6011, "Unique identifier for the type of chat session.")),
|
|
64
64
|
type: "string"
|
|
65
65
|
},
|
|
66
66
|
name: {
|
|
67
67
|
description: ( localize(
|
|
68
|
-
|
|
68
|
+
6012,
|
|
69
69
|
"Name of the dynamically registered chat participant (eg: @agent). Must not contain whitespace."
|
|
70
70
|
)),
|
|
71
71
|
type: "string",
|
|
72
72
|
pattern: "^[\\w-]+$"
|
|
73
73
|
},
|
|
74
74
|
displayName: {
|
|
75
|
-
description: ( localize(
|
|
75
|
+
description: ( localize(6013, "A longer name for this item which is used for display in menus.")),
|
|
76
76
|
type: "string"
|
|
77
77
|
},
|
|
78
78
|
description: {
|
|
79
|
-
description: ( localize(
|
|
79
|
+
description: ( localize(6014, "Description of the chat session for use in menus and tooltips.")),
|
|
80
80
|
type: "string"
|
|
81
81
|
},
|
|
82
82
|
when: {
|
|
83
|
-
description: ( localize(
|
|
83
|
+
description: ( localize(6015, "Condition which must be true to show this item.")),
|
|
84
84
|
type: "string"
|
|
85
85
|
},
|
|
86
86
|
icon: {
|
|
87
87
|
description: ( localize(
|
|
88
|
-
|
|
88
|
+
6016,
|
|
89
89
|
"Icon identifier (codicon ID) for the chat session editor tab. For example, \"$(github)\" or \"$(cloud)\"."
|
|
90
90
|
)),
|
|
91
91
|
anyOf: [{
|
|
@@ -94,22 +94,22 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
94
94
|
type: "object",
|
|
95
95
|
properties: {
|
|
96
96
|
light: {
|
|
97
|
-
description: ( localize(
|
|
97
|
+
description: ( localize(6017, "Icon path when a light theme is used")),
|
|
98
98
|
type: "string"
|
|
99
99
|
},
|
|
100
100
|
dark: {
|
|
101
|
-
description: ( localize(
|
|
101
|
+
description: ( localize(6018, "Icon path when a dark theme is used")),
|
|
102
102
|
type: "string"
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
}]
|
|
106
106
|
},
|
|
107
107
|
order: {
|
|
108
|
-
description: ( localize(
|
|
108
|
+
description: ( localize(6019, "Order in which this item should be displayed.")),
|
|
109
109
|
type: "integer"
|
|
110
110
|
},
|
|
111
111
|
alternativeIds: {
|
|
112
|
-
description: ( localize(
|
|
112
|
+
description: ( localize(6020, "Alternative identifiers for backward compatibility.")),
|
|
113
113
|
type: "array",
|
|
114
114
|
items: {
|
|
115
115
|
type: "string"
|
|
@@ -117,87 +117,95 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
117
117
|
},
|
|
118
118
|
welcomeTitle: {
|
|
119
119
|
description: ( localize(
|
|
120
|
-
|
|
120
|
+
6021,
|
|
121
121
|
"Title text to display in the chat welcome view for this session type."
|
|
122
122
|
)),
|
|
123
123
|
type: "string"
|
|
124
124
|
},
|
|
125
125
|
welcomeMessage: {
|
|
126
126
|
description: ( localize(
|
|
127
|
-
|
|
127
|
+
6022,
|
|
128
128
|
"Message text (supports markdown) to display in the chat welcome view for this session type."
|
|
129
129
|
)),
|
|
130
130
|
type: "string"
|
|
131
131
|
},
|
|
132
132
|
welcomeTips: {
|
|
133
133
|
description: ( localize(
|
|
134
|
-
|
|
134
|
+
6023,
|
|
135
135
|
"Tips text (supports markdown and theme icons) to display in the chat welcome view for this session type."
|
|
136
136
|
)),
|
|
137
137
|
type: "string"
|
|
138
138
|
},
|
|
139
139
|
inputPlaceholder: {
|
|
140
140
|
description: ( localize(
|
|
141
|
-
|
|
141
|
+
6024,
|
|
142
142
|
"Placeholder text to display in the chat input box for this session type."
|
|
143
143
|
)),
|
|
144
144
|
type: "string"
|
|
145
145
|
},
|
|
146
146
|
capabilities: {
|
|
147
|
-
description: ( localize(
|
|
147
|
+
description: ( localize(6025, "Optional capabilities for this chat session.")),
|
|
148
148
|
type: "object",
|
|
149
149
|
additionalProperties: false,
|
|
150
150
|
properties: {
|
|
151
151
|
supportsFileAttachments: {
|
|
152
152
|
description: ( localize(
|
|
153
|
-
|
|
153
|
+
6026,
|
|
154
154
|
"Whether this chat session supports attaching files or file references."
|
|
155
155
|
)),
|
|
156
156
|
type: "boolean"
|
|
157
157
|
},
|
|
158
158
|
supportsToolAttachments: {
|
|
159
159
|
description: ( localize(
|
|
160
|
-
|
|
160
|
+
6027,
|
|
161
161
|
"Whether this chat session supports attaching tools or tool references."
|
|
162
162
|
)),
|
|
163
163
|
type: "boolean"
|
|
164
164
|
},
|
|
165
165
|
supportsMCPAttachments: {
|
|
166
|
-
description: ( localize(
|
|
166
|
+
description: ( localize(6028, "Whether this chat session supports attaching MCP resources.")),
|
|
167
167
|
type: "boolean"
|
|
168
168
|
},
|
|
169
169
|
supportsImageAttachments: {
|
|
170
|
-
description: ( localize(
|
|
170
|
+
description: ( localize(6029, "Whether this chat session supports attaching images.")),
|
|
171
171
|
type: "boolean"
|
|
172
172
|
},
|
|
173
173
|
supportsSearchResultAttachments: {
|
|
174
|
-
description: ( localize(
|
|
174
|
+
description: ( localize(6030, "Whether this chat session supports attaching search results.")),
|
|
175
175
|
type: "boolean"
|
|
176
176
|
},
|
|
177
177
|
supportsInstructionAttachments: {
|
|
178
|
-
description: ( localize(
|
|
178
|
+
description: ( localize(6031, "Whether this chat session supports attaching instructions.")),
|
|
179
179
|
type: "boolean"
|
|
180
180
|
},
|
|
181
181
|
supportsSourceControlAttachments: {
|
|
182
182
|
description: ( localize(
|
|
183
|
-
|
|
183
|
+
6032,
|
|
184
184
|
"Whether this chat session supports attaching source control changes."
|
|
185
185
|
)),
|
|
186
186
|
type: "boolean"
|
|
187
187
|
},
|
|
188
188
|
supportsProblemAttachments: {
|
|
189
|
-
description: ( localize(
|
|
189
|
+
description: ( localize(6033, "Whether this chat session supports attaching problems.")),
|
|
190
190
|
type: "boolean"
|
|
191
191
|
},
|
|
192
192
|
supportsSymbolAttachments: {
|
|
193
|
-
description: ( localize(
|
|
193
|
+
description: ( localize(6034, "Whether this chat session supports attaching symbols.")),
|
|
194
|
+
type: "boolean"
|
|
195
|
+
},
|
|
196
|
+
supportsPromptAttachments: {
|
|
197
|
+
description: ( localize(6035, "Whether this chat session supports attaching prompts.")),
|
|
198
|
+
type: "boolean"
|
|
199
|
+
},
|
|
200
|
+
supportsHandOffs: {
|
|
201
|
+
description: ( localize(6036, "Whether this chat session supports hand-off prompts.")),
|
|
194
202
|
type: "boolean"
|
|
195
203
|
}
|
|
196
204
|
}
|
|
197
205
|
},
|
|
198
206
|
commands: {
|
|
199
207
|
markdownDescription: ( localize(
|
|
200
|
-
|
|
208
|
+
6037,
|
|
201
209
|
"Commands available for this chat session, which the user can invoke with a `/`."
|
|
202
210
|
)),
|
|
203
211
|
type: "array",
|
|
@@ -214,17 +222,17 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
214
222
|
properties: {
|
|
215
223
|
name: {
|
|
216
224
|
description: ( localize(
|
|
217
|
-
|
|
225
|
+
6038,
|
|
218
226
|
"A short name by which this command is referred to in the UI, e.g. `fix` or `explain` for commands that fix an issue or explain code. The name should be unique among the commands provided by this participant."
|
|
219
227
|
)),
|
|
220
228
|
type: "string"
|
|
221
229
|
},
|
|
222
230
|
description: {
|
|
223
|
-
description: ( localize(
|
|
231
|
+
description: ( localize(6039, "A description of this command.")),
|
|
224
232
|
type: "string"
|
|
225
233
|
},
|
|
226
234
|
when: {
|
|
227
|
-
description: ( localize(
|
|
235
|
+
description: ( localize(6040, "A condition which must be true to enable this command.")),
|
|
228
236
|
type: "string"
|
|
229
237
|
}
|
|
230
238
|
}
|
|
@@ -232,7 +240,7 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
232
240
|
},
|
|
233
241
|
canDelegate: {
|
|
234
242
|
description: ( localize(
|
|
235
|
-
|
|
243
|
+
6041,
|
|
236
244
|
"Whether delegation is supported. Default is false. Note that enabling this is experimental and may not be respected at all times."
|
|
237
245
|
)),
|
|
238
246
|
type: "boolean",
|
|
@@ -240,10 +248,18 @@ const extensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
240
248
|
},
|
|
241
249
|
customAgentTarget: {
|
|
242
250
|
description: ( localize(
|
|
243
|
-
|
|
251
|
+
6042,
|
|
244
252
|
"When set, the chat session will show a filtered mode picker that prefers custom agents whose target property matches this value. Custom agents without a target property are still shown in all session types. This enables the use of standard agent/mode with contributed sessions."
|
|
245
253
|
)),
|
|
246
254
|
type: "string"
|
|
255
|
+
},
|
|
256
|
+
requiresCustomModels: {
|
|
257
|
+
description: ( localize(
|
|
258
|
+
6043,
|
|
259
|
+
"When set, the chat session will show a filtered model picker that prefers custom models. This enables the use of standard model picker with contributed sessions."
|
|
260
|
+
)),
|
|
261
|
+
type: "boolean",
|
|
262
|
+
default: false
|
|
247
263
|
}
|
|
248
264
|
},
|
|
249
265
|
required: ["type", "name", "displayName", "description"]
|
|
@@ -313,7 +329,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
313
329
|
this._menuService = _menuService;
|
|
314
330
|
this._themeService = _themeService;
|
|
315
331
|
this._labelService = _labelService;
|
|
316
|
-
this.
|
|
332
|
+
this._itemControllers = ( new Map());
|
|
317
333
|
this._contributions = ( new Map());
|
|
318
334
|
this._contributionDisposables = this._register(( new DisposableMap()));
|
|
319
335
|
this._contentProviders = ( new Map());
|
|
@@ -332,12 +348,14 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
332
348
|
this._onRequestNotifyExtension = this._register(( new AsyncEmitter()));
|
|
333
349
|
this.inProgressMap = ( new Map());
|
|
334
350
|
this._sessionTypeOptions = ( new Map());
|
|
351
|
+
this._sessionTypeNewSessionOptions = ( new Map());
|
|
335
352
|
this._sessionTypeIcons = ( new Map());
|
|
336
353
|
this._sessionTypeWelcomeTitles = ( new Map());
|
|
337
354
|
this._sessionTypeWelcomeMessages = ( new Map());
|
|
338
355
|
this._sessionTypeWelcomeTips = ( new Map());
|
|
339
356
|
this._sessionTypeInputPlaceholders = ( new Map());
|
|
340
357
|
this._sessions = ( new ResourceMap());
|
|
358
|
+
this._resourceAliases = ( new ResourceMap());
|
|
341
359
|
this._hasCanDelegateProvidersKey = ChatContextKeys.hasCanDelegateProviders.bindTo(this._contextKeyService);
|
|
342
360
|
this._register(extensionPoint.setHandler(extensions => {
|
|
343
361
|
for (const ext of extensions) {
|
|
@@ -359,9 +377,8 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
359
377
|
this._evaluateAvailability();
|
|
360
378
|
}));
|
|
361
379
|
const builtinSessionProviders = [AgentSessionProviders.Local];
|
|
362
|
-
const contributedSessionProviders = observableFromEvent(this.onDidChangeAvailability, () => Array.from(( this._contributions.keys())).filter(isAgentSessionProviderType)).recomputeInitiallyAndOnChange(this._store);
|
|
380
|
+
const contributedSessionProviders = observableFromEvent(this.onDidChangeAvailability, () => Array.from(( this._contributions.keys())).filter(key => ( this._contributionDisposables.has(key)) && isAgentSessionProviderType(key))).recomputeInitiallyAndOnChange(this._store);
|
|
363
381
|
this._register(autorun(reader => {
|
|
364
|
-
backgroundAgentDisplayName.read(reader);
|
|
365
382
|
const activatedProviders = [...builtinSessionProviders, ...contributedSessionProviders.read(reader)];
|
|
366
383
|
for (const provider of ( Object.values(AgentSessionProviders))) {
|
|
367
384
|
if (activatedProviders.includes(provider)) {
|
|
@@ -371,7 +388,11 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
371
388
|
}
|
|
372
389
|
}
|
|
373
390
|
}));
|
|
374
|
-
this._register(this.onDidChangeSessionItems(
|
|
391
|
+
this._register(this.onDidChangeSessionItems((
|
|
392
|
+
{
|
|
393
|
+
chatSessionType
|
|
394
|
+
}
|
|
395
|
+
) => {
|
|
375
396
|
this.updateInProgressStatus(chatSessionType).catch(error => {
|
|
376
397
|
this._logService.warn(`Failed to update progress status for '${chatSessionType}':`, error);
|
|
377
398
|
});
|
|
@@ -388,11 +409,11 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
388
409
|
reportInProgress(chatSessionType, count) {
|
|
389
410
|
let displayName;
|
|
390
411
|
if (chatSessionType === AgentSessionProviders.Local) {
|
|
391
|
-
displayName = ( localize(
|
|
412
|
+
displayName = ( localize(6044, "Local Agent"));
|
|
392
413
|
} else if (chatSessionType === AgentSessionProviders.Background) {
|
|
393
|
-
displayName = ( localize(
|
|
414
|
+
displayName = ( localize(6045, "Background Agent"));
|
|
394
415
|
} else if (chatSessionType === AgentSessionProviders.Cloud) {
|
|
395
|
-
displayName = ( localize(
|
|
416
|
+
displayName = ( localize(6046, "Cloud Agent"));
|
|
396
417
|
} else {
|
|
397
418
|
displayName = this._contributions.get(chatSessionType)?.contribution.displayName;
|
|
398
419
|
}
|
|
@@ -421,7 +442,13 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
421
442
|
}
|
|
422
443
|
}
|
|
423
444
|
registerContribution(contribution, ext) {
|
|
445
|
+
this._logService.info(
|
|
446
|
+
`[ChatSessionsService] registerContribution called for type='${contribution.type}', canDelegate=${contribution.canDelegate}, when='${contribution.when}', extension='${ext.identifier.value}'`
|
|
447
|
+
);
|
|
424
448
|
if (( this._contributions.has(contribution.type))) {
|
|
449
|
+
this._logService.info(
|
|
450
|
+
`[ChatSessionsService] registerContribution: type='${contribution.type}' already registered, skipping`
|
|
451
|
+
);
|
|
425
452
|
return {
|
|
426
453
|
dispose: () => {}
|
|
427
454
|
};
|
|
@@ -548,7 +575,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
548
575
|
constructor() {
|
|
549
576
|
super({
|
|
550
577
|
id: `workbench.action.chat.openSessionWithPrompt.${contribution.type}`,
|
|
551
|
-
title: ( localize2(
|
|
578
|
+
title: ( localize2(6047, "New {0} with Prompt", contribution.displayName)),
|
|
552
579
|
category: CHAT_CATEGORY,
|
|
553
580
|
icon: Codicon.plus,
|
|
554
581
|
f1: false,
|
|
@@ -562,12 +589,20 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
562
589
|
} = contribution;
|
|
563
590
|
if (chatOptions) {
|
|
564
591
|
const resource = URI.revive(chatOptions.resource);
|
|
565
|
-
const ref = await chatService.
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
592
|
+
const ref = await chatService.acquireOrLoadSession(resource, ChatAgentLocation.Chat, CancellationToken.None);
|
|
593
|
+
try {
|
|
594
|
+
const result = await chatService.sendRequest(resource, chatOptions.prompt, {
|
|
595
|
+
agentIdSilent: type,
|
|
596
|
+
attachedContext: chatOptions.attachedContext
|
|
597
|
+
});
|
|
598
|
+
if (result.kind === "queued") {
|
|
599
|
+
await result.deferred;
|
|
600
|
+
} else if (result.kind === "sent") {
|
|
601
|
+
await result.data.responseCompletePromise;
|
|
602
|
+
}
|
|
603
|
+
} finally {
|
|
604
|
+
ref?.dispose();
|
|
605
|
+
}
|
|
571
606
|
}
|
|
572
607
|
}
|
|
573
608
|
}),
|
|
@@ -575,7 +610,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
575
610
|
constructor() {
|
|
576
611
|
super({
|
|
577
612
|
id: `workbench.action.chat.openNewSessionEditor.${contribution.type}`,
|
|
578
|
-
title: ( localize2(
|
|
613
|
+
title: ( localize2(6048, "New {0}", contribution.displayName)),
|
|
579
614
|
category: CHAT_CATEGORY,
|
|
580
615
|
icon: Codicon.plus,
|
|
581
616
|
f1: true,
|
|
@@ -598,7 +633,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
598
633
|
constructor() {
|
|
599
634
|
super({
|
|
600
635
|
id: `workbench.action.chat.openNewSessionSidebar.${contribution.type}`,
|
|
601
|
-
title: ( localize2(
|
|
636
|
+
title: ( localize2(6049, "New {0}", contribution.displayName)),
|
|
602
637
|
category: CHAT_CATEGORY,
|
|
603
638
|
icon: Codicon.plus,
|
|
604
639
|
f1: false,
|
|
@@ -630,6 +665,9 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
630
665
|
} of ( this._contributions.values())) {
|
|
631
666
|
const isCurrentlyRegistered = ( this._contributionDisposables.has(contribution.type));
|
|
632
667
|
const shouldBeRegistered = this._isContributionAvailable(contribution);
|
|
668
|
+
this._logService.trace(
|
|
669
|
+
`[ChatSessionsService] _evaluateAvailability: type='${contribution.type}', isCurrentlyRegistered=${isCurrentlyRegistered}, shouldBeRegistered=${shouldBeRegistered}, when='${contribution.when}'`
|
|
670
|
+
);
|
|
633
671
|
if (isCurrentlyRegistered && !shouldBeRegistered) {
|
|
634
672
|
this._contributionDisposables.deleteAndDispose(contribution.type);
|
|
635
673
|
this._disposeSessionsForContribution(contribution.type);
|
|
@@ -641,18 +679,25 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
641
679
|
}
|
|
642
680
|
if (hasChanges) {
|
|
643
681
|
this._onDidChangeAvailability.fire();
|
|
644
|
-
for (const
|
|
645
|
-
this._onDidChangeItemsProviders.fire(
|
|
682
|
+
for (const chatSessionType of ( this._itemControllers.keys())) {
|
|
683
|
+
this._onDidChangeItemsProviders.fire({
|
|
684
|
+
chatSessionType
|
|
685
|
+
});
|
|
646
686
|
}
|
|
647
687
|
for (const {
|
|
648
688
|
contribution
|
|
649
689
|
} of ( this._contributions.values())) {
|
|
650
|
-
this._onDidChangeSessionItems.fire(
|
|
690
|
+
this._onDidChangeSessionItems.fire({
|
|
691
|
+
chatSessionType: contribution.type
|
|
692
|
+
});
|
|
651
693
|
}
|
|
652
694
|
}
|
|
653
695
|
this._updateHasCanDelegateProvidersContextKey();
|
|
654
696
|
}
|
|
655
697
|
_enableContribution(contribution, ext) {
|
|
698
|
+
this._logService.info(
|
|
699
|
+
`[ChatSessionsService] _enableContribution: type='${contribution.type}', canDelegate=${contribution.canDelegate}`
|
|
700
|
+
);
|
|
656
701
|
const disposableStore = ( new DisposableStore());
|
|
657
702
|
this._contributionDisposables.set(contribution.type, disposableStore);
|
|
658
703
|
if (contribution.canDelegate) {
|
|
@@ -741,6 +786,9 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
741
786
|
return this._isContributionAvailable(contribution) ? contribution : undefined;
|
|
742
787
|
}
|
|
743
788
|
async activateChatSessionItemProvider(chatViewType) {
|
|
789
|
+
await this.doActivateChatSessionItemController(chatViewType);
|
|
790
|
+
}
|
|
791
|
+
async doActivateChatSessionItemController(chatViewType) {
|
|
744
792
|
await this._extensionService.whenInstalledExtensionsRegistered();
|
|
745
793
|
const resolvedType = this._resolveToPrimaryType(chatViewType);
|
|
746
794
|
if (resolvedType) {
|
|
@@ -748,94 +796,100 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
748
796
|
}
|
|
749
797
|
const contribution = this._contributions.get(chatViewType)?.contribution;
|
|
750
798
|
if (contribution && !this._isContributionAvailable(contribution)) {
|
|
751
|
-
return
|
|
799
|
+
return false;
|
|
752
800
|
}
|
|
753
|
-
if (( this.
|
|
754
|
-
return
|
|
801
|
+
if (( this._itemControllers.has(chatViewType))) {
|
|
802
|
+
return true;
|
|
755
803
|
}
|
|
756
804
|
await this._extensionService.activateByEvent(`onChatSession:${chatViewType}`);
|
|
757
|
-
|
|
805
|
+
const controller = this._itemControllers.get(chatViewType);
|
|
806
|
+
return !!controller;
|
|
758
807
|
}
|
|
759
|
-
async canResolveChatSession(
|
|
808
|
+
async canResolveChatSession(sessionType) {
|
|
760
809
|
await this._extensionService.whenInstalledExtensionsRegistered();
|
|
761
|
-
const resolvedType = this._resolveToPrimaryType(
|
|
810
|
+
const resolvedType = this._resolveToPrimaryType(sessionType) || sessionType;
|
|
762
811
|
const contribution = this._contributions.get(resolvedType)?.contribution;
|
|
763
812
|
if (contribution && !this._isContributionAvailable(contribution)) {
|
|
764
813
|
return false;
|
|
765
814
|
}
|
|
766
|
-
if (( this._contentProviders.has(
|
|
815
|
+
if (( this._contentProviders.has(sessionType))) {
|
|
767
816
|
return true;
|
|
768
817
|
}
|
|
769
|
-
await this._extensionService.activateByEvent(`onChatSession:${
|
|
770
|
-
return ( this._contentProviders.has(
|
|
818
|
+
await this._extensionService.activateByEvent(`onChatSession:${sessionType}`);
|
|
819
|
+
return ( this._contentProviders.has(sessionType));
|
|
771
820
|
}
|
|
772
|
-
async
|
|
773
|
-
|
|
774
|
-
const resolvedProviderTypes = ( new Set());
|
|
775
|
-
for (const contrib of this.getAllChatSessionContributions()) {
|
|
821
|
+
async tryActivateControllers(providersToResolve) {
|
|
822
|
+
await Promise.all(( this.getAllChatSessionContributions().map(async contrib => {
|
|
776
823
|
if (providersToResolve && !providersToResolve.includes(contrib.type)) {
|
|
777
|
-
|
|
824
|
+
return;
|
|
778
825
|
}
|
|
779
|
-
|
|
780
|
-
if (!provider) {
|
|
826
|
+
if (!(await this.doActivateChatSessionItemController(contrib.type))) {
|
|
781
827
|
if (providersToResolve?.includes(contrib.type)) {
|
|
782
828
|
this._logService.trace(
|
|
783
829
|
`[ChatSessionsService] No enabled provider found for chat session type ${contrib.type}`
|
|
784
830
|
);
|
|
785
831
|
}
|
|
786
|
-
continue;
|
|
787
|
-
}
|
|
788
|
-
try {
|
|
789
|
-
const providerSessions = await raceCancellationError(provider.provideChatSessionItems(token), token);
|
|
790
|
-
this._logService.trace(
|
|
791
|
-
`[ChatSessionsService] Resolved ${providerSessions.length} sessions for provider ${provider.chatSessionType}`
|
|
792
|
-
);
|
|
793
|
-
results.push({
|
|
794
|
-
chatSessionType: provider.chatSessionType,
|
|
795
|
-
items: providerSessions
|
|
796
|
-
});
|
|
797
|
-
resolvedProviderTypes.add(provider.chatSessionType);
|
|
798
|
-
} catch (error) {
|
|
799
|
-
this._logService.error(
|
|
800
|
-
`[ChatSessionsService] Failed to resolve sessions for provider ${provider.chatSessionType}`,
|
|
801
|
-
error
|
|
802
|
-
);
|
|
803
|
-
continue;
|
|
804
|
-
}
|
|
805
|
-
}
|
|
806
|
-
for (const [chatSessionType, provider] of this._itemsProviders) {
|
|
807
|
-
if (( resolvedProviderTypes.has(chatSessionType))) {
|
|
808
|
-
continue;
|
|
809
832
|
}
|
|
810
|
-
|
|
811
|
-
|
|
833
|
+
})));
|
|
834
|
+
}
|
|
835
|
+
async getChatSessionItems(providersToResolve, token) {
|
|
836
|
+
await this.tryActivateControllers(providersToResolve);
|
|
837
|
+
const results = [];
|
|
838
|
+
await Promise.all(( Array.from(this._itemControllers).map(async ([chatSessionType, controllerEntry]) => {
|
|
839
|
+
const resolvedType = this._resolveToPrimaryType(chatSessionType) ?? chatSessionType;
|
|
840
|
+
if (providersToResolve && !providersToResolve.includes(resolvedType)) {
|
|
841
|
+
return;
|
|
812
842
|
}
|
|
813
843
|
try {
|
|
814
|
-
|
|
844
|
+
await controllerEntry.initialRefresh;
|
|
845
|
+
const providerSessions = controllerEntry.controller.items;
|
|
815
846
|
this._logService.trace(
|
|
816
|
-
`[ChatSessionsService] Resolved ${providerSessions.length} sessions for
|
|
847
|
+
`[ChatSessionsService] Resolved ${providerSessions.length} sessions for provider ${resolvedType}`
|
|
817
848
|
);
|
|
818
849
|
results.push({
|
|
819
|
-
chatSessionType,
|
|
850
|
+
chatSessionType: resolvedType,
|
|
820
851
|
items: providerSessions
|
|
821
852
|
});
|
|
822
|
-
} catch (
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
853
|
+
} catch (err) {
|
|
854
|
+
if (!isCancellationError(err)) {
|
|
855
|
+
this._logService.error(
|
|
856
|
+
`[ChatSessionsService] Failed to resolve sessions for provider ${resolvedType}`,
|
|
857
|
+
err
|
|
858
|
+
);
|
|
859
|
+
}
|
|
828
860
|
}
|
|
829
|
-
}
|
|
861
|
+
})));
|
|
830
862
|
return results;
|
|
831
863
|
}
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
this.
|
|
835
|
-
|
|
864
|
+
async refreshChatSessionItems(providersToResolve, token) {
|
|
865
|
+
await this.tryActivateControllers(providersToResolve);
|
|
866
|
+
await Promise.all(( Array.from(this._itemControllers).map(async ([chatSessionType, controllerEntry]) => {
|
|
867
|
+
try {
|
|
868
|
+
await controllerEntry.controller.refresh(token);
|
|
869
|
+
} catch (err) {
|
|
870
|
+
if (!isCancellationError(err)) {
|
|
871
|
+
this._logService.error(
|
|
872
|
+
`[ChatSessionsService] Failed to resolve sessions for provider ${chatSessionType}`,
|
|
873
|
+
err
|
|
874
|
+
);
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
})));
|
|
878
|
+
}
|
|
879
|
+
registerChatSessionItemController(chatSessionType, controller) {
|
|
836
880
|
const disposables = ( new DisposableStore());
|
|
837
|
-
disposables.add(
|
|
838
|
-
|
|
881
|
+
const initialRefreshCts = disposables.add(( new CancellationTokenSource()));
|
|
882
|
+
this._itemControllers.set(chatSessionType, {
|
|
883
|
+
controller,
|
|
884
|
+
initialRefresh: controller.refresh(initialRefreshCts.token)
|
|
885
|
+
});
|
|
886
|
+
this._onDidChangeItemsProviders.fire({
|
|
887
|
+
chatSessionType
|
|
888
|
+
});
|
|
889
|
+
disposables.add(controller.onDidChangeChatSessionItems(() => {
|
|
890
|
+
this._onDidChangeSessionItems.fire({
|
|
891
|
+
chatSessionType
|
|
892
|
+
});
|
|
839
893
|
}));
|
|
840
894
|
this.updateInProgressStatus(chatSessionType).catch(error => {
|
|
841
895
|
this._logService.warn(
|
|
@@ -845,11 +899,14 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
845
899
|
});
|
|
846
900
|
return {
|
|
847
901
|
dispose: () => {
|
|
902
|
+
initialRefreshCts.cancel();
|
|
848
903
|
disposables.dispose();
|
|
849
|
-
const
|
|
850
|
-
if (
|
|
851
|
-
this.
|
|
852
|
-
this._onDidChangeItemsProviders.fire(
|
|
904
|
+
const controller = this._itemControllers.get(chatSessionType);
|
|
905
|
+
if (controller) {
|
|
906
|
+
this._itemControllers.delete(chatSessionType);
|
|
907
|
+
this._onDidChangeItemsProviders.fire({
|
|
908
|
+
chatSessionType
|
|
909
|
+
});
|
|
853
910
|
}
|
|
854
911
|
}
|
|
855
912
|
};
|
|
@@ -948,34 +1005,72 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
948
1005
|
const confirmationTitle = state.confirmationMessages?.title;
|
|
949
1006
|
const titleMessage = confirmationTitle && (typeof confirmationTitle === "string" ? confirmationTitle : confirmationTitle.value);
|
|
950
1007
|
const descriptionValue = typeof description === "string" ? description : description.value;
|
|
951
|
-
description = titleMessage ?? ( localize(
|
|
1008
|
+
description = titleMessage ?? ( localize(6050, "Waiting for confirmation: {0}", descriptionValue));
|
|
952
1009
|
}
|
|
953
1010
|
} else if (part.kind === "toolInvocationSerialized") {
|
|
954
1011
|
description = part.invocationMessage;
|
|
955
1012
|
} else if (part.kind === "progressMessage") {
|
|
956
1013
|
description = part.content;
|
|
957
1014
|
} else if (part.kind === "thinking") {
|
|
958
|
-
description = ( localize(
|
|
1015
|
+
description = ( localize(6051, "Thinking..."));
|
|
959
1016
|
}
|
|
960
1017
|
}
|
|
961
1018
|
return description ? renderAsPlaintext(description, {
|
|
962
1019
|
useLinkFormatter: true
|
|
963
1020
|
}) : "";
|
|
964
1021
|
}
|
|
1022
|
+
async createNewChatSessionItem(chatSessionType, request, token) {
|
|
1023
|
+
const controllerData = this._itemControllers.get(chatSessionType);
|
|
1024
|
+
if (!controllerData) {
|
|
1025
|
+
return undefined;
|
|
1026
|
+
}
|
|
1027
|
+
await controllerData.initialRefresh;
|
|
1028
|
+
return controllerData.controller.newChatSessionItem?.(request, token);
|
|
1029
|
+
}
|
|
965
1030
|
async getOrCreateChatSession(sessionResource, token) {
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
1031
|
+
{
|
|
1032
|
+
const existingSessionData = this._sessions.get(sessionResource);
|
|
1033
|
+
if (existingSessionData) {
|
|
1034
|
+
return existingSessionData.session;
|
|
1035
|
+
}
|
|
969
1036
|
}
|
|
970
|
-
if (!(await raceCancellationError(this.canResolveChatSession(sessionResource), token))) {
|
|
1037
|
+
if (!(await raceCancellationError(this.canResolveChatSession(sessionResource.scheme), token))) {
|
|
971
1038
|
throw Error(`Can not find provider for ${sessionResource}`);
|
|
972
1039
|
}
|
|
1040
|
+
{
|
|
1041
|
+
const existingSessionData = this._sessions.get(sessionResource);
|
|
1042
|
+
if (existingSessionData) {
|
|
1043
|
+
return existingSessionData.session;
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
973
1046
|
const resolvedType = this._resolveToPrimaryType(sessionResource.scheme) || sessionResource.scheme;
|
|
974
1047
|
const provider = this._contentProviders.get(resolvedType);
|
|
975
1048
|
if (!provider) {
|
|
976
1049
|
throw Error(`Can not find provider for ${sessionResource}`);
|
|
977
1050
|
}
|
|
978
|
-
|
|
1051
|
+
let session;
|
|
1052
|
+
const newSessionOptions = this.getNewSessionOptionsForSessionType(resolvedType);
|
|
1053
|
+
if (sessionResource.path.startsWith("/untitled") && newSessionOptions) {
|
|
1054
|
+
session = {
|
|
1055
|
+
sessionResource: sessionResource,
|
|
1056
|
+
onWillDispose: Event.None,
|
|
1057
|
+
history: [],
|
|
1058
|
+
options: newSessionOptions ?? {},
|
|
1059
|
+
dispose: () => {}
|
|
1060
|
+
};
|
|
1061
|
+
} else {
|
|
1062
|
+
session = await raceCancellationError(provider.provideChatSessionContent(sessionResource, token), token);
|
|
1063
|
+
}
|
|
1064
|
+
for (const [optionId, value] of Object.entries(session.options ?? {})) {
|
|
1065
|
+
this.setSessionOption(sessionResource, optionId, value);
|
|
1066
|
+
}
|
|
1067
|
+
{
|
|
1068
|
+
const existingSessionData = this._sessions.get(sessionResource);
|
|
1069
|
+
if (existingSessionData) {
|
|
1070
|
+
session.dispose();
|
|
1071
|
+
return existingSessionData.session;
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
979
1074
|
const sessionData = ( new ContributedChatSessionData(
|
|
980
1075
|
session,
|
|
981
1076
|
sessionResource.scheme,
|
|
@@ -987,22 +1082,26 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
987
1082
|
}
|
|
988
1083
|
));
|
|
989
1084
|
this._sessions.set(sessionResource, sessionData);
|
|
1085
|
+
this._onDidChangeSessionOptions.fire(sessionResource);
|
|
990
1086
|
return session;
|
|
991
1087
|
}
|
|
992
1088
|
hasAnySessionOptions(sessionResource) {
|
|
993
|
-
const session = this._sessions.get(sessionResource);
|
|
1089
|
+
const session = this._sessions.get(this._resolveResource(sessionResource));
|
|
994
1090
|
return !!session && !!session.options && ( Object.keys(session.options)).length > 0;
|
|
995
1091
|
}
|
|
996
1092
|
getSessionOption(sessionResource, optionId) {
|
|
997
|
-
const session = this._sessions.get(sessionResource);
|
|
1093
|
+
const session = this._sessions.get(this._resolveResource(sessionResource));
|
|
998
1094
|
return session?.getOption(optionId);
|
|
999
1095
|
}
|
|
1000
1096
|
setSessionOption(sessionResource, optionId, value) {
|
|
1001
|
-
const session = this._sessions.get(sessionResource);
|
|
1097
|
+
const session = this._sessions.get(this._resolveResource(sessionResource));
|
|
1002
1098
|
return !!session?.setOption(optionId, value);
|
|
1003
1099
|
}
|
|
1004
|
-
|
|
1005
|
-
this.
|
|
1100
|
+
_resolveResource(resource) {
|
|
1101
|
+
return this._resourceAliases.get(resource) ?? resource;
|
|
1102
|
+
}
|
|
1103
|
+
registerSessionResourceAlias(untitledResource, realResource) {
|
|
1104
|
+
this._resourceAliases.set(realResource, untitledResource);
|
|
1006
1105
|
}
|
|
1007
1106
|
setOptionGroupsForSessionType(chatSessionType, handle, optionGroups) {
|
|
1008
1107
|
if (optionGroups) {
|
|
@@ -1015,6 +1114,12 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
1015
1114
|
getOptionGroupsForSessionType(chatSessionType) {
|
|
1016
1115
|
return this._sessionTypeOptions.get(chatSessionType);
|
|
1017
1116
|
}
|
|
1117
|
+
getNewSessionOptionsForSessionType(chatSessionType) {
|
|
1118
|
+
return this._sessionTypeNewSessionOptions.get(chatSessionType);
|
|
1119
|
+
}
|
|
1120
|
+
setNewSessionOptionsForSessionType(chatSessionType, options) {
|
|
1121
|
+
this._sessionTypeNewSessionOptions.set(chatSessionType, options);
|
|
1122
|
+
}
|
|
1018
1123
|
async notifySessionOptionsChange(sessionResource, updates) {
|
|
1019
1124
|
if (!updates.length) {
|
|
1020
1125
|
return;
|
|
@@ -1032,7 +1137,7 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
1032
1137
|
for (const u of updates) {
|
|
1033
1138
|
this.setSessionOption(sessionResource, u.optionId, u.value);
|
|
1034
1139
|
}
|
|
1035
|
-
this._onDidChangeSessionOptions.fire(sessionResource);
|
|
1140
|
+
this._onDidChangeSessionOptions.fire(this._resolveResource(sessionResource));
|
|
1036
1141
|
this._logService.trace(
|
|
1037
1142
|
`[ChatSessionsService] notifySessionOptionsChange: finished for ${sessionResource}`
|
|
1038
1143
|
);
|
|
@@ -1065,6 +1170,10 @@ let ChatSessionsService = class ChatSessionsService extends Disposable {
|
|
|
1065
1170
|
const contribution = this._contributions.get(chatSessionType)?.contribution;
|
|
1066
1171
|
return contribution?.customAgentTarget ?? Target.Undefined;
|
|
1067
1172
|
}
|
|
1173
|
+
requiresCustomModelsForSessionType(chatSessionType) {
|
|
1174
|
+
const contribution = this._contributions.get(chatSessionType)?.contribution;
|
|
1175
|
+
return !!contribution?.requiresCustomModels;
|
|
1176
|
+
}
|
|
1068
1177
|
getContentProviderSchemes() {
|
|
1069
1178
|
return Array.from(( this._contentProviders.keys()));
|
|
1070
1179
|
}
|
|
@@ -1075,7 +1184,7 @@ function registerNewSessionInPlaceAction(type, displayName) {
|
|
|
1075
1184
|
constructor() {
|
|
1076
1185
|
super({
|
|
1077
1186
|
id: `workbench.action.chat.openNewChatSessionInPlace.${type}`,
|
|
1078
|
-
title: ( localize2(
|
|
1187
|
+
title: ( localize2(6052, "New {0}", displayName)),
|
|
1079
1188
|
category: CHAT_CATEGORY,
|
|
1080
1189
|
f1: false,
|
|
1081
1190
|
precondition: ChatContextKeys.enabled
|
|
@@ -1091,7 +1200,7 @@ function registerNewSessionInPlaceAction(type, displayName) {
|
|
|
1091
1200
|
}
|
|
1092
1201
|
await openChatSession(accessor, {
|
|
1093
1202
|
type: type,
|
|
1094
|
-
displayName: ( localize(
|
|
1203
|
+
displayName: ( localize(6053, "Chat")),
|
|
1095
1204
|
position: chatSessionPosition,
|
|
1096
1205
|
replaceEditor: true
|
|
1097
1206
|
});
|
|
@@ -1103,7 +1212,7 @@ function registerNewSessionExternalAction(type, displayName, commandId) {
|
|
|
1103
1212
|
constructor() {
|
|
1104
1213
|
super({
|
|
1105
1214
|
id: `workbench.action.chat.openNewChatSessionExternal.${type}`,
|
|
1106
|
-
title: ( localize2(
|
|
1215
|
+
title: ( localize2(6054, "New {0}", displayName)),
|
|
1107
1216
|
category: CHAT_CATEGORY,
|
|
1108
1217
|
f1: false,
|
|
1109
1218
|
precondition: ChatContextKeys.enabled
|
|
@@ -1146,7 +1255,7 @@ async function openChatSession(accessor, openOptions, chatSendOptions) {
|
|
|
1146
1255
|
override: ChatEditorInput.EditorID,
|
|
1147
1256
|
pinned: true,
|
|
1148
1257
|
title: {
|
|
1149
|
-
fallback: ( localize(
|
|
1258
|
+
fallback: ( localize(6055, "{0}", openOptions.displayName))
|
|
1150
1259
|
}
|
|
1151
1260
|
};
|
|
1152
1261
|
if (openOptions.replaceEditor) {
|
|
@@ -1184,6 +1293,15 @@ async function openChatSession(accessor, openOptions, chatSendOptions) {
|
|
|
1184
1293
|
}
|
|
1185
1294
|
if (chatSendOptions) {
|
|
1186
1295
|
try {
|
|
1296
|
+
if (chatSendOptions.initialSessionOptions) {
|
|
1297
|
+
const model = chatService.getSession(resource);
|
|
1298
|
+
if (model?.contributedChatSession) {
|
|
1299
|
+
model.setContributedChatSession({
|
|
1300
|
+
...model.contributedChatSession,
|
|
1301
|
+
initialSessionOptions: chatSendOptions.initialSessionOptions
|
|
1302
|
+
});
|
|
1303
|
+
}
|
|
1304
|
+
}
|
|
1187
1305
|
await chatService.sendRequest(resource, chatSendOptions.prompt, {
|
|
1188
1306
|
agentIdSilent: openOptions.type,
|
|
1189
1307
|
attachedContext: chatSendOptions.attachedContext
|