@codingame/monaco-vscode-katex-common 33.0.9 → 34.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/base/browser/ui/pixelSpinner/pixelSpinner.css +169 -0
- package/vscode/src/vs/base/browser/ui/pixelSpinner/pixelSpinner.d.ts +28 -0
- package/vscode/src/vs/base/browser/ui/pixelSpinner/pixelSpinner.js +61 -0
- package/vscode/src/vs/platform/actions/browser/actionWidgetDropdownActionViewItem.d.ts +1 -1
- package/vscode/src/vs/platform/actions/browser/actionWidgetDropdownActionViewItem.js +1 -1
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +18 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +40 -38
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.d.ts +1 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +4 -48
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +16 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +81 -69
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +5 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionUri.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionUri.js +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostChatInputPicker.css +18 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +13 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +177 -80
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +7 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +69 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +25 -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.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +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 +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.d.ts +93 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.js +140 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.d.ts +46 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.js +134 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +2 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +49 -117
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +47 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +52 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +18 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +23 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +13 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.d.ts +15 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +87 -11
- 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 +21 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +102 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +2 -2
- 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.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +22 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +6 -2
- 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.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +21 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +35 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +62 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +6 -6
- 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.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +15 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +10 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.js +13 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +19 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +154 -59
- 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 +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatOptions.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatOptions.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +17 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +113 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatGoalBannerWidget.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatGoalBannerWidget.js +64 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +10 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.js +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +18 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +361 -66
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatusActionViewItem.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatusActionViewItem.js +147 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +11 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +133 -87
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +13 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatGoalBannerWidget.css +81 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +32 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +39 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +23 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +66 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +373 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +5 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +18 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatWidgetHistoryService.d.ts +12 -2
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatWidgetHistoryService.js +54 -11
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +3 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +30 -30
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +0 -76
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +0 -191
- package/vscode/src/vs/platform/networkFilter/common/domainMatcher.d.ts +0 -50
- package/vscode/src/vs/platform/networkFilter/common/domainMatcher.js +0 -138
- package/vscode/src/vs/platform/networkFilter/common/settings.d.ts +0 -12
- package/vscode/src/vs/platform/networkFilter/common/settings.js +0 -14
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +0 -18
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +0 -13
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +0 -87
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +0 -10
- package/vscode/src/vs/workbench/contrib/terminal/terminalContribChatExports.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +0 -41
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +0 -24
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +0 -26
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +0 -142
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +0 -52
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +0 -232
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +0 -65
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +0 -225
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +0 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +0 -143
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +0 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +0 -205
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +0 -40
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +0 -174
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +0 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +0 -43
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +0 -52
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +0 -260
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +0 -44
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +0 -98
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +0 -42
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +0 -225
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +0 -31
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +0 -392
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +0 -45
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +0 -243
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +0 -53
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +0 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +0 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +0 -310
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +0 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +0 -177
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +0 -11
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +0 -33
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +0 -41
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +0 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +0 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +0 -44
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +0 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +0 -22
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +0 -42
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +0 -102
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +0 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +0 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +0 -29
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +0 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +0 -33
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +0 -24
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +0 -15
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +0 -53
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +0 -177
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +0 -512
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +0 -42
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +0 -23
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +0 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +0 -258
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +0 -2623
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +0 -22
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +0 -43
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +0 -17
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +0 -118
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.d.ts +0 -22
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.js +0 -44
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +0 -58
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +0 -223
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.d.ts +0 -31
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.js +0 -49
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.d.ts +0 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.js +0 -302
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.d.ts +0 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.js +0 -118
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +0 -114
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +0 -788
|
@@ -31,8 +31,7 @@ import { AccessibilityVerbositySettingId } from '@codingame/monaco-vscode-api/vs
|
|
|
31
31
|
import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
|
|
32
32
|
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
33
33
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
34
|
-
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/
|
|
35
|
-
import { RunInTerminalTool } from '../../../../terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js';
|
|
34
|
+
import { ITerminalChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service';
|
|
36
35
|
import * as chatQuestionCarousel from './media/chatQuestionCarousel.css';
|
|
37
36
|
|
|
38
37
|
registerCss(chatQuestionCarousel);
|
|
@@ -49,7 +48,8 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
49
48
|
_contextKeyService,
|
|
50
49
|
_keybindingService,
|
|
51
50
|
_commandService,
|
|
52
|
-
_configurationService
|
|
51
|
+
_configurationService,
|
|
52
|
+
_terminalChatService
|
|
53
53
|
) {
|
|
54
54
|
super();
|
|
55
55
|
this.carousel = carousel;
|
|
@@ -61,6 +61,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
61
61
|
this._keybindingService = _keybindingService;
|
|
62
62
|
this._commandService = _commandService;
|
|
63
63
|
this._configurationService = _configurationService;
|
|
64
|
+
this._terminalChatService = _terminalChatService;
|
|
64
65
|
this._onDidChangeHeight = this._register(( new Emitter()));
|
|
65
66
|
this.onDidChangeHeight = this._onDidChangeHeight.event;
|
|
66
67
|
this._currentIndex = 0;
|
|
@@ -95,7 +96,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
95
96
|
});
|
|
96
97
|
this.domNode.tabIndex = 0;
|
|
97
98
|
this.domNode.setAttribute("role", "region");
|
|
98
|
-
this.domNode.setAttribute("aria-roledescription", ( localize(
|
|
99
|
+
this.domNode.setAttribute("aria-roledescription", ( localize(7350, "chat question")));
|
|
99
100
|
this._updateAriaLabel();
|
|
100
101
|
if (carousel instanceof ChatQuestionCarouselData) {
|
|
101
102
|
if (typeof carousel.draftCurrentIndex === "number") {
|
|
@@ -127,7 +128,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
127
128
|
this._questionContainer = $(".chat-question-carousel-content");
|
|
128
129
|
this.domNode.append(this._questionContainer);
|
|
129
130
|
this._headerActionsContainer = $(".chat-question-header-actions");
|
|
130
|
-
const collapseToggleTitle = ( localize(
|
|
131
|
+
const collapseToggleTitle = ( localize(7351, "Collapse Questions"));
|
|
131
132
|
const collapseButton = interactiveStore.add(( new Button(this._headerActionsContainer, {
|
|
132
133
|
...defaultButtonStyles,
|
|
133
134
|
secondary: true,
|
|
@@ -138,7 +139,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
138
139
|
this._collapseButton = collapseButton;
|
|
139
140
|
if (carousel.allowSkip) {
|
|
140
141
|
this._closeButtonContainer = $(".chat-question-close-container");
|
|
141
|
-
const skipAllTitle = ( localize(
|
|
142
|
+
const skipAllTitle = ( localize(7352, "Skip all questions"));
|
|
142
143
|
const skipAllButton = interactiveStore.add(( new Button(this._closeButtonContainer, {
|
|
143
144
|
...defaultButtonStyles,
|
|
144
145
|
secondary: true,
|
|
@@ -154,9 +155,9 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
154
155
|
}
|
|
155
156
|
if (carousel.terminalId) {
|
|
156
157
|
this._focusTerminalButtonContainer = $(".chat-question-focus-terminal-container");
|
|
157
|
-
const focusTerminalTitle = ( localize(
|
|
158
|
+
const focusTerminalTitle = ( localize(7353, "Focus Terminal"));
|
|
158
159
|
const kbLabel = this._keybindingService.lookupKeybinding("workbench.action.chat.focusQuestionCarouselTerminal")?.getLabel();
|
|
159
|
-
const focusTerminalAriaLabel = kbLabel ? ( localize(
|
|
160
|
+
const focusTerminalAriaLabel = kbLabel ? ( localize(7354, "Focus Terminal ({0})", kbLabel)) : focusTerminalTitle;
|
|
160
161
|
const focusTerminalButton = interactiveStore.add(( new Button(this._focusTerminalButtonContainer, {
|
|
161
162
|
...defaultButtonStyles,
|
|
162
163
|
secondary: true,
|
|
@@ -169,9 +170,9 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
169
170
|
content: focusTerminalTitle
|
|
170
171
|
}));
|
|
171
172
|
interactiveStore.add(focusTerminalButton.onDidClick(() => this._focusTerminal()));
|
|
172
|
-
const
|
|
173
|
-
if (
|
|
174
|
-
interactiveStore.add(
|
|
173
|
+
const terminalInstance = this._terminalChatService.getTerminalInstanceByExecutionId(carousel.terminalId);
|
|
174
|
+
if (terminalInstance) {
|
|
175
|
+
interactiveStore.add(terminalInstance.onDidInputData(() => {
|
|
175
176
|
if (!this._isSkipped) {
|
|
176
177
|
if (carousel instanceof ChatQuestionCarouselData) {
|
|
177
178
|
carousel.dismissedByTerminalInput = true;
|
|
@@ -256,7 +257,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
256
257
|
this.domNode.classList.toggle("chat-question-carousel-collapsed", this._isCollapsed);
|
|
257
258
|
if (this._collapseButton) {
|
|
258
259
|
const collapsed = this._isCollapsed;
|
|
259
|
-
const buttonTitle = collapsed ? ( localize(
|
|
260
|
+
const buttonTitle = collapsed ? ( localize(7355, "Expand Questions")) : ( localize(7351, "Collapse Questions"));
|
|
260
261
|
const contentId = this.domNode.id;
|
|
261
262
|
this._collapseButton.label = collapsed ? `$(${Codicon.chevronUp.id})` : `$(${Codicon.chevronDown.id})`;
|
|
262
263
|
this._collapseButton.element.setAttribute("aria-label", buttonTitle);
|
|
@@ -311,7 +312,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
311
312
|
const messageContent = this.getQuestionText(questionText);
|
|
312
313
|
const questionCount = this.carousel.questions.length;
|
|
313
314
|
const alertMessage = questionCount === 1 ? messageContent : ( localize(
|
|
314
|
-
|
|
315
|
+
7356,
|
|
315
316
|
"Question {0} of {1}: {2}",
|
|
316
317
|
this._currentIndex + 1,
|
|
317
318
|
questionCount,
|
|
@@ -459,7 +460,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
459
460
|
_updateAriaLabel() {
|
|
460
461
|
const question = this.carousel.questions[this._currentIndex];
|
|
461
462
|
if (!question) {
|
|
462
|
-
this.domNode.setAttribute("aria-label", ( localize(
|
|
463
|
+
this.domNode.setAttribute("aria-label", ( localize(7357, "Chat question")));
|
|
463
464
|
return;
|
|
464
465
|
}
|
|
465
466
|
const questionText = question.message ?? question.title;
|
|
@@ -467,10 +468,10 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
467
468
|
const questionCount = this.carousel.questions.length;
|
|
468
469
|
let label;
|
|
469
470
|
if (questionCount === 1) {
|
|
470
|
-
label = ( localize(
|
|
471
|
+
label = ( localize(7358, "Chat question: {0}", messageContent));
|
|
471
472
|
} else {
|
|
472
473
|
label = ( localize(
|
|
473
|
-
|
|
474
|
+
7359,
|
|
474
475
|
"Chat question {0} of {1}: {2}",
|
|
475
476
|
this._currentIndex + 1,
|
|
476
477
|
questionCount,
|
|
@@ -481,10 +482,10 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
481
482
|
if (verbose && this.carousel.terminalId) {
|
|
482
483
|
const kbLabel = this._keybindingService.lookupKeybinding("workbench.action.chat.focusQuestionCarouselTerminal")?.getLabel();
|
|
483
484
|
if (kbLabel) {
|
|
484
|
-
label = ( localize(
|
|
485
|
+
label = ( localize(7360, "{0} Use {1} to focus the terminal.", label, kbLabel));
|
|
485
486
|
} else {
|
|
486
487
|
label = ( localize(
|
|
487
|
-
|
|
488
|
+
7361,
|
|
488
489
|
"{0} Use the Focus Terminal from Question Carousel command to focus the terminal.",
|
|
489
490
|
label
|
|
490
491
|
));
|
|
@@ -658,9 +659,9 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
658
659
|
this._footerRow = $(".chat-question-footer-row");
|
|
659
660
|
const leftControls = $(".chat-question-footer-left.chat-question-carousel-nav");
|
|
660
661
|
leftControls.setAttribute("role", "navigation");
|
|
661
|
-
leftControls.setAttribute("aria-label", ( localize(
|
|
662
|
+
leftControls.setAttribute("aria-label", ( localize(7362, "Question navigation")));
|
|
662
663
|
const arrowsContainer = $(".chat-question-nav-arrows");
|
|
663
|
-
const previousLabel = this.getLabelWithKeybinding(( localize(
|
|
664
|
+
const previousLabel = this.getLabelWithKeybinding(( localize(7363, "Previous")), PREVIOUS_QUESTION_ACTION_ID);
|
|
664
665
|
const prevButton = interactiveStore.add(( new Button(arrowsContainer, {
|
|
665
666
|
...defaultButtonStyles,
|
|
666
667
|
secondary: true,
|
|
@@ -674,7 +675,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
674
675
|
}));
|
|
675
676
|
interactiveStore.add(prevButton.onDidClick(() => this.navigate(-1)));
|
|
676
677
|
this._prevButton = prevButton;
|
|
677
|
-
const nextLabel = this.getLabelWithKeybinding(( localize(
|
|
678
|
+
const nextLabel = this.getLabelWithKeybinding(( localize(7364, "Next")), NEXT_QUESTION_ACTION_ID);
|
|
678
679
|
const nextButton = interactiveStore.add(( new Button(arrowsContainer, {
|
|
679
680
|
...defaultButtonStyles,
|
|
680
681
|
secondary: true,
|
|
@@ -694,14 +695,14 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
694
695
|
this._footerRow.appendChild(leftControls);
|
|
695
696
|
const rightControls = $(".chat-question-footer-right");
|
|
696
697
|
const hint = $("span.chat-question-submit-hint");
|
|
697
|
-
hint.textContent = isMacintosh ? ( localize(
|
|
698
|
+
hint.textContent = isMacintosh ? ( localize(7365, "⌘⏎ to submit")) : ( localize(7366, "Ctrl+Enter to submit"));
|
|
698
699
|
rightControls.appendChild(hint);
|
|
699
700
|
this._submitHint = hint;
|
|
700
701
|
const submitButton = interactiveStore.add(( new Button(rightControls, {
|
|
701
702
|
...defaultButtonStyles
|
|
702
703
|
})));
|
|
703
704
|
submitButton.element.classList.add("chat-question-submit-button");
|
|
704
|
-
submitButton.label = ( localize(
|
|
705
|
+
submitButton.label = ( localize(7367, "Submit"));
|
|
705
706
|
interactiveStore.add(submitButton.onDidClick(() => this.submit()));
|
|
706
707
|
this._submitButton = submitButton;
|
|
707
708
|
this._footerRow.appendChild(rightControls);
|
|
@@ -722,7 +723,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
722
723
|
this._nextButton.enabled = canAdvance && (!question?.required || hasAnswer) && !hasValidationError;
|
|
723
724
|
}
|
|
724
725
|
if (this._stepIndicator) {
|
|
725
|
-
this._stepIndicator.textContent = ( localize(
|
|
726
|
+
this._stepIndicator.textContent = ( localize(7368, "{0}/{1}", this._currentIndex + 1, this.carousel.questions.length));
|
|
726
727
|
}
|
|
727
728
|
if (this._submitButton) {
|
|
728
729
|
const isLastQuestion = this._currentIndex === this.carousel.questions.length - 1;
|
|
@@ -741,18 +742,18 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
741
742
|
this._footerRow = $(".chat-question-footer-row");
|
|
742
743
|
const leftControls = $(".chat-question-footer-left.chat-question-carousel-nav");
|
|
743
744
|
leftControls.setAttribute("role", "navigation");
|
|
744
|
-
leftControls.setAttribute("aria-label", ( localize(
|
|
745
|
+
leftControls.setAttribute("aria-label", ( localize(7362, "Question navigation")));
|
|
745
746
|
this._footerRow.appendChild(leftControls);
|
|
746
747
|
const rightControls = $(".chat-question-footer-right");
|
|
747
748
|
const hint = $("span.chat-question-submit-hint");
|
|
748
|
-
hint.textContent = isMacintosh ? ( localize(
|
|
749
|
+
hint.textContent = isMacintosh ? ( localize(7365, "⌘⏎ to submit")) : ( localize(7366, "Ctrl+Enter to submit"));
|
|
749
750
|
rightControls.appendChild(hint);
|
|
750
751
|
this._submitHint = hint;
|
|
751
752
|
const submitButton = interactiveStore.add(( new Button(rightControls, {
|
|
752
753
|
...defaultButtonStyles
|
|
753
754
|
})));
|
|
754
755
|
submitButton.element.classList.add("chat-question-submit-button");
|
|
755
|
-
submitButton.label = ( localize(
|
|
756
|
+
submitButton.label = ( localize(7367, "Submit"));
|
|
756
757
|
interactiveStore.add(submitButton.onDidClick(() => this.submit()));
|
|
757
758
|
this._submitButton = submitButton;
|
|
758
759
|
this._footerRow.appendChild(rightControls);
|
|
@@ -761,7 +762,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
761
762
|
}
|
|
762
763
|
getLabelWithKeybinding(label, actionId) {
|
|
763
764
|
const keybindingLabel = this._keybindingService.lookupKeybinding(actionId, this._contextKeyService)?.getLabel();
|
|
764
|
-
return keybindingLabel ? ( localize(
|
|
765
|
+
return keybindingLabel ? ( localize(7369, "{0} ({1})", label, keybindingLabel)) : label;
|
|
765
766
|
}
|
|
766
767
|
renderInput(container, question) {
|
|
767
768
|
switch (question.type) {
|
|
@@ -790,7 +791,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
790
791
|
}
|
|
791
792
|
renderTextInput(container, question) {
|
|
792
793
|
const inputBox = this._inputBoxes.add(( new InputBox(container, undefined, {
|
|
793
|
-
placeholder: ( localize(
|
|
794
|
+
placeholder: ( localize(7370, "Enter your answer")),
|
|
794
795
|
inputBoxStyles: defaultInputBoxStyles,
|
|
795
796
|
validationOptions: question.validation ? {
|
|
796
797
|
validation: value => {
|
|
@@ -881,7 +882,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
881
882
|
const listItem = $(".chat-question-list-item");
|
|
882
883
|
listItem.setAttribute("role", "option");
|
|
883
884
|
listItem.setAttribute("aria-selected", String(isSelected));
|
|
884
|
-
listItem.setAttribute("aria-label", ( localize(
|
|
885
|
+
listItem.setAttribute("aria-label", ( localize(7371, "Option {0}: {1}", index + 1, option.label)));
|
|
885
886
|
listItem.id = `option-${question.id}-${index}`;
|
|
886
887
|
listItem.tabIndex = -1;
|
|
887
888
|
const number = $(".chat-question-list-number");
|
|
@@ -947,7 +948,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
947
948
|
freeformNumber.textContent = `${orderedOptions.length + 1}`;
|
|
948
949
|
freeformContainer.appendChild(freeformNumber);
|
|
949
950
|
freeformTextarea = $("textarea.chat-question-freeform-textarea");
|
|
950
|
-
freeformTextarea.placeholder = ( localize(
|
|
951
|
+
freeformTextarea.placeholder = ( localize(7372, "Enter custom answer"));
|
|
951
952
|
freeformTextarea.rows = 1;
|
|
952
953
|
if (previousFreeform !== undefined) {
|
|
953
954
|
freeformTextarea.value = previousFreeform;
|
|
@@ -1059,7 +1060,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
1059
1060
|
const listItem = $(".chat-question-list-item.multi-select");
|
|
1060
1061
|
listItem.setAttribute("role", "option");
|
|
1061
1062
|
listItem.setAttribute("aria-selected", String(isChecked));
|
|
1062
|
-
listItem.setAttribute("aria-label", ( localize(
|
|
1063
|
+
listItem.setAttribute("aria-label", ( localize(7371, "Option {0}: {1}", index + 1, option.label)));
|
|
1063
1064
|
listItem.id = `option-${question.id}-${index}`;
|
|
1064
1065
|
listItem.tabIndex = -1;
|
|
1065
1066
|
const number = $(".chat-question-list-number");
|
|
@@ -1124,7 +1125,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
1124
1125
|
freeformNumber.textContent = `${orderedOptions.length + 1}`;
|
|
1125
1126
|
freeformContainer.appendChild(freeformNumber);
|
|
1126
1127
|
freeformTextarea = $("textarea.chat-question-freeform-textarea");
|
|
1127
|
-
freeformTextarea.placeholder = ( localize(
|
|
1128
|
+
freeformTextarea.placeholder = ( localize(7372, "Enter custom answer"));
|
|
1128
1129
|
freeformTextarea.rows = 1;
|
|
1129
1130
|
if (previousFreeform !== undefined) {
|
|
1130
1131
|
freeformTextarea.value = previousFreeform;
|
|
@@ -1292,7 +1293,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
1292
1293
|
const skippedContainer = $(".chat-question-carousel-summary");
|
|
1293
1294
|
const skippedMessage = $(".chat-question-summary-skipped");
|
|
1294
1295
|
const isDismissedByTerminal = this.carousel instanceof ChatQuestionCarouselData && this.carousel.dismissedByTerminalInput;
|
|
1295
|
-
skippedMessage.textContent = isDismissedByTerminal ? ( localize(
|
|
1296
|
+
skippedMessage.textContent = isDismissedByTerminal ? ( localize(7373, "Deferring to user's input in the terminal")) : ( localize(7374, "Skipped"));
|
|
1296
1297
|
skippedContainer.appendChild(skippedMessage);
|
|
1297
1298
|
this.domNode.appendChild(skippedContainer);
|
|
1298
1299
|
}
|
|
@@ -1311,16 +1312,16 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
1311
1312
|
const questionText = question.message ?? question.title;
|
|
1312
1313
|
let labelText = typeof questionText === "string" ? questionText : questionText.value;
|
|
1313
1314
|
labelText = labelText.replace(/[:\s]+$/, "");
|
|
1314
|
-
questionRow.textContent = ( localize(
|
|
1315
|
+
questionRow.textContent = ( localize(7375, "Q: {0}", labelText));
|
|
1315
1316
|
summaryItem.appendChild(questionRow);
|
|
1316
1317
|
if (answer !== undefined) {
|
|
1317
1318
|
const formattedAnswer = this.formatAnswerForSummary(question, answer);
|
|
1318
1319
|
const answerRow = $("div.chat-question-summary-answer-title");
|
|
1319
|
-
answerRow.textContent = ( localize(
|
|
1320
|
+
answerRow.textContent = ( localize(7376, "A: {0}", formattedAnswer));
|
|
1320
1321
|
summaryItem.appendChild(answerRow);
|
|
1321
1322
|
} else {
|
|
1322
1323
|
const unanswered = $("div.chat-question-summary-unanswered");
|
|
1323
|
-
unanswered.textContent = ( localize(
|
|
1324
|
+
unanswered.textContent = ( localize(7377, "Not answered yet"));
|
|
1324
1325
|
summaryItem.appendChild(unanswered);
|
|
1325
1326
|
}
|
|
1326
1327
|
summaryContainer.appendChild(summaryItem);
|
|
@@ -1360,7 +1361,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
1360
1361
|
if (freeformValue) {
|
|
1361
1362
|
labels.push(freeformValue);
|
|
1362
1363
|
}
|
|
1363
|
-
return labels.join(( localize(
|
|
1364
|
+
return labels.join(( localize(7378, ", ")));
|
|
1364
1365
|
}
|
|
1365
1366
|
return String(answer);
|
|
1366
1367
|
}
|
|
@@ -1379,7 +1380,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
1379
1380
|
}
|
|
1380
1381
|
const answer = this._answers.get(question.id);
|
|
1381
1382
|
if (question.required && (answer === undefined || answer === "")) {
|
|
1382
|
-
this.showValidationError(( localize(
|
|
1383
|
+
this.showValidationError(( localize(7379, "This field is required")));
|
|
1383
1384
|
return false;
|
|
1384
1385
|
}
|
|
1385
1386
|
if (question.type === "text" && question.validation && typeof answer === "string" && answer !== "") {
|
|
@@ -1404,7 +1405,7 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
1404
1405
|
this._currentIndex = i;
|
|
1405
1406
|
this.persistDraftState();
|
|
1406
1407
|
this.renderCurrentQuestion(true);
|
|
1407
|
-
this.showValidationError(( localize(
|
|
1408
|
+
this.showValidationError(( localize(7379, "This field is required")));
|
|
1408
1409
|
return false;
|
|
1409
1410
|
}
|
|
1410
1411
|
}
|
|
@@ -1412,34 +1413,34 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
1412
1413
|
}
|
|
1413
1414
|
getValidationError(value, validation) {
|
|
1414
1415
|
if (validation.minLength !== undefined && value.length < validation.minLength) {
|
|
1415
|
-
return localize(
|
|
1416
|
+
return localize(7380, "Minimum length is {0}", validation.minLength);
|
|
1416
1417
|
}
|
|
1417
1418
|
if (validation.maxLength !== undefined && value.length > validation.maxLength) {
|
|
1418
|
-
return localize(
|
|
1419
|
+
return localize(7381, "Maximum length is {0}", validation.maxLength);
|
|
1419
1420
|
}
|
|
1420
1421
|
if (validation.format) {
|
|
1421
1422
|
switch (validation.format) {
|
|
1422
1423
|
case "email":
|
|
1423
1424
|
if (!value.includes("@")) {
|
|
1424
|
-
return localize(
|
|
1425
|
+
return localize(7382, "Please enter a valid email address");
|
|
1425
1426
|
}
|
|
1426
1427
|
break;
|
|
1427
1428
|
case "uri":
|
|
1428
1429
|
if (!URL.canParse(value)) {
|
|
1429
|
-
return localize(
|
|
1430
|
+
return localize(7383, "Please enter a valid URI");
|
|
1430
1431
|
}
|
|
1431
1432
|
break;
|
|
1432
1433
|
case "date":
|
|
1433
1434
|
{
|
|
1434
1435
|
const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
|
|
1435
1436
|
if (!dateRegex.test(value) || isNaN(( new Date(value)).getTime())) {
|
|
1436
|
-
return localize(
|
|
1437
|
+
return localize(7384, "Please enter a valid date (YYYY-MM-DD)");
|
|
1437
1438
|
}
|
|
1438
1439
|
break;
|
|
1439
1440
|
}
|
|
1440
1441
|
case "date-time":
|
|
1441
1442
|
if (isNaN(( new Date(value)).getTime())) {
|
|
1442
|
-
return localize(
|
|
1443
|
+
return localize(7385, "Please enter a valid date-time");
|
|
1443
1444
|
}
|
|
1444
1445
|
break;
|
|
1445
1446
|
}
|
|
@@ -1447,16 +1448,16 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
1447
1448
|
if (validation.isInteger !== undefined || validation.minimum !== undefined || validation.maximum !== undefined) {
|
|
1448
1449
|
const num = Number(value);
|
|
1449
1450
|
if (isNaN(num)) {
|
|
1450
|
-
return localize(
|
|
1451
|
+
return localize(7386, "Please enter a valid number");
|
|
1451
1452
|
}
|
|
1452
1453
|
if (validation.isInteger && !Number.isInteger(num)) {
|
|
1453
|
-
return localize(
|
|
1454
|
+
return localize(7387, "Please enter a valid integer");
|
|
1454
1455
|
}
|
|
1455
1456
|
if (validation.minimum !== undefined && num < validation.minimum) {
|
|
1456
|
-
return localize(
|
|
1457
|
+
return localize(7388, "Minimum value is {0}", validation.minimum);
|
|
1457
1458
|
}
|
|
1458
1459
|
if (validation.maximum !== undefined && num > validation.maximum) {
|
|
1459
|
-
return localize(
|
|
1460
|
+
return localize(7389, "Maximum value is {0}", validation.maximum);
|
|
1460
1461
|
}
|
|
1461
1462
|
}
|
|
1462
1463
|
return undefined;
|
|
@@ -1491,6 +1492,6 @@ let ChatQuestionCarouselPart = class ChatQuestionCarouselPart extends Disposable
|
|
|
1491
1492
|
super.dispose();
|
|
1492
1493
|
}
|
|
1493
1494
|
};
|
|
1494
|
-
ChatQuestionCarouselPart = ( __decorate([( __param(3, IMarkdownRendererService)), ( __param(4, IHoverService)), ( __param(5, IAccessibilityService)), ( __param(6, IContextKeyService)), ( __param(7, IKeybindingService)), ( __param(8, ICommandService)), ( __param(9, IConfigurationService))], ChatQuestionCarouselPart));
|
|
1495
|
+
ChatQuestionCarouselPart = ( __decorate([( __param(3, IMarkdownRendererService)), ( __param(4, IHoverService)), ( __param(5, IAccessibilityService)), ( __param(6, IContextKeyService)), ( __param(7, IKeybindingService)), ( __param(8, ICommandService)), ( __param(9, IConfigurationService)), ( __param(10, ITerminalChatService))], ChatQuestionCarouselPart));
|
|
1495
1496
|
|
|
1496
1497
|
export { ChatQuestionCarouselPart };
|
|
@@ -49,18 +49,22 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
|
|
|
49
49
|
const messageContainer = append(this.domNode, $(".chat-quota-error-message"));
|
|
50
50
|
const markdownContent = this._register(renderer.render(( new MarkdownString(errorDetails.message))));
|
|
51
51
|
append(messageContainer, markdownContent.element);
|
|
52
|
+
const isAdditionalSpendLimitReached = errorDetails.code === "additional_spend_limit_reached";
|
|
52
53
|
let primaryButtonLabel;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
54
|
+
if (isAdditionalSpendLimitReached) {
|
|
55
|
+
primaryButtonLabel = ( localize(7390, "Upgrade"));
|
|
56
|
+
} else {
|
|
57
|
+
switch (chatEntitlementService.entitlement) {
|
|
58
|
+
case ChatEntitlement.EDU:
|
|
59
|
+
case ChatEntitlement.Pro:
|
|
60
|
+
case ChatEntitlement.ProPlus:
|
|
61
|
+
case ChatEntitlement.Max:
|
|
62
|
+
primaryButtonLabel = ( localize(7391, "Manage Budget"));
|
|
63
|
+
break;
|
|
64
|
+
case ChatEntitlement.Free:
|
|
65
|
+
primaryButtonLabel = ( localize(7392, "Upgrade to GitHub Copilot Pro"));
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
64
68
|
}
|
|
65
69
|
let hasAddedWaitWarning = false;
|
|
66
70
|
const addWaitWarningIfNeeded = () => {
|
|
@@ -68,7 +72,7 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
|
|
|
68
72
|
return;
|
|
69
73
|
}
|
|
70
74
|
hasAddedWaitWarning = true;
|
|
71
|
-
append(messageContainer, $(".chat-quota-wait-warning", undefined, ( localize(
|
|
75
|
+
append(messageContainer, $(".chat-quota-wait-warning", undefined, ( localize(7393, "Changes may take a few minutes to take effect."))));
|
|
72
76
|
};
|
|
73
77
|
let hasAddedRetryButton = false;
|
|
74
78
|
const addRetryButtonIfNeeded = () => {
|
|
@@ -81,7 +85,7 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
|
|
|
81
85
|
buttonForeground: asCssVariable(textLinkForeground)
|
|
82
86
|
})));
|
|
83
87
|
retryButton.element.classList.add("chat-quota-error-secondary-button");
|
|
84
|
-
retryButton.label = ( localize(
|
|
88
|
+
retryButton.label = ( localize(7394, "Click to Retry"));
|
|
85
89
|
this._register(retryButton.onDidClick(() => {
|
|
86
90
|
const widget = chatWidgetService.getWidgetBySessionResource(element.sessionResource);
|
|
87
91
|
if (!widget) {
|
|
@@ -100,7 +104,7 @@ let ChatQuotaExceededPart = class ChatQuotaExceededPart extends Disposable {
|
|
|
100
104
|
primaryButton.label = primaryButtonLabel;
|
|
101
105
|
primaryButton.element.classList.add("chat-quota-error-button");
|
|
102
106
|
this._register(primaryButton.onDidClick(async () => {
|
|
103
|
-
const commandId = chatEntitlementService.entitlement === ChatEntitlement.Free ? "workbench.action.chat.upgradePlan" : "workbench.action.chat.manageAdditionalSpend";
|
|
107
|
+
const commandId = chatEntitlementService.entitlement === ChatEntitlement.Free || isAdditionalSpendLimitReached ? "workbench.action.chat.upgradePlan" : "workbench.action.chat.manageAdditionalSpend";
|
|
104
108
|
telemetryService.publicLog2("workbenchActionExecuted", {
|
|
105
109
|
id: commandId,
|
|
106
110
|
from: "chat-response"
|
|
@@ -57,7 +57,7 @@ let ChatCollapsibleListContentPart = class ChatCollapsibleListContentPart extend
|
|
|
57
57
|
hoverService,
|
|
58
58
|
configurationService
|
|
59
59
|
) {
|
|
60
|
-
super(labelOverride ?? (data.length > 1 ? ( localize(
|
|
60
|
+
super(labelOverride ?? (data.length > 1 ? ( localize(7395, "Used {0} references", data.length)) : ( localize(7396, "Used {0} reference", 1))), context, hoverMessage, hoverService, configurationService);
|
|
61
61
|
this.data = data;
|
|
62
62
|
this.contentReferencesListPool = contentReferencesListPool;
|
|
63
63
|
this.openerService = openerService;
|
|
@@ -215,7 +215,7 @@ let CollapsibleListPool = class CollapsibleListPool extends Disposable {
|
|
|
215
215
|
return basename(reference.uri.path);
|
|
216
216
|
}
|
|
217
217
|
},
|
|
218
|
-
getWidgetAriaLabel: () => ( localize(
|
|
218
|
+
getWidgetAriaLabel: () => ( localize(7397, "Collapsible Chat References List"))
|
|
219
219
|
},
|
|
220
220
|
dnd: {
|
|
221
221
|
getDragURI: element => getResourceForElement(element)?.toString() ?? null,
|
|
@@ -404,7 +404,7 @@ let CollapsibleListRenderer = class CollapsibleListRenderer {
|
|
|
404
404
|
name: settingId
|
|
405
405
|
}, {
|
|
406
406
|
icon: Codicon.settingsGear,
|
|
407
|
-
title: ( localize(
|
|
407
|
+
title: ( localize(7398, "Open setting '{0}'", settingId)),
|
|
408
408
|
strikethrough: data.excluded,
|
|
409
409
|
extraClasses
|
|
410
410
|
});
|
|
@@ -449,7 +449,7 @@ let CollapsibleListRenderer = class CollapsibleListRenderer {
|
|
|
449
449
|
templateData.addedSpan.textContent = `+${diffMeta.added}`;
|
|
450
450
|
templateData.removedSpan.textContent = `-${diffMeta.removed}`;
|
|
451
451
|
templateData.fileDiffsContainer.setAttribute("aria-label", ( localize(
|
|
452
|
-
|
|
452
|
+
7399,
|
|
453
453
|
"{0} lines added, {1} lines removed",
|
|
454
454
|
diffMeta.added,
|
|
455
455
|
diffMeta.removed
|
|
@@ -530,7 +530,7 @@ registerAction2(class AddToChatAction extends Action2 {
|
|
|
530
530
|
super({
|
|
531
531
|
id: AddToChatAction.id,
|
|
532
532
|
title: {
|
|
533
|
-
...( localize2(
|
|
533
|
+
...( localize2(7400, "Add File to Chat"))
|
|
534
534
|
},
|
|
535
535
|
f1: false,
|
|
536
536
|
menu: [{
|
|
@@ -560,7 +560,7 @@ registerAction2(class OpenChatReferenceLinkAction extends Action2 {
|
|
|
560
560
|
super({
|
|
561
561
|
id: OpenChatReferenceLinkAction.id,
|
|
562
562
|
title: {
|
|
563
|
-
...( localize2(
|
|
563
|
+
...( localize2(7401, "Copy Link"))
|
|
564
564
|
},
|
|
565
565
|
f1: false,
|
|
566
566
|
menu: [{
|
|
@@ -6,7 +6,7 @@ import { decodeBase64 } from '@codingame/monaco-vscode-api/vscode/vs/base/common
|
|
|
6
6
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
7
7
|
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
8
8
|
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
9
|
-
import { basename, joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
9
|
+
import { basename, extname, joinPath } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
10
10
|
import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
11
11
|
import { localize2, localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
12
12
|
import { MenuWorkbenchToolBar } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/toolbar';
|
|
@@ -22,7 +22,7 @@ import { ProgressLocation } from '@codingame/monaco-vscode-api/vscode/vs/platfor
|
|
|
22
22
|
import { IProgressService } from '@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress.service';
|
|
23
23
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
24
24
|
import { REVEAL_IN_EXPLORER_COMMAND_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/files/browser/fileConstants';
|
|
25
|
-
import { getAttachableImageExtension } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
|
|
25
|
+
import { getAttachableImageExtension, CHAT_ATTACHABLE_IMAGE_MIME_TYPES } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
|
|
26
26
|
import { ChatAttachmentsContentPart } from './chatAttachmentsContentPart.js';
|
|
27
27
|
|
|
28
28
|
const IMAGE_DECODE_DELAY_MS = 100;
|
|
@@ -46,7 +46,8 @@ let ChatResourceGroupWidget = class ChatResourceGroupWidget extends Disposable {
|
|
|
46
46
|
const deferredImageParts = [];
|
|
47
47
|
for (let i = 0; i < parts.length; i++) {
|
|
48
48
|
const part = parts[i];
|
|
49
|
-
|
|
49
|
+
const imageMimeType = getResourceImageMimeType(part);
|
|
50
|
+
if (imageMimeType) {
|
|
50
51
|
if (part.base64Value) {
|
|
51
52
|
entries.push({
|
|
52
53
|
kind: "file",
|
|
@@ -57,7 +58,8 @@ let ChatResourceGroupWidget = class ChatResourceGroupWidget extends Disposable {
|
|
|
57
58
|
});
|
|
58
59
|
deferredImageParts.push({
|
|
59
60
|
index: i,
|
|
60
|
-
part
|
|
61
|
+
part,
|
|
62
|
+
mimeType: imageMimeType
|
|
61
63
|
});
|
|
62
64
|
} else if (part.value) {
|
|
63
65
|
entries.push({
|
|
@@ -65,7 +67,7 @@ let ChatResourceGroupWidget = class ChatResourceGroupWidget extends Disposable {
|
|
|
65
67
|
id: generateUuid(),
|
|
66
68
|
name: basename(part.uri),
|
|
67
69
|
value: part.value,
|
|
68
|
-
mimeType:
|
|
70
|
+
mimeType: imageMimeType,
|
|
69
71
|
isURL: false,
|
|
70
72
|
references: [{
|
|
71
73
|
kind: "reference",
|
|
@@ -88,7 +90,7 @@ let ChatResourceGroupWidget = class ChatResourceGroupWidget extends Disposable {
|
|
|
88
90
|
id: generateUuid(),
|
|
89
91
|
name: basename(part.uri),
|
|
90
92
|
value,
|
|
91
|
-
mimeType:
|
|
93
|
+
mimeType: imageMimeType,
|
|
92
94
|
isURL: false,
|
|
93
95
|
references: [{
|
|
94
96
|
kind: "reference",
|
|
@@ -156,7 +158,8 @@ let ChatResourceGroupWidget = class ChatResourceGroupWidget extends Disposable {
|
|
|
156
158
|
this._register(disposableTimeout(() => {
|
|
157
159
|
for (const {
|
|
158
160
|
index,
|
|
159
|
-
part
|
|
161
|
+
part,
|
|
162
|
+
mimeType
|
|
160
163
|
} of deferredImageParts) {
|
|
161
164
|
try {
|
|
162
165
|
const value = decodeBase64(part.base64Value).buffer;
|
|
@@ -165,7 +168,7 @@ let ChatResourceGroupWidget = class ChatResourceGroupWidget extends Disposable {
|
|
|
165
168
|
id: generateUuid(),
|
|
166
169
|
name: basename(part.uri),
|
|
167
170
|
value,
|
|
168
|
-
mimeType
|
|
171
|
+
mimeType,
|
|
169
172
|
isURL: false,
|
|
170
173
|
references: [{
|
|
171
174
|
kind: "reference",
|
|
@@ -181,6 +184,13 @@ let ChatResourceGroupWidget = class ChatResourceGroupWidget extends Disposable {
|
|
|
181
184
|
}
|
|
182
185
|
};
|
|
183
186
|
ChatResourceGroupWidget = ( __decorate([( __param(1, IInstantiationService)), ( __param(2, IContextMenuService)), ( __param(3, IFileService))], ChatResourceGroupWidget));
|
|
187
|
+
function getResourceImageMimeType(part) {
|
|
188
|
+
if (part.mimeType && getAttachableImageExtension(part.mimeType)) {
|
|
189
|
+
return part.mimeType;
|
|
190
|
+
}
|
|
191
|
+
const extension = extname(part.uri).slice(1).toLowerCase();
|
|
192
|
+
return CHAT_ATTACHABLE_IMAGE_MIME_TYPES[extension];
|
|
193
|
+
}
|
|
184
194
|
class SaveResourcesAction extends Action2 {
|
|
185
195
|
static {
|
|
186
196
|
this.ID = "chat.toolOutput.save";
|
|
@@ -188,7 +198,7 @@ class SaveResourcesAction extends Action2 {
|
|
|
188
198
|
constructor() {
|
|
189
199
|
super({
|
|
190
200
|
id: SaveResourcesAction.ID,
|
|
191
|
-
title: ( localize2(
|
|
201
|
+
title: ( localize2(7402, "Save...")),
|
|
192
202
|
icon: Codicon.cloudDownload,
|
|
193
203
|
menu: [{
|
|
194
204
|
id: MenuId.ChatToolOutputResourceToolbar,
|
|
@@ -218,14 +228,14 @@ class SaveResourcesAction extends Action2 {
|
|
|
218
228
|
await fileService.writeFile(target, contents.value);
|
|
219
229
|
}
|
|
220
230
|
} catch (e) {
|
|
221
|
-
notificationService.error(( localize(
|
|
231
|
+
notificationService.error(( localize(7403, "Failed to save {0}: {1}", basename(part.uri), e)));
|
|
222
232
|
}
|
|
223
233
|
};
|
|
224
234
|
const withProgress = async (thenReveal, todo) => {
|
|
225
235
|
await progressService.withProgress({
|
|
226
236
|
location: ProgressLocation.Notification,
|
|
227
237
|
delay: 5_000,
|
|
228
|
-
title: ( localize(
|
|
238
|
+
title: ( localize(7404, "Saving resources..."))
|
|
229
239
|
}, async report => {
|
|
230
240
|
for (const task of todo) {
|
|
231
241
|
await task();
|
|
@@ -238,7 +248,7 @@ class SaveResourcesAction extends Action2 {
|
|
|
238
248
|
if (workspaceContextService.isInsideWorkspace(thenReveal)) {
|
|
239
249
|
commandService.executeCommand(REVEAL_IN_EXPLORER_COMMAND_ID, thenReveal);
|
|
240
250
|
} else {
|
|
241
|
-
notificationService.info(( localize(
|
|
251
|
+
notificationService.info(( localize(7405, "Saved resources to {0}", labelService.getUriLabel(thenReveal))));
|
|
242
252
|
}
|
|
243
253
|
};
|
|
244
254
|
if (context.parts.length === 1) {
|
|
@@ -250,7 +260,7 @@ class SaveResourcesAction extends Action2 {
|
|
|
250
260
|
await withProgress(uri, [() => savePart(part, false, uri)]);
|
|
251
261
|
} else {
|
|
252
262
|
const uris = await fileDialog.showOpenDialog({
|
|
253
|
-
title: ( localize(
|
|
263
|
+
title: ( localize(7406, "Pick folder to save resources")),
|
|
254
264
|
canSelectFiles: false,
|
|
255
265
|
canSelectFolders: true,
|
|
256
266
|
canSelectMany: false,
|