@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
|
@@ -5,7 +5,7 @@ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platfo
|
|
|
5
5
|
import { IChatEntitlementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service";
|
|
6
6
|
import { IChatErrorDetailsPart, IChatRendererContent, IChatResponseViewModel } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
|
|
7
7
|
import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
|
|
8
|
-
import { IChatContentPart } from "
|
|
8
|
+
import { IChatContentPart } from "./chatContentParts.js";
|
|
9
9
|
export declare class ChatQuotaExceededPart extends Disposable implements IChatContentPart {
|
|
10
10
|
private readonly content;
|
|
11
11
|
readonly domNode: HTMLElement;
|
|
@@ -53,10 +53,10 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
|
|
|
53
53
|
switch (chatEntitlementService.entitlement) {
|
|
54
54
|
case ChatEntitlement.Pro:
|
|
55
55
|
case ChatEntitlement.ProPlus:
|
|
56
|
-
primaryButtonLabel = ( localize(
|
|
56
|
+
primaryButtonLabel = ( localize(6564, "Manage Paid Premium Requests"));
|
|
57
57
|
break;
|
|
58
58
|
case ChatEntitlement.Free:
|
|
59
|
-
primaryButtonLabel = ( localize(
|
|
59
|
+
primaryButtonLabel = ( localize(6565, "Upgrade to GitHub Copilot Pro"));
|
|
60
60
|
break;
|
|
61
61
|
}
|
|
62
62
|
let hasAddedWaitWarning = false;
|
|
@@ -65,7 +65,7 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
|
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
hasAddedWaitWarning = true;
|
|
68
|
-
append(messageContainer, $(".chat-quota-wait-warning", undefined, ( localize(
|
|
68
|
+
append(messageContainer, $(".chat-quota-wait-warning", undefined, ( localize(6566, "Changes may take a few minutes to take effect."))));
|
|
69
69
|
};
|
|
70
70
|
let hasAddedRetryButton = false;
|
|
71
71
|
const addRetryButtonIfNeeded = () => {
|
|
@@ -78,7 +78,7 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
|
|
|
78
78
|
buttonForeground: asCssVariable(textLinkForeground)
|
|
79
79
|
})));
|
|
80
80
|
retryButton.element.classList.add("chat-quota-error-secondary-button");
|
|
81
|
-
retryButton.label = ( localize(
|
|
81
|
+
retryButton.label = ( localize(6567, "Click to Retry"));
|
|
82
82
|
this._register(retryButton.onDidClick(() => {
|
|
83
83
|
const widget = chatWidgetService.getWidgetBySessionResource(element.sessionResource);
|
|
84
84
|
if (!widget) {
|
|
@@ -16,8 +16,9 @@ import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/wor
|
|
|
16
16
|
import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
17
17
|
import { ChatCollapsibleContentPart } from "./chatCollapsibleContentPart.js";
|
|
18
18
|
import { IDisposableReference } from "./chatCollections.js";
|
|
19
|
-
import { IChatContentPartRenderContext } from "
|
|
19
|
+
import { IChatContentPartRenderContext } from "./chatContentParts.js";
|
|
20
20
|
import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
|
|
21
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
21
22
|
export interface IChatReferenceListItem extends IChatContentReference {
|
|
22
23
|
title?: string;
|
|
23
24
|
description?: string;
|
|
@@ -32,7 +33,7 @@ export declare class ChatCollapsibleListContentPart extends ChatCollapsibleConte
|
|
|
32
33
|
private readonly menuService;
|
|
33
34
|
private readonly instantiationService;
|
|
34
35
|
private readonly contextMenuService;
|
|
35
|
-
constructor(data: ReadonlyArray<IChatCollapsibleListItem>, labelOverride: IMarkdownString | string | undefined, context: IChatContentPartRenderContext, contentReferencesListPool: CollapsibleListPool, hoverMessage: IMarkdownString | undefined, openerService: IOpenerService, menuService: IMenuService, instantiationService: IInstantiationService, contextMenuService: IContextMenuService, hoverService: IHoverService);
|
|
36
|
+
constructor(data: ReadonlyArray<IChatCollapsibleListItem>, labelOverride: IMarkdownString | string | undefined, context: IChatContentPartRenderContext, contentReferencesListPool: CollapsibleListPool, hoverMessage: IMarkdownString | undefined, openerService: IOpenerService, menuService: IMenuService, instantiationService: IInstantiationService, contextMenuService: IContextMenuService, hoverService: IHoverService, configurationService: IConfigurationService);
|
|
36
37
|
protected initContent(): HTMLElement;
|
|
37
38
|
hasSameContent(other: IChatRendererContent, followingContent: IChatRendererContent[], element: ChatTreeItem): boolean;
|
|
38
39
|
}
|
|
@@ -41,7 +42,7 @@ export interface IChatUsedReferencesListOptions {
|
|
|
41
42
|
}
|
|
42
43
|
export declare class ChatUsedReferencesListContentPart extends ChatCollapsibleListContentPart {
|
|
43
44
|
private readonly options;
|
|
44
|
-
constructor(data: ReadonlyArray<IChatCollapsibleListItem>, labelOverride: IMarkdownString | string | undefined, context: IChatContentPartRenderContext, contentReferencesListPool: CollapsibleListPool, options: IChatUsedReferencesListOptions, openerService: IOpenerService, menuService: IMenuService, instantiationService: IInstantiationService, contextMenuService: IContextMenuService, hoverService: IHoverService);
|
|
45
|
+
constructor(data: ReadonlyArray<IChatCollapsibleListItem>, labelOverride: IMarkdownString | string | undefined, context: IChatContentPartRenderContext, contentReferencesListPool: CollapsibleListPool, options: IChatUsedReferencesListOptions, openerService: IOpenerService, menuService: IMenuService, instantiationService: IInstantiationService, contextMenuService: IContextMenuService, hoverService: IHoverService, configurationService: IConfigurationService);
|
|
45
46
|
protected isExpanded(): boolean;
|
|
46
47
|
protected setExpanded(value: boolean): void;
|
|
47
48
|
}
|
|
@@ -39,6 +39,7 @@ import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workb
|
|
|
39
39
|
import { ChatCollapsibleContentPart } from './chatCollapsibleContentPart.js';
|
|
40
40
|
import { ResourcePool } from './chatCollections.js';
|
|
41
41
|
import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
|
|
42
|
+
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
42
43
|
|
|
43
44
|
var CollapsibleListRenderer_1;
|
|
44
45
|
const $ = $$1;
|
|
@@ -53,15 +54,17 @@ let ChatCollapsibleListContentPart = class ChatCollapsibleListContentPart extend
|
|
|
53
54
|
menuService,
|
|
54
55
|
instantiationService,
|
|
55
56
|
contextMenuService,
|
|
56
|
-
hoverService
|
|
57
|
+
hoverService,
|
|
58
|
+
configurationService
|
|
57
59
|
) {
|
|
58
|
-
super(labelOverride ?? (data.length > 1 ? ( localize(
|
|
60
|
+
super(labelOverride ?? (data.length > 1 ? ( localize(6568, "Used {0} references", data.length)) : ( localize(6569, "Used {0} reference", 1))), context, hoverMessage, hoverService, configurationService);
|
|
59
61
|
this.data = data;
|
|
60
62
|
this.contentReferencesListPool = contentReferencesListPool;
|
|
61
63
|
this.openerService = openerService;
|
|
62
64
|
this.menuService = menuService;
|
|
63
65
|
this.instantiationService = instantiationService;
|
|
64
66
|
this.contextMenuService = contextMenuService;
|
|
67
|
+
this.icon = Codicon.check;
|
|
65
68
|
}
|
|
66
69
|
initContent() {
|
|
67
70
|
const ref = this._register(this.contentReferencesListPool.get());
|
|
@@ -119,7 +122,7 @@ let ChatCollapsibleListContentPart = class ChatCollapsibleListContentPart extend
|
|
|
119
122
|
return other.kind === "references" && other.references.length === this.data.length && (!!followingContent.length === this.hasFollowingContent);
|
|
120
123
|
}
|
|
121
124
|
};
|
|
122
|
-
ChatCollapsibleListContentPart = ( __decorate([( __param(5, IOpenerService)), ( __param(6, IMenuService)), ( __param(7, IInstantiationService)), ( __param(8, IContextMenuService)), ( __param(9, IHoverService))], ChatCollapsibleListContentPart));
|
|
125
|
+
ChatCollapsibleListContentPart = ( __decorate([( __param(5, IOpenerService)), ( __param(6, IMenuService)), ( __param(7, IInstantiationService)), ( __param(8, IContextMenuService)), ( __param(9, IHoverService)), ( __param(10, IConfigurationService))], ChatCollapsibleListContentPart));
|
|
123
126
|
let ChatUsedReferencesListContentPart = class ChatUsedReferencesListContentPart extends ChatCollapsibleListContentPart {
|
|
124
127
|
constructor(
|
|
125
128
|
data,
|
|
@@ -131,7 +134,8 @@ let ChatUsedReferencesListContentPart = class ChatUsedReferencesListContentPart
|
|
|
131
134
|
menuService,
|
|
132
135
|
instantiationService,
|
|
133
136
|
contextMenuService,
|
|
134
|
-
hoverService
|
|
137
|
+
hoverService,
|
|
138
|
+
configurationService
|
|
135
139
|
) {
|
|
136
140
|
super(
|
|
137
141
|
data,
|
|
@@ -143,7 +147,8 @@ let ChatUsedReferencesListContentPart = class ChatUsedReferencesListContentPart
|
|
|
143
147
|
menuService,
|
|
144
148
|
instantiationService,
|
|
145
149
|
contextMenuService,
|
|
146
|
-
hoverService
|
|
150
|
+
hoverService,
|
|
151
|
+
configurationService
|
|
147
152
|
);
|
|
148
153
|
this.options = options;
|
|
149
154
|
if (data.length === 0) {
|
|
@@ -159,7 +164,7 @@ let ChatUsedReferencesListContentPart = class ChatUsedReferencesListContentPart
|
|
|
159
164
|
element.usedReferencesExpanded = !this.isExpanded();
|
|
160
165
|
}
|
|
161
166
|
};
|
|
162
|
-
ChatUsedReferencesListContentPart = ( __decorate([( __param(5, IOpenerService)), ( __param(6, IMenuService)), ( __param(7, IInstantiationService)), ( __param(8, IContextMenuService)), ( __param(9, IHoverService))], ChatUsedReferencesListContentPart));
|
|
167
|
+
ChatUsedReferencesListContentPart = ( __decorate([( __param(5, IOpenerService)), ( __param(6, IMenuService)), ( __param(7, IInstantiationService)), ( __param(8, IContextMenuService)), ( __param(9, IHoverService)), ( __param(10, IConfigurationService))], ChatUsedReferencesListContentPart));
|
|
163
168
|
let CollapsibleListPool = class CollapsibleListPool extends Disposable {
|
|
164
169
|
get inUse() {
|
|
165
170
|
return this._pool.inUse;
|
|
@@ -209,7 +214,7 @@ let CollapsibleListPool = class CollapsibleListPool extends Disposable {
|
|
|
209
214
|
return basename(reference.uri.path);
|
|
210
215
|
}
|
|
211
216
|
},
|
|
212
|
-
getWidgetAriaLabel: () => ( localize(
|
|
217
|
+
getWidgetAriaLabel: () => ( localize(6570, "Collapsible Chat References List"))
|
|
213
218
|
},
|
|
214
219
|
dnd: {
|
|
215
220
|
getDragURI: element => getResourceForElement(element)?.toString() ?? null,
|
|
@@ -370,7 +375,9 @@ let CollapsibleListRenderer = class CollapsibleListRenderer {
|
|
|
370
375
|
title: data.options?.status?.description
|
|
371
376
|
});
|
|
372
377
|
} else {
|
|
373
|
-
templateData.label.setLabel(
|
|
378
|
+
templateData.label.setLabel(reference.variableName, undefined, {
|
|
379
|
+
title: data.options?.status?.description ?? data.title
|
|
380
|
+
});
|
|
374
381
|
}
|
|
375
382
|
} else if (typeof reference === "string") {
|
|
376
383
|
templateData.label.setLabel(reference, undefined, {
|
|
@@ -395,7 +402,7 @@ let CollapsibleListRenderer = class CollapsibleListRenderer {
|
|
|
395
402
|
name: settingId
|
|
396
403
|
}, {
|
|
397
404
|
icon: Codicon.settingsGear,
|
|
398
|
-
title: ( localize(
|
|
405
|
+
title: ( localize(6571, "Open setting '{0}'", settingId)),
|
|
399
406
|
strikethrough: data.excluded,
|
|
400
407
|
extraClasses
|
|
401
408
|
});
|
|
@@ -440,7 +447,7 @@ let CollapsibleListRenderer = class CollapsibleListRenderer {
|
|
|
440
447
|
templateData.addedSpan.textContent = `+${diffMeta.added}`;
|
|
441
448
|
templateData.removedSpan.textContent = `-${diffMeta.removed}`;
|
|
442
449
|
templateData.fileDiffsContainer.setAttribute("aria-label", ( localize(
|
|
443
|
-
|
|
450
|
+
6572,
|
|
444
451
|
"{0} lines added, {1} lines removed",
|
|
445
452
|
diffMeta.added,
|
|
446
453
|
diffMeta.removed
|
|
@@ -521,7 +528,7 @@ registerAction2(class AddToChatAction extends Action2 {
|
|
|
521
528
|
super({
|
|
522
529
|
id: AddToChatAction.id,
|
|
523
530
|
title: {
|
|
524
|
-
...( localize2(
|
|
531
|
+
...( localize2(6573, "Add File to Chat"))
|
|
525
532
|
},
|
|
526
533
|
f1: false,
|
|
527
534
|
menu: [{
|
|
@@ -551,7 +558,7 @@ registerAction2(class OpenChatReferenceLinkAction extends Action2 {
|
|
|
551
558
|
super({
|
|
552
559
|
id: OpenChatReferenceLinkAction.id,
|
|
553
560
|
title: {
|
|
554
|
-
...( localize2(
|
|
561
|
+
...( localize2(6574, "Copy Link"))
|
|
555
562
|
},
|
|
556
563
|
f1: false,
|
|
557
564
|
menu: [{
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IContextMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service";
|
|
3
|
+
import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
|
|
4
|
+
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
5
|
+
import { IChatCollapsibleIODataPart } from "./chatToolInputOutputContentPart.js";
|
|
6
|
+
export interface IChatToolOutputResourceToolbarContext {
|
|
7
|
+
parts: IChatCollapsibleIODataPart[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A reusable widget for rendering a group of resource data parts (files, images)
|
|
11
|
+
* with attachment pills and a toolbar with save actions.
|
|
12
|
+
*
|
|
13
|
+
* Used by ChatToolOutputContentSubPart and ChatMcpAppSubPart (for download resources).
|
|
14
|
+
*/
|
|
15
|
+
export declare class ChatResourceGroupWidget extends Disposable {
|
|
16
|
+
private readonly _instantiationService;
|
|
17
|
+
private readonly _contextMenuService;
|
|
18
|
+
private readonly _fileService;
|
|
19
|
+
readonly domNode: HTMLElement;
|
|
20
|
+
constructor(parts: IChatCollapsibleIODataPart[], _instantiationService: IInstantiationService, _contextMenuService: IContextMenuService, _fileService: IFileService);
|
|
21
|
+
private _fillInResourceGroup;
|
|
22
|
+
}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { h } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
4
|
+
import { disposableTimeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
5
|
+
import { decodeBase64 } from '@codingame/monaco-vscode-api/vscode/vs/base/common/buffer';
|
|
6
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
7
|
+
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
8
|
+
import { basename, joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
9
|
+
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
10
|
+
import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
11
|
+
import { MenuWorkbenchToolBar } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/toolbar';
|
|
12
|
+
import { MenuId, Action2, registerAction2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
13
|
+
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
14
|
+
import { IContextMenuService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service';
|
|
15
|
+
import { IFileDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
|
|
16
|
+
import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
|
|
17
|
+
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
18
|
+
import { ILabelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service';
|
|
19
|
+
import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
|
|
20
|
+
import { ProgressLocation } from '@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress';
|
|
21
|
+
import { IProgressService } from '@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress.service';
|
|
22
|
+
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
23
|
+
import { REVEAL_IN_EXPLORER_COMMAND_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/files/browser/fileConstants';
|
|
24
|
+
import { getAttachableImageExtension } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
|
|
25
|
+
import { ChatAttachmentsContentPart } from './chatAttachmentsContentPart.js';
|
|
26
|
+
|
|
27
|
+
const IMAGE_DECODE_DELAY_MS = 100;
|
|
28
|
+
let ChatResourceGroupWidget = class ChatResourceGroupWidget extends Disposable {
|
|
29
|
+
constructor(parts, _instantiationService, _contextMenuService, _fileService) {
|
|
30
|
+
super();
|
|
31
|
+
this._instantiationService = _instantiationService;
|
|
32
|
+
this._contextMenuService = _contextMenuService;
|
|
33
|
+
this._fileService = _fileService;
|
|
34
|
+
const el = h(".chat-collapsible-io-resource-group", [
|
|
35
|
+
h(".chat-collapsible-io-resource-items@items"),
|
|
36
|
+
h(".chat-collapsible-io-resource-actions@actions")
|
|
37
|
+
]);
|
|
38
|
+
this.domNode = el.root;
|
|
39
|
+
this._fillInResourceGroup(parts, el.items, el.actions);
|
|
40
|
+
}
|
|
41
|
+
async _fillInResourceGroup(parts, itemsContainer, actionsContainer) {
|
|
42
|
+
const entries = [];
|
|
43
|
+
const deferredImageParts = [];
|
|
44
|
+
for (let i = 0; i < parts.length; i++) {
|
|
45
|
+
const part = parts[i];
|
|
46
|
+
if (part.mimeType && getAttachableImageExtension(part.mimeType)) {
|
|
47
|
+
if (part.base64Value) {
|
|
48
|
+
entries.push({
|
|
49
|
+
kind: "file",
|
|
50
|
+
id: generateUuid(),
|
|
51
|
+
name: basename(part.uri),
|
|
52
|
+
fullName: part.uri.path,
|
|
53
|
+
value: part.uri
|
|
54
|
+
});
|
|
55
|
+
deferredImageParts.push({
|
|
56
|
+
index: i,
|
|
57
|
+
part
|
|
58
|
+
});
|
|
59
|
+
} else if (part.value) {
|
|
60
|
+
entries.push({
|
|
61
|
+
kind: "image",
|
|
62
|
+
id: generateUuid(),
|
|
63
|
+
name: basename(part.uri),
|
|
64
|
+
value: part.value,
|
|
65
|
+
mimeType: part.mimeType,
|
|
66
|
+
isURL: false,
|
|
67
|
+
references: [{
|
|
68
|
+
kind: "reference",
|
|
69
|
+
reference: part.uri
|
|
70
|
+
}]
|
|
71
|
+
});
|
|
72
|
+
} else {
|
|
73
|
+
const value = await this._fileService.readFile(part.uri).then(f => f.value.buffer, () => undefined);
|
|
74
|
+
if (!value) {
|
|
75
|
+
entries.push({
|
|
76
|
+
kind: "file",
|
|
77
|
+
id: generateUuid(),
|
|
78
|
+
name: basename(part.uri),
|
|
79
|
+
fullName: part.uri.path,
|
|
80
|
+
value: part.uri
|
|
81
|
+
});
|
|
82
|
+
} else {
|
|
83
|
+
entries.push({
|
|
84
|
+
kind: "image",
|
|
85
|
+
id: generateUuid(),
|
|
86
|
+
name: basename(part.uri),
|
|
87
|
+
value,
|
|
88
|
+
mimeType: part.mimeType,
|
|
89
|
+
isURL: false,
|
|
90
|
+
references: [{
|
|
91
|
+
kind: "reference",
|
|
92
|
+
reference: part.uri
|
|
93
|
+
}]
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
} else {
|
|
98
|
+
entries.push({
|
|
99
|
+
kind: "file",
|
|
100
|
+
id: generateUuid(),
|
|
101
|
+
name: basename(part.uri),
|
|
102
|
+
fullName: part.uri.path,
|
|
103
|
+
value: part.uri
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (this._store.isDisposed) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const attachments = this._register(this._instantiationService.createInstance(ChatAttachmentsContentPart, {
|
|
111
|
+
variables: entries,
|
|
112
|
+
limit: 5,
|
|
113
|
+
contentReferences: undefined,
|
|
114
|
+
domNode: undefined
|
|
115
|
+
}));
|
|
116
|
+
attachments.contextMenuHandler = (attachment, event) => {
|
|
117
|
+
const index = entries.indexOf(attachment);
|
|
118
|
+
const part = parts[index];
|
|
119
|
+
if (part) {
|
|
120
|
+
event.preventDefault();
|
|
121
|
+
event.stopPropagation();
|
|
122
|
+
this._contextMenuService.showContextMenu({
|
|
123
|
+
menuId: MenuId.ChatToolOutputResourceContext,
|
|
124
|
+
menuActionOptions: {
|
|
125
|
+
shouldForwardArgs: true
|
|
126
|
+
},
|
|
127
|
+
getAnchor: () => ({
|
|
128
|
+
x: event.pageX,
|
|
129
|
+
y: event.pageY
|
|
130
|
+
}),
|
|
131
|
+
getActionsContext: () => ({
|
|
132
|
+
parts: [part]
|
|
133
|
+
})
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
itemsContainer.appendChild(attachments.domNode);
|
|
138
|
+
const toolbar = this._register(this._instantiationService.createInstance(
|
|
139
|
+
MenuWorkbenchToolBar,
|
|
140
|
+
actionsContainer,
|
|
141
|
+
MenuId.ChatToolOutputResourceToolbar,
|
|
142
|
+
{
|
|
143
|
+
menuOptions: {
|
|
144
|
+
shouldForwardArgs: true
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
));
|
|
148
|
+
toolbar.context = {
|
|
149
|
+
parts
|
|
150
|
+
};
|
|
151
|
+
if (deferredImageParts.length > 0) {
|
|
152
|
+
this._register(disposableTimeout(() => {
|
|
153
|
+
for (const {
|
|
154
|
+
index,
|
|
155
|
+
part
|
|
156
|
+
} of deferredImageParts) {
|
|
157
|
+
try {
|
|
158
|
+
const value = decodeBase64(part.base64Value).buffer;
|
|
159
|
+
entries[index] = {
|
|
160
|
+
kind: "image",
|
|
161
|
+
id: generateUuid(),
|
|
162
|
+
name: basename(part.uri),
|
|
163
|
+
value,
|
|
164
|
+
mimeType: part.mimeType,
|
|
165
|
+
isURL: false,
|
|
166
|
+
references: [{
|
|
167
|
+
kind: "reference",
|
|
168
|
+
reference: part.uri
|
|
169
|
+
}]
|
|
170
|
+
};
|
|
171
|
+
} catch {}
|
|
172
|
+
}
|
|
173
|
+
attachments.updateVariables(entries);
|
|
174
|
+
}, IMAGE_DECODE_DELAY_MS));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
ChatResourceGroupWidget = ( __decorate([( __param(1, IInstantiationService)), ( __param(2, IContextMenuService)), ( __param(3, IFileService))], ChatResourceGroupWidget));
|
|
179
|
+
class SaveResourcesAction extends Action2 {
|
|
180
|
+
static {
|
|
181
|
+
this.ID = "chat.toolOutput.save";
|
|
182
|
+
}
|
|
183
|
+
constructor() {
|
|
184
|
+
super({
|
|
185
|
+
id: SaveResourcesAction.ID,
|
|
186
|
+
title: ( localize2(6575, "Save...")),
|
|
187
|
+
icon: Codicon.cloudDownload,
|
|
188
|
+
menu: [{
|
|
189
|
+
id: MenuId.ChatToolOutputResourceToolbar,
|
|
190
|
+
group: "navigation",
|
|
191
|
+
order: 1
|
|
192
|
+
}, {
|
|
193
|
+
id: MenuId.ChatToolOutputResourceContext
|
|
194
|
+
}]
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
async run(accessor, context) {
|
|
198
|
+
const fileDialog = accessor.get(IFileDialogService);
|
|
199
|
+
const fileService = accessor.get(IFileService);
|
|
200
|
+
const notificationService = accessor.get(INotificationService);
|
|
201
|
+
const progressService = accessor.get(IProgressService);
|
|
202
|
+
const workspaceContextService = accessor.get(IWorkspaceContextService);
|
|
203
|
+
const commandService = accessor.get(ICommandService);
|
|
204
|
+
const labelService = accessor.get(ILabelService);
|
|
205
|
+
const defaultFilepath = await fileDialog.defaultFilePath();
|
|
206
|
+
const savePart = async (part, isFolder, uri) => {
|
|
207
|
+
const target = isFolder ? joinPath(uri, basename(part.uri)) : uri;
|
|
208
|
+
try {
|
|
209
|
+
if (part.kind === "data") {
|
|
210
|
+
await fileService.copy(part.uri, target, true);
|
|
211
|
+
} else {
|
|
212
|
+
const contents = await fileService.readFile(part.uri);
|
|
213
|
+
await fileService.writeFile(target, contents.value);
|
|
214
|
+
}
|
|
215
|
+
} catch (e) {
|
|
216
|
+
notificationService.error(( localize(6576, "Failed to save {0}: {1}", basename(part.uri), e)));
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
const withProgress = async (thenReveal, todo) => {
|
|
220
|
+
await progressService.withProgress({
|
|
221
|
+
location: ProgressLocation.Notification,
|
|
222
|
+
delay: 5_000,
|
|
223
|
+
title: ( localize(6577, "Saving resources..."))
|
|
224
|
+
}, async report => {
|
|
225
|
+
for (const task of todo) {
|
|
226
|
+
await task();
|
|
227
|
+
report.report({
|
|
228
|
+
increment: 1,
|
|
229
|
+
total: todo.length
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
if (workspaceContextService.isInsideWorkspace(thenReveal)) {
|
|
234
|
+
commandService.executeCommand(REVEAL_IN_EXPLORER_COMMAND_ID, thenReveal);
|
|
235
|
+
} else {
|
|
236
|
+
notificationService.info(( localize(6578, "Saved resources to {0}", labelService.getUriLabel(thenReveal))));
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
if (context.parts.length === 1) {
|
|
240
|
+
const part = context.parts[0];
|
|
241
|
+
const uri = await fileDialog.pickFileToSave(joinPath(defaultFilepath, basename(part.uri)));
|
|
242
|
+
if (!uri) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
await withProgress(uri, [() => savePart(part, false, uri)]);
|
|
246
|
+
} else {
|
|
247
|
+
const uris = await fileDialog.showOpenDialog({
|
|
248
|
+
title: ( localize(6579, "Pick folder to save resources")),
|
|
249
|
+
canSelectFiles: false,
|
|
250
|
+
canSelectFolders: true,
|
|
251
|
+
canSelectMany: false,
|
|
252
|
+
defaultUri: workspaceContextService.getWorkspace().folders[0]?.uri
|
|
253
|
+
});
|
|
254
|
+
if (!uris?.length) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
await withProgress(uris[0], ( context.parts.map(part => () => savePart(part, true, uris[0]))));
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
registerAction2(SaveResourcesAction);
|
|
262
|
+
|
|
263
|
+
export { ChatResourceGroupWidget };
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
2
|
import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
|
|
3
3
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
4
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
4
5
|
import { IMarkdownRenderer } from "@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer";
|
|
6
|
+
import { IChatHookPart, IChatMarkdownContent, IChatToolInvocation, IChatToolInvocationSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
5
7
|
import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
|
|
8
|
+
import { CodeBlockModelCollection } from "../../../common/widget/codeBlockModelCollection.js";
|
|
6
9
|
import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
7
|
-
import { IChatContentPart, IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
|
|
8
10
|
import { ChatCollapsibleContentPart } from "./chatCollapsibleContentPart.js";
|
|
9
|
-
import { IChatHookPart, IChatMarkdownContent, IChatToolInvocation, IChatToolInvocationSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
10
|
-
import { CollapsibleListPool } from "./chatReferencesContentPart.js";
|
|
11
11
|
import { EditorPool } from "./chatContentCodePools.js";
|
|
12
|
-
import {
|
|
12
|
+
import { IChatContentPart, IChatContentPartRenderContext } from "./chatContentParts.js";
|
|
13
13
|
import { IChatMarkdownAnchorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service";
|
|
14
|
+
import { CollapsibleListPool } from "./chatReferencesContentPart.js";
|
|
14
15
|
/**
|
|
15
16
|
* This is generally copied from ChatThinkingContentPart. We are still experimenting with both UIs so I'm not
|
|
16
17
|
* trying to refactor to share code. Both could probably be simplified when stable.
|
|
@@ -47,11 +48,19 @@ export declare class ChatSubagentContentPart extends ChatCollapsibleContentPart
|
|
|
47
48
|
private toolsWaitingForConfirmation;
|
|
48
49
|
private userManuallyExpanded;
|
|
49
50
|
private autoExpandedForConfirmation;
|
|
51
|
+
private titleShimmerSpan;
|
|
52
|
+
private titleDetailContainer;
|
|
53
|
+
private titleDetailRendered;
|
|
54
|
+
/**
|
|
55
|
+
* Check if a tool invocation is the parent subagent tool (the tool that spawns a subagent).
|
|
56
|
+
* A parent subagent tool has subagent toolSpecificData but no subAgentInvocationId.
|
|
57
|
+
*/
|
|
58
|
+
private static isParentSubagentTool;
|
|
50
59
|
/**
|
|
51
60
|
* Extracts subagent info (description, agentName, prompt) from a tool invocation.
|
|
52
61
|
*/
|
|
53
62
|
private static extractSubagentInfo;
|
|
54
|
-
constructor(subAgentInvocationId: string, toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized, context: IChatContentPartRenderContext, chatContentMarkdownRenderer: IMarkdownRenderer, listPool: CollapsibleListPool, editorPool: EditorPool, currentWidthDelegate: () => number, codeBlockModelCollection: CodeBlockModelCollection, announcedToolProgressKeys: Set<string>, instantiationService: IInstantiationService, chatMarkdownAnchorService: IChatMarkdownAnchorService, hoverService: IHoverService);
|
|
63
|
+
constructor(subAgentInvocationId: string, toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized, context: IChatContentPartRenderContext, chatContentMarkdownRenderer: IMarkdownRenderer, listPool: CollapsibleListPool, editorPool: EditorPool, currentWidthDelegate: () => number, codeBlockModelCollection: CodeBlockModelCollection, announcedToolProgressKeys: Set<string>, instantiationService: IInstantiationService, chatMarkdownAnchorService: IChatMarkdownAnchorService, hoverService: IHoverService, configurationService: IConfigurationService);
|
|
55
64
|
protected initContent(): HTMLElement;
|
|
56
65
|
/**
|
|
57
66
|
* Renders the prompt as a collapsible section at the start of the content.
|