@codingame/monaco-vscode-katex-common 31.0.1 → 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
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts
CHANGED
|
@@ -6,7 +6,6 @@ import { ILanguageModelChatMetadataAndIdentifier } from "@codingame/monaco-vscod
|
|
|
6
6
|
interface IModelSelectionContext {
|
|
7
7
|
readonly location: ChatAgentLocation;
|
|
8
8
|
readonly currentModeKind: ChatModeKind;
|
|
9
|
-
readonly isInlineChatV2Enabled: boolean;
|
|
10
9
|
readonly sessionType: string | undefined;
|
|
11
10
|
}
|
|
12
11
|
/**
|
|
@@ -14,7 +13,7 @@ interface IModelSelectionContext {
|
|
|
14
13
|
* When a session has a specific type (and it's not 'local'), only models targeting that
|
|
15
14
|
* session type are returned. Otherwise, general-purpose models are returned.
|
|
16
15
|
*/
|
|
17
|
-
export declare function filterModelsForSession(models: ILanguageModelChatMetadataAndIdentifier[], sessionType: string | undefined, currentModeKind: ChatModeKind, location: ChatAgentLocation
|
|
16
|
+
export declare function filterModelsForSession(models: ILanguageModelChatMetadataAndIdentifier[], sessionType: string | undefined, currentModeKind: ChatModeKind, location: ChatAgentLocation): ILanguageModelChatMetadataAndIdentifier[];
|
|
18
17
|
/**
|
|
19
18
|
* Check if a model is suitable for the current chat mode (e.g., agent mode requires tool calling).
|
|
20
19
|
*/
|
|
@@ -22,7 +21,7 @@ export declare function isModelSupportedForMode(model: ILanguageModelChatMetadat
|
|
|
22
21
|
/**
|
|
23
22
|
* Check if a model is suitable for inline chat (editor inline) usage.
|
|
24
23
|
*/
|
|
25
|
-
export declare function isModelSupportedForInlineChat(model: ILanguageModelChatMetadataAndIdentifier, location: ChatAgentLocation
|
|
24
|
+
export declare function isModelSupportedForInlineChat(model: ILanguageModelChatMetadataAndIdentifier, location: ChatAgentLocation): boolean;
|
|
26
25
|
/**
|
|
27
26
|
* Check if any models in the pool target a specific session type.
|
|
28
27
|
*/
|
|
@@ -80,12 +79,17 @@ export declare function resolveModelFromSyncState(stateModel: ILanguageModelChat
|
|
|
80
79
|
action: "keep" | "apply" | "default";
|
|
81
80
|
};
|
|
82
81
|
/**
|
|
83
|
-
* Merges live models with cached models per-vendor
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
82
|
+
* Merges live models with cached models per-vendor, evicting cache for vendors
|
|
83
|
+
* no longer contributed.
|
|
84
|
+
*
|
|
85
|
+
* - `resolvedVendors`: vendors whose providers have produced at least one
|
|
86
|
+
* result. An empty live list for these is authoritative (e.g. BYOK key
|
|
87
|
+
* removed) and their cache entries are dropped.
|
|
88
|
+
* - When no contributor info is available yet and there are no live models
|
|
89
|
+
* (startup / extension reload), the full cache is returned to avoid
|
|
90
|
+
* flickering the picker to empty.
|
|
87
91
|
*/
|
|
88
|
-
export declare function mergeModelsWithCache(liveModels: ILanguageModelChatMetadataAndIdentifier[], cachedModels: ILanguageModelChatMetadataAndIdentifier[], contributedVendors: Set<string>): ILanguageModelChatMetadataAndIdentifier[];
|
|
92
|
+
export declare function mergeModelsWithCache(liveModels: ILanguageModelChatMetadataAndIdentifier[], cachedModels: ILanguageModelChatMetadataAndIdentifier[], contributedVendors: Set<string>, resolvedVendors?: ReadonlySet<string>): ILanguageModelChatMetadataAndIdentifier[];
|
|
89
93
|
/**
|
|
90
94
|
* Determines whether the currently selected model should be reset to default
|
|
91
95
|
* when the language model list changes.
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import { ChatModeKind, ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
3
3
|
import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
4
4
|
|
|
5
|
-
function filterModelsForSession(models, sessionType, currentModeKind, location
|
|
5
|
+
function filterModelsForSession(models, sessionType, currentModeKind, location) {
|
|
6
6
|
if (sessionType && sessionType !== "local" && hasModelsTargetingSession(models, sessionType)) {
|
|
7
7
|
return models.filter(
|
|
8
8
|
entry => entry.metadata?.targetChatSessionType === sessionType && entry.metadata?.isUserSelectable
|
|
9
9
|
);
|
|
10
10
|
}
|
|
11
11
|
return models.filter(
|
|
12
|
-
entry => !entry.metadata?.targetChatSessionType && entry.metadata?.isUserSelectable && isModelSupportedForMode(entry, currentModeKind) && isModelSupportedForInlineChat(entry, location
|
|
12
|
+
entry => !entry.metadata?.targetChatSessionType && entry.metadata?.isUserSelectable && isModelSupportedForMode(entry, currentModeKind) && isModelSupportedForInlineChat(entry, location)
|
|
13
13
|
);
|
|
14
14
|
}
|
|
15
15
|
function isModelSupportedForMode(model, currentModeKind) {
|
|
@@ -18,8 +18,8 @@ function isModelSupportedForMode(model, currentModeKind) {
|
|
|
18
18
|
}
|
|
19
19
|
return true;
|
|
20
20
|
}
|
|
21
|
-
function isModelSupportedForInlineChat(model, location
|
|
22
|
-
if (location !== ChatAgentLocation.EditorInline
|
|
21
|
+
function isModelSupportedForInlineChat(model, location) {
|
|
22
|
+
if (location !== ChatAgentLocation.EditorInline) {
|
|
23
23
|
return true;
|
|
24
24
|
}
|
|
25
25
|
return !!model.metadata.capabilities?.toolCalling;
|
|
@@ -68,7 +68,7 @@ function shouldResetModelToDefault(currentModel, availableModels, context, allMo
|
|
|
68
68
|
if (!isModelSupportedForMode(currentModel, context.currentModeKind)) {
|
|
69
69
|
return true;
|
|
70
70
|
}
|
|
71
|
-
if (!isModelSupportedForInlineChat(currentModel, context.location
|
|
71
|
+
if (!isModelSupportedForInlineChat(currentModel, context.location)) {
|
|
72
72
|
return true;
|
|
73
73
|
}
|
|
74
74
|
if (!isModelValidForSession(currentModel, allModels, context.sessionType)) {
|
|
@@ -93,7 +93,7 @@ function resolveModelFromSyncState(stateModel, currentModel, allModels, sessionT
|
|
|
93
93
|
action: "default"
|
|
94
94
|
};
|
|
95
95
|
}
|
|
96
|
-
if (!isModelSupportedForInlineChat(stateModel, context.location
|
|
96
|
+
if (!isModelSupportedForInlineChat(stateModel, context.location)) {
|
|
97
97
|
return {
|
|
98
98
|
action: "default"
|
|
99
99
|
};
|
|
@@ -103,12 +103,13 @@ function resolveModelFromSyncState(stateModel, currentModel, allModels, sessionT
|
|
|
103
103
|
action: "apply"
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
|
-
function mergeModelsWithCache(liveModels, cachedModels, contributedVendors) {
|
|
107
|
-
if (liveModels.length
|
|
108
|
-
|
|
109
|
-
return [...liveModels, ...cachedModels.filter(m => !( liveVendors.has(m.metadata.vendor)) && ( contributedVendors.has(m.metadata.vendor)))];
|
|
106
|
+
function mergeModelsWithCache(liveModels, cachedModels, contributedVendors, resolvedVendors) {
|
|
107
|
+
if (contributedVendors.size === 0 && liveModels.length === 0) {
|
|
108
|
+
return cachedModels;
|
|
110
109
|
}
|
|
111
|
-
|
|
110
|
+
const liveVendors = ( new Set(( liveModels.map(m => m.metadata.vendor))));
|
|
111
|
+
const usableCached = cachedModels.filter(m => ( contributedVendors.has(m.metadata.vendor)) && !( liveVendors.has(m.metadata.vendor)) && !resolvedVendors?.has(m.metadata.vendor));
|
|
112
|
+
return [...liveModels, ...usableCached];
|
|
112
113
|
}
|
|
113
114
|
function shouldResetOnModelListChange(currentModelId, availableModels) {
|
|
114
115
|
if (!currentModelId) {
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.d.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { BaseActionViewItem } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/actionbar/actionViewItems";
|
|
2
|
+
import { IAction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/actions";
|
|
3
|
+
import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
4
|
+
import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
5
|
+
import { IModePickerDelegate } from "./modePickerActionItem.js";
|
|
6
|
+
import { IModelPickerDelegate } from "./modelPickerActionItem.js";
|
|
7
|
+
import { IChatPhoneInputPresenter } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.service";
|
|
8
|
+
/**
|
|
9
|
+
* Implementation of the phone-only chat-input picker presenter, registered
|
|
10
|
+
* by the agents-window (sessions) layer. Stays in `vs/workbench` as an
|
|
11
|
+
* interface so the workbench chat input can compile and run with no
|
|
12
|
+
* sessions dependency; the default singleton is a no-op.
|
|
13
|
+
*/
|
|
14
|
+
export interface IChatPhonePresenterImpl {
|
|
15
|
+
/**
|
|
16
|
+
* Whether the phone presenter is currently active. Workbench code
|
|
17
|
+
* consults this to decide between desktop popups and the bottom-sheet
|
|
18
|
+
* presentation. Drives a `_updateToolbar()` refresh on flips.
|
|
19
|
+
*/
|
|
20
|
+
readonly enabled: IObservable<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* Show a unified bottom sheet listing both Mode and Model rows for the
|
|
23
|
+
* given chat input pickers. Resolves once the user dismisses the sheet.
|
|
24
|
+
*
|
|
25
|
+
* `modeDelegate` / `modelDelegate` are optional: callers without
|
|
26
|
+
* access to a workbench `ChatInputPart` (e.g. the agents-window
|
|
27
|
+
* agent-host mode pill, which does not own the chat input) can pass
|
|
28
|
+
* `undefined` and the implementation will fall back to its
|
|
29
|
+
* agent-host data path.
|
|
30
|
+
*/
|
|
31
|
+
showCombinedModeAndModelSheet(target: HTMLElement, modeDelegate: IModePickerDelegate | undefined, modelDelegate: IModelPickerDelegate | undefined): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
export declare class ChatPhoneInputPresenterService extends Disposable implements IChatPhoneInputPresenter {
|
|
34
|
+
readonly _serviceBrand: undefined;
|
|
35
|
+
private readonly _impl;
|
|
36
|
+
readonly enabled: IObservable<boolean>;
|
|
37
|
+
showCombinedModeAndModelSheet(target: HTMLElement, modeDelegate: IModePickerDelegate | undefined, modelDelegate: IModelPickerDelegate | undefined): Promise<void>;
|
|
38
|
+
setImpl(impl: IChatPhonePresenterImpl): IDisposable;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Phone-only action view item used in place of the desktop Model and Mode
|
|
42
|
+
* pickers. Renders a single chip whose label shows the current model name
|
|
43
|
+
* with the current mode's icon as a leading marker; tapping it opens the
|
|
44
|
+
* unified bottom sheet through the {@link IChatPhoneInputPresenter}.
|
|
45
|
+
*
|
|
46
|
+
* Visually mirrors the chip used in the empty new-chat input (see
|
|
47
|
+
* `MobileChatInputConfigPicker` in `vs/sessions`) so the two chat-input
|
|
48
|
+
* surfaces present a consistent mobile experience.
|
|
49
|
+
*/
|
|
50
|
+
export declare class MobileChatInputCombinedPickerActionItem extends BaseActionViewItem {
|
|
51
|
+
private readonly _modeDelegate;
|
|
52
|
+
private readonly _modelDelegate;
|
|
53
|
+
private readonly _presenter;
|
|
54
|
+
private readonly _renderDisposables;
|
|
55
|
+
private _triggerElement;
|
|
56
|
+
constructor(action: IAction, _modeDelegate: IModePickerDelegate, _modelDelegate: IModelPickerDelegate, _presenter: IChatPhoneInputPresenter);
|
|
57
|
+
render(container: HTMLElement): void;
|
|
58
|
+
private _updateTrigger;
|
|
59
|
+
/** Belt-and-braces: keep the action's `run()` suppressed even if `super.render` is reintroduced. */
|
|
60
|
+
onClick(): void;
|
|
61
|
+
private _showSheet;
|
|
62
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
|
|
2
|
+
import { registerCss } from '@codingame/monaco-vscode-api/css';
|
|
3
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
4
|
+
import * as chatPhoneInputPresenter from './media/chatPhoneInputPresenter.css';
|
|
5
|
+
import { append, $, EventType, addDisposableListener, EventHelper, clearNode } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
6
|
+
import { renderIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabels';
|
|
7
|
+
import { Gesture, EventType as EventType$1 } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/touch';
|
|
8
|
+
import { BaseActionViewItem } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/actionbar/actionViewItems';
|
|
9
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
10
|
+
import { Disposable, toDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
11
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
12
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
13
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
|
|
14
|
+
import { IChatPhoneInputPresenter } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.service';
|
|
15
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
16
|
+
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
17
|
+
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
18
|
+
|
|
19
|
+
registerCss(chatPhoneInputPresenter);
|
|
20
|
+
class ChatPhoneInputPresenterService extends Disposable {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this._impl = observableValue(this, undefined);
|
|
24
|
+
this.enabled = derived(this, reader => {
|
|
25
|
+
const impl = this._impl.read(reader);
|
|
26
|
+
return impl ? impl.enabled.read(reader) : false;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
showCombinedModeAndModelSheet(target, modeDelegate, modelDelegate) {
|
|
30
|
+
const impl = this._impl.get();
|
|
31
|
+
return impl ? impl.showCombinedModeAndModelSheet(target, modeDelegate, modelDelegate) : Promise.resolve();
|
|
32
|
+
}
|
|
33
|
+
setImpl(impl) {
|
|
34
|
+
this._impl.set(impl, undefined);
|
|
35
|
+
return toDisposable(() => {
|
|
36
|
+
if (this._impl.get() === impl) {
|
|
37
|
+
this._impl.set(undefined, undefined);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
let MobileChatInputCombinedPickerActionItem = class MobileChatInputCombinedPickerActionItem extends BaseActionViewItem {
|
|
43
|
+
constructor(action, _modeDelegate, _modelDelegate, _presenter) {
|
|
44
|
+
super(undefined, action);
|
|
45
|
+
this._modeDelegate = _modeDelegate;
|
|
46
|
+
this._modelDelegate = _modelDelegate;
|
|
47
|
+
this._presenter = _presenter;
|
|
48
|
+
this._renderDisposables = this._register(( new DisposableStore()));
|
|
49
|
+
}
|
|
50
|
+
render(container) {
|
|
51
|
+
this.element = container;
|
|
52
|
+
container.classList.add("chat-input-picker-item");
|
|
53
|
+
this._renderDisposables.clear();
|
|
54
|
+
const trigger = append(container, $("a.action-label.chat-phone-input-chip"));
|
|
55
|
+
trigger.tabIndex = 0;
|
|
56
|
+
trigger.role = "button";
|
|
57
|
+
this._triggerElement = trigger;
|
|
58
|
+
this._renderDisposables.add(Gesture.addTarget(trigger));
|
|
59
|
+
for (const eventType of [EventType.CLICK, EventType$1.Tap]) {
|
|
60
|
+
this._renderDisposables.add(addDisposableListener(trigger, eventType, e => {
|
|
61
|
+
EventHelper.stop(e, true);
|
|
62
|
+
this._showSheet();
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
this._renderDisposables.add(addDisposableListener(trigger, EventType.KEY_DOWN, e => {
|
|
66
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
67
|
+
EventHelper.stop(e, true);
|
|
68
|
+
this._showSheet();
|
|
69
|
+
}
|
|
70
|
+
}));
|
|
71
|
+
this._renderDisposables.add(autorun(reader => {
|
|
72
|
+
const currentMode = this._modeDelegate.currentMode.read(reader);
|
|
73
|
+
currentMode.label.read(reader);
|
|
74
|
+
currentMode.icon.read(reader);
|
|
75
|
+
this._modelDelegate.currentModel.read(reader);
|
|
76
|
+
this._updateTrigger();
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
_updateTrigger() {
|
|
80
|
+
const trigger = this._triggerElement;
|
|
81
|
+
if (!trigger) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
clearNode(trigger);
|
|
85
|
+
const currentMode = this._modeDelegate.currentMode.get();
|
|
86
|
+
const modeIcon = currentMode.icon.get();
|
|
87
|
+
if (modeIcon) {
|
|
88
|
+
append(trigger, renderIcon(modeIcon));
|
|
89
|
+
}
|
|
90
|
+
const currentModel = this._modelDelegate.currentModel.get();
|
|
91
|
+
const labelText = currentModel?.metadata.name ?? ( localize(7493, "Auto"));
|
|
92
|
+
const labelSpan = append(trigger, $("span.chat-input-picker-label"));
|
|
93
|
+
labelSpan.textContent = labelText;
|
|
94
|
+
append(trigger, renderIcon(Codicon.chevronDown));
|
|
95
|
+
const ariaParts = [];
|
|
96
|
+
const modeLabel = currentMode.label.get();
|
|
97
|
+
if (modeLabel) {
|
|
98
|
+
ariaParts.push(modeLabel);
|
|
99
|
+
}
|
|
100
|
+
ariaParts.push(labelText);
|
|
101
|
+
trigger.ariaLabel = ( localize(7494, "Pick Mode and Model, {0}", ariaParts.join(", ")));
|
|
102
|
+
}
|
|
103
|
+
onClick() {}
|
|
104
|
+
async _showSheet() {
|
|
105
|
+
const trigger = this._triggerElement;
|
|
106
|
+
if (!trigger) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
trigger.setAttribute("aria-expanded", "true");
|
|
110
|
+
try {
|
|
111
|
+
await this._presenter.showCombinedModeAndModelSheet(trigger, this._modeDelegate, this._modelDelegate);
|
|
112
|
+
} finally {
|
|
113
|
+
trigger.setAttribute("aria-expanded", "false");
|
|
114
|
+
trigger.focus();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
MobileChatInputCombinedPickerActionItem = ( __decorate([( __param(3, IChatPhoneInputPresenter))], MobileChatInputCombinedPickerActionItem));
|
|
119
|
+
|
|
120
|
+
export { ChatPhoneInputPresenterService, MobileChatInputCombinedPickerActionItem };
|
|
@@ -99,13 +99,13 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
99
99
|
_getSessionCategory(sessionTypeItem) {
|
|
100
100
|
if (isFirstPartyAgentSessionProvider(sessionTypeItem.type)) {
|
|
101
101
|
return {
|
|
102
|
-
label: ( localize(
|
|
102
|
+
label: ( localize(7502, "Continue In")),
|
|
103
103
|
order: 1,
|
|
104
104
|
showHeader: true
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
107
|
return {
|
|
108
|
-
label: ( localize(
|
|
108
|
+
label: ( localize(7503, "Continue In (Third Party)")),
|
|
109
109
|
order: 2,
|
|
110
110
|
showHeader: false
|
|
111
111
|
};
|
|
@@ -117,7 +117,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
117
117
|
const learnMoreUrl = "https://aka.ms/vscode-continue-chat-in";
|
|
118
118
|
return {
|
|
119
119
|
id: "workbench.action.chat.agentOverview.learnMoreHandOff",
|
|
120
|
-
label: ( localize(
|
|
120
|
+
label: ( localize(7504, "Learn about agent handoff...")),
|
|
121
121
|
tooltip: learnMoreUrl,
|
|
122
122
|
class: undefined,
|
|
123
123
|
enabled: true,
|
|
@@ -133,7 +133,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
133
133
|
return [{
|
|
134
134
|
id: "newChatSession",
|
|
135
135
|
class: undefined,
|
|
136
|
-
label: ( localize(
|
|
136
|
+
label: ( localize(7505, "New Chat Session")),
|
|
137
137
|
tooltip: "",
|
|
138
138
|
hover: {
|
|
139
139
|
content: ""
|
|
@@ -142,7 +142,7 @@ let DelegationSessionPickerActionItem = class DelegationSessionPickerActionItem
|
|
|
142
142
|
icon: Codicon.plus,
|
|
143
143
|
enabled: true,
|
|
144
144
|
category: {
|
|
145
|
-
label: ( localize(
|
|
145
|
+
label: ( localize(7506, "New Chat Session")),
|
|
146
146
|
order: 0,
|
|
147
147
|
showHeader: false
|
|
148
148
|
},
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
6
|
+
/* Hide the container when no notification is active */
|
|
7
|
+
.interactive-session .interactive-input-part > .chat-input-notification-container:not(.has-notification) {
|
|
8
|
+
display: none;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* Counteract the `.interactive-input-part` `gap: 4px` so the notification attaches to the input. Add extra -6px to account for rounded corners. */
|
|
12
|
+
.interactive-session .interactive-input-part > .chat-input-notification-container {
|
|
13
|
+
margin-bottom: -10px;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.interactive-session .interactive-input-part > .chat-input-notification-container .chat-input-notification {
|
|
17
|
+
/* Padding needs to be -6px for top to account for -10px margin in parent container and 4px for half of chat border radius. */
|
|
18
|
+
padding: 10px 16px 16px 16px;
|
|
19
|
+
box-sizing: border-box;
|
|
20
|
+
border: 1px solid var(--vscode-input-border, transparent);
|
|
21
|
+
border-bottom: none;
|
|
22
|
+
border-top-left-radius: 4px;
|
|
23
|
+
border-top-right-radius: 4px;
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
gap: 4px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Severity variants */
|
|
30
|
+
.interactive-session .interactive-input-part > .chat-input-notification-container .chat-input-notification.severity-info {
|
|
31
|
+
border-color: var(--vscode-focusBorder);
|
|
32
|
+
background-color: color-mix(in srgb, var(--vscode-focusBorder) 6%, var(--vscode-editorWidget-background));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.interactive-session .interactive-input-part > .chat-input-notification-container .chat-input-notification.severity-warning {
|
|
36
|
+
border-color: var(--vscode-editorWarning-foreground);
|
|
37
|
+
background-color: color-mix(in srgb, var(--vscode-editorWarning-foreground) 6%, var(--vscode-editorWidget-background));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.interactive-session .interactive-input-part > .chat-input-notification-container .chat-input-notification.severity-error {
|
|
41
|
+
border-color: var(--vscode-editorError-foreground);
|
|
42
|
+
background-color: color-mix(in srgb, var(--vscode-editorError-foreground) 6%, var(--vscode-editorWidget-background));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* Header row: icon + title + dismiss */
|
|
46
|
+
.chat-input-notification .chat-input-notification-header {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
gap: 8px;
|
|
50
|
+
min-width: 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Severity icon */
|
|
54
|
+
.chat-input-notification .chat-input-notification-icon {
|
|
55
|
+
flex-shrink: 0;
|
|
56
|
+
display: flex;
|
|
57
|
+
align-items: center;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.chat-input-notification.severity-info .chat-input-notification-icon {
|
|
61
|
+
color: var(--vscode-focusBorder);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.chat-input-notification.severity-warning .chat-input-notification-icon {
|
|
65
|
+
color: var(--vscode-editorWarning-foreground);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.chat-input-notification.severity-error .chat-input-notification-icon {
|
|
69
|
+
color: var(--vscode-editorError-foreground);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* Title */
|
|
73
|
+
.chat-input-notification .chat-input-notification-title {
|
|
74
|
+
font-size: 12px;
|
|
75
|
+
font-weight: 600;
|
|
76
|
+
line-height: 18px;
|
|
77
|
+
color: var(--vscode-foreground);
|
|
78
|
+
flex: 1;
|
|
79
|
+
min-width: 0;
|
|
80
|
+
overflow: hidden;
|
|
81
|
+
text-overflow: ellipsis;
|
|
82
|
+
white-space: nowrap;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Body row: description + actions inline */
|
|
86
|
+
/* Markdown-rendered title: keep the title inline (no block <p> margins). */
|
|
87
|
+
.chat-input-notification .chat-input-notification-title-markdown {
|
|
88
|
+
display: inline;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.chat-input-notification .chat-input-notification-title-markdown > p {
|
|
92
|
+
display: inline;
|
|
93
|
+
margin: 0;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.chat-input-notification .chat-input-notification-title-markdown code {
|
|
97
|
+
font-family: var(--monaco-monospace-font);
|
|
98
|
+
font-size: 11px;
|
|
99
|
+
padding: 0 3px;
|
|
100
|
+
border-radius: 3px;
|
|
101
|
+
background: var(--vscode-textCodeBlock-background);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Body row: description + actions inline, wraps at small widths */
|
|
105
|
+
.chat-input-notification .chat-input-notification-body {
|
|
106
|
+
display: flex;
|
|
107
|
+
align-items: center;
|
|
108
|
+
gap: 8px;
|
|
109
|
+
min-width: 0;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* Description */
|
|
113
|
+
.chat-input-notification .chat-input-notification-description {
|
|
114
|
+
font-size: 12px;
|
|
115
|
+
line-height: 18px;
|
|
116
|
+
color: var(--vscode-descriptionForeground);
|
|
117
|
+
flex: 1 1 auto;
|
|
118
|
+
min-width: 0;
|
|
119
|
+
overflow: hidden;
|
|
120
|
+
text-overflow: ellipsis;
|
|
121
|
+
white-space: nowrap;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* Actions container */
|
|
125
|
+
.chat-input-notification .chat-input-notification-actions {
|
|
126
|
+
display: flex;
|
|
127
|
+
align-items: center;
|
|
128
|
+
gap: 8px;
|
|
129
|
+
flex-shrink: 0;
|
|
130
|
+
margin-left: auto;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* Action buttons */
|
|
134
|
+
.chat-input-notification .chat-input-notification-action-button {
|
|
135
|
+
font-size: 11px;
|
|
136
|
+
padding: 4px 12px;
|
|
137
|
+
min-width: unset;
|
|
138
|
+
width: auto;
|
|
139
|
+
height: 24px;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* Transparent ghost style for secondary action buttons (e.g. "View Usage") */
|
|
143
|
+
.chat-input-notification .chat-input-notification-action-button.secondary {
|
|
144
|
+
border: none;
|
|
145
|
+
background: transparent;
|
|
146
|
+
color: var(--vscode-foreground);
|
|
147
|
+
padding: 4px 8px;
|
|
148
|
+
opacity: 0.8;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.chat-input-notification .chat-input-notification-action-button.secondary:hover {
|
|
152
|
+
background: var(--vscode-toolbar-hoverBackground);
|
|
153
|
+
opacity: 1;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/* Dismiss button */
|
|
157
|
+
.chat-input-notification .chat-input-notification-dismiss {
|
|
158
|
+
display: flex;
|
|
159
|
+
align-items: center;
|
|
160
|
+
justify-content: center;
|
|
161
|
+
width: 20px;
|
|
162
|
+
height: 20px;
|
|
163
|
+
border-radius: 4px;
|
|
164
|
+
cursor: pointer;
|
|
165
|
+
color: var(--vscode-icon-foreground);
|
|
166
|
+
background: transparent;
|
|
167
|
+
border: none;
|
|
168
|
+
outline: none;
|
|
169
|
+
flex-shrink: 0;
|
|
170
|
+
margin-left: auto;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.chat-input-notification .chat-input-notification-dismiss:hover {
|
|
174
|
+
background-color: var(--vscode-toolbar-hoverBackground);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.chat-input-notification .chat-input-notification-dismiss:focus-visible {
|
|
178
|
+
outline: 1px solid var(--vscode-focusBorder);
|
|
179
|
+
outline-offset: -1px;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* Cascade styling — remove top border-radius from sibling containers when notification is visible */
|
|
183
|
+
.interactive-session .interactive-input-part > .chat-input-notification-container.has-notification + .chat-todo-list-widget-container .chat-todo-list-widget {
|
|
184
|
+
border-top-left-radius: 0;
|
|
185
|
+
border-top-right-radius: 0;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/* Hide the getting-started tip when a notification is visible */
|
|
189
|
+
.interactive-session .interactive-input-part > .chat-input-notification-container.has-notification ~ .chat-getting-started-tip-container {
|
|
190
|
+
display: none !important;
|
|
191
|
+
}
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatPhoneInputPresenter.css
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
6
|
+
/* Combined Mode + Model chip used in `ChatInputPart` when a phone-layout
|
|
7
|
+
* presenter is active. The base layout (height/padding/color) is inherited
|
|
8
|
+
* from `.chat-input-picker-item .action-label` in `chat.css`; this file
|
|
9
|
+
* only adds the chip-specific spacing rules. */
|
|
10
|
+
|
|
11
|
+
.chat-input-picker-item .action-label.chat-phone-input-chip {
|
|
12
|
+
gap: 4px;
|
|
13
|
+
cursor: pointer;
|
|
14
|
+
touch-action: manipulation;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.chat-input-picker-item .action-label.chat-phone-input-chip .chat-input-picker-label {
|
|
18
|
+
overflow: hidden;
|
|
19
|
+
text-overflow: ellipsis;
|
|
20
|
+
white-space: nowrap;
|
|
21
|
+
min-width: 0;
|
|
22
|
+
}
|
|
@@ -11,14 +11,14 @@ import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platf
|
|
|
11
11
|
import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
|
|
12
12
|
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
13
13
|
import { IChatAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatAgents.service";
|
|
14
|
-
import { IChatMode } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes";
|
|
15
|
-
import { IChatModeService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service";
|
|
14
|
+
import { IChatMode, IChatModes } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes";
|
|
16
15
|
import { Target } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
|
|
17
16
|
import { ChatInputPickerActionViewItem, IChatInputPickerOptions } from "./chatInputPickerActionItem.js";
|
|
18
17
|
import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
|
|
19
18
|
import { IWorkbenchAssignmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service";
|
|
20
19
|
export interface IModePickerDelegate {
|
|
21
20
|
readonly currentMode: IObservable<IChatMode>;
|
|
21
|
+
readonly currentChatModes: IObservable<IChatModes>;
|
|
22
22
|
readonly sessionResource: () => URI | undefined;
|
|
23
23
|
/**
|
|
24
24
|
* When set, the mode picker will show custom agents whose target matches this value.
|
|
@@ -31,7 +31,7 @@ export declare class ModePickerActionItem extends ChatInputPickerActionViewItem
|
|
|
31
31
|
private readonly contextKeyService;
|
|
32
32
|
private readonly menuService;
|
|
33
33
|
private readonly _productService;
|
|
34
|
-
constructor(action: MenuItemAction, delegate: IModePickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, chatAgentService: IChatAgentService, keybindingService: IKeybindingService, configurationService: IConfigurationService, contextKeyService: IContextKeyService,
|
|
34
|
+
constructor(action: MenuItemAction, delegate: IModePickerDelegate, pickerOptions: IChatInputPickerOptions, actionWidgetService: IActionWidgetService, chatAgentService: IChatAgentService, keybindingService: IKeybindingService, configurationService: IConfigurationService, contextKeyService: IContextKeyService, menuService: IMenuService, commandService: ICommandService, _productService: IProductService, telemetryService: ITelemetryService, openerService: IOpenerService, assignmentService: IWorkbenchAssignmentService);
|
|
35
35
|
private getModePickerActionBarActions;
|
|
36
36
|
render(container: HTMLElement): void;
|
|
37
37
|
protected renderLabel(element: HTMLElement): IDisposable | null;
|