@codingame/monaco-vscode-katex-common 31.0.1 → 32.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/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
|
@@ -52,9 +52,6 @@
|
|
|
52
52
|
max-height: min(720px, 75vh);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
.interactive-session .chat-plan-review-container.chat-plan-review-expanded .chat-confirmation-widget-message.chat-plan-review-body {
|
|
56
|
-
max-height: min(600px, 65vh);
|
|
57
|
-
}
|
|
58
55
|
/* ---------- Title bar ---------- */
|
|
59
56
|
.interactive-session .chat-plan-review-container .chat-plan-review-title {
|
|
60
57
|
display: flex;
|
|
@@ -101,18 +98,13 @@
|
|
|
101
98
|
background: var(--vscode-toolbar-hoverBackground) !important;
|
|
102
99
|
}
|
|
103
100
|
|
|
104
|
-
/* Icon-only square buttons (restore, chevron). Exactly 22x22 with no
|
|
105
|
-
* matching `.monaco-button.chat-question-collapse-toggle`. */
|
|
101
|
+
/* Icon-only square buttons (restore, chevron, edit). Exactly 22x22 with no
|
|
102
|
+
* padding, matching `.monaco-button.chat-question-collapse-toggle`. */
|
|
106
103
|
.interactive-session .chat-plan-review-container .monaco-button.chat-plan-review-title-icon-button {
|
|
107
104
|
width: 22px;
|
|
108
105
|
padding: 0;
|
|
109
106
|
}
|
|
110
107
|
|
|
111
|
-
.interactive-session .chat-plan-review-container .monaco-button.chat-plan-review-edit {
|
|
112
|
-
font-size: var(--vscode-chat-font-size-body-s);
|
|
113
|
-
color: var(--vscode-foreground) !important;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
108
|
/* Inline slot in the title bar. The action buttons (Approve + Reject) get
|
|
117
109
|
* re-rendered here when the widget is collapsed so the user can act on the
|
|
118
110
|
* plan without expanding it. */
|
|
@@ -129,15 +121,44 @@
|
|
|
129
121
|
display: flex;
|
|
130
122
|
}
|
|
131
123
|
|
|
132
|
-
|
|
124
|
+
/* Action button row sizing — shared between the inline (collapsed) action
|
|
125
|
+
* slot in the title bar and the footer. Keep these two rule sets together so
|
|
126
|
+
* any tweaks stay in sync. */
|
|
127
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-inline-actions .monaco-button,
|
|
128
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-footer .monaco-button {
|
|
133
129
|
width: auto;
|
|
134
130
|
min-width: auto;
|
|
135
131
|
padding: 0 10px;
|
|
136
132
|
height: 22px;
|
|
137
133
|
}
|
|
138
134
|
|
|
139
|
-
.interactive-session .chat-plan-review-container .chat-plan-review-inline-actions .monaco-button-dropdown
|
|
135
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-inline-actions .monaco-button-dropdown,
|
|
136
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-footer .monaco-button-dropdown {
|
|
140
137
|
width: auto;
|
|
138
|
+
height: 22px;
|
|
139
|
+
align-items: center;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-inline-actions .monaco-button-dropdown > .monaco-button,
|
|
143
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-footer .monaco-button-dropdown > .monaco-button {
|
|
144
|
+
height: 22px;
|
|
145
|
+
box-sizing: border-box;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-inline-actions .monaco-button-dropdown > .monaco-button.monaco-dropdown-button,
|
|
149
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-footer .monaco-button-dropdown > .monaco-button.monaco-dropdown-button {
|
|
150
|
+
padding: 0 4px;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* The default-colors separator has `padding: 4px 0` plus 1px top/bottom
|
|
154
|
+
* borders; with content-box sizing it would visually overflow the 22px
|
|
155
|
+
* dropdown wrapper and make the chevron half look taller than the primary
|
|
156
|
+
* button. Force border-box and a fixed height so it matches. */
|
|
157
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-inline-actions .monaco-button-dropdown > .monaco-button-dropdown-separator,
|
|
158
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-footer .monaco-button-dropdown > .monaco-button-dropdown-separator {
|
|
159
|
+
box-sizing: border-box;
|
|
160
|
+
height: 22px;
|
|
161
|
+
padding: 3px 0;
|
|
141
162
|
}
|
|
142
163
|
|
|
143
164
|
/* ---------- Scrollable markdown body ----------
|
|
@@ -146,17 +167,19 @@
|
|
|
146
167
|
* to clip and display its scrollbar against. DomScrollableElement sets the
|
|
147
168
|
* inner element's `overflow: hidden` inline, so we don't set overflow here. */
|
|
148
169
|
.interactive-session .chat-plan-review-container .chat-confirmation-widget-message-scrollable.chat-plan-review-body-scrollable {
|
|
149
|
-
flex: 1;
|
|
170
|
+
flex: 1 1 auto;
|
|
150
171
|
min-height: 0;
|
|
151
172
|
}
|
|
152
173
|
|
|
174
|
+
/* The inner element must fill the wrapper exactly — `DomScrollableElement`
|
|
175
|
+
* measures `clientHeight` against it, so a taller layout height would break
|
|
176
|
+
* scrollbar geometry once the feedback section claims part of the widget. */
|
|
153
177
|
.interactive-session .chat-plan-review-container .chat-confirmation-widget-message.chat-plan-review-body {
|
|
154
|
-
flex: 1;
|
|
155
|
-
min-height: 0;
|
|
156
|
-
max-height: min(300px, 40vh);
|
|
157
178
|
padding: 6px 12px;
|
|
158
179
|
background: transparent;
|
|
159
180
|
border-bottom: none;
|
|
181
|
+
height: 100%;
|
|
182
|
+
box-sizing: border-box;
|
|
160
183
|
}
|
|
161
184
|
|
|
162
185
|
.interactive-session .chat-plan-review-container .chat-confirmation-widget-message.chat-plan-review-body .rendered-markdown p:first-child {
|
|
@@ -165,6 +188,20 @@
|
|
|
165
188
|
|
|
166
189
|
.interactive-session .chat-plan-review-container .chat-confirmation-widget-message.chat-plan-review-body .rendered-markdown > :last-child {
|
|
167
190
|
margin-bottom: 0;
|
|
191
|
+
margin-top: 0;
|
|
192
|
+
padding-inline-start: 20px;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.interactive-session .chat-plan-review-container .chat-confirmation-widget-message.chat-plan-review-body.chat-plan-review-body-editor {
|
|
196
|
+
min-height: min(280px, 35vh);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.interactive-session .chat-plan-review-container.chat-plan-review-expanded .chat-confirmation-widget-message.chat-plan-review-body.chat-plan-review-body-editor {
|
|
200
|
+
min-height: min(520px, 60vh);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-body-editor > .monaco-editor {
|
|
204
|
+
height: 100%;
|
|
168
205
|
}
|
|
169
206
|
|
|
170
207
|
/* ---------- Feedback section (fixed; outside scroll) ---------- */
|
|
@@ -177,7 +214,17 @@
|
|
|
177
214
|
flex-shrink: 0;
|
|
178
215
|
}
|
|
179
216
|
|
|
217
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-feedback-header {
|
|
218
|
+
display: flex;
|
|
219
|
+
align-items: center;
|
|
220
|
+
justify-content: space-between;
|
|
221
|
+
gap: 6px;
|
|
222
|
+
min-width: 0;
|
|
223
|
+
}
|
|
224
|
+
|
|
180
225
|
.interactive-session .chat-plan-review-container .chat-plan-review-feedback-label {
|
|
226
|
+
flex: 1;
|
|
227
|
+
min-width: 0;
|
|
181
228
|
font-size: var(--vscode-chat-font-size-body-s);
|
|
182
229
|
color: var(--vscode-descriptionForeground);
|
|
183
230
|
}
|
|
@@ -209,29 +256,124 @@
|
|
|
209
256
|
color: var(--vscode-input-placeholderForeground);
|
|
210
257
|
}
|
|
211
258
|
|
|
212
|
-
/* ----------
|
|
213
|
-
.interactive-session .chat-plan-review-container
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
259
|
+
/* ---------- Inline comments list (anchored feedback captured from editor) ---------- */
|
|
260
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comments-list-scrollable {
|
|
261
|
+
margin-bottom: 2px;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comments-list {
|
|
265
|
+
display: flex;
|
|
266
|
+
flex-direction: column;
|
|
267
|
+
gap: 2px;
|
|
268
|
+
max-height: 100px;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-row {
|
|
272
|
+
display: flex;
|
|
273
|
+
align-items: stretch;
|
|
274
|
+
min-width: 0;
|
|
275
|
+
border: 1px solid transparent;
|
|
276
|
+
border-radius: 4px;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-row:hover {
|
|
280
|
+
background: var(--vscode-list-hoverBackground);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-row:focus-within {
|
|
284
|
+
outline: 1px solid var(--vscode-focusBorder);
|
|
285
|
+
outline-offset: -1px;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-reveal {
|
|
289
|
+
flex: 1;
|
|
290
|
+
min-width: 0;
|
|
291
|
+
display: flex;
|
|
292
|
+
align-items: baseline;
|
|
293
|
+
gap: 8px;
|
|
294
|
+
padding: 3px 6px;
|
|
295
|
+
background: transparent;
|
|
296
|
+
border: none;
|
|
297
|
+
color: var(--vscode-foreground);
|
|
298
|
+
font: inherit;
|
|
299
|
+
font-size: var(--vscode-chat-font-size-body-s);
|
|
300
|
+
text-align: left;
|
|
301
|
+
cursor: pointer;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-reveal:focus {
|
|
305
|
+
outline: none;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-remove {
|
|
217
309
|
flex-shrink: 0;
|
|
310
|
+
display: inline-flex;
|
|
311
|
+
align-items: center;
|
|
312
|
+
justify-content: center;
|
|
313
|
+
width: 22px;
|
|
314
|
+
padding: 0;
|
|
315
|
+
background: transparent;
|
|
316
|
+
border: none;
|
|
317
|
+
color: var(--vscode-icon-foreground);
|
|
318
|
+
cursor: pointer;
|
|
319
|
+
opacity: 0;
|
|
320
|
+
transition: opacity 0.1s ease-in-out;
|
|
218
321
|
}
|
|
219
322
|
|
|
220
|
-
.interactive-session .chat-plan-review-container
|
|
323
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-row:hover .chat-plan-review-comment-remove,
|
|
324
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-row:focus-within .chat-plan-review-comment-remove,
|
|
325
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-remove:focus {
|
|
326
|
+
opacity: 1;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-remove:hover {
|
|
330
|
+
background: var(--vscode-toolbar-hoverBackground);
|
|
331
|
+
border-radius: 4px;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-line {
|
|
335
|
+
flex-shrink: 0;
|
|
336
|
+
color: var(--vscode-descriptionForeground);
|
|
337
|
+
font-variant-numeric: tabular-nums;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-comment-text {
|
|
341
|
+
flex: 1;
|
|
342
|
+
min-width: 0;
|
|
343
|
+
white-space: nowrap;
|
|
344
|
+
overflow: hidden;
|
|
345
|
+
text-overflow: ellipsis;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/* ---------- Feedback header actions (Back, Clear All) ---------- */
|
|
349
|
+
.interactive-session .chat-plan-review-container .chat-plan-review-feedback-header-actions {
|
|
221
350
|
display: flex;
|
|
222
|
-
column-gap: 6px;
|
|
223
351
|
align-items: center;
|
|
352
|
+
gap: 4px;
|
|
353
|
+
flex-shrink: 0;
|
|
224
354
|
}
|
|
225
355
|
|
|
226
|
-
.interactive-session .chat-plan-review-container .chat-plan-review-
|
|
356
|
+
.interactive-session .chat-plan-review-container .monaco-button.chat-plan-review-feedback-close,
|
|
357
|
+
.interactive-session .chat-plan-review-container .monaco-button.chat-plan-review-feedback-clear-all,
|
|
358
|
+
.interactive-session .chat-plan-review-container .monaco-button.chat-plan-review-review-button:not(.chat-plan-review-title-icon-button) {
|
|
227
359
|
width: auto;
|
|
228
360
|
min-width: auto;
|
|
229
|
-
padding: 0
|
|
361
|
+
padding: 0 8px;
|
|
230
362
|
height: 22px;
|
|
231
363
|
}
|
|
232
364
|
|
|
233
|
-
|
|
234
|
-
|
|
365
|
+
/* ---------- Footer buttons ---------- */
|
|
366
|
+
.interactive-session .chat-plan-review-container > .chat-confirmation-widget2.chat-plan-review > .chat-confirmation-widget-buttons.chat-plan-review-footer {
|
|
367
|
+
justify-content: flex-start;
|
|
368
|
+
border-top: 1px solid var(--vscode-chat-requestBorder);
|
|
369
|
+
padding: 6px 8px;
|
|
370
|
+
flex-shrink: 0;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.interactive-session .chat-plan-review-container > .chat-confirmation-widget2.chat-plan-review > .chat-confirmation-widget-buttons.chat-plan-review-footer .chat-buttons {
|
|
374
|
+
display: flex;
|
|
375
|
+
column-gap: 6px;
|
|
376
|
+
align-items: center;
|
|
235
377
|
}
|
|
236
378
|
|
|
237
379
|
/* ---------- Hidden helper ---------- */
|
|
@@ -62,12 +62,11 @@
|
|
|
62
62
|
display: flex;
|
|
63
63
|
flex-direction: column;
|
|
64
64
|
flex-shrink: 0;
|
|
65
|
-
overflow: hidden;
|
|
66
65
|
|
|
67
66
|
.chat-question-title-row {
|
|
68
67
|
display: flex;
|
|
69
68
|
justify-content: space-between;
|
|
70
|
-
align-items:
|
|
69
|
+
align-items: flex-start;
|
|
71
70
|
gap: 8px;
|
|
72
71
|
min-width: 0;
|
|
73
72
|
padding: 8px 8px 8px 16px;
|
|
@@ -77,8 +76,9 @@
|
|
|
77
76
|
.chat-question-title {
|
|
78
77
|
flex: 1;
|
|
79
78
|
min-width: 0;
|
|
80
|
-
word-
|
|
81
|
-
overflow-wrap:
|
|
79
|
+
word-break: break-word;
|
|
80
|
+
overflow-wrap: anywhere;
|
|
81
|
+
white-space: normal;
|
|
82
82
|
font-weight: 500;
|
|
83
83
|
font-size: var(--vscode-chat-font-size-body-s);
|
|
84
84
|
margin: 0;
|
|
@@ -462,6 +462,13 @@
|
|
|
462
462
|
}
|
|
463
463
|
}
|
|
464
464
|
|
|
465
|
+
/* user-select: text for elicitation dialog text areas */
|
|
466
|
+
.interactive-session .chat-question-carousel-container .chat-question-detailed-message,
|
|
467
|
+
.interactive-session .chat-question-carousel-container .chat-question-description {
|
|
468
|
+
user-select: text;
|
|
469
|
+
-webkit-user-select: text;
|
|
470
|
+
}
|
|
471
|
+
|
|
465
472
|
/* carousel-level message (e.g. from MCP elicitation) */
|
|
466
473
|
.interactive-session .chat-question-carousel-container .chat-question-carousel-message {
|
|
467
474
|
padding: 8px 16px 0;
|
|
@@ -470,6 +477,8 @@
|
|
|
470
477
|
max-height: min(220px, 25vh);
|
|
471
478
|
overflow-y: auto;
|
|
472
479
|
overscroll-behavior: contain;
|
|
480
|
+
user-select: text;
|
|
481
|
+
-webkit-user-select: text;
|
|
473
482
|
|
|
474
483
|
.rendered-markdown p {
|
|
475
484
|
margin: 0;
|
|
@@ -151,6 +151,29 @@
|
|
|
151
151
|
opacity: 0.4;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
+
.monaco-button.chat-tool-carousel-header-button {
|
|
155
|
+
min-width: 22px;
|
|
156
|
+
width: 22px;
|
|
157
|
+
height: 22px;
|
|
158
|
+
padding: 0;
|
|
159
|
+
border: none !important;
|
|
160
|
+
box-shadow: none !important;
|
|
161
|
+
background: transparent !important;
|
|
162
|
+
color: var(--vscode-icon-foreground) !important;
|
|
163
|
+
cursor: pointer;
|
|
164
|
+
display: flex;
|
|
165
|
+
align-items: center;
|
|
166
|
+
justify-content: center;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.monaco-button.chat-tool-carousel-header-button:hover:not(.disabled) {
|
|
170
|
+
background: var(--vscode-toolbar-hoverBackground) !important;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
&.chat-tool-carousel-content-expanded {
|
|
174
|
+
max-height: min(650px, 70vh);
|
|
175
|
+
}
|
|
176
|
+
|
|
154
177
|
.monaco-list:focus {
|
|
155
178
|
outline: none !important;
|
|
156
179
|
}
|
|
@@ -211,6 +234,12 @@
|
|
|
211
234
|
max-height: min(200px, 30vh);
|
|
212
235
|
}
|
|
213
236
|
|
|
237
|
+
.chat-tool-carousel-content-expanded & {
|
|
238
|
+
.chat-confirmation-widget-message {
|
|
239
|
+
max-height: min(500px, 55vh);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
214
243
|
.chat-confirmation-message-terminal-editor .interactive-result-code-block {
|
|
215
244
|
background-color: var(--vscode-sideBar-background);
|
|
216
245
|
}
|
|
@@ -37,6 +37,7 @@ export declare abstract class AbstractToolConfirmationSubPart extends BaseChatTo
|
|
|
37
37
|
constructor(toolInvocation: IChatToolInvocation, context: IChatContentPartRenderContext, instantiationService: IInstantiationService, keybindingService: IKeybindingService, contextKeyService: IContextKeyService, chatWidgetService: IChatWidgetService, languageModelToolsService: ILanguageModelToolsService);
|
|
38
38
|
protected render(config: IToolConfirmationConfig): void;
|
|
39
39
|
protected confirmWith(toolInvocation: IChatToolInvocation, reason: ConfirmedReason): void;
|
|
40
|
+
private buildCustomOptionButtons;
|
|
40
41
|
protected additionalPrimaryActions(): AbstractToolPrimaryAction[];
|
|
41
42
|
/**
|
|
42
43
|
* When true, "Allow Once" stays the primary button even when a
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { Separator } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
|
|
3
4
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
4
5
|
import { toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
6
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
6
7
|
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
7
8
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
8
9
|
import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
|
|
10
|
+
import { ConfirmationOptionKind } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/state';
|
|
9
11
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
10
12
|
import { IChatToolInvocation, ToolConfirmKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
11
13
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
|
|
@@ -42,19 +44,10 @@ let AbstractToolConfirmationSubPart = class AbstractToolConfirmationSubPart exte
|
|
|
42
44
|
toolInvocation
|
|
43
45
|
} = this;
|
|
44
46
|
const state = toolInvocation.state.get();
|
|
45
|
-
const
|
|
47
|
+
const customOptions = state.type === IChatToolInvocation.StateKind.WaitingForConfirmation ? state.confirmationMessages?.customOptions : undefined;
|
|
46
48
|
let buttons;
|
|
47
|
-
if (
|
|
48
|
-
buttons =
|
|
49
|
-
label,
|
|
50
|
-
data: () => {
|
|
51
|
-
this.confirmWith(toolInvocation, {
|
|
52
|
-
type: ToolConfirmKind.UserAction,
|
|
53
|
-
selectedButton: label
|
|
54
|
-
});
|
|
55
|
-
},
|
|
56
|
-
isSecondary: index > 0
|
|
57
|
-
})));
|
|
49
|
+
if (customOptions && customOptions.length > 0) {
|
|
50
|
+
buttons = this.buildCustomOptionButtons(toolInvocation, customOptions);
|
|
58
51
|
} else {
|
|
59
52
|
const allowTooltip = keybindingService.appendKeybinding(config.allowLabel, config.allowActionId);
|
|
60
53
|
const skipTooltip = keybindingService.appendKeybinding(config.skipLabel, config.skipActionId);
|
|
@@ -77,7 +70,7 @@ let AbstractToolConfirmationSubPart = class AbstractToolConfirmationSubPart exte
|
|
|
77
70
|
data: primaryAction.data,
|
|
78
71
|
moreActions: moreActions.length > 0 ? moreActions : undefined
|
|
79
72
|
}, {
|
|
80
|
-
label: ( localize(
|
|
73
|
+
label: ( localize(7304, "Skip")),
|
|
81
74
|
tooltip: skipTooltip,
|
|
82
75
|
data: () => {
|
|
83
76
|
this.confirmWith(toolInvocation, {
|
|
@@ -105,9 +98,16 @@ let AbstractToolConfirmationSubPart = class AbstractToolConfirmationSubPart exte
|
|
|
105
98
|
);
|
|
106
99
|
const hasToolConfirmation = ChatContextKeys.Editing.hasToolConfirmation.bindTo(this.contextKeyService);
|
|
107
100
|
hasToolConfirmation.set(true);
|
|
108
|
-
this._register(confirmWidget.onDidClick(
|
|
101
|
+
this._register(confirmWidget.onDidClick((
|
|
102
|
+
{
|
|
103
|
+
button,
|
|
104
|
+
isTouchClick
|
|
105
|
+
}
|
|
106
|
+
) => {
|
|
109
107
|
button.data();
|
|
110
|
-
|
|
108
|
+
if (!isTouchClick) {
|
|
109
|
+
this.chatWidgetService.getWidgetBySessionResource(this.context.element.sessionResource)?.focusInput();
|
|
110
|
+
}
|
|
111
111
|
}));
|
|
112
112
|
this._register(toDisposable(() => hasToolConfirmation.reset()));
|
|
113
113
|
this.domNode = confirmWidget.domNode;
|
|
@@ -115,6 +115,51 @@ let AbstractToolConfirmationSubPart = class AbstractToolConfirmationSubPart exte
|
|
|
115
115
|
confirmWith(toolInvocation, reason) {
|
|
116
116
|
IChatToolInvocation.confirmWith(toolInvocation, reason);
|
|
117
117
|
}
|
|
118
|
+
buildCustomOptionButtons(toolInvocation, options) {
|
|
119
|
+
const approve = [];
|
|
120
|
+
const deny = [];
|
|
121
|
+
for (const option of options) {
|
|
122
|
+
(option.kind === ConfirmationOptionKind.Deny ? deny : approve).push(option);
|
|
123
|
+
}
|
|
124
|
+
const makeAction = option => ({
|
|
125
|
+
label: option.label,
|
|
126
|
+
data: () => {
|
|
127
|
+
this.confirmWith(toolInvocation, {
|
|
128
|
+
type: ToolConfirmKind.UserAction,
|
|
129
|
+
selectedButton: option.id,
|
|
130
|
+
selectedButtonKind: option.kind
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
const makeGroupButton = (group, isSecondary) => {
|
|
135
|
+
const [primary, ...rest] = group;
|
|
136
|
+
const button = {
|
|
137
|
+
...makeAction(primary),
|
|
138
|
+
isSecondary
|
|
139
|
+
};
|
|
140
|
+
if (rest.length > 0) {
|
|
141
|
+
const moreActions = [];
|
|
142
|
+
let prevGroup = primary.group;
|
|
143
|
+
for (const option of rest) {
|
|
144
|
+
if (option.group !== prevGroup) {
|
|
145
|
+
moreActions.push(( new Separator()));
|
|
146
|
+
}
|
|
147
|
+
moreActions.push(makeAction(option));
|
|
148
|
+
prevGroup = option.group;
|
|
149
|
+
}
|
|
150
|
+
button.moreActions = moreActions;
|
|
151
|
+
}
|
|
152
|
+
return button;
|
|
153
|
+
};
|
|
154
|
+
const buttons = [];
|
|
155
|
+
if (approve.length > 0) {
|
|
156
|
+
buttons.push(makeGroupButton(approve, false));
|
|
157
|
+
}
|
|
158
|
+
if (deny.length > 0) {
|
|
159
|
+
buttons.push(makeGroupButton(deny, approve.length > 0));
|
|
160
|
+
}
|
|
161
|
+
return buttons;
|
|
162
|
+
}
|
|
118
163
|
additionalPrimaryActions() {
|
|
119
164
|
return [];
|
|
120
165
|
}
|
|
@@ -46,9 +46,9 @@ let ExtensionsInstallConfirmationWidgetSubPart = class ExtensionsInstallConfirma
|
|
|
46
46
|
append(this.domNode, chatExtensionsContentPart.domNode);
|
|
47
47
|
const state = toolInvocation.state.get();
|
|
48
48
|
if (state.type === IChatToolInvocation.StateKind.WaitingForConfirmation) {
|
|
49
|
-
const allowLabel = ( localize(
|
|
49
|
+
const allowLabel = ( localize(7305, "Allow"));
|
|
50
50
|
const allowTooltip = keybindingService.appendKeybinding(allowLabel, AcceptToolConfirmationActionId);
|
|
51
|
-
const cancelLabel = ( localize(
|
|
51
|
+
const cancelLabel = ( localize(7306, "Cancel"));
|
|
52
52
|
const cancelTooltip = keybindingService.appendKeybinding(cancelLabel, CancelChatActionId);
|
|
53
53
|
const enableAllowButtonEvent = this._register(( new Emitter()));
|
|
54
54
|
const buttons = [{
|
|
@@ -68,18 +68,25 @@ let ExtensionsInstallConfirmationWidgetSubPart = class ExtensionsInstallConfirma
|
|
|
68
68
|
tooltip: cancelTooltip
|
|
69
69
|
}];
|
|
70
70
|
const confirmWidget = this._register(instantiationService.createInstance(ChatConfirmationWidget, context, {
|
|
71
|
-
title: state.confirmationMessages?.title ?? ( localize(
|
|
71
|
+
title: state.confirmationMessages?.title ?? ( localize(7307, "Install Extensions")),
|
|
72
72
|
message: state.confirmationMessages?.message ?? ( localize(
|
|
73
|
-
|
|
73
|
+
7308,
|
|
74
74
|
"Click the Install button on the extension and then press Allow when finished."
|
|
75
75
|
)),
|
|
76
76
|
buttons
|
|
77
77
|
}));
|
|
78
78
|
this._confirmWidget = confirmWidget;
|
|
79
79
|
append(this.domNode, confirmWidget.domNode);
|
|
80
|
-
this._register(confirmWidget.onDidClick(
|
|
80
|
+
this._register(confirmWidget.onDidClick((
|
|
81
|
+
{
|
|
82
|
+
button,
|
|
83
|
+
isTouchClick
|
|
84
|
+
}
|
|
85
|
+
) => {
|
|
81
86
|
IChatToolInvocation.confirmWith(toolInvocation, button.data);
|
|
82
|
-
|
|
87
|
+
if (!isTouchClick) {
|
|
88
|
+
chatWidgetService.getWidgetBySessionResource(context.element.sessionResource)?.focusInput();
|
|
89
|
+
}
|
|
83
90
|
}));
|
|
84
91
|
const hasToolConfirmationKey = ChatContextKeys.Editing.hasToolConfirmation.bindTo(contextKeyService);
|
|
85
92
|
hasToolConfirmationKey.set(true);
|
|
@@ -84,7 +84,7 @@ let ChatMcpAppModel = class ChatMcpAppModel extends Disposable {
|
|
|
84
84
|
this._height = ChatMcpAppModel_1.heightCache.get(this.toolInvocation) ?? 300;
|
|
85
85
|
this._webview = this._register(this._webviewService.createWebviewElement({
|
|
86
86
|
origin: this._webviewOrigin,
|
|
87
|
-
title: ( localize(
|
|
87
|
+
title: ( localize(7309, "MCP App")),
|
|
88
88
|
options: {
|
|
89
89
|
purpose: WebviewContentPurpose.ChatOutputItem,
|
|
90
90
|
enableFindWidget: false,
|
|
@@ -100,7 +100,7 @@ let ChatMcpAppSubPart = class ChatMcpAppSubPart extends BaseChatToolInvocationSu
|
|
|
100
100
|
{
|
|
101
101
|
container.style.display = "none";
|
|
102
102
|
const progressMessage = $("span");
|
|
103
|
-
progressMessage.textContent = ( localize(
|
|
103
|
+
progressMessage.textContent = ( localize(7310, "Loading MCP App..."));
|
|
104
104
|
const progressPart = this._instantiationService.createInstance(
|
|
105
105
|
ChatProgressSubPart,
|
|
106
106
|
progressMessage,
|
|
@@ -130,12 +130,12 @@ let ChatMcpAppSubPart = class ChatMcpAppSubPart extends BaseChatToolInvocationSu
|
|
|
130
130
|
_showError(container, error) {
|
|
131
131
|
const errorNode = $(".mcp-app-error");
|
|
132
132
|
const errorMessage = ( new MarkdownString());
|
|
133
|
-
errorMessage.appendText(( localize(
|
|
133
|
+
errorMessage.appendText(( localize(7311, "Error loading MCP App: {0}", error.message || String(error))));
|
|
134
134
|
const errorWidget = this._register(( new ChatErrorWidget(ChatErrorLevel.Error, errorMessage, this._markdownRendererService)));
|
|
135
135
|
errorNode.appendChild(errorWidget.domNode);
|
|
136
136
|
const buttonContainer = append(errorNode, $(".chat-buttons-container"));
|
|
137
137
|
const retryButton = this._register(( new Button(buttonContainer, defaultButtonStyles)));
|
|
138
|
-
retryButton.label = ( localize(
|
|
138
|
+
retryButton.label = ( localize(7312, "Retry"));
|
|
139
139
|
this._register(retryButton.onDidClick(() => {
|
|
140
140
|
this._model.retry();
|
|
141
141
|
}));
|
|
@@ -38,8 +38,8 @@ let ChatMissingSandboxDepsConfirmationSubPart = class ChatMissingSandboxDepsConf
|
|
|
38
38
|
this.render({
|
|
39
39
|
allowActionId: AcceptToolConfirmationActionId,
|
|
40
40
|
skipActionId: SkipToolConfirmationActionId,
|
|
41
|
-
allowLabel: ( localize(
|
|
42
|
-
skipLabel: ( localize(
|
|
41
|
+
allowLabel: ( localize(7313, "Install")),
|
|
42
|
+
skipLabel: ( localize(7314, "Cancel")),
|
|
43
43
|
partType: "chatMissingSandboxDepsConfirmation"
|
|
44
44
|
});
|
|
45
45
|
}
|
|
@@ -73,9 +73,16 @@ let ChatModifiedFilesConfirmationSubPart = class ChatModifiedFilesConfirmationSu
|
|
|
73
73
|
);
|
|
74
74
|
const hasToolConfirmation = ChatContextKeys.Editing.hasToolConfirmation.bindTo(this.contextKeyService);
|
|
75
75
|
hasToolConfirmation.set(true);
|
|
76
|
-
this._register(confirmWidget.onDidClick(
|
|
76
|
+
this._register(confirmWidget.onDidClick((
|
|
77
|
+
{
|
|
78
|
+
button,
|
|
79
|
+
isTouchClick
|
|
80
|
+
}
|
|
81
|
+
) => {
|
|
77
82
|
button.data();
|
|
78
|
-
|
|
83
|
+
if (!isTouchClick) {
|
|
84
|
+
this.chatWidgetService.getWidgetBySessionResource(this.context.element.sessionResource)?.focusInput();
|
|
85
|
+
}
|
|
79
86
|
}));
|
|
80
87
|
this._register(toDisposable(() => hasToolConfirmation.reset()));
|
|
81
88
|
this.domNode = confirmWidget.domNode;
|
|
@@ -130,7 +137,7 @@ let ChatModifiedFilesConfirmationSubPart = class ChatModifiedFilesConfirmationSu
|
|
|
130
137
|
const addedSpan = append(countsContainer, $(".working-set-lines-added"));
|
|
131
138
|
const removedSpan = append(countsContainer, $(".working-set-lines-removed"));
|
|
132
139
|
titleButton.element.appendChild(countsContainer);
|
|
133
|
-
const filesLabel = data.modifiedFiles.length === 1 ? ( localize(
|
|
140
|
+
const filesLabel = data.modifiedFiles.length === 1 ? ( localize(7315, "1 file changed")) : ( localize(7316, "{0} files changed", data.modifiedFiles.length));
|
|
134
141
|
titleButton.label = filesLabel;
|
|
135
142
|
let added = 0;
|
|
136
143
|
let removed = 0;
|
|
@@ -146,13 +153,13 @@ let ChatModifiedFilesConfirmationSubPart = class ChatModifiedFilesConfirmationSu
|
|
|
146
153
|
addedSpan.textContent = `+${added}`;
|
|
147
154
|
removedSpan.textContent = `-${removed}`;
|
|
148
155
|
titleButton.element.setAttribute("aria-label", ( localize(
|
|
149
|
-
|
|
156
|
+
7317,
|
|
150
157
|
"{0}, {1} lines added, {2} lines removed",
|
|
151
158
|
filesLabel,
|
|
152
159
|
added,
|
|
153
160
|
removed
|
|
154
161
|
)));
|
|
155
|
-
countsContainer.setAttribute("aria-label", ( localize(
|
|
162
|
+
countsContainer.setAttribute("aria-label", ( localize(7318, "{0} lines added, {1} lines removed", added, removed)));
|
|
156
163
|
} else {
|
|
157
164
|
countsContainer.remove();
|
|
158
165
|
titleButton.element.setAttribute("aria-label", filesLabel);
|
|
@@ -162,8 +169,8 @@ let ChatModifiedFilesConfirmationSubPart = class ChatModifiedFilesConfirmationSu
|
|
|
162
169
|
secondary: true,
|
|
163
170
|
small: true,
|
|
164
171
|
supportIcons: true,
|
|
165
|
-
ariaLabel: ( localize(
|
|
166
|
-
title: ( localize(
|
|
172
|
+
ariaLabel: ( localize(7319, "View All Changes")),
|
|
173
|
+
title: ( localize(7319, "View All Changes"))
|
|
167
174
|
})));
|
|
168
175
|
viewAllChangesButton.element.classList.add("default-colors");
|
|
169
176
|
viewAllChangesButton.icon = Codicon.diffMultiple;
|
|
@@ -253,7 +260,7 @@ let ChatModifiedFilesConfirmationSubPart = class ChatModifiedFilesConfirmationSu
|
|
|
253
260
|
}
|
|
254
261
|
async openAllChanges(data) {
|
|
255
262
|
await this.commandService.executeCommand("_workbench.openMultiDiffEditor", {
|
|
256
|
-
title: ( localize(
|
|
263
|
+
title: ( localize(7320, "All Changes")),
|
|
257
264
|
resources: ( data.modifiedFiles.map(file => ({
|
|
258
265
|
originalUri: file.originalContentUri ? URI.revive(file.originalContentUri) : file.originalUri ? URI.revive(file.originalUri) : undefined,
|
|
259
266
|
modifiedUri: file.modifiedContentUri ? URI.revive(file.modifiedContentUri) : URI.revive(file.uri)
|