@codingame/monaco-vscode-katex-common 31.0.0 → 32.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 +15 -3
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +6 -5
- package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +5 -1
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +45 -14
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +15 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +15 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +51 -54
- 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 +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +45 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +13 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +5 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +46 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.js +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +155 -46
- 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 +20 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +37 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/media/chatSessionPickerActionItem.css +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +250 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +14 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +7 -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/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +7 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +12 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +51 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.js +56 -3
- 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.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.js +4 -0
- 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.js +68 -10
- 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.d.ts +58 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +653 -75
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +28 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +91 -54
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +7 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +53 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +6 -6
- 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 +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +42 -22
- 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.d.ts +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +93 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +169 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +13 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +29 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +60 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +13 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +1 -1
- 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 +15 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +125 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +29 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +119 -10
- 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/chatToolInvocationPart.js +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 +5 -5
- 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/media/toolRiskBadge.css +77 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.d.ts +38 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +125 -0
- 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 +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +132 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +16 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +156 -67
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.js +93 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +133 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +53 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +288 -125
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +23 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +699 -145
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +12 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +12 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.d.ts +62 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +120 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +191 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatPhoneInputPresenter.css +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +9 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +20 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +89 -108
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +521 -9
- 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 +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +19 -19
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionStorageKeys.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionStorageKeys.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +82 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +44 -17
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +3 -46
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/{inlineChatEditorAffordance.d.ts → inlineChatAffordanceWidget.d.ts} +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/{inlineChatEditorAffordance.js → inlineChatAffordanceWidget.js} +6 -6
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -18
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +19 -400
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.d.ts +4 -9
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.d.ts +5 -19
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +47 -133
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +103 -25
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +29 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +3 -32
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +39 -92
- 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/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +99 -32
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +13 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +76 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +4 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +89 -28
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +11 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +11 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +7 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +11 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +59 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +24 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +47 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +111 -30
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +60 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +455 -171
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +33 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +82 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.js +49 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.js +302 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.js +118 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +34 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +233 -48
- package/vscode/src/vs/platform/actions/browser/actionbar.d.ts +0 -16
- package/vscode/src/vs/platform/actions/browser/actionbar.js +0 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.d.ts +0 -46
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +0 -539
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +0 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +0 -386
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.d.ts +0 -101
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +0 -509
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +0 -130
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +0 -276
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.d.ts +0 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPartWidgets.js +0 -93
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +0 -39
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +0 -617
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +0 -231
|
@@ -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(7180, "Used {0} references", data.length)) : ( localize(7181, "Used {0} reference", 1))), context, hoverMessage, hoverService, configurationService);
|
|
61
61
|
this.data = data;
|
|
62
62
|
this.contentReferencesListPool = contentReferencesListPool;
|
|
63
63
|
this.openerService = openerService;
|
|
@@ -193,55 +193,57 @@ let CollapsibleListPool = class CollapsibleListPool extends Disposable {
|
|
|
193
193
|
}));
|
|
194
194
|
const container = $(".chat-used-context-list");
|
|
195
195
|
store.add(createFileIconThemableTreeContainerScope(container, this.themeService));
|
|
196
|
-
const list =
|
|
197
|
-
this.instantiationService.createInstance(
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
dnd: {
|
|
220
|
-
getDragURI: element => getResourceForElement(element)?.toString() ?? null,
|
|
221
|
-
getDragLabel: (elements, originalEvent) => {
|
|
222
|
-
const uris = coalesce(( elements.map(getResourceForElement)));
|
|
223
|
-
if (!uris.length) {
|
|
224
|
-
return undefined;
|
|
225
|
-
} else if (uris.length === 1) {
|
|
226
|
-
return this.labelService.getUriLabel(uris[0], {
|
|
227
|
-
relative: true
|
|
228
|
-
});
|
|
229
|
-
} else {
|
|
230
|
-
return `${uris.length}`;
|
|
231
|
-
}
|
|
196
|
+
const list = store.add(
|
|
197
|
+
this.instantiationService.createInstance(WorkbenchList, "ChatListRenderer", container, ( new CollapsibleListDelegate()), [
|
|
198
|
+
this.instantiationService.createInstance(CollapsibleListRenderer, resourceLabels, this.menuId)
|
|
199
|
+
], {
|
|
200
|
+
...this.listOptions,
|
|
201
|
+
alwaysConsumeMouseWheel: false,
|
|
202
|
+
accessibilityProvider: {
|
|
203
|
+
getAriaLabel: element => {
|
|
204
|
+
if (element.kind === "warning") {
|
|
205
|
+
return element.content.value;
|
|
206
|
+
}
|
|
207
|
+
const reference = element.reference;
|
|
208
|
+
if (typeof reference === "string") {
|
|
209
|
+
return reference;
|
|
210
|
+
} else if ("variableName" in reference) {
|
|
211
|
+
return reference.variableName;
|
|
212
|
+
} else if (URI.isUri(reference)) {
|
|
213
|
+
return basename(reference.path);
|
|
214
|
+
} else {
|
|
215
|
+
return basename(reference.uri.path);
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
getWidgetAriaLabel: () => ( localize(7182, "Collapsible Chat References List"))
|
|
232
219
|
},
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
onDragStart: (data, originalEvent) => {
|
|
237
|
-
try {
|
|
238
|
-
const elements = data.getData();
|
|
220
|
+
dnd: {
|
|
221
|
+
getDragURI: element => getResourceForElement(element)?.toString() ?? null,
|
|
222
|
+
getDragLabel: (elements, originalEvent) => {
|
|
239
223
|
const uris = coalesce(( elements.map(getResourceForElement)));
|
|
240
|
-
|
|
241
|
-
|
|
224
|
+
if (!uris.length) {
|
|
225
|
+
return undefined;
|
|
226
|
+
} else if (uris.length === 1) {
|
|
227
|
+
return this.labelService.getUriLabel(uris[0], {
|
|
228
|
+
relative: true
|
|
229
|
+
});
|
|
230
|
+
} else {
|
|
231
|
+
return `${uris.length}`;
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
dispose: () => {},
|
|
235
|
+
onDragOver: () => false,
|
|
236
|
+
drop: () => {},
|
|
237
|
+
onDragStart: (data, originalEvent) => {
|
|
238
|
+
try {
|
|
239
|
+
const elements = data.getData();
|
|
240
|
+
const uris = coalesce(( elements.map(getResourceForElement)));
|
|
241
|
+
this.instantiationService.invokeFunction(accessor => fillEditorsDragData(accessor, uris, originalEvent));
|
|
242
|
+
} catch {}
|
|
243
|
+
}
|
|
242
244
|
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
+
})
|
|
246
|
+
);
|
|
245
247
|
return {
|
|
246
248
|
list,
|
|
247
249
|
dispose: () => store.dispose()
|
|
@@ -402,7 +404,7 @@ let CollapsibleListRenderer = class CollapsibleListRenderer {
|
|
|
402
404
|
name: settingId
|
|
403
405
|
}, {
|
|
404
406
|
icon: Codicon.settingsGear,
|
|
405
|
-
title: ( localize(
|
|
407
|
+
title: ( localize(7183, "Open setting '{0}'", settingId)),
|
|
406
408
|
strikethrough: data.excluded,
|
|
407
409
|
extraClasses
|
|
408
410
|
});
|
|
@@ -447,7 +449,7 @@ let CollapsibleListRenderer = class CollapsibleListRenderer {
|
|
|
447
449
|
templateData.addedSpan.textContent = `+${diffMeta.added}`;
|
|
448
450
|
templateData.removedSpan.textContent = `-${diffMeta.removed}`;
|
|
449
451
|
templateData.fileDiffsContainer.setAttribute("aria-label", ( localize(
|
|
450
|
-
|
|
452
|
+
7184,
|
|
451
453
|
"{0} lines added, {1} lines removed",
|
|
452
454
|
diffMeta.added,
|
|
453
455
|
diffMeta.removed
|
|
@@ -528,7 +530,7 @@ registerAction2(class AddToChatAction extends Action2 {
|
|
|
528
530
|
super({
|
|
529
531
|
id: AddToChatAction.id,
|
|
530
532
|
title: {
|
|
531
|
-
...( localize2(
|
|
533
|
+
...( localize2(7185, "Add File to Chat"))
|
|
532
534
|
},
|
|
533
535
|
f1: false,
|
|
534
536
|
menu: [{
|
|
@@ -558,7 +560,7 @@ registerAction2(class OpenChatReferenceLinkAction extends Action2 {
|
|
|
558
560
|
super({
|
|
559
561
|
id: OpenChatReferenceLinkAction.id,
|
|
560
562
|
title: {
|
|
561
|
-
...( localize2(
|
|
563
|
+
...( localize2(7186, "Copy Link"))
|
|
562
564
|
},
|
|
563
565
|
f1: false,
|
|
564
566
|
menu: [{
|
|
@@ -188,7 +188,7 @@ class SaveResourcesAction extends Action2 {
|
|
|
188
188
|
constructor() {
|
|
189
189
|
super({
|
|
190
190
|
id: SaveResourcesAction.ID,
|
|
191
|
-
title: ( localize2(
|
|
191
|
+
title: ( localize2(7187, "Save...")),
|
|
192
192
|
icon: Codicon.cloudDownload,
|
|
193
193
|
menu: [{
|
|
194
194
|
id: MenuId.ChatToolOutputResourceToolbar,
|
|
@@ -218,14 +218,14 @@ class SaveResourcesAction extends Action2 {
|
|
|
218
218
|
await fileService.writeFile(target, contents.value);
|
|
219
219
|
}
|
|
220
220
|
} catch (e) {
|
|
221
|
-
notificationService.error(( localize(
|
|
221
|
+
notificationService.error(( localize(7188, "Failed to save {0}: {1}", basename(part.uri), e)));
|
|
222
222
|
}
|
|
223
223
|
};
|
|
224
224
|
const withProgress = async (thenReveal, todo) => {
|
|
225
225
|
await progressService.withProgress({
|
|
226
226
|
location: ProgressLocation.Notification,
|
|
227
227
|
delay: 5_000,
|
|
228
|
-
title: ( localize(
|
|
228
|
+
title: ( localize(7189, "Saving resources..."))
|
|
229
229
|
}, async report => {
|
|
230
230
|
for (const task of todo) {
|
|
231
231
|
await task();
|
|
@@ -238,7 +238,7 @@ class SaveResourcesAction extends Action2 {
|
|
|
238
238
|
if (workspaceContextService.isInsideWorkspace(thenReveal)) {
|
|
239
239
|
commandService.executeCommand(REVEAL_IN_EXPLORER_COMMAND_ID, thenReveal);
|
|
240
240
|
} else {
|
|
241
|
-
notificationService.info(( localize(
|
|
241
|
+
notificationService.info(( localize(7190, "Saved resources to {0}", labelService.getUriLabel(thenReveal))));
|
|
242
242
|
}
|
|
243
243
|
};
|
|
244
244
|
if (context.parts.length === 1) {
|
|
@@ -250,7 +250,7 @@ class SaveResourcesAction extends Action2 {
|
|
|
250
250
|
await withProgress(uri, [() => savePart(part, false, uri)]);
|
|
251
251
|
} else {
|
|
252
252
|
const uris = await fileDialog.showOpenDialog({
|
|
253
|
-
title: ( localize(
|
|
253
|
+
title: ( localize(7191, "Pick folder to save resources")),
|
|
254
254
|
canSelectFiles: false,
|
|
255
255
|
canSelectFolders: true,
|
|
256
256
|
canSelectMany: false,
|
|
@@ -25,13 +25,13 @@ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/obse
|
|
|
25
25
|
var ChatSubagentContentPart_1;
|
|
26
26
|
registerCss(chatSubagentContent);
|
|
27
27
|
const MAX_TITLE_LENGTH = 100;
|
|
28
|
-
const subagentWorkingMessages = [( localize(
|
|
28
|
+
const subagentWorkingMessages = [( localize(7192, "Processing")), ( localize(7193, "Preparing")), ( localize(7194, "Loading")), ( localize(7195, "Analyzing")), ( localize(7196, "Evaluating"))];
|
|
29
29
|
let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentContentPart extends ChatCollapsibleContentPart {
|
|
30
30
|
static isParentSubagentTool(toolInvocation) {
|
|
31
31
|
return toolInvocation.toolSpecificData?.kind === "subagent" && !toolInvocation.subAgentInvocationId;
|
|
32
32
|
}
|
|
33
33
|
static extractSubagentInfo(toolInvocation) {
|
|
34
|
-
const defaultDescription = ( localize(
|
|
34
|
+
const defaultDescription = ( localize(7197, "Running subagent"));
|
|
35
35
|
if (!ChatSubagentContentPart_1.isParentSubagentTool(toolInvocation)) {
|
|
36
36
|
return {
|
|
37
37
|
description: defaultDescription,
|
|
@@ -92,7 +92,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
92
92
|
prompt,
|
|
93
93
|
modelName
|
|
94
94
|
} = ChatSubagentContentPart_1.extractSubagentInfo(toolInvocation);
|
|
95
|
-
const rawPrefix = agentName || ( localize(
|
|
95
|
+
const rawPrefix = agentName || ( localize(7198, "Subagent"));
|
|
96
96
|
const prefix = rawPrefix.charAt(0).toUpperCase() + rawPrefix.slice(1);
|
|
97
97
|
const initialTitle = `${prefix}: ${description}`;
|
|
98
98
|
super(initialTitle, context, undefined, hoverService, configurationService);
|
|
@@ -219,7 +219,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
219
219
|
if (this.isActive && !this.isInitiallyComplete && !this.hasToolsWaitingForConfirmation) {
|
|
220
220
|
this.showWorkingSpinner();
|
|
221
221
|
}
|
|
222
|
-
const resizeObserver = this._register(( new DisposableResizeObserver(() => this.layoutScheduler.schedule())));
|
|
222
|
+
const resizeObserver = this._register(( new DisposableResizeObserver("ChatSubagentContentPart.layout", () => this.layoutScheduler.schedule())));
|
|
223
223
|
this._register(resizeObserver.observe(this.wrapper));
|
|
224
224
|
return this.wrapper;
|
|
225
225
|
}
|
|
@@ -239,7 +239,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
239
239
|
return;
|
|
240
240
|
}
|
|
241
241
|
const lines = this.prompt.split("\n");
|
|
242
|
-
const rawFirstLine = lines[0] || ( localize(
|
|
242
|
+
const rawFirstLine = lines[0] || ( localize(7199, "Prompt"));
|
|
243
243
|
const restOfLines = lines.slice(1).join("\n").trim();
|
|
244
244
|
const titleContent = rcut(rawFirstLine, MAX_TITLE_LENGTH);
|
|
245
245
|
const wasTruncated = rawFirstLine.length > MAX_TITLE_LENGTH;
|
|
@@ -287,7 +287,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
287
287
|
if (!this._isDefaultDescription && this.description) {
|
|
288
288
|
return this.description;
|
|
289
289
|
}
|
|
290
|
-
return localize(
|
|
290
|
+
return localize(7198, "Subagent");
|
|
291
291
|
}
|
|
292
292
|
markAsInactive() {
|
|
293
293
|
this.isActive = false;
|
|
@@ -298,7 +298,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
298
298
|
this.removeWorkingSpinner();
|
|
299
299
|
this.hideConfirmationPlaceholder();
|
|
300
300
|
if (this._isDefaultDescription) {
|
|
301
|
-
this.description = ( localize(
|
|
301
|
+
this.description = ( localize(7200, "Ran subagent"));
|
|
302
302
|
}
|
|
303
303
|
this.finalizeTitle();
|
|
304
304
|
this.setExpanded(false);
|
|
@@ -310,7 +310,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
310
310
|
}
|
|
311
311
|
}
|
|
312
312
|
updateTitle() {
|
|
313
|
-
const rawName = this.agentName || ( localize(
|
|
313
|
+
const rawName = this.agentName || ( localize(7198, "Subagent"));
|
|
314
314
|
const prefix = rawName.charAt(0).toUpperCase() + rawName.slice(1);
|
|
315
315
|
const shimmerText = `${prefix}: ${this.description}`;
|
|
316
316
|
const toolCallText = this.currentRunningToolMessage && this.isActive ? ` \u2014 ${this.currentRunningToolMessage}` : ``;
|
|
@@ -371,7 +371,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
371
371
|
return;
|
|
372
372
|
}
|
|
373
373
|
this._hoverDisposable.value = this.hoverService.setupDelayedHover(this._collapseButton.element, {
|
|
374
|
-
content: ( localize(
|
|
374
|
+
content: ( localize(7201, "Model: {0}", this.modelName))
|
|
375
375
|
});
|
|
376
376
|
}
|
|
377
377
|
trackToolState(toolInvocation) {
|
|
@@ -425,7 +425,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
425
425
|
}
|
|
426
426
|
getConfirmationPlaceholderText() {
|
|
427
427
|
const count = this.toolsWaitingForCarouselConfirmation;
|
|
428
|
-
return count === 1 ? ( localize(
|
|
428
|
+
return count === 1 ? ( localize(7202, "1 pending confirmation")) : ( localize(7203, "{0} pending confirmations", count));
|
|
429
429
|
}
|
|
430
430
|
updateConfirmationPlaceholderLabel() {
|
|
431
431
|
if (this._confirmationPlaceholderLabel) {
|
|
@@ -630,7 +630,7 @@ let ChatSubagentContentPart = ChatSubagentContentPart_1 = class ChatSubagentCont
|
|
|
630
630
|
}
|
|
631
631
|
}
|
|
632
632
|
appendHookItem(factory, hookPart) {
|
|
633
|
-
const hookMessage = hookPart.stopReason ? (hookPart.toolDisplayName ? ( localize(
|
|
633
|
+
const hookMessage = hookPart.stopReason ? (hookPart.toolDisplayName ? ( localize(7204, "Blocked {0}", hookPart.toolDisplayName)) : ( localize(7205, "Blocked by hook"))) : (hookPart.toolDisplayName ? ( localize(7206, "Warning for {0}", hookPart.toolDisplayName)) : ( localize(7207, "Hook warning")));
|
|
634
634
|
this.currentRunningToolMessage = hookMessage;
|
|
635
635
|
this.updateTitle();
|
|
636
636
|
if (this.isExpanded() || this.hasExpandedOnce) {
|
|
@@ -53,8 +53,8 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
55
|
this._currentMode = mode;
|
|
56
|
-
const modeName = mode.name.get() || mode.label.get() || ( localize(
|
|
57
|
-
this.titleElement.textContent = ( localize(
|
|
56
|
+
const modeName = mode.name.get() || mode.label.get() || ( localize(7208, "current mode"));
|
|
57
|
+
this.titleElement.textContent = ( localize(7209, "Proceed from {0}", modeName));
|
|
58
58
|
const childrenToRemove = [];
|
|
59
59
|
for (let i = 1; i < this.promptsContainer.children.length; i++) {
|
|
60
60
|
childrenToRemove.push(this.promptsContainer.children[i]);
|
|
@@ -91,7 +91,7 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
91
91
|
const button = $(".chat-welcome-view-suggested-prompt");
|
|
92
92
|
button.setAttribute("tabindex", "0");
|
|
93
93
|
button.setAttribute("role", "button");
|
|
94
|
-
button.setAttribute("aria-label", ( localize(
|
|
94
|
+
button.setAttribute("aria-label", ( localize(7210, "{0}", handoff.label)));
|
|
95
95
|
const titleElement = append(button, $(".chat-welcome-view-suggested-prompt-title"));
|
|
96
96
|
titleElement.textContent = handoff.label;
|
|
97
97
|
const showContinueOn = handoff.showContinueOn ?? true;
|
|
@@ -112,7 +112,7 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
112
112
|
const dropdownContainer = append(button, $(".chat-suggest-next-dropdown"));
|
|
113
113
|
dropdownContainer.setAttribute("tabindex", "0");
|
|
114
114
|
dropdownContainer.setAttribute("role", "button");
|
|
115
|
-
dropdownContainer.setAttribute("aria-label", ( localize(
|
|
115
|
+
dropdownContainer.setAttribute("aria-label", ( localize(7211, "More options for {0}", handoff.label)));
|
|
116
116
|
dropdownContainer.setAttribute("aria-haspopup", "true");
|
|
117
117
|
const separator = append(dropdownContainer, $(".chat-suggest-next-separator"));
|
|
118
118
|
separator.setAttribute("aria-hidden", "true");
|
|
@@ -127,7 +127,7 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
127
127
|
const name = getAgentSessionProviderName(provider);
|
|
128
128
|
return (new Action(
|
|
129
129
|
contrib.type,
|
|
130
|
-
localize(
|
|
130
|
+
localize(7212, "Continue in {0}", name),
|
|
131
131
|
ThemeIcon.isThemeIcon(icon) ? ThemeIcon.asClassName(icon) : undefined,
|
|
132
132
|
true,
|
|
133
133
|
() => {
|
|
@@ -197,7 +197,7 @@ let ChatSuggestNextWidget = class ChatSuggestNextWidget extends Disposable {
|
|
|
197
197
|
const currentHandoffs = this._currentMode?.handOffs?.get();
|
|
198
198
|
return currentHandoffs?.find(h => h.label === handoffLabel) ?? handoff;
|
|
199
199
|
};
|
|
200
|
-
const label = ( localize(
|
|
200
|
+
const label = ( localize(7213, "Start with Autopilot"));
|
|
201
201
|
const button = $(".chat-welcome-view-suggested-prompt");
|
|
202
202
|
button.setAttribute("tabindex", "0");
|
|
203
203
|
button.setAttribute("role", "button");
|
|
@@ -39,7 +39,7 @@ let ChatTextEditContentPart = class ChatTextEditContentPart extends Disposable {
|
|
|
39
39
|
this.domNode = $(
|
|
40
40
|
".interactive-edits-summary",
|
|
41
41
|
undefined,
|
|
42
|
-
!element.isComplete ? "" : element.isCanceled ? ( localize(
|
|
42
|
+
!element.isComplete ? "" : element.isCanceled ? ( localize(7214, "Making changes was aborted.")) : ( localize(7215, "Made changes."))
|
|
43
43
|
);
|
|
44
44
|
} else {
|
|
45
45
|
this.domNode = $("div");
|
|
@@ -4,6 +4,7 @@ import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/wor
|
|
|
4
4
|
import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
5
5
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
6
6
|
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
7
|
+
import { IAccessibilityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service";
|
|
7
8
|
import { IMarkdownRenderer } from "@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer";
|
|
8
9
|
import { ChatCollapsibleContentPart } from "./chatCollapsibleContentPart.js";
|
|
9
10
|
import { ThemeIcon } from "@codingame/monaco-vscode-api/vscode/vs/base/common/themables";
|
|
@@ -17,6 +18,8 @@ import { IEditSessionDiffStats } from "@codingame/monaco-vscode-api/vscode/vs/wo
|
|
|
17
18
|
export declare function getToolInvocationIcon(toolId: string, registeredIcon?: ThemeIcon): ThemeIcon;
|
|
18
19
|
export declare function createThinkingIcon(icon: ThemeIcon): HTMLElement;
|
|
19
20
|
export declare const defaultThinkingMessages: string[];
|
|
21
|
+
/** Returns an easter-egg message ~1 in {@link FUN_WORKING_MESSAGE_RATE}, else `undefined`. */
|
|
22
|
+
export declare function maybePickFunWorkingMessage(): string | undefined;
|
|
20
23
|
/**
|
|
21
24
|
* Builds a phrase pool from defaults and user-configured custom phrases.
|
|
22
25
|
* In 'replace' mode, only custom phrases are used; in 'append' mode (default),
|
|
@@ -84,7 +87,7 @@ export declare class ChatThinkingContentPart extends ChatCollapsibleContentPart
|
|
|
84
87
|
private _aggregatedDiff;
|
|
85
88
|
get aggregatedDiff(): IEditSessionDiffStats;
|
|
86
89
|
private getRandomWorkingMessage;
|
|
87
|
-
constructor(content: IChatThinkingPart, context: IChatContentPartRenderContext, chatContentMarkdownRenderer: IMarkdownRenderer, streamingCompleted: boolean, instantiationService: IInstantiationService, configurationService: IConfigurationService, chatMarkdownAnchorService: IChatMarkdownAnchorService, languageModelsService: ILanguageModelsService, hoverService: IHoverService, storageService: IStorageService);
|
|
90
|
+
constructor(content: IChatThinkingPart, context: IChatContentPartRenderContext, chatContentMarkdownRenderer: IMarkdownRenderer, streamingCompleted: boolean, instantiationService: IInstantiationService, configurationService: IConfigurationService, chatMarkdownAnchorService: IChatMarkdownAnchorService, languageModelsService: ILanguageModelsService, hoverService: IHoverService, storageService: IStorageService, accessibilityService: IAccessibilityService);
|
|
88
91
|
protected shouldInitEarly(): boolean;
|
|
89
92
|
protected initContent(): HTMLElement;
|
|
90
93
|
private handleScroll;
|
|
@@ -9,6 +9,7 @@ import { IChatToolInvocation } from '@codingame/monaco-vscode-api/vscode/vs/work
|
|
|
9
9
|
import { ChatConfiguration, ThinkingDisplayMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
10
10
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
11
11
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
12
|
+
import { IAccessibilityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/accessibility/common/accessibility.service';
|
|
12
13
|
import { AccessibilityWorkbenchSettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
13
14
|
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
14
15
|
import { extractCodeblockUrisFromText } from '../../../common/widget/annotations.js';
|
|
@@ -91,9 +92,20 @@ var WorkingMessageCategory;
|
|
|
91
92
|
WorkingMessageCategory["Terminal"] = "terminal";
|
|
92
93
|
WorkingMessageCategory["Tool"] = "tool";
|
|
93
94
|
})(WorkingMessageCategory || (WorkingMessageCategory = {}));
|
|
94
|
-
const defaultThinkingMessages = [( localize(
|
|
95
|
-
const terminalMessages = [( localize(
|
|
96
|
-
const toolMessages = [( localize(
|
|
95
|
+
const defaultThinkingMessages = [( localize(7216, "Thinking")), ( localize(7217, "Reasoning")), ( localize(7218, "Considering")), ( localize(7219, "Analyzing")), ( localize(7220, "Evaluating")), ( localize(7221, "Working"))];
|
|
96
|
+
const terminalMessages = [( localize(7222, "Executing")), ( localize(7223, "Running")), ( localize(7224, "Processing"))];
|
|
97
|
+
const toolMessages = [( localize(7225, "Processing")), ( localize(7226, "Preparing")), ( localize(7227, "Loading")), ( localize(7228, "Analyzing")), ( localize(7229, "Evaluating"))];
|
|
98
|
+
const funWorkingMessages = [(
|
|
99
|
+
localize(7230, "Bribing the hamster")), ( localize(7231, "Reticulating splines")), ( localize(7232, "Untangling the spaghetti")), (
|
|
100
|
+
localize(7233, "Mining diamonds")), (
|
|
101
|
+
localize(7234, "Summoning Clippy"))];
|
|
102
|
+
const FUN_WORKING_MESSAGE_RATE = 100;
|
|
103
|
+
function maybePickFunWorkingMessage() {
|
|
104
|
+
if (Math.floor(Math.random() * FUN_WORKING_MESSAGE_RATE) === 0) {
|
|
105
|
+
return funWorkingMessages[Math.floor(Math.random() * funWorkingMessages.length)];
|
|
106
|
+
}
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
97
109
|
function buildPhrasePool(defaults, configurationService) {
|
|
98
110
|
const config = configurationService.getValue(ChatConfiguration.ThinkingPhrases);
|
|
99
111
|
const customPhrases = Array.isArray(config?.phrases) ? ( config.phrases.filter(phrase => typeof phrase === "string").map(phrase => phrase.trim())).filter(phrase => phrase.length > 0) : [];
|
|
@@ -112,6 +124,10 @@ let ChatThinkingContentPart = ChatThinkingContentPart_1 = class ChatThinkingCont
|
|
|
112
124
|
return this._aggregatedDiff;
|
|
113
125
|
}
|
|
114
126
|
getRandomWorkingMessage(category = WorkingMessageCategory.Tool) {
|
|
127
|
+
const fun = maybePickFunWorkingMessage();
|
|
128
|
+
if (fun) {
|
|
129
|
+
return fun;
|
|
130
|
+
}
|
|
115
131
|
let pool = this.availableMessagesByCategory.get(category);
|
|
116
132
|
if (!pool || pool.length === 0) {
|
|
117
133
|
let defaults;
|
|
@@ -143,10 +159,11 @@ let ChatThinkingContentPart = ChatThinkingContentPart_1 = class ChatThinkingCont
|
|
|
143
159
|
chatMarkdownAnchorService,
|
|
144
160
|
languageModelsService,
|
|
145
161
|
hoverService,
|
|
146
|
-
storageService
|
|
162
|
+
storageService,
|
|
163
|
+
accessibilityService
|
|
147
164
|
) {
|
|
148
165
|
const initialText = extractTextFromPart(content);
|
|
149
|
-
const extractedTitle = extractTitleFromThinkingContent(initialText) ?? ( localize(
|
|
166
|
+
const extractedTitle = extractTitleFromThinkingContent(initialText) ?? ( localize(7235, "Thinking"));
|
|
150
167
|
super(extractedTitle, context, undefined, hoverService, configurationService);
|
|
151
168
|
this.chatContentMarkdownRenderer = chatContentMarkdownRenderer;
|
|
152
169
|
this.streamingCompleted = streamingCompleted;
|
|
@@ -157,8 +174,8 @@ let ChatThinkingContentPart = ChatThinkingContentPart_1 = class ChatThinkingCont
|
|
|
157
174
|
this.storageService = storageService;
|
|
158
175
|
this._onDidChangeHeight = this._register(( new Emitter()));
|
|
159
176
|
this._asyncRenderCallback = () => this._onDidChangeHeight.fire();
|
|
160
|
-
this.defaultTitle = ( localize(
|
|
161
|
-
this.workingTitle = ( localize(
|
|
177
|
+
this.defaultTitle = ( localize(7236, "Thinking"));
|
|
178
|
+
this.workingTitle = ( localize(7237, "Working"));
|
|
162
179
|
this._markdownResult = this._register(( new MutableDisposable()));
|
|
163
180
|
this.fixedScrollingMode = false;
|
|
164
181
|
this.autoScrollEnabled = true;
|
|
@@ -190,7 +207,7 @@ let ChatThinkingContentPart = ChatThinkingContentPart_1 = class ChatThinkingCont
|
|
|
190
207
|
this.id = content.id;
|
|
191
208
|
this.content = content;
|
|
192
209
|
this.allThinkingParts.push(content);
|
|
193
|
-
this.showProgressDetails = this.configurationService.getValue(ChatConfiguration.ChatPersistentProgressEnabled) !== false;
|
|
210
|
+
this.showProgressDetails = this.configurationService.getValue(ChatConfiguration.ChatPersistentProgressEnabled) !== false && (this.configurationService.getValue(ChatConfiguration.ProgressBorder) !== true || accessibilityService.isMotionReduced());
|
|
194
211
|
const configuredMode = this.configurationService.getValue("chat.agent.thinkingStyle") ?? ThinkingDisplayMode.Collapsed;
|
|
195
212
|
this.fixedScrollingMode = configuredMode === ThinkingDisplayMode.FixedScrolling;
|
|
196
213
|
this.currentTitle = extractedTitle;
|
|
@@ -203,7 +220,7 @@ let ChatThinkingContentPart = ChatThinkingContentPart_1 = class ChatThinkingCont
|
|
|
203
220
|
this.appendedItemCount++;
|
|
204
221
|
}
|
|
205
222
|
if (this.configurationService.getValue(AccessibilityWorkbenchSettingId.VerboseChatProgressUpdates)) {
|
|
206
|
-
alert(( localize(
|
|
223
|
+
alert(( localize(7238, "Thinking")));
|
|
207
224
|
}
|
|
208
225
|
if (configuredMode === ThinkingDisplayMode.Collapsed) {
|
|
209
226
|
this.setExpanded(false);
|
|
@@ -355,7 +372,7 @@ let ChatThinkingContentPart = ChatThinkingContentPart_1 = class ChatThinkingCont
|
|
|
355
372
|
pendingMutationRefresh?.dispose();
|
|
356
373
|
}
|
|
357
374
|
});
|
|
358
|
-
this.childResizeObserver = this._register(( new DisposableResizeObserver(() => {
|
|
375
|
+
this.childResizeObserver = this._register(( new DisposableResizeObserver("ChatThinkingContentPart.child", () => {
|
|
359
376
|
if (this.streamingCompleted || !this.domNode.classList.contains("chat-used-context-collapsed")) {
|
|
360
377
|
return;
|
|
361
378
|
}
|
|
@@ -367,7 +384,7 @@ let ChatThinkingContentPart = ChatThinkingContentPart_1 = class ChatThinkingCont
|
|
|
367
384
|
if (this.workingSpinnerElement) {
|
|
368
385
|
this._register(this.childResizeObserver.observe(this.workingSpinnerElement));
|
|
369
386
|
}
|
|
370
|
-
const wrapperResizeObserver = this._register(( new DisposableResizeObserver(entries => {
|
|
387
|
+
const wrapperResizeObserver = this._register(( new DisposableResizeObserver("ChatThinkingContentPart.wrapper", entries => {
|
|
371
388
|
if (entries[0]) {
|
|
372
389
|
this.lastKnownContentHeight = this.wrapper.scrollHeight;
|
|
373
390
|
if (!this.streamingCompleted && this.domNode.classList.contains("chat-used-context-collapsed")) {
|
|
@@ -563,9 +580,9 @@ let ChatThinkingContentPart = ChatThinkingContentPart_1 = class ChatThinkingCont
|
|
|
563
580
|
diffContainer.appendChild($("span.label-added", {}, `+${added}`));
|
|
564
581
|
diffContainer.appendChild($("span.label-removed", {}, `-${removed}`));
|
|
565
582
|
labelElement.appendChild(diffContainer);
|
|
566
|
-
const insertionsFragment = added === 1 ? ( localize(
|
|
567
|
-
const deletionsFragment = removed === 1 ? ( localize(
|
|
568
|
-
this._collapseButton.element.ariaLabel = ( localize(
|
|
583
|
+
const insertionsFragment = added === 1 ? ( localize(7239, "1 insertion")) : ( localize(7240, "{0} insertions", added));
|
|
584
|
+
const deletionsFragment = removed === 1 ? ( localize(7241, "1 deletion")) : ( localize(7242, "{0} deletions", removed));
|
|
585
|
+
this._collapseButton.element.ariaLabel = ( localize(7243, "{0}, {1}, {2}", title, insertionsFragment, deletionsFragment));
|
|
569
586
|
} else {
|
|
570
587
|
this._collapseButton.element.ariaLabel = title;
|
|
571
588
|
}
|
|
@@ -1053,7 +1070,7 @@ ${this.hookCount > 0 ? `EXAMPLES WITH BLOCKED CONTENT (from hooks):
|
|
|
1053
1070
|
}
|
|
1054
1071
|
}
|
|
1055
1072
|
setFallbackTitle() {
|
|
1056
|
-
const finalLabel = this.appendedItemCount > 0 ? this.appendedItemCount === 1 ? ( localize(
|
|
1073
|
+
const finalLabel = this.appendedItemCount > 0 ? this.appendedItemCount === 1 ? ( localize(7244, "Finished with 1 step")) : ( localize(7245, "Finished with {0} steps", this.appendedItemCount)) : ( localize(7246, "Finished Working"));
|
|
1057
1074
|
this.currentTitle = finalLabel;
|
|
1058
1075
|
if (this.wrapper) {
|
|
1059
1076
|
this.wrapper.classList.remove("chat-thinking-streaming");
|
|
@@ -1276,7 +1293,7 @@ ${this.hookCount > 0 ? `EXAMPLES WITH BLOCKED CONTENT (from hooks):
|
|
|
1276
1293
|
const message = typeof toolInvocationOrMarkdown.invocationMessage === "string" ? toolInvocationOrMarkdown.invocationMessage : toolInvocationOrMarkdown.invocationMessage.value;
|
|
1277
1294
|
const isStreamingEditTool = toolInvocationOrMarkdown.kind === "toolInvocation" && IChatToolInvocation.isStreaming(toolInvocationOrMarkdown) && isGenericEditToolId(toolInvocationOrMarkdown.toolId);
|
|
1278
1295
|
if (isStreamingEditTool) {
|
|
1279
|
-
toolCallLabel = ( localize(
|
|
1296
|
+
toolCallLabel = ( localize(7247, "Editing files"));
|
|
1280
1297
|
} else {
|
|
1281
1298
|
toolCallLabel = message;
|
|
1282
1299
|
}
|
|
@@ -1395,9 +1412,9 @@ ${this.hookCount > 0 ? `EXAMPLES WITH BLOCKED CONTENT (from hooks):
|
|
|
1395
1412
|
const codeblockInfo = extractCodeblockUrisFromText(toolInvocationOrMarkdown.content.value);
|
|
1396
1413
|
if (codeblockInfo?.uri) {
|
|
1397
1414
|
const filename = basename(codeblockInfo.uri);
|
|
1398
|
-
toolCallLabel = ( localize(
|
|
1415
|
+
toolCallLabel = ( localize(7248, "Edited {0}", filename));
|
|
1399
1416
|
} else {
|
|
1400
|
-
toolCallLabel = ( localize(
|
|
1417
|
+
toolCallLabel = ( localize(7249, "Edited file"));
|
|
1401
1418
|
}
|
|
1402
1419
|
} else {
|
|
1403
1420
|
toolCallLabel = toolInvocationId;
|
|
@@ -1441,10 +1458,13 @@ ${this.hookCount > 0 ? `EXAMPLES WITH BLOCKED CONTENT (from hooks):
|
|
|
1441
1458
|
const itemWrapper = $(".chat-thinking-tool-wrapper");
|
|
1442
1459
|
const isMarkdownEdit = toolInvocationOrMarkdown?.kind === "markdownContent";
|
|
1443
1460
|
const isTerminalTool = toolInvocationOrMarkdown && (toolInvocationOrMarkdown.kind === "toolInvocation" || toolInvocationOrMarkdown.kind === "toolInvocationSerialized") && toolInvocationOrMarkdown.toolSpecificData?.kind === "terminal";
|
|
1461
|
+
const isSearchTool = toolInvocationOrMarkdown && (toolInvocationOrMarkdown.kind === "toolInvocation" || toolInvocationOrMarkdown.kind === "toolInvocationSerialized") && toolInvocationOrMarkdown.toolSpecificData?.kind === "search";
|
|
1444
1462
|
const toolInvocationIcon = toolInvocationOrMarkdown && (toolInvocationOrMarkdown.kind === "toolInvocation" || toolInvocationOrMarkdown.kind === "toolInvocationSerialized") ? toolInvocationOrMarkdown.icon : undefined;
|
|
1445
1463
|
let icon;
|
|
1446
1464
|
if (isMarkdownEdit) {
|
|
1447
1465
|
icon = Codicon.pencil;
|
|
1466
|
+
} else if (isSearchTool) {
|
|
1467
|
+
icon = Codicon.search;
|
|
1448
1468
|
} else if (isTerminalTool) {
|
|
1449
1469
|
const terminalData = toolInvocationOrMarkdown.toolSpecificData;
|
|
1450
1470
|
const exitCode = terminalData?.terminalCommandState?.exitCode;
|
|
@@ -1583,7 +1603,7 @@ ${this.hookCount > 0 ? `EXAMPLES WITH BLOCKED CONTENT (from hooks):
|
|
|
1583
1603
|
return;
|
|
1584
1604
|
}
|
|
1585
1605
|
this.lastExtractedTitle = title;
|
|
1586
|
-
const thinkingLabel = ( localize(
|
|
1606
|
+
const thinkingLabel = ( localize(7250, "{0}: {1}", this.defaultTitle, title));
|
|
1587
1607
|
this.currentTitle = thinkingLabel;
|
|
1588
1608
|
if (!this._collapseButton) {
|
|
1589
1609
|
return;
|
|
@@ -1594,7 +1614,7 @@ ${this.hookCount > 0 ? `EXAMPLES WITH BLOCKED CONTENT (from hooks):
|
|
|
1594
1614
|
this.titleShimmerSpan = $("span.chat-thinking-title-shimmer");
|
|
1595
1615
|
labelElement.appendChild(this.titleShimmerSpan);
|
|
1596
1616
|
}
|
|
1597
|
-
this.titleShimmerSpan.textContent = ( localize(
|
|
1617
|
+
this.titleShimmerSpan.textContent = ( localize(7251, "{0}: ", this.defaultTitle));
|
|
1598
1618
|
this._titleDetailRendered.clear();
|
|
1599
1619
|
const result = this.chatContentMarkdownRenderer.render(( new MarkdownString(title)));
|
|
1600
1620
|
result.element.classList.add("collapsible-title-content", "chat-thinking-title-detail");
|
|
@@ -1639,6 +1659,6 @@ ${this.hookCount > 0 ? `EXAMPLES WITH BLOCKED CONTENT (from hooks):
|
|
|
1639
1659
|
super.dispose();
|
|
1640
1660
|
}
|
|
1641
1661
|
};
|
|
1642
|
-
ChatThinkingContentPart = ChatThinkingContentPart_1 = ( __decorate([( __param(4, IInstantiationService)), ( __param(5, IConfigurationService)), ( __param(6, IChatMarkdownAnchorService)), ( __param(7, ILanguageModelsService)), ( __param(8, IHoverService)), ( __param(9, IStorageService))], ChatThinkingContentPart));
|
|
1662
|
+
ChatThinkingContentPart = ChatThinkingContentPart_1 = ( __decorate([( __param(4, IInstantiationService)), ( __param(5, IConfigurationService)), ( __param(6, IChatMarkdownAnchorService)), ( __param(7, ILanguageModelsService)), ( __param(8, IHoverService)), ( __param(9, IStorageService)), ( __param(10, IAccessibilityService))], ChatThinkingContentPart));
|
|
1643
1663
|
|
|
1644
|
-
export { ChatThinkingContentPart, buildPhrasePool, createThinkingIcon, defaultThinkingMessages, getToolInvocationIcon };
|
|
1664
|
+
export { ChatThinkingContentPart, buildPhrasePool, createThinkingIcon, defaultThinkingMessages, getToolInvocationIcon, maybePickFunWorkingMessage };
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js
CHANGED
|
@@ -57,7 +57,7 @@ let ChatTipContentPart = class ChatTipContentPart extends Disposable {
|
|
|
57
57
|
this.domNode = $(".chat-tip-widget");
|
|
58
58
|
this.domNode.tabIndex = 0;
|
|
59
59
|
this.domNode.setAttribute("role", "region");
|
|
60
|
-
this.domNode.setAttribute("aria-roledescription", ( localize(
|
|
60
|
+
this.domNode.setAttribute("aria-roledescription", ( localize(7252, "tip")));
|
|
61
61
|
this._inChatTipContextKey = ChatContextKeys.inChatTip.bindTo(this._contextKeyService);
|
|
62
62
|
this._multipleChatTipsContextKey = ChatContextKeys.multipleChatTips.bindTo(this._contextKeyService);
|
|
63
63
|
const focusTracker = this._register(trackFocus(this.domNode));
|
|
@@ -119,9 +119,9 @@ let ChatTipContentPart = class ChatTipContentPart extends Disposable {
|
|
|
119
119
|
}
|
|
120
120
|
});
|
|
121
121
|
this.domNode.appendChild(toolbarContainer);
|
|
122
|
-
const textContent = markdownContent.element.textContent ?? ( localize(
|
|
122
|
+
const textContent = markdownContent.element.textContent ?? ( localize(7253, "Chat tip"));
|
|
123
123
|
const hasLink = /\[.*?\]\(.*?\)/.test(tip.content.value);
|
|
124
|
-
const ariaLabel = hasLink ? ( localize(
|
|
124
|
+
const ariaLabel = hasLink ? ( localize(7254, "{0} Tab to reach the action.", textContent)) : textContent;
|
|
125
125
|
this.domNode.setAttribute("aria-label", ariaLabel);
|
|
126
126
|
}
|
|
127
127
|
async _handleTipAction(link, mdStr) {
|
|
@@ -146,7 +146,7 @@ registerAction2(class PreviousTipAction extends Action2 {
|
|
|
146
146
|
constructor() {
|
|
147
147
|
super({
|
|
148
148
|
id: "workbench.action.chat.previousTip",
|
|
149
|
-
title: ( localize2(
|
|
149
|
+
title: ( localize2(7255, "Previous tip")),
|
|
150
150
|
icon: Codicon.chevronLeft,
|
|
151
151
|
precondition: ChatContextKeys.multipleChatTips,
|
|
152
152
|
f1: false,
|
|
@@ -166,7 +166,7 @@ registerAction2(class NextTipAction extends Action2 {
|
|
|
166
166
|
constructor() {
|
|
167
167
|
super({
|
|
168
168
|
id: "workbench.action.chat.nextTip",
|
|
169
|
-
title: ( localize2(
|
|
169
|
+
title: ( localize2(7256, "Next tip")),
|
|
170
170
|
icon: Codicon.chevronRight,
|
|
171
171
|
precondition: ChatContextKeys.multipleChatTips,
|
|
172
172
|
f1: false,
|
|
@@ -186,7 +186,7 @@ registerAction2(class DismissTipToolbarAction extends Action2 {
|
|
|
186
186
|
constructor() {
|
|
187
187
|
super({
|
|
188
188
|
id: "workbench.action.chat.dismissTipToolbar",
|
|
189
|
-
title: ( localize2(
|
|
189
|
+
title: ( localize2(7257, "Dismiss tip")),
|
|
190
190
|
icon: Codicon.check,
|
|
191
191
|
f1: false,
|
|
192
192
|
menu: [{
|
|
@@ -204,7 +204,7 @@ registerAction2(class DismissTipAction extends Action2 {
|
|
|
204
204
|
constructor() {
|
|
205
205
|
super({
|
|
206
206
|
id: "workbench.action.chat.dismissTip",
|
|
207
|
-
title: ( localize2(
|
|
207
|
+
title: ( localize2(7258, "Dismiss this tip")),
|
|
208
208
|
f1: false,
|
|
209
209
|
menu: [{
|
|
210
210
|
id: MenuId.ChatTipContext,
|
|
@@ -221,7 +221,7 @@ registerAction2(class DisableTipsAction extends Action2 {
|
|
|
221
221
|
constructor() {
|
|
222
222
|
super({
|
|
223
223
|
id: "workbench.action.chat.disableTips",
|
|
224
|
-
title: ( localize2(
|
|
224
|
+
title: ( localize2(7259, "Disable tips")),
|
|
225
225
|
icon: Codicon.bellSlash,
|
|
226
226
|
f1: false,
|
|
227
227
|
menu: [{
|
|
@@ -246,7 +246,7 @@ registerAction2(class ResetDismissedTipsAction extends Action2 {
|
|
|
246
246
|
constructor() {
|
|
247
247
|
super({
|
|
248
248
|
id: "workbench.action.chat.resetDismissedTips",
|
|
249
|
-
title: ( localize2(
|
|
249
|
+
title: ( localize2(7260, "Reset Dismissed Tips")),
|
|
250
250
|
f1: true,
|
|
251
251
|
precondition: ChatContextKeys.enabled
|
|
252
252
|
});
|