@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
|
@@ -44,7 +44,7 @@ const toolSetsSchema = {
|
|
|
44
44
|
allowComments: true,
|
|
45
45
|
allowTrailingCommas: true,
|
|
46
46
|
defaultSnippets: [{
|
|
47
|
-
label: ( localize(
|
|
47
|
+
label: ( localize(7013, "Empty tool set")),
|
|
48
48
|
body: {
|
|
49
49
|
"${1:toolSetName}": {
|
|
50
50
|
"tools": ["${2:someTool}", "${3:anotherTool}"],
|
|
@@ -54,7 +54,7 @@ const toolSetsSchema = {
|
|
|
54
54
|
}
|
|
55
55
|
}],
|
|
56
56
|
type: "object",
|
|
57
|
-
description: ( localize(
|
|
57
|
+
description: ( localize(7014, "User tool sets configuration")),
|
|
58
58
|
additionalProperties: {
|
|
59
59
|
type: "object",
|
|
60
60
|
required: ["tools"],
|
|
@@ -62,7 +62,7 @@ const toolSetsSchema = {
|
|
|
62
62
|
properties: {
|
|
63
63
|
tools: {
|
|
64
64
|
description: ( localize(
|
|
65
|
-
|
|
65
|
+
7015,
|
|
66
66
|
"A list of tools or tool sets to include in this tool set. Cannot be empty and must reference tools the way they are referenced in prompts."
|
|
67
67
|
)),
|
|
68
68
|
type: "array",
|
|
@@ -75,7 +75,7 @@ const toolSetsSchema = {
|
|
|
75
75
|
},
|
|
76
76
|
icon: {
|
|
77
77
|
description: ( localize(
|
|
78
|
-
|
|
78
|
+
7016,
|
|
79
79
|
"Icon to use for this tool set in the UI. Uses the \"\\$(name)\"-syntax, like \"\\$(zap)\""
|
|
80
80
|
)),
|
|
81
81
|
type: "string",
|
|
@@ -83,7 +83,7 @@ const toolSetsSchema = {
|
|
|
83
83
|
markdownEnumDescriptions: Array.from(getAllCodicons(), icon => `$(${icon.id})`)
|
|
84
84
|
},
|
|
85
85
|
description: {
|
|
86
|
-
description: ( localize(
|
|
86
|
+
description: ( localize(7017, "A short description of this tool set.")),
|
|
87
87
|
type: "string"
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -184,7 +184,7 @@ let UserToolSetsContributions = class UserToolSetsContributions extends Disposab
|
|
|
184
184
|
});
|
|
185
185
|
for (const item of data) {
|
|
186
186
|
toolEnumValues.push(item.name);
|
|
187
|
-
toolEnumDescriptions.push(( localize(
|
|
187
|
+
toolEnumDescriptions.push(( localize(7018, "{1} ({0})\n\n{2}", item.sourceLabel, item.name, item.description)));
|
|
188
188
|
}
|
|
189
189
|
store.clear();
|
|
190
190
|
reg.registerSchema(toolSetSchemaId, toolSetsSchema, store);
|
|
@@ -281,8 +281,8 @@ class ConfigureToolSets extends Action2 {
|
|
|
281
281
|
constructor() {
|
|
282
282
|
super({
|
|
283
283
|
id: ConfigureToolSets.ID,
|
|
284
|
-
title: ( localize2(
|
|
285
|
-
shortTitle: ( localize(
|
|
284
|
+
title: ( localize2(7019, "Configure Tool Sets...")),
|
|
285
|
+
shortTitle: ( localize(7020, "Tool Sets")),
|
|
286
286
|
category: CHAT_CATEGORY,
|
|
287
287
|
f1: true,
|
|
288
288
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ChatContextKeys.Tools.toolsCount.greater(0))),
|
|
@@ -308,7 +308,7 @@ class ConfigureToolSets extends Action2 {
|
|
|
308
308
|
const textFileService = accessor.get(ITextFileService);
|
|
309
309
|
const picks = [];
|
|
310
310
|
picks.push({
|
|
311
|
-
label: ( localize(
|
|
311
|
+
label: ( localize(7021, "Create new tool sets file...")),
|
|
312
312
|
alwaysShow: true,
|
|
313
313
|
iconClass: ThemeIcon.asClassName(Codicon.plus)
|
|
314
314
|
});
|
|
@@ -325,7 +325,7 @@ class ConfigureToolSets extends Action2 {
|
|
|
325
325
|
}
|
|
326
326
|
const pick = await quickInputService.pick(picks, {
|
|
327
327
|
canPickMany: false,
|
|
328
|
-
placeHolder: ( localize(
|
|
328
|
+
placeHolder: ( localize(7022, "Select a tool set to configure"))
|
|
329
329
|
});
|
|
330
330
|
if (!pick) {
|
|
331
331
|
return;
|
|
@@ -333,13 +333,13 @@ class ConfigureToolSets extends Action2 {
|
|
|
333
333
|
let resource;
|
|
334
334
|
if (!pick.toolset) {
|
|
335
335
|
const name = await quickInputService.input({
|
|
336
|
-
placeHolder: ( localize(
|
|
336
|
+
placeHolder: ( localize(7023, "Type tool sets file name")),
|
|
337
337
|
validateInput: async input => {
|
|
338
338
|
if (!input) {
|
|
339
|
-
return localize(
|
|
339
|
+
return localize(7024, "Invalid file name");
|
|
340
340
|
}
|
|
341
341
|
if (!isValidBasename(input)) {
|
|
342
|
-
return localize(
|
|
342
|
+
return localize(7025, "'{0}' is not a valid file name", input);
|
|
343
343
|
}
|
|
344
344
|
return undefined;
|
|
345
345
|
}
|
|
@@ -49,7 +49,7 @@ let ChatAgentHover = class ChatAgentHover extends Disposable {
|
|
|
49
49
|
this.publisherName = $("span.chat-agent-hover-publisher-name");
|
|
50
50
|
append(hoverElement.publisher, verifiedBadge, this.publisherName);
|
|
51
51
|
hoverElement.warning.appendChild(renderIcon(Codicon.warning));
|
|
52
|
-
hoverElement.warning.appendChild($("span", undefined, ( localize(
|
|
52
|
+
hoverElement.warning.appendChild($("span", undefined, ( localize(7037, "This chat extension is using a reserved name."))));
|
|
53
53
|
}
|
|
54
54
|
setAgent(id) {
|
|
55
55
|
const agent = this.chatAgentService.getAgent(id);
|
|
@@ -92,17 +92,20 @@ let ChatAgentHover = class ChatAgentHover extends Disposable {
|
|
|
92
92
|
};
|
|
93
93
|
ChatAgentHover = ( __decorate([( __param(0, IChatAgentService)), ( __param(1, IExtensionsWorkbenchService)), ( __param(2, IChatAgentNameService))], ChatAgentHover));
|
|
94
94
|
function getChatAgentHoverOptions(getAgent, commandService) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
commandService.executeCommand(showExtensionsWithIdsCommandId, [agent.extensionId.value]);
|
|
103
|
-
}
|
|
95
|
+
const viewExtensionAction = {
|
|
96
|
+
commandId: showExtensionsWithIdsCommandId,
|
|
97
|
+
label: ( localize(7038, "View Extension")),
|
|
98
|
+
run: () => {
|
|
99
|
+
const agent = getAgent();
|
|
100
|
+
if (agent) {
|
|
101
|
+
commandService.executeCommand(showExtensionsWithIdsCommandId, [agent.extensionId.value]);
|
|
104
102
|
}
|
|
105
|
-
}
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
return {
|
|
106
|
+
get actions() {
|
|
107
|
+
return getAgent()?.isCore ? [] : [viewExtensionAction];
|
|
108
|
+
}
|
|
106
109
|
};
|
|
107
110
|
}
|
|
108
111
|
|
|
@@ -152,7 +152,7 @@ let ChatArtifactsWidget = class ChatArtifactsWidget extends Disposable {
|
|
|
152
152
|
return;
|
|
153
153
|
}
|
|
154
154
|
this.domNode.style.display = "";
|
|
155
|
-
titleElement.textContent = data.totalCount === 1 ? ( localize(
|
|
155
|
+
titleElement.textContent = data.totalCount === 1 ? ( localize(7039, "1 Artifact")) : ( localize(7040, "{0} Artifacts", data.totalCount));
|
|
156
156
|
tree.layout(data.treeHeight);
|
|
157
157
|
tree.getHTMLElement().style.height = `${data.treeHeight}px`;
|
|
158
158
|
tree.setChildren(null, data.treeElements);
|
|
@@ -233,7 +233,7 @@ let ChatArtifactsWidget = class ChatArtifactsWidget extends Disposable {
|
|
|
233
233
|
const defaultUri = URI.joinPath(defaultPath, defaultFileName);
|
|
234
234
|
const targetUri = await this._fileDialogService.showSaveDialog({
|
|
235
235
|
defaultUri,
|
|
236
|
-
title: ( localize(
|
|
236
|
+
title: ( localize(7041, "Save Artifact"))
|
|
237
237
|
});
|
|
238
238
|
if (targetUri) {
|
|
239
239
|
const content = await this._fileService.readFile(sourceUri);
|
|
@@ -245,11 +245,11 @@ ChatArtifactsWidget = ChatArtifactsWidget_1 = ( __decorate([( __param(0, IChatAr
|
|
|
245
245
|
function sourceDisplayName(source) {
|
|
246
246
|
switch (source.kind) {
|
|
247
247
|
case "rules":
|
|
248
|
-
return localize(
|
|
248
|
+
return localize(7042, "Rules");
|
|
249
249
|
case "agent":
|
|
250
|
-
return localize(
|
|
250
|
+
return localize(7043, "Agent");
|
|
251
251
|
case "subagent":
|
|
252
|
-
return source.name ?? ( localize(
|
|
252
|
+
return source.name ?? ( localize(7044, "Subagent"));
|
|
253
253
|
}
|
|
254
254
|
}
|
|
255
255
|
function buildTreeElementsFromGroups(sourceGroups, multiSource, onClearSource) {
|
|
@@ -383,12 +383,12 @@ class ChatArtifactsTreeDelegate {
|
|
|
383
383
|
class ChatArtifactsAccessibilityProvider {
|
|
384
384
|
getAriaLabel(element) {
|
|
385
385
|
if (isGroupNode(element)) {
|
|
386
|
-
return localize(
|
|
386
|
+
return localize(7045, "{0} ({1} items)", element.groupName, element.artifacts.length);
|
|
387
387
|
}
|
|
388
388
|
return element.artifact.label;
|
|
389
389
|
}
|
|
390
390
|
getWidgetAriaLabel() {
|
|
391
|
-
return localize(
|
|
391
|
+
return localize(7046, "Chat Artifacts");
|
|
392
392
|
}
|
|
393
393
|
}
|
|
394
394
|
class ChatArtifactGroupRenderer {
|
|
@@ -429,7 +429,7 @@ class ChatArtifactGroupRenderer {
|
|
|
429
429
|
const clearFn = group.onClear;
|
|
430
430
|
templateData.actionBar.push(toAction({
|
|
431
431
|
id: "chatArtifacts.clearSource",
|
|
432
|
-
label: ( localize(
|
|
432
|
+
label: ( localize(7047, "Clear")),
|
|
433
433
|
class: ThemeIcon.asClassName(Codicon.close),
|
|
434
434
|
run: () => clearFn()
|
|
435
435
|
}), {
|
|
@@ -493,14 +493,14 @@ class ChatArtifactLeafRenderer {
|
|
|
493
493
|
const clearFn = onClear;
|
|
494
494
|
actions.push(toAction({
|
|
495
495
|
id: "chatArtifacts.clearSource",
|
|
496
|
-
label: ( localize(
|
|
496
|
+
label: ( localize(7047, "Clear")),
|
|
497
497
|
class: ThemeIcon.asClassName(Codicon.close),
|
|
498
498
|
run: () => clearFn()
|
|
499
499
|
}));
|
|
500
500
|
}
|
|
501
501
|
actions.push(toAction({
|
|
502
502
|
id: "chatArtifacts.save",
|
|
503
|
-
label: ( localize(
|
|
503
|
+
label: ( localize(7048, "Save artifact")),
|
|
504
504
|
class: ThemeIcon.asClassName(Codicon.save),
|
|
505
505
|
run: () => this._onSave(artifact)
|
|
506
506
|
}));
|
|
@@ -28,7 +28,7 @@ let ChatAgentCommandContentPart = class ChatAgentCommandContentPart extends Disp
|
|
|
28
28
|
}, {
|
|
29
29
|
groupId
|
|
30
30
|
}));
|
|
31
|
-
const rerun = ( localize(
|
|
31
|
+
const rerun = ( localize(7049, "Rerun without {0}{1}", chatSubcommandLeader, cmd.name));
|
|
32
32
|
const btn = ( new Button(this.domNode, {
|
|
33
33
|
ariaLabel: rerun
|
|
34
34
|
}));
|
|
@@ -21,14 +21,14 @@ let ChatAnonymousRateLimitedPart = class ChatAnonymousRateLimitedPart extends Di
|
|
|
21
21
|
const messageContainer = append(this.domNode, $(".chat-rate-limited-message"));
|
|
22
22
|
const message = append(messageContainer, $("div"));
|
|
23
23
|
message.textContent = ( localize(
|
|
24
|
-
|
|
24
|
+
7050,
|
|
25
25
|
"Continue the conversation by signing in. Your free account gets 50 premium requests a month plus access to more models and AI features."
|
|
26
26
|
));
|
|
27
27
|
const signInButton = this._register(( new Button(messageContainer, {
|
|
28
28
|
...defaultButtonStyles,
|
|
29
29
|
supportIcons: true
|
|
30
30
|
})));
|
|
31
|
-
signInButton.label = ( localize(
|
|
31
|
+
signInButton.label = ( localize(7051, "Enable more AI features"));
|
|
32
32
|
signInButton.element.classList.add("chat-rate-limited-button");
|
|
33
33
|
this._register(signInButton.onDidClick(async () => {
|
|
34
34
|
const commandId = "workbench.action.chat.triggerSetup";
|
|
@@ -8,10 +8,10 @@ import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
|
8
8
|
import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
|
|
9
9
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
10
10
|
import { ResourceLabels } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/labels';
|
|
11
|
-
import { isImageVariableEntry, OmittedState, getImageAttachmentLimit, isElementVariableEntry, isPromptFileVariableEntry, isPromptTextVariableEntry, isTerminalVariableEntry, isPasteVariableEntry, isNotebookOutputVariableEntry, isSCMHistoryItemVariableEntry, isSCMHistoryItemChangeVariableEntry, isSCMHistoryItemChangeRangeVariableEntry, isWorkspaceVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
|
|
11
|
+
import { isImageVariableEntry, OmittedState, getImageAttachmentLimit, isElementVariableEntry, isPromptFileVariableEntry, isPromptTextVariableEntry, isTerminalVariableEntry, isPasteVariableEntry, isNotebookOutputVariableEntry, isSCMHistoryItemVariableEntry, isSCMHistoryItemChangeVariableEntry, isSCMHistoryItemChangeRangeVariableEntry, isBrowserViewVariableEntry, isWorkspaceVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
|
|
12
12
|
import { ChatResponseReferencePartStatusKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
13
13
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
14
|
-
import { ToolSetOrToolItemAttachmentWidget, ElementChatAttachmentWidget, ImageAttachmentWidget, PromptFileAttachmentWidget, PromptTextAttachmentWidget, FileAttachmentWidget, TerminalCommandAttachmentWidget, PasteAttachmentWidget, NotebookCellOutputChatAttachmentWidget, SCMHistoryItemAttachmentWidget, SCMHistoryItemChangeAttachmentWidget, SCMHistoryItemChangeRangeAttachmentWidget, DefaultChatAttachmentWidget } from '../../attachments/chatAttachmentWidgets.js';
|
|
14
|
+
import { ToolSetOrToolItemAttachmentWidget, ElementChatAttachmentWidget, ImageAttachmentWidget, PromptFileAttachmentWidget, PromptTextAttachmentWidget, FileAttachmentWidget, TerminalCommandAttachmentWidget, PasteAttachmentWidget, NotebookCellOutputChatAttachmentWidget, SCMHistoryItemAttachmentWidget, SCMHistoryItemChangeAttachmentWidget, SCMHistoryItemChangeRangeAttachmentWidget, BrowserViewAttachmentWidget, DefaultChatAttachmentWidget } from '../../attachments/chatAttachmentWidgets.js';
|
|
15
15
|
import { IChatAttachmentWidgetRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.service';
|
|
16
16
|
|
|
17
17
|
let ChatAttachmentsContentPart = class ChatAttachmentsContentPart extends Disposable {
|
|
@@ -215,6 +215,11 @@ let ChatAttachmentsContentPart = class ChatAttachmentsContentPart extends Dispos
|
|
|
215
215
|
shouldFocusClearButton: false,
|
|
216
216
|
supportsDeletion: false
|
|
217
217
|
}, container, this._contextResourceLabels);
|
|
218
|
+
} else if (isBrowserViewVariableEntry(attachment)) {
|
|
219
|
+
widget = this.instantiationService.createInstance(BrowserViewAttachmentWidget, attachment, undefined, {
|
|
220
|
+
shouldFocusClearButton: false,
|
|
221
|
+
supportsDeletion: false
|
|
222
|
+
}, container, this._contextResourceLabels);
|
|
218
223
|
} else if (isWorkspaceVariableEntry(attachment)) {
|
|
219
224
|
return;
|
|
220
225
|
} else {
|
|
@@ -93,7 +93,7 @@ let ChatCheckpointFileChangesSummaryContentPart = class ChatCheckpointFileChange
|
|
|
93
93
|
renderViewAllFileChangesButton(container) {
|
|
94
94
|
const button = container.appendChild($(".chat-view-changes-icon"));
|
|
95
95
|
const hoverDisposable = this.hoverService.setupDelayedHover(button, () => ({
|
|
96
|
-
content: ( localize2(
|
|
96
|
+
content: ( localize2(7052, "View All File Changes"))
|
|
97
97
|
}));
|
|
98
98
|
button.classList.add(...ThemeIcon.asClassNameArray(Codicon.diffMultiple));
|
|
99
99
|
button.setAttribute("role", "button");
|
|
@@ -29,7 +29,7 @@ let ChatCodeCitationContentPart = class ChatCodeCitationContentPart extends Disp
|
|
|
29
29
|
buttonSecondaryHoverBackground: undefined,
|
|
30
30
|
buttonSeparator: undefined
|
|
31
31
|
})));
|
|
32
|
-
button.label = ( localize(
|
|
32
|
+
button.label = ( localize(7053, "View matches"));
|
|
33
33
|
this._register(button.onDidClick(() => {
|
|
34
34
|
const citationText = `# Code Citations\n\n` + ( citations.citations.map(c => `## License: ${c.license}\n${( c.value.toString())}\n\n\`\`\`\n${c.snippet}\n\`\`\`\n\n`)).join("\n");
|
|
35
35
|
this.editorService.openEditor({
|
|
@@ -23,7 +23,7 @@ let ChatCommandButtonContentPart = class ChatCommandButtonContentPart extends Di
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
renderButton(container, command, enabled, secondary) {
|
|
26
|
-
const tooltip = enabled ? command.tooltip : ( localize(
|
|
26
|
+
const tooltip = enabled ? command.tooltip : ( localize(7054, "Button not available in restored chat"));
|
|
27
27
|
const button = this._register(( new Button(container, {
|
|
28
28
|
...defaultButtonStyles,
|
|
29
29
|
supportIcons: true,
|
|
@@ -26,10 +26,10 @@ let ChatConfirmationContentPart = class ChatConfirmationContentPart extends Disp
|
|
|
26
26
|
data: confirmation.data,
|
|
27
27
|
isSecondary: button !== confirmation.buttons?.[0]
|
|
28
28
|
}))) : [{
|
|
29
|
-
label: ( localize(
|
|
29
|
+
label: ( localize(7055, "Accept")),
|
|
30
30
|
data: confirmation.data
|
|
31
31
|
}, {
|
|
32
|
-
label: ( localize(
|
|
32
|
+
label: ( localize(7056, "Dismiss")),
|
|
33
33
|
data: confirmation.data,
|
|
34
34
|
isSecondary: true
|
|
35
35
|
}];
|
|
@@ -41,7 +41,11 @@ let ChatConfirmationContentPart = class ChatConfirmationContentPart extends Disp
|
|
|
41
41
|
})
|
|
42
42
|
);
|
|
43
43
|
confirmationWidget.setShowButtons(!confirmation.isUsed);
|
|
44
|
-
this._register(confirmationWidget.onDidClick(async
|
|
44
|
+
this._register(confirmationWidget.onDidClick(async (
|
|
45
|
+
{
|
|
46
|
+
button: e
|
|
47
|
+
}
|
|
48
|
+
) => {
|
|
45
49
|
if (isResponseVM(element)) {
|
|
46
50
|
const prompt = `${e.label}: "${confirmation.title}"`;
|
|
47
51
|
const options = e.isSecondary ? {
|
|
@@ -18,6 +18,15 @@ export interface IChatConfirmationButton<T> {
|
|
|
18
18
|
readonly onDidChangeDisablement?: Event<boolean>;
|
|
19
19
|
moreActions?: (IChatConfirmationButton<T> | Separator)[];
|
|
20
20
|
}
|
|
21
|
+
export interface IChatConfirmationButtonClickEvent<T> {
|
|
22
|
+
readonly button: IChatConfirmationButton<T>;
|
|
23
|
+
/**
|
|
24
|
+
* True when the click originated from a touch tap (vs. mouse/keyboard/programmatic).
|
|
25
|
+
* Callers that restore focus after confirmation (e.g. to the chat input) should
|
|
26
|
+
* skip that behavior when this is true to avoid popping the on-screen keyboard on mobile.
|
|
27
|
+
*/
|
|
28
|
+
readonly isTouchClick: boolean;
|
|
29
|
+
}
|
|
21
30
|
export interface IChatConfirmationWidgetOptions<T> {
|
|
22
31
|
title: string | IMarkdownString;
|
|
23
32
|
message: string | IMarkdownString;
|
|
@@ -46,7 +55,7 @@ declare abstract class BaseSimpleChatConfirmationWidget<T> extends Disposable {
|
|
|
46
55
|
protected readonly instantiationService: IInstantiationService;
|
|
47
56
|
protected readonly _markdownRendererService: IMarkdownRendererService;
|
|
48
57
|
private _onDidClick;
|
|
49
|
-
get onDidClick(): Event<
|
|
58
|
+
get onDidClick(): Event<IChatConfirmationButtonClickEvent<T>>;
|
|
50
59
|
private _domNode;
|
|
51
60
|
get domNode(): HTMLElement;
|
|
52
61
|
setShowButtons(showButton: boolean): void;
|
|
@@ -67,6 +76,7 @@ export interface IChatConfirmationWidget2Options<T> {
|
|
|
67
76
|
message: string | IMarkdownString | HTMLElement;
|
|
68
77
|
icon?: ThemeIcon;
|
|
69
78
|
subtitle?: string | IMarkdownString;
|
|
79
|
+
footerBanner?: HTMLElement;
|
|
70
80
|
buttons: IChatConfirmationButton<T>[];
|
|
71
81
|
toolbarData?: {
|
|
72
82
|
arg: unknown;
|
|
@@ -81,7 +91,7 @@ declare abstract class BaseChatConfirmationWidget<T> extends Disposable {
|
|
|
81
91
|
private readonly contextMenuService;
|
|
82
92
|
private readonly chatMarkdownAnchorService;
|
|
83
93
|
private _onDidClick;
|
|
84
|
-
get onDidClick(): Event<
|
|
94
|
+
get onDidClick(): Event<IChatConfirmationButtonClickEvent<T>>;
|
|
85
95
|
private _domNode;
|
|
86
96
|
get domNode(): HTMLElement;
|
|
87
97
|
private _buttonsDomNode;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { registerCss } from '@codingame/monaco-vscode-api/css';
|
|
3
3
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
4
4
|
import { createElement, h, DisposableResizeObserver, isHTMLElement, clearNode } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
5
|
+
import { EventType } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/touch';
|
|
5
6
|
import { ButtonWithDropdown, Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
|
|
6
7
|
import { DomScrollableElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
|
|
7
8
|
import { Separator, Action } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
|
|
@@ -133,9 +134,10 @@ let BaseSimpleChatConfirmationWidget = class BaseSimpleChatConfirmationWidget ex
|
|
|
133
134
|
})));
|
|
134
135
|
this.messageScrollable.getDomNode().classList.add("chat-confirmation-widget-message-scrollable");
|
|
135
136
|
messageParent?.insertBefore(this.messageScrollable.getDomNode(), messageNextSibling);
|
|
136
|
-
const messageResizeObserver = this._register(
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
const messageResizeObserver = this._register(new DisposableResizeObserver(
|
|
138
|
+
"BaseSimpleChatConfirmationWidget.message",
|
|
139
|
+
() => this.messageScrollable.scanDomNode()
|
|
140
|
+
));
|
|
139
141
|
this._register(messageResizeObserver.observe(this.messageElement));
|
|
140
142
|
this._register(messageResizeObserver.observe(this.messageScrollable.getDomNode()));
|
|
141
143
|
buttons.forEach(buttonData => {
|
|
@@ -157,7 +159,10 @@ let BaseSimpleChatConfirmationWidget = class BaseSimpleChatConfirmationWidget ex
|
|
|
157
159
|
return action;
|
|
158
160
|
}
|
|
159
161
|
return this._register(( new Action(action.label, action.label, undefined, !action.disabled, () => {
|
|
160
|
-
this._onDidClick.fire(
|
|
162
|
+
this._onDidClick.fire({
|
|
163
|
+
button: action,
|
|
164
|
+
isTouchClick: false
|
|
165
|
+
});
|
|
161
166
|
return Promise.resolve();
|
|
162
167
|
})));
|
|
163
168
|
}))
|
|
@@ -167,7 +172,10 @@ let BaseSimpleChatConfirmationWidget = class BaseSimpleChatConfirmationWidget ex
|
|
|
167
172
|
}
|
|
168
173
|
this._register(button);
|
|
169
174
|
button.label = buttonData.label;
|
|
170
|
-
this._register(button.onDidClick(
|
|
175
|
+
this._register(button.onDidClick(event => this._onDidClick.fire({
|
|
176
|
+
button: buttonData,
|
|
177
|
+
isTouchClick: !!event && event.type === EventType.Tap
|
|
178
|
+
})));
|
|
171
179
|
if (buttonData.onDidChangeDisablement) {
|
|
172
180
|
this._register(buttonData.onDidChangeDisablement(disabled => button.enabled = !disabled));
|
|
173
181
|
}
|
|
@@ -190,9 +198,10 @@ let BaseSimpleChatConfirmationWidget = class BaseSimpleChatConfirmationWidget ex
|
|
|
190
198
|
}
|
|
191
199
|
renderMessage(element) {
|
|
192
200
|
const store = ( new DisposableStore());
|
|
193
|
-
const messageContentResizeObserver = store.add(
|
|
194
|
-
|
|
195
|
-
|
|
201
|
+
const messageContentResizeObserver = store.add(new DisposableResizeObserver(
|
|
202
|
+
"BaseSimpleChatConfirmationWidget.messageContent",
|
|
203
|
+
() => this.messageScrollable.scanDomNode()
|
|
204
|
+
));
|
|
196
205
|
store.add(messageContentResizeObserver.observe(element));
|
|
197
206
|
this.messageContentDisposables.value = store;
|
|
198
207
|
this.messageElement.append(element);
|
|
@@ -268,7 +277,8 @@ let BaseChatConfirmationWidget = class BaseChatConfirmationWidget extends Dispos
|
|
|
268
277
|
subtitle,
|
|
269
278
|
message,
|
|
270
279
|
buttons,
|
|
271
|
-
icon
|
|
280
|
+
icon,
|
|
281
|
+
footerBanner
|
|
272
282
|
} = options;
|
|
273
283
|
const elements = h(
|
|
274
284
|
".chat-confirmation-widget-container@container",
|
|
@@ -281,7 +291,7 @@ let BaseChatConfirmationWidget = class BaseChatConfirmationWidget extends Dispos
|
|
|
281
291
|
h(".chat-confirmation-widget-buttons", [h(".chat-buttons@buttons")])
|
|
282
292
|
])]
|
|
283
293
|
);
|
|
284
|
-
configureAccessibilityContainer(elements.container, title, message);
|
|
294
|
+
configureAccessibilityContainer(elements.container, title, message, footerBanner);
|
|
285
295
|
this._domNode = elements.root;
|
|
286
296
|
this._buttonsDomNode = elements.buttons;
|
|
287
297
|
this._register(
|
|
@@ -299,11 +309,18 @@ let BaseChatConfirmationWidget = class BaseChatConfirmationWidget extends Dispos
|
|
|
299
309
|
})));
|
|
300
310
|
this.messageScrollable.getDomNode().classList.add("chat-confirmation-widget-message-scrollable");
|
|
301
311
|
messageParent?.insertBefore(this.messageScrollable.getDomNode(), messageNextSibling);
|
|
302
|
-
const messageResizeObserver = this._register(
|
|
303
|
-
|
|
304
|
-
|
|
312
|
+
const messageResizeObserver = this._register(new DisposableResizeObserver(
|
|
313
|
+
"BaseChatConfirmationWidget.message",
|
|
314
|
+
() => this.messageScrollable.scanDomNode()
|
|
315
|
+
));
|
|
305
316
|
this._register(messageResizeObserver.observe(this.messageElement));
|
|
306
317
|
this._register(messageResizeObserver.observe(this.messageScrollable.getDomNode()));
|
|
318
|
+
if (footerBanner) {
|
|
319
|
+
this.messageScrollable.getDomNode().insertAdjacentElement("afterend", footerBanner);
|
|
320
|
+
if (!footerBanner.hasAttribute("aria-live")) {
|
|
321
|
+
footerBanner.setAttribute("aria-live", "polite");
|
|
322
|
+
}
|
|
323
|
+
}
|
|
307
324
|
this.updateButtons(buttons);
|
|
308
325
|
if (options?.toolbarData) {
|
|
309
326
|
const overlay = contextKeyService.createOverlay([
|
|
@@ -344,7 +361,10 @@ let BaseChatConfirmationWidget = class BaseChatConfirmationWidget extends Dispos
|
|
|
344
361
|
return action;
|
|
345
362
|
}
|
|
346
363
|
return this._register(( new Action(action.label, action.label, undefined, !action.disabled, () => {
|
|
347
|
-
this._onDidClick.fire(
|
|
364
|
+
this._onDidClick.fire({
|
|
365
|
+
button: action,
|
|
366
|
+
isTouchClick: false
|
|
367
|
+
});
|
|
348
368
|
return Promise.resolve();
|
|
349
369
|
})));
|
|
350
370
|
}))
|
|
@@ -354,7 +374,10 @@ let BaseChatConfirmationWidget = class BaseChatConfirmationWidget extends Dispos
|
|
|
354
374
|
}
|
|
355
375
|
this._register(button);
|
|
356
376
|
button.label = buttonData.label;
|
|
357
|
-
this._register(button.onDidClick(
|
|
377
|
+
this._register(button.onDidClick(event => this._onDidClick.fire({
|
|
378
|
+
button: buttonData,
|
|
379
|
+
isTouchClick: !!event && event.type === EventType.Tap
|
|
380
|
+
})));
|
|
358
381
|
if (buttonData.onDidChangeDisablement) {
|
|
359
382
|
this._register(buttonData.onDidChangeDisablement(disabled => button.enabled = !disabled));
|
|
360
383
|
}
|
|
@@ -381,9 +404,10 @@ let BaseChatConfirmationWidget = class BaseChatConfirmationWidget extends Dispos
|
|
|
381
404
|
}
|
|
382
405
|
clearNode(this.messageElement);
|
|
383
406
|
const store = ( new DisposableStore());
|
|
384
|
-
const messageContentResizeObserver = store.add(
|
|
385
|
-
|
|
386
|
-
|
|
407
|
+
const messageContentResizeObserver = store.add(new DisposableResizeObserver(
|
|
408
|
+
"BaseChatConfirmationWidget.messageContent",
|
|
409
|
+
() => this.messageScrollable.scanDomNode()
|
|
410
|
+
));
|
|
387
411
|
store.add(messageContentResizeObserver.observe(element));
|
|
388
412
|
if (this.markdownContentPart.value) {
|
|
389
413
|
store.add(
|
|
@@ -450,11 +474,18 @@ let ChatCustomConfirmationWidget = class ChatCustomConfirmationWidget extends Ba
|
|
|
450
474
|
}
|
|
451
475
|
};
|
|
452
476
|
ChatCustomConfirmationWidget = ( __decorate([( __param(2, IInstantiationService)), ( __param(3, IMarkdownRendererService)), ( __param(4, IContextMenuService)), ( __param(5, IContextKeyService)), ( __param(6, IChatMarkdownAnchorService))], ChatCustomConfirmationWidget));
|
|
453
|
-
function configureAccessibilityContainer(container, title, message) {
|
|
477
|
+
function configureAccessibilityContainer(container, title, message, footerBanner) {
|
|
454
478
|
container.tabIndex = 0;
|
|
455
479
|
const titleAsString = typeof title === "string" ? title : title.value;
|
|
456
480
|
const messageAsString = typeof message === "string" ? message : message && "value" in message ? message.value : message && "textContent" in message ? message.textContent : "";
|
|
457
|
-
|
|
481
|
+
const bannerAsString = footerBanner?.textContent?.trim() ?? "";
|
|
482
|
+
container.setAttribute("aria-label", bannerAsString ? ( localize(
|
|
483
|
+
7057,
|
|
484
|
+
"Chat Confirmation Dialog {0} {1} {2}",
|
|
485
|
+
titleAsString,
|
|
486
|
+
messageAsString,
|
|
487
|
+
bannerAsString
|
|
488
|
+
)) : ( localize(7058, "Chat Confirmation Dialog {0} {1}", titleAsString, messageAsString)));
|
|
458
489
|
container.classList.add("chat-confirmation-widget-container");
|
|
459
490
|
}
|
|
460
491
|
|
|
@@ -24,13 +24,13 @@ let ChatDisabledClaudeHooksContentPart = class ChatDisabledClaudeHooksContentPar
|
|
|
24
24
|
const icon = $(".chat-disabled-claude-hooks-icon");
|
|
25
25
|
icon.classList.add(...ThemeIcon.asClassNameArray(Codicon.info));
|
|
26
26
|
const enableLink = createMarkdownCommandLink({
|
|
27
|
-
text: ( localize(
|
|
27
|
+
text: ( localize(7059, "Enable")),
|
|
28
28
|
id: "workbench.action.openSettings",
|
|
29
29
|
arguments: [PromptsConfig.USE_CLAUDE_HOOKS],
|
|
30
|
-
tooltip: ( localize(
|
|
30
|
+
tooltip: ( localize(7060, "Open settings to enable Claude Code hooks"))
|
|
31
31
|
});
|
|
32
32
|
const message = ( localize(
|
|
33
|
-
|
|
33
|
+
7061,
|
|
34
34
|
"Claude Code hooks are available for this workspace. {0}",
|
|
35
35
|
enableLink
|
|
36
36
|
));
|
|
@@ -4,7 +4,9 @@ import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platf
|
|
|
4
4
|
import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
|
|
5
5
|
import { IChatProgressRenderableResponseContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel";
|
|
6
6
|
import { IChatElicitationRequest, IChatElicitationRequestSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
7
|
+
import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service";
|
|
7
8
|
import { IChatAccessibilityService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service";
|
|
9
|
+
import { IChatToolRiskAssessmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.service";
|
|
8
10
|
import { IChatContentPart, IChatContentPartRenderContext } from "./chatContentParts.js";
|
|
9
11
|
export declare class ChatElicitationContentPart extends Disposable implements IChatContentPart {
|
|
10
12
|
private readonly elicitation;
|
|
@@ -12,12 +14,15 @@ export declare class ChatElicitationContentPart extends Disposable implements IC
|
|
|
12
14
|
private readonly chatAccessibilityService;
|
|
13
15
|
private readonly contextKeyService;
|
|
14
16
|
private readonly keybindingService;
|
|
17
|
+
private readonly languageModelToolsService;
|
|
18
|
+
private readonly riskAssessmentService;
|
|
15
19
|
readonly domNode: HTMLElement;
|
|
16
20
|
private readonly _confirmWidget;
|
|
17
21
|
get codeblocks(): import("@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat").IChatCodeBlockInfo[] | undefined;
|
|
18
22
|
get codeblocksPartId(): string | undefined;
|
|
19
|
-
constructor(elicitation: IChatElicitationRequest | IChatElicitationRequestSerialized, context: IChatContentPartRenderContext, instantiationService: IInstantiationService, chatAccessibilityService: IChatAccessibilityService, contextKeyService: IContextKeyService, keybindingService: IKeybindingService);
|
|
23
|
+
constructor(elicitation: IChatElicitationRequest | IChatElicitationRequestSerialized, context: IChatContentPartRenderContext, instantiationService: IInstantiationService, chatAccessibilityService: IChatAccessibilityService, contextKeyService: IContextKeyService, keybindingService: IKeybindingService, languageModelToolsService: ILanguageModelToolsService, riskAssessmentService: IChatToolRiskAssessmentService);
|
|
20
24
|
private getMessageToRender;
|
|
25
|
+
private _createRiskBadge;
|
|
21
26
|
hasSameContent(other: IChatProgressRenderableResponseContent): boolean;
|
|
22
27
|
addDisposable(disposable: IDisposable): void;
|
|
23
28
|
}
|