@codingame/monaco-vscode-katex-common 33.0.9 → 34.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/base/browser/ui/pixelSpinner/pixelSpinner.css +169 -0
- package/vscode/src/vs/base/browser/ui/pixelSpinner/pixelSpinner.d.ts +28 -0
- package/vscode/src/vs/base/browser/ui/pixelSpinner/pixelSpinner.js +61 -0
- package/vscode/src/vs/platform/actions/browser/actionWidgetDropdownActionViewItem.d.ts +1 -1
- package/vscode/src/vs/platform/actions/browser/actionWidgetDropdownActionViewItem.js +1 -1
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +18 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +40 -38
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.d.ts +1 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +4 -48
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +16 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +81 -69
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +5 -22
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionUri.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionUri.js +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostChatInputPicker.css +18 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +13 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +177 -80
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +34 -34
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +7 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +69 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +25 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.d.ts +93 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.js +140 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.d.ts +46 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.js +134 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +2 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +49 -117
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +47 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +52 -51
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +18 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +23 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +13 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.d.ts +15 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +87 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +21 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +102 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +22 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +21 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMissingSandboxDepsConfirmationSubPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +35 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +62 -35
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +15 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +10 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.js +13 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +19 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +154 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatOptions.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatOptions.js +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +17 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +113 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatGoalBannerWidget.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatGoalBannerWidget.js +64 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +10 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.js +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +11 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +18 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +361 -66
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatusActionViewItem.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatusActionViewItem.js +147 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +11 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +133 -87
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +13 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatGoalBannerWidget.css +81 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +32 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +39 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +23 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +66 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +373 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +5 -3
- package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +18 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +6 -6
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +18 -18
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatWidgetHistoryService.d.ts +12 -2
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatWidgetHistoryService.js +54 -11
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +3 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +30 -30
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +0 -76
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +0 -191
- package/vscode/src/vs/platform/networkFilter/common/domainMatcher.d.ts +0 -50
- package/vscode/src/vs/platform/networkFilter/common/domainMatcher.js +0 -138
- package/vscode/src/vs/platform/networkFilter/common/settings.d.ts +0 -12
- package/vscode/src/vs/platform/networkFilter/common/settings.js +0 -14
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +0 -18
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +0 -13
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +0 -87
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +0 -10
- package/vscode/src/vs/workbench/contrib/terminal/terminalContribChatExports.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +0 -41
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +0 -24
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +0 -26
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +0 -142
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +0 -52
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +0 -232
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +0 -65
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +0 -225
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +0 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +0 -143
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +0 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +0 -205
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +0 -40
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +0 -174
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +0 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +0 -43
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +0 -52
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +0 -260
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +0 -44
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +0 -98
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +0 -42
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +0 -225
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +0 -31
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +0 -392
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +0 -45
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +0 -243
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +0 -53
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +0 -10
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +0 -20
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +0 -310
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +0 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +0 -177
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +0 -11
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +0 -33
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +0 -41
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +0 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +0 -37
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +0 -19
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +0 -44
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +0 -13
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +0 -22
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +0 -42
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +0 -102
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +0 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +0 -27
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +0 -14
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +0 -29
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +0 -8
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +0 -33
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +0 -24
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +0 -15
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +0 -53
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +0 -177
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +0 -512
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +0 -42
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +0 -23
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +0 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +0 -258
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +0 -2623
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +0 -22
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +0 -43
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +0 -17
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +0 -118
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.d.ts +0 -22
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.js +0 -44
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +0 -58
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +0 -223
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.d.ts +0 -31
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxCommandRules.js +0 -49
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.d.ts +0 -18
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxReadAllowList.js +0 -302
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.d.ts +0 -7
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxRuntimeConfigurationPerOperation.js +0 -118
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +0 -114
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +0 -788
|
@@ -52,6 +52,7 @@ import { registerAndCreateHistoryNavigationContext } from '@codingame/monaco-vsc
|
|
|
52
52
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
53
53
|
import { ServiceCollection } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/serviceCollection';
|
|
54
54
|
import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
|
|
55
|
+
import { canLog, LogLevel } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log';
|
|
55
56
|
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
56
57
|
import { observableMemento } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/observableMemento';
|
|
57
58
|
import { bindContextKey } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
|
|
@@ -74,16 +75,17 @@ import { AccessibilityVerbositySettingId } from '@codingame/monaco-vscode-api/vs
|
|
|
74
75
|
import { AccessibilityCommandId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/common/accessibilityCommands';
|
|
75
76
|
import { getSimpleEditorOptions, getSimpleCodeEditorWidgetOptions, setupSimpleEditorSelectionStyling } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/codeEditor/browser/simpleEditorOptions';
|
|
76
77
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
77
|
-
import { ChatRequestVariableSet, isImageVariableEntry, isStringVariableEntry, getImageAttachmentLimit, OmittedState, isNotebookOutputVariableEntry, isPromptFileVariableEntry, isPromptTextVariableEntry, isElementVariableEntry, isPasteVariableEntry, isSCMHistoryItemVariableEntry, isSCMHistoryItemChangeVariableEntry, isSCMHistoryItemChangeRangeVariableEntry, isBrowserViewVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
|
|
78
|
+
import { ChatRequestVariableSet, isImageVariableEntry, isExplicitFileOrImageVariableEntry, isStringVariableEntry, getImageAttachmentLimit, OmittedState, isNotebookOutputVariableEntry, isPromptFileVariableEntry, isPromptTextVariableEntry, isElementVariableEntry, isPasteVariableEntry, isSCMHistoryItemVariableEntry, isSCMHistoryItemChangeVariableEntry, isSCMHistoryItemChangeRangeVariableEntry, isBrowserViewVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
|
|
78
79
|
import { getModeNameForTelemetry, ChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes';
|
|
79
80
|
import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
|
|
80
|
-
import { localChatSessionType, isIChatSessionFileChange2 } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
|
|
81
|
+
import { SessionType, localChatSessionType, isIChatSessionFileChange2 } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
|
|
81
82
|
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
82
83
|
import { ChatAgentLocation, ChatModeKind, ChatConfiguration, ChatPermissionLevel, isChatPermissionLevel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
83
84
|
import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService';
|
|
84
85
|
import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
85
86
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
86
|
-
import {
|
|
87
|
+
import { logChangesToStateModel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel';
|
|
88
|
+
import { filterModelsForSession, shouldResetOnModelListChange, shouldRestorePersistedModel, shouldRestoreLateArrivingModel, resolveModelFromSyncState, shouldResetModelToDefault, mergeModelsWithCache, hasModelsTargetingSession, isModelValidForSession, findDefaultModel } from './chatModelSelectionLogic.js';
|
|
87
89
|
import { LocalChatSessionUri, getChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
|
|
88
90
|
import { isResponseVM } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
|
|
89
91
|
import { IChatAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/participants/chatAgents.service';
|
|
@@ -102,7 +104,7 @@ import { ChatEditingShowChangesAction, ViewPreviousEditsAction } from '../../cha
|
|
|
102
104
|
import { resizeImage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatImageUtils';
|
|
103
105
|
import { ChatSessionPickerActionItem } from '../../chatSessions/chatSessionPickerActionItem.js';
|
|
104
106
|
import { AgentHostChatInputPicker, AgentHostChatInputPickerActionViewItem } from '../../agentSessions/agentHost/agentHostChatInputPicker.js';
|
|
105
|
-
import { OpenAgentHostModePickerAction, OpenAgentHostAutoApprovePickerAction, OpenAgentHostPermissionModePickerAction
|
|
107
|
+
import { OpenAgentHostModePickerAction, OpenAgentHostAutoApprovePickerAction, OpenAgentHostPermissionModePickerAction } from '../../agentSessions/agentHost/agentHostChatInputPicker.contribution.js';
|
|
106
108
|
import { AgentHostGenericConfigChips } from '../../agentSessions/agentHost/agentHostGenericConfigChips.js';
|
|
107
109
|
import { SessionConfigKey } from '../../../../../../platform/agentHost/common/sessionConfigKeys.js';
|
|
108
110
|
import { ClaudeSessionConfigKey } from '../../../../../../platform/agentHost/common/claudeSessionConfigKeys.js';
|
|
@@ -118,6 +120,7 @@ import { ChatArtifactsWidget } from '../chatArtifactsWidget.js';
|
|
|
118
120
|
import { ChatDragAndDrop } from '../chatDragAndDrop.js';
|
|
119
121
|
import { ChatFollowups } from './chatFollowups.js';
|
|
120
122
|
import { IChatInputNotificationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.service';
|
|
123
|
+
import { ChatGoalBannerWidget } from './chatGoalBannerWidget.js';
|
|
121
124
|
import { ChatInputNotificationWidget } from './chatInputNotificationWidget.js';
|
|
122
125
|
import { ChatSelectedTools } from './chatSelectedTools.js';
|
|
123
126
|
import { DelegationSessionPickerActionItem } from './delegationSessionPickerActionItem.js';
|
|
@@ -127,13 +130,16 @@ import { PermissionPickerActionItem } from './permissionPickerActionItem.js';
|
|
|
127
130
|
import { SessionTypePickerActionItem } from './sessionTargetPickerActionItem.js';
|
|
128
131
|
import { WorkspacePickerActionItem } from './workspacePickerActionItem.js';
|
|
129
132
|
import { ChatContextUsageWidget } from '../../widgetHosts/viewPane/chatContextUsageWidget.js';
|
|
133
|
+
import { ChatInputStatusActionViewItem } from './chatInputStatusActionViewItem.js';
|
|
130
134
|
import { Target } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
131
135
|
import { findLast } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arraysFind';
|
|
132
136
|
import { ConfigureToolsAction } from '../../actions/chatToolActions.js';
|
|
137
|
+
import { InlineCompletionsController } from '@codingame/monaco-vscode-api/vscode/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController';
|
|
133
138
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
134
139
|
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
135
140
|
import { derived, derivedOpts } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
|
136
141
|
import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
|
|
142
|
+
import { constObservable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/constObservable';
|
|
137
143
|
|
|
138
144
|
var ChatInputPart_1;
|
|
139
145
|
const $ = $$1;
|
|
@@ -218,6 +224,9 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
218
224
|
get inputEditor() {
|
|
219
225
|
return this._inputEditor;
|
|
220
226
|
}
|
|
227
|
+
setHistoryKey(historyKey) {
|
|
228
|
+
this.history.setHistoryKey(historyKey);
|
|
229
|
+
}
|
|
221
230
|
get currentLanguageModel() {
|
|
222
231
|
return this._currentLanguageModel.get()?.identifier;
|
|
223
232
|
}
|
|
@@ -378,6 +387,9 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
378
387
|
this.overlayClickListener = this._register(( new MutableDisposable()));
|
|
379
388
|
this.attachedContextDisposables = this._register(( new MutableDisposable()));
|
|
380
389
|
this._notificationWidget = this._register(( new MutableDisposable()));
|
|
390
|
+
this._goalBannerWidget = this._register(( new MutableDisposable()));
|
|
391
|
+
this._onDidDismissGoalBanner = this._register(( new Emitter()));
|
|
392
|
+
this.onDidDismissGoalBanner = this._onDidDismissGoalBanner.event;
|
|
381
393
|
this._contextUsageDisposables = this._register(( new MutableDisposable()));
|
|
382
394
|
this.height = observableValue(this, 0);
|
|
383
395
|
this._forceVisibleScrollbarUntilAccept = false;
|
|
@@ -403,7 +415,16 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
403
415
|
this._chatSessionIsEmpty = false;
|
|
404
416
|
this._pendingDelegationTarget = undefined;
|
|
405
417
|
this._currentSessionType = undefined;
|
|
406
|
-
this._syncTextDebounced = this._register(( new RunOnceScheduler(() =>
|
|
418
|
+
this._syncTextDebounced = this._register(( new RunOnceScheduler(() => {
|
|
419
|
+
logChangesToStateModel(
|
|
420
|
+
this._inputModel,
|
|
421
|
+
`[DEBOUNCE] _syncTextDebounced fired -> _syncInputStateToModel in ${this._currentSessionKey}`,
|
|
422
|
+
undefined,
|
|
423
|
+
this._inputModel?.state.get(),
|
|
424
|
+
this.logService
|
|
425
|
+
);
|
|
426
|
+
this._syncInputStateToModel();
|
|
427
|
+
}, 150)));
|
|
407
428
|
this._emptyInputState = this._register(
|
|
408
429
|
emptyInputState(StorageScope.WORKSPACE, StorageTarget.USER, this.storageService)
|
|
409
430
|
);
|
|
@@ -443,6 +464,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
443
464
|
this.updateWidgetLockStateFromSessionType(newSessionType);
|
|
444
465
|
this.checkModeInSessionPool(newSessionType);
|
|
445
466
|
this.refreshChatSessionPickers();
|
|
467
|
+
this._notificationWidget.value?.rerender();
|
|
446
468
|
})
|
|
447
469
|
);
|
|
448
470
|
}
|
|
@@ -458,6 +480,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
458
480
|
const padding = this.options.renderStyle === "compact" ? INPUT_EDITOR_PADDING.compact : INPUT_EDITOR_PADDING.default;
|
|
459
481
|
this.inputEditorMinHeight = this.options.inputEditorMinLines ? this.options.inputEditorMinLines * INPUT_EDITOR_LINE_HEIGHT + padding.top + padding.bottom : undefined;
|
|
460
482
|
this.inputEditorHasText = ChatContextKeys.inputHasText.bindTo(contextKeyService);
|
|
483
|
+
this.inputEditorHasSendableContent = ChatContextKeys.inputHasSendableContent.bindTo(contextKeyService);
|
|
461
484
|
this.chatCursorAtTop = ChatContextKeys.inputCursorAtTop.bindTo(contextKeyService);
|
|
462
485
|
this.inputEditorHasFocus = ChatContextKeys.inputHasFocus.bindTo(contextKeyService);
|
|
463
486
|
this._hasQuestionCarouselContextKey = ChatContextKeys.Editing.hasQuestionCarousel.bindTo(contextKeyService);
|
|
@@ -523,11 +546,57 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
523
546
|
));
|
|
524
547
|
this._hasFileAttachmentContextKey = ChatContextKeys.hasFileAttachments.bindTo(contextKeyService);
|
|
525
548
|
this.initSelectedModel();
|
|
526
|
-
|
|
527
|
-
|
|
549
|
+
const resetCurrentLanguageModelIfUnavailable = () => {
|
|
550
|
+
const modelIdentifier = this._currentLanguageModel.get()?.identifier;
|
|
551
|
+
const models = this.getModels();
|
|
552
|
+
if (canLog(this.logService.getLevel(), LogLevel.Debug)) {
|
|
553
|
+
const mergedModels = this.getAllMergedModels();
|
|
554
|
+
const filteredModels = filterModelsForSession(models, this.getCurrentSessionType(), this.currentModeKind, this.location);
|
|
555
|
+
const messageparts = [
|
|
556
|
+
`resetting current language model due to model list change from ${modelIdentifier}`,
|
|
557
|
+
`this._widget?.viewModel?.model.sessionResource = ${this._widget?.viewModel?.model.sessionResource?.toString()}`,
|
|
558
|
+
`this.currentModeKind = ${this.currentModeKind}`,
|
|
559
|
+
`this.getCurrentSessionType = ${this.getCurrentSessionType()}`,
|
|
560
|
+
`this._currentSessionType = ${this._currentSessionType}`,
|
|
561
|
+
`shouldResetOnModelListChange(modelIdentifier, models) = ${shouldResetOnModelListChange(modelIdentifier, models)}`,
|
|
562
|
+
`vendors: ${( this.languageModelsService.getVendors().map(v => v.vendor)).join(", ")}`,
|
|
563
|
+
`hiddenModelIds: ${this.languageModelsService.getHiddenModelIds().join(", ")}`,
|
|
564
|
+
`model identifiers: ${( models.map(m => m.identifier)).join(", ")}`,
|
|
565
|
+
`model target Session Types: ${( models.map(m => m.metadata.targetChatSessionType || "")).join(", ")}`,
|
|
566
|
+
`model metadataid: ${( models.map(m => m.metadata.id)).join(", ")}`,
|
|
567
|
+
`merged.model identifiers: ${( mergedModels.map(m => m.identifier)).join(", ")}`,
|
|
568
|
+
`merged.model target Session Types: ${( mergedModels.map(m => m.metadata.targetChatSessionType || "")).join(", ")}`,
|
|
569
|
+
`merged.model metadataid: ${( mergedModels.map(m => m.metadata.id)).join(", ")}`,
|
|
570
|
+
`filtered.model identifiers: ${( filteredModels.map(m => m.identifier)).join(", ")}`,
|
|
571
|
+
`filtered.model target Session Types: ${( filteredModels.map(m => m.metadata.targetChatSessionType || "")).join(", ")}`,
|
|
572
|
+
`filtered.model metadataid: ${( filteredModels.map(m => m.metadata.id)).join(", ")}`
|
|
573
|
+
];
|
|
574
|
+
if (this.getCurrentSessionType() !== SessionType.CopilotCLI) {
|
|
575
|
+
const delegateSessionType = this.options.sessionTypePickerDelegate?.getActiveSessionProvider?.();
|
|
576
|
+
if (delegateSessionType) {
|
|
577
|
+
messageparts.push(`delegateSessionType = ${delegateSessionType}`);
|
|
578
|
+
}
|
|
579
|
+
const sessionResource = this._widget?.viewModel?.model.sessionResource;
|
|
580
|
+
messageparts.push(`current session resource = ${sessionResource}`);
|
|
581
|
+
}
|
|
582
|
+
logChangesToStateModel(
|
|
583
|
+
this._inputModel,
|
|
584
|
+
messageparts.join(", "),
|
|
585
|
+
undefined,
|
|
586
|
+
undefined,
|
|
587
|
+
this.logService
|
|
588
|
+
);
|
|
589
|
+
}
|
|
590
|
+
if (shouldResetOnModelListChange(modelIdentifier, models)) {
|
|
528
591
|
this.setCurrentLanguageModelToDefault();
|
|
529
592
|
}
|
|
530
|
-
}
|
|
593
|
+
};
|
|
594
|
+
this._register(
|
|
595
|
+
this.languageModelsService.onDidChangeLanguageModels(resetCurrentLanguageModelIfUnavailable)
|
|
596
|
+
);
|
|
597
|
+
this._register(
|
|
598
|
+
this.languageModelsService.onDidChangeModelVisibility(resetCurrentLanguageModelIfUnavailable)
|
|
599
|
+
);
|
|
531
600
|
this._register(this.onDidChangeCurrentChatMode(() => {
|
|
532
601
|
this.accessibilityService.alert(this._currentModeObservable.get().label.get());
|
|
533
602
|
if (this._inputEditor) {
|
|
@@ -549,7 +618,9 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
549
618
|
}));
|
|
550
619
|
this._register(autorun(reader => {
|
|
551
620
|
const modes = this._currentChatModesObservable.read(reader);
|
|
552
|
-
reader.store.add(modes.onDidChange(() =>
|
|
621
|
+
reader.store.add(modes.onDidChange(() => {
|
|
622
|
+
this.validateCurrentChatMode();
|
|
623
|
+
}));
|
|
553
624
|
}));
|
|
554
625
|
this._register(autorun(r => {
|
|
555
626
|
const mode = this._currentModeObservable.read(r);
|
|
@@ -587,10 +658,26 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
587
658
|
}
|
|
588
659
|
initSelectedModel() {
|
|
589
660
|
this._waitForPersistedLanguageModel.clear();
|
|
590
|
-
const
|
|
591
|
-
const
|
|
661
|
+
const selectedModelStorageKey = this.getSelectedModelStorageKey();
|
|
662
|
+
const selectedModelIsDefaultStorageKey = this.getSelectedModelIsDefaultStorageKey();
|
|
663
|
+
const persistedSelection = this.storageService.get(selectedModelStorageKey, StorageScope.APPLICATION);
|
|
664
|
+
const persistedAsDefault = this.storageService.getBoolean(selectedModelIsDefaultStorageKey, StorageScope.APPLICATION, true);
|
|
665
|
+
logChangesToStateModel(
|
|
666
|
+
this._inputModel,
|
|
667
|
+
`[INIT-SELECTED-MODEL] storageKey=${selectedModelStorageKey}, isDefaultKey=${selectedModelIsDefaultStorageKey}, persistedSelection=${persistedSelection}, persistedAsDefault=${persistedAsDefault}, currentSessionType=${this._currentSessionType}, getCurrentSessionType=${this.getCurrentSessionType()}, widgetSession=${this._currentSessionKey}, boundInputModelSession=${this._inputModelSessionResource?.toString()}, currentLanguageModel=${this._currentLanguageModel.get()?.identifier}`,
|
|
668
|
+
this._inputModel?.state.get(),
|
|
669
|
+
undefined,
|
|
670
|
+
this.logService
|
|
671
|
+
);
|
|
592
672
|
if (persistedSelection) {
|
|
593
673
|
const result = shouldRestorePersistedModel(persistedSelection, persistedAsDefault, this.getModels(), this.location);
|
|
674
|
+
logChangesToStateModel(
|
|
675
|
+
this._inputModel,
|
|
676
|
+
`[INIT-SELECTED-MODEL] restore decision persistedSelection=${persistedSelection}, shouldRestore=${result.shouldRestore}, resultModel=${result.model?.identifier}, storageKey=${selectedModelStorageKey}, currentSessionType=${this._currentSessionType}, getCurrentSessionType=${this.getCurrentSessionType()}`,
|
|
677
|
+
this._inputModel?.state.get(),
|
|
678
|
+
undefined,
|
|
679
|
+
this.logService
|
|
680
|
+
);
|
|
594
681
|
if (result.shouldRestore && result.model) {
|
|
595
682
|
this.setCurrentLanguageModel(result.model);
|
|
596
683
|
this.checkModelSupported();
|
|
@@ -630,6 +717,15 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
630
717
|
this.setCurrentLanguageModel(model);
|
|
631
718
|
}
|
|
632
719
|
}
|
|
720
|
+
switchModelByIdentifier(identifier) {
|
|
721
|
+
const models = this.getModels();
|
|
722
|
+
const model = models.find(m => m.identifier === identifier);
|
|
723
|
+
if (model) {
|
|
724
|
+
this.setCurrentLanguageModel(model);
|
|
725
|
+
return true;
|
|
726
|
+
}
|
|
727
|
+
return false;
|
|
728
|
+
}
|
|
633
729
|
switchModelByQualifiedName(qualifiedModelNames) {
|
|
634
730
|
const models = this.getModels();
|
|
635
731
|
for (const qualifiedModelName of qualifiedModelNames) {
|
|
@@ -743,6 +839,13 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
743
839
|
if (sessionResource) {
|
|
744
840
|
this.chatSessionsService.setSessionOption(sessionResource, PERMISSION_LEVEL_OPTION_ID, level);
|
|
745
841
|
}
|
|
842
|
+
logChangesToStateModel(
|
|
843
|
+
this._inputModel,
|
|
844
|
+
`setPermissionLevel -> _syncInputStateToModel (level=${level}, currentLanguageModel=${this._currentLanguageModel.get()?.identifier}) in ${this._currentSessionKey}`,
|
|
845
|
+
undefined,
|
|
846
|
+
undefined,
|
|
847
|
+
this.logService
|
|
848
|
+
);
|
|
746
849
|
this._syncInputStateToModel();
|
|
747
850
|
}
|
|
748
851
|
getDefaultPermissionLevel() {
|
|
@@ -818,10 +921,20 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
818
921
|
return widgets;
|
|
819
922
|
}
|
|
820
923
|
setInputModel(model, chatSessionIsEmpty, forSessionResource) {
|
|
924
|
+
logChangesToStateModel(this._inputModel, `setInputModel for ${( forSessionResource.toString())} (chatSessionIsEmpty=${chatSessionIsEmpty}, outgoing._inputModel=${this._inputModel ? "present" : "undefined"})`, model.state.get(), this._inputModel?.state.get(), this.logService);
|
|
821
925
|
if (this._inputModel) {
|
|
926
|
+
logChangesToStateModel(
|
|
927
|
+
this._inputModel,
|
|
928
|
+
`[FLUSH-PRE] setInputModel pre-flush boundInputModelSession=${this._inputModelSessionResource?.toString()} widgetSession=${this._currentSessionKey} incoming=${( forSessionResource.toString())}`,
|
|
929
|
+
undefined,
|
|
930
|
+
this._inputModel.state.get(),
|
|
931
|
+
this.logService
|
|
932
|
+
);
|
|
822
933
|
this._syncInputStateToModel();
|
|
823
934
|
}
|
|
935
|
+
this._currentSessionType = getChatSessionType(forSessionResource);
|
|
824
936
|
this._inputModel = model;
|
|
937
|
+
this._inputModelSessionResource = forSessionResource;
|
|
825
938
|
this._modelSyncDisposables.clear();
|
|
826
939
|
const chatModes = this.chatModeService.createModes(forSessionResource);
|
|
827
940
|
this._currentChatModes.value = chatModes;
|
|
@@ -829,28 +942,60 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
829
942
|
this.selectedToolsModel.resetSessionEnablementState();
|
|
830
943
|
this._chatSessionIsEmpty = chatSessionIsEmpty;
|
|
831
944
|
if (chatSessionIsEmpty) {
|
|
945
|
+
logChangesToStateModel(this._inputModel, `(1) setting empty model state for ${( forSessionResource.toString())}`, undefined, undefined, this.logService);
|
|
832
946
|
this._setEmptyModelState();
|
|
833
947
|
this._modelSyncDisposables.add(this.configurationService.onDidChangeConfiguration(e => {
|
|
834
948
|
if (this._chatSessionIsEmpty && e.affectsConfiguration(ChatConfiguration.DefaultNewSessionMode)) {
|
|
949
|
+
logChangesToStateModel(this._inputModel, `(2) setting empty model state for ${( forSessionResource.toString())}`, undefined, undefined, this.logService);
|
|
835
950
|
this._setEmptyModelState();
|
|
836
951
|
}
|
|
837
952
|
}));
|
|
838
953
|
this._modelSyncDisposables.add(this._currentChatModesObservable.get().onDidChange(() => {
|
|
839
954
|
if (this._chatSessionIsEmpty) {
|
|
955
|
+
logChangesToStateModel(this._inputModel, `(3) setting empty model state for ${( forSessionResource.toString())}`, undefined, undefined, this.logService);
|
|
840
956
|
this._setEmptyModelState();
|
|
841
957
|
}
|
|
842
958
|
}));
|
|
843
959
|
}
|
|
960
|
+
const widgetViewModelSession = this._widget?.viewModel?.model.sessionResource;
|
|
961
|
+
const isStaleAtRegistration = !!widgetViewModelSession && !isEqual(widgetViewModelSession, forSessionResource);
|
|
962
|
+
logChangesToStateModel(
|
|
963
|
+
this._inputModel,
|
|
964
|
+
`[AUTORUN-REG] registering model->view autorun for ${( forSessionResource.toString())}, widgetSession=${this._currentSessionKey}, widgetViewModelSession=${widgetViewModelSession?.toString()}, isStaleAtRegistration=${isStaleAtRegistration}, model.state.selectedModel=${model.state.get()?.selectedModel?.identifier}, _currentLanguageModel=${this._currentLanguageModel.get()?.identifier}`,
|
|
965
|
+
undefined,
|
|
966
|
+
undefined,
|
|
967
|
+
this.logService
|
|
968
|
+
);
|
|
844
969
|
this._modelSyncDisposables.add(autorun(reader => {
|
|
845
970
|
let state = model.state.read(reader);
|
|
971
|
+
let message = `syncing from model for ${( forSessionResource.toString())} in ${this._currentSessionKey}`;
|
|
846
972
|
if (!state && this._chatSessionIsEmpty) {
|
|
847
973
|
state = this._emptyInputState.read(undefined);
|
|
974
|
+
message = `syncing from empty input state for ${( forSessionResource.toString())}`;
|
|
975
|
+
}
|
|
976
|
+
const widgetSessionResource = this._widget?.viewModel?.model.sessionResource;
|
|
977
|
+
const isStaleSession = !!this._inputModelSessionResource && !isEqual(this._inputModelSessionResource, forSessionResource);
|
|
978
|
+
if (isStaleSession) {
|
|
979
|
+
message = `[STALE-SESSION-AUTORUN] ${message} (widget now on ${widgetSessionResource?.toString()}, ${this._inputModelSessionResource?.toString()}, ${( forSessionResource.toString())} is old)`;
|
|
980
|
+
}
|
|
981
|
+
const prevState = this._inputModel?.state.read(undefined);
|
|
982
|
+
logChangesToStateModel(this._inputModel, message, state, prevState, this.logService);
|
|
983
|
+
if (isStaleSession) {
|
|
984
|
+
return;
|
|
848
985
|
}
|
|
849
986
|
this._syncFromModel(state, forSessionResource);
|
|
850
987
|
}));
|
|
851
988
|
}
|
|
852
989
|
_setEmptyModelState() {
|
|
853
|
-
|
|
990
|
+
logChangesToStateModel(
|
|
991
|
+
this._inputModel,
|
|
992
|
+
`setting empty model state for ${this._widget?.viewModel?.sessionResource.toString()} in ${this._currentSessionKey}`,
|
|
993
|
+
undefined,
|
|
994
|
+
undefined,
|
|
995
|
+
this.logService
|
|
996
|
+
);
|
|
997
|
+
const currentLevel = this._inputModel?.state?.get()?.permissionLevel;
|
|
998
|
+
if (currentLevel === undefined || !isChatPermissionLevel(currentLevel)) {
|
|
854
999
|
this.setPermissionLevel(this.getDefaultPermissionLevel());
|
|
855
1000
|
}
|
|
856
1001
|
if (this.entitlementService.anonymous) {
|
|
@@ -890,22 +1035,32 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
890
1035
|
if (state?.selectedModel) {
|
|
891
1036
|
const allModels = this.getAllMergedModels();
|
|
892
1037
|
const sessionType = getChatSessionType(forSessionResource);
|
|
893
|
-
const
|
|
894
|
-
|
|
895
|
-
this.
|
|
896
|
-
|
|
897
|
-
sessionType
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
1038
|
+
const currentLm = this._currentLanguageModel.get();
|
|
1039
|
+
const syncResult = resolveModelFromSyncState(state.selectedModel, currentLm, allModels, sessionType, {
|
|
1040
|
+
location: this.location,
|
|
1041
|
+
currentModeKind: this.currentModeKind,
|
|
1042
|
+
sessionType
|
|
1043
|
+
});
|
|
1044
|
+
logChangesToStateModel(
|
|
1045
|
+
this._inputModel,
|
|
1046
|
+
`[RESOLVE] _syncFromModel resolveModelFromSyncState for ${( forSessionResource.toString())} in ${this._currentSessionKey}: stateModel=${state.selectedModel.identifier} currentLm=${currentLm?.identifier} sessionType=${sessionType} -> action=${syncResult.action}`,
|
|
1047
|
+
state,
|
|
1048
|
+
undefined,
|
|
1049
|
+
this.logService
|
|
903
1050
|
);
|
|
904
1051
|
if (syncResult.action === "apply") {
|
|
905
1052
|
this.setCurrentLanguageModel(state.selectedModel);
|
|
906
1053
|
} else if (syncResult.action === "default") {
|
|
907
1054
|
this.setCurrentLanguageModelToDefault();
|
|
908
1055
|
}
|
|
1056
|
+
} else if (state) {
|
|
1057
|
+
logChangesToStateModel(
|
|
1058
|
+
this._inputModel,
|
|
1059
|
+
`_syncFromModel: state has no selectedModel (no-op for model picker) for ${( forSessionResource.toString())} in ${this._currentSessionKey} (current=${this._currentLanguageModel.get()?.identifier})`,
|
|
1060
|
+
state,
|
|
1061
|
+
undefined,
|
|
1062
|
+
this.logService
|
|
1063
|
+
);
|
|
909
1064
|
}
|
|
910
1065
|
const currentAttachments = this._attachmentModel.attachments;
|
|
911
1066
|
if (!state) {
|
|
@@ -945,6 +1100,14 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
945
1100
|
if (this._chatSessionIsEmpty) {
|
|
946
1101
|
this._emptyInputState.set(state, undefined);
|
|
947
1102
|
}
|
|
1103
|
+
const prevState = this._inputModel?.state.get();
|
|
1104
|
+
logChangesToStateModel(
|
|
1105
|
+
this._inputModel,
|
|
1106
|
+
`_syncInputStateToModel boundInputModelSession=${this._inputModelSessionResource?.toString()} widgetSession=${this._currentSessionKey} mismatch=${this._inputModelSessionResource?.toString() !== this._currentSessionKey}`,
|
|
1107
|
+
state,
|
|
1108
|
+
prevState,
|
|
1109
|
+
this.logService
|
|
1110
|
+
);
|
|
948
1111
|
this._inputModel?.setState(state);
|
|
949
1112
|
this._isSyncingToOrFromInputModel = false;
|
|
950
1113
|
queueMicrotask(() => this.inputActionsToolbar?.relayout());
|
|
@@ -955,6 +1118,16 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
955
1118
|
}
|
|
956
1119
|
}
|
|
957
1120
|
setCurrentLanguageModel(model) {
|
|
1121
|
+
const modelDetails = ( this.getModels().map(m => `${m.identifier} (${m.metadata.id})`)).join(", ");
|
|
1122
|
+
const selectedModelStorageKey = this.getSelectedModelStorageKey();
|
|
1123
|
+
const selectedModelIsDefaultStorageKey = this.getSelectedModelIsDefaultStorageKey();
|
|
1124
|
+
logChangesToStateModel(
|
|
1125
|
+
this._inputModel,
|
|
1126
|
+
`setCurrentLanguageModel to ${model.identifier} in ${this._currentSessionKey}, storageKey=${selectedModelStorageKey}, isDefaultKey=${selectedModelIsDefaultStorageKey}, currentSessionType=${this._currentSessionType}, getCurrentSessionType=${this.getCurrentSessionType()}, boundInputModelSession=${this._inputModelSessionResource?.toString()}, modelDetials = ${modelDetails}`,
|
|
1127
|
+
undefined,
|
|
1128
|
+
undefined,
|
|
1129
|
+
this.logService
|
|
1130
|
+
);
|
|
958
1131
|
this._currentLanguageModel.set(model, undefined);
|
|
959
1132
|
if (this.cachedWidth) {
|
|
960
1133
|
this.layout(this.cachedWidth);
|
|
@@ -976,6 +1149,18 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
976
1149
|
checkModelSupported() {
|
|
977
1150
|
const lm = this._currentLanguageModel.get();
|
|
978
1151
|
const allModels = this.getAllMergedModels();
|
|
1152
|
+
const willReset = shouldResetModelToDefault(lm, this.getModels(), {
|
|
1153
|
+
location: this.location,
|
|
1154
|
+
currentModeKind: this.currentModeKind,
|
|
1155
|
+
sessionType: this.getCurrentSessionType()
|
|
1156
|
+
}, allModels);
|
|
1157
|
+
logChangesToStateModel(
|
|
1158
|
+
this._inputModel,
|
|
1159
|
+
`[CMS] checkModelSupported lm=${lm?.identifier} mode=${this.currentModeKind} sessionType=${this.getCurrentSessionType()} willReset=${willReset} in ${this._currentSessionKey}`,
|
|
1160
|
+
undefined,
|
|
1161
|
+
this._inputModel?.state.get(),
|
|
1162
|
+
this.logService
|
|
1163
|
+
);
|
|
979
1164
|
if (shouldResetModelToDefault(lm, this.getModels(), {
|
|
980
1165
|
location: this.location,
|
|
981
1166
|
currentModeKind: this.currentModeKind,
|
|
@@ -998,6 +1183,13 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
998
1183
|
}
|
|
999
1184
|
this._currentModeObservable.set(mode, undefined);
|
|
1000
1185
|
this._onDidChangeCurrentChatMode.fire();
|
|
1186
|
+
logChangesToStateModel(
|
|
1187
|
+
this._inputModel,
|
|
1188
|
+
`setChatMode2 -> _syncInputStateToModel (mode=${mode.id}, storeSelection=${storeSelection}, currentLanguageModel=${this._currentLanguageModel.get()?.identifier}) in ${this._currentSessionKey}`,
|
|
1189
|
+
undefined,
|
|
1190
|
+
undefined,
|
|
1191
|
+
this.logService
|
|
1192
|
+
);
|
|
1001
1193
|
this._syncInputStateToModel();
|
|
1002
1194
|
}
|
|
1003
1195
|
getAllMergedModels() {
|
|
@@ -1027,7 +1219,8 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1027
1219
|
getModels() {
|
|
1028
1220
|
const models = this.getAllMergedModels();
|
|
1029
1221
|
models.sort((a, b) => a.metadata.name.localeCompare(b.metadata.name));
|
|
1030
|
-
|
|
1222
|
+
const sessionFiltered = filterModelsForSession(models, this.getCurrentSessionType(), this.currentModeKind, this.location);
|
|
1223
|
+
return sessionFiltered.filter(m => !this.languageModelsService.isModelHidden(m.identifier));
|
|
1031
1224
|
}
|
|
1032
1225
|
getCurrentSessionType() {
|
|
1033
1226
|
const delegateSessionType = this.options.sessionTypePickerDelegate?.getActiveSessionProvider?.();
|
|
@@ -1082,7 +1275,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1082
1275
|
if (!sessionResource) {
|
|
1083
1276
|
return;
|
|
1084
1277
|
}
|
|
1085
|
-
if (!requests || requests.length === 0) {
|
|
1278
|
+
if (!requests || requests.length === 0 || getChatSessionType(sessionResource) !== SessionType.CopilotCLI) {
|
|
1086
1279
|
return;
|
|
1087
1280
|
}
|
|
1088
1281
|
const modeInfo = findLast(requests, req => !!req.modeInfo)?.modeInfo;
|
|
@@ -1128,6 +1321,13 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1128
1321
|
setCurrentLanguageModelToDefault() {
|
|
1129
1322
|
const allModels = this.getModels();
|
|
1130
1323
|
const defaultModel = findDefaultModel(allModels, this.location);
|
|
1324
|
+
logChangesToStateModel(
|
|
1325
|
+
this._inputModel,
|
|
1326
|
+
`[DEFAULT] setCurrentLanguageModelToDefault called (defaultModel=${defaultModel?.identifier}, currentLm=${this._currentLanguageModel.get()?.identifier}) in ${this._currentSessionKey}`,
|
|
1327
|
+
undefined,
|
|
1328
|
+
this._inputModel?.state.get(),
|
|
1329
|
+
this.logService
|
|
1330
|
+
);
|
|
1131
1331
|
if (defaultModel) {
|
|
1132
1332
|
this.setCurrentLanguageModel(defaultModel);
|
|
1133
1333
|
}
|
|
@@ -1159,40 +1359,40 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1159
1359
|
}
|
|
1160
1360
|
const mode = this._currentModeObservable.get();
|
|
1161
1361
|
const modelName = this._currentLanguageModel.get()?.metadata.name;
|
|
1162
|
-
const modelInfo = modelName ? ( localize(
|
|
1362
|
+
const modelInfo = modelName ? ( localize(7677, ", {0}. ", modelName)) : "";
|
|
1163
1363
|
let modeLabel = "";
|
|
1164
1364
|
if (!mode.isBuiltin) {
|
|
1165
1365
|
const mode = this.currentModeObs.get();
|
|
1166
|
-
modeLabel = ( localize(
|
|
1366
|
+
modeLabel = ( localize(7678, "({0}), {1}", mode.label.get(), mode.description.get()));
|
|
1167
1367
|
} else {
|
|
1168
1368
|
switch (this.currentModeKind) {
|
|
1169
1369
|
case ChatModeKind.Agent:
|
|
1170
|
-
modeLabel = ( localize(
|
|
1370
|
+
modeLabel = ( localize(7679, "(Agent), edit files in your workspace."));
|
|
1171
1371
|
break;
|
|
1172
1372
|
case ChatModeKind.Edit:
|
|
1173
|
-
modeLabel = ( localize(
|
|
1373
|
+
modeLabel = ( localize(7680, "(Edit), edit files in your workspace."));
|
|
1174
1374
|
break;
|
|
1175
1375
|
case ChatModeKind.Ask:
|
|
1176
1376
|
default:
|
|
1177
|
-
modeLabel = ( localize(
|
|
1377
|
+
modeLabel = ( localize(7681, "(Ask), ask questions or type / for topics."));
|
|
1178
1378
|
break;
|
|
1179
1379
|
}
|
|
1180
1380
|
}
|
|
1181
1381
|
if (verbose) {
|
|
1182
1382
|
return kbLabel ? ( localize(
|
|
1183
|
-
|
|
1383
|
+
7682,
|
|
1184
1384
|
"Chat Input {0}{1} Press Enter to send out the request. Use {2} for Chat Accessibility Help.",
|
|
1185
1385
|
modeLabel,
|
|
1186
1386
|
modelInfo,
|
|
1187
1387
|
kbLabel
|
|
1188
1388
|
)) : ( localize(
|
|
1189
|
-
|
|
1389
|
+
7683,
|
|
1190
1390
|
"Chat Input {0}{1} Press Enter to send out the request. Use the Chat Accessibility Help command for more information.",
|
|
1191
1391
|
modeLabel,
|
|
1192
1392
|
modelInfo
|
|
1193
1393
|
));
|
|
1194
1394
|
} else {
|
|
1195
|
-
return localize(
|
|
1395
|
+
return localize(7684, "Chat Input {0}{1}.", modeLabel, modelInfo);
|
|
1196
1396
|
}
|
|
1197
1397
|
}
|
|
1198
1398
|
validateCurrentChatMode() {
|
|
@@ -1342,6 +1542,13 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1342
1542
|
this._chatSessionIsEmpty = false;
|
|
1343
1543
|
this._emptyInputState.set(undefined, undefined);
|
|
1344
1544
|
}
|
|
1545
|
+
logChangesToStateModel(
|
|
1546
|
+
this._inputModel,
|
|
1547
|
+
`[ACCEPT] acceptInput -> attachmentModel.clear() in ${this._currentSessionKey}`,
|
|
1548
|
+
undefined,
|
|
1549
|
+
this._inputModel?.state.get(),
|
|
1550
|
+
this.logService
|
|
1551
|
+
);
|
|
1345
1552
|
this.attachmentModel.clear();
|
|
1346
1553
|
this._onDidLoadInputState.fire();
|
|
1347
1554
|
if (this.accessibilityService.isScreenReaderOptimized() && isMacintosh) {
|
|
@@ -1384,8 +1591,14 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1384
1591
|
}
|
|
1385
1592
|
_handleAttachedContextChange() {
|
|
1386
1593
|
this._hasFileAttachmentContextKey.set(Boolean(this._attachmentModel.attachments.find(a => a.kind === "file")));
|
|
1594
|
+
this._updateInputContentContextKeys();
|
|
1387
1595
|
this.renderAttachedContext();
|
|
1388
1596
|
}
|
|
1597
|
+
_updateInputContentContextKeys() {
|
|
1598
|
+
const inputHasText = !!this._inputEditor?.getModel()?.getValue().trim();
|
|
1599
|
+
this.inputEditorHasText.set(inputHasText);
|
|
1600
|
+
this.inputEditorHasSendableContent.set(inputHasText || ( this._attachmentModel.attachments.some(isExplicitFileOrImageVariableEntry)));
|
|
1601
|
+
}
|
|
1389
1602
|
getOrCreateOptionEmitter(optionGroupId) {
|
|
1390
1603
|
let emitter = this._chatSessionOptionEmitters.get(optionGroupId);
|
|
1391
1604
|
if (!emitter) {
|
|
@@ -1609,10 +1822,31 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1609
1822
|
}
|
|
1610
1823
|
ensureNotificationWidget() {
|
|
1611
1824
|
if (!this._notificationWidget.value) {
|
|
1612
|
-
this._notificationWidget.value = this.instantiationService.createInstance(
|
|
1825
|
+
this._notificationWidget.value = this.instantiationService.createInstance(
|
|
1826
|
+
ChatInputNotificationWidget,
|
|
1827
|
+
() => this._currentSessionType ?? this.getCurrentSessionType()
|
|
1828
|
+
);
|
|
1613
1829
|
this.chatInputNotificationContainer.appendChild(this._notificationWidget.value.domNode);
|
|
1614
1830
|
}
|
|
1615
1831
|
}
|
|
1832
|
+
ensureGoalBannerWidget() {
|
|
1833
|
+
if (!this._goalBannerWidget.value) {
|
|
1834
|
+
const widget = ( new ChatGoalBannerWidget());
|
|
1835
|
+
this._register(widget.onDismiss(() => this._onDidDismissGoalBanner.fire()));
|
|
1836
|
+
this._goalBannerWidget.value = widget;
|
|
1837
|
+
this.chatGoalBannerContainer.appendChild(widget.domNode);
|
|
1838
|
+
}
|
|
1839
|
+
return this._goalBannerWidget.value;
|
|
1840
|
+
}
|
|
1841
|
+
showGoalBannerLoading() {
|
|
1842
|
+
this.ensureGoalBannerWidget().setLoading();
|
|
1843
|
+
}
|
|
1844
|
+
setGoalBanner(summary) {
|
|
1845
|
+
this.ensureGoalBannerWidget().setGoal(summary);
|
|
1846
|
+
}
|
|
1847
|
+
clearGoalBanner() {
|
|
1848
|
+
this._goalBannerWidget.value?.clear();
|
|
1849
|
+
}
|
|
1616
1850
|
showContextUsageDetails() {
|
|
1617
1851
|
return this.contextUsageWidget?.showDetails() ?? false;
|
|
1618
1852
|
}
|
|
@@ -1673,11 +1907,28 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1673
1907
|
}
|
|
1674
1908
|
this._syncToolConfirmationCarouselForSession();
|
|
1675
1909
|
const newSessionType = this.getCurrentSessionType();
|
|
1676
|
-
if (e.currentSessionResource && newSessionType !== this._currentSessionType) {
|
|
1910
|
+
if (e.currentSessionResource && this._currentSessionType && newSessionType !== this._currentSessionType) {
|
|
1911
|
+
logChangesToStateModel(
|
|
1912
|
+
this._inputModel,
|
|
1913
|
+
`[CVVM].1 onDidChangeViewModel -> session change: ${this._currentSessionType} -> ${newSessionType} in ${this._currentSessionKey}, ${( e.currentSessionResource.toString())}`,
|
|
1914
|
+
undefined,
|
|
1915
|
+
this._inputModel?.state.get(),
|
|
1916
|
+
this.logService
|
|
1917
|
+
);
|
|
1677
1918
|
this._currentSessionType = newSessionType;
|
|
1678
1919
|
this.initSelectedModel();
|
|
1679
1920
|
this.checkModelInSessionPool();
|
|
1680
1921
|
this.checkModeInSessionPool();
|
|
1922
|
+
this._notificationWidget.value?.rerender();
|
|
1923
|
+
} else if (e.currentSessionResource) {
|
|
1924
|
+
logChangesToStateModel(
|
|
1925
|
+
this._inputModel,
|
|
1926
|
+
`[CVVM].2 onDidChangeViewModel -> session change: ${this._currentSessionType} -> ${newSessionType} in ${this._currentSessionKey}, ${( e.currentSessionResource.toString())}`,
|
|
1927
|
+
undefined,
|
|
1928
|
+
this._inputModel?.state.get(),
|
|
1929
|
+
this.logService
|
|
1930
|
+
);
|
|
1931
|
+
this._currentSessionType = newSessionType;
|
|
1681
1932
|
}
|
|
1682
1933
|
this.preselectModelFromSessionHistory();
|
|
1683
1934
|
}));
|
|
@@ -1690,6 +1941,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1690
1941
|
".chat-tool-confirmation-carousel-container@chatToolConfirmationCarouselContainer"
|
|
1691
1942
|
),
|
|
1692
1943
|
h(".chat-input-notification-container@chatInputNotificationContainer"),
|
|
1944
|
+
h(".chat-goal-banner-container@chatGoalBannerContainer"),
|
|
1693
1945
|
h(".chat-todo-list-widget-container@chatInputTodoListWidgetContainer"),
|
|
1694
1946
|
h(".chat-artifacts-widget-container@chatArtifactsWidgetContainer"),
|
|
1695
1947
|
h(".chat-editing-session@chatEditingSessionWidgetContainer"),
|
|
@@ -1701,10 +1953,10 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1701
1953
|
h(".chat-input-toolbars@inputToolbars")
|
|
1702
1954
|
])]
|
|
1703
1955
|
),
|
|
1704
|
-
h(
|
|
1705
|
-
".chat-
|
|
1706
|
-
|
|
1707
|
-
),
|
|
1956
|
+
h(".chat-secondary-toolbar@secondaryToolbar", [
|
|
1957
|
+
h(".chat-context-usage-container@contextUsageWidgetContainer"),
|
|
1958
|
+
h(".chat-input-status-container@statusToolbarContainer")
|
|
1959
|
+
]),
|
|
1708
1960
|
h(
|
|
1709
1961
|
".chat-attachments-container@attachmentsContainer",
|
|
1710
1962
|
[h(".chat-attached-context@attachedContextContainer")]
|
|
@@ -1720,6 +1972,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1720
1972
|
),
|
|
1721
1973
|
h(".interactive-input-followups@followupsContainer"),
|
|
1722
1974
|
h(".chat-input-notification-container@chatInputNotificationContainer"),
|
|
1975
|
+
h(".chat-goal-banner-container@chatGoalBannerContainer"),
|
|
1723
1976
|
h(".chat-todo-list-widget-container@chatInputTodoListWidgetContainer"),
|
|
1724
1977
|
h(".chat-artifacts-widget-container@chatArtifactsWidgetContainer"),
|
|
1725
1978
|
h(".chat-editing-session@chatEditingSessionWidgetContainer"),
|
|
@@ -1731,10 +1984,10 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1731
1984
|
[h(".chat-attached-context@attachedContextContainer")]
|
|
1732
1985
|
), h(".chat-editor-container@editorContainer"), h(".chat-input-toolbars@inputToolbars")])]
|
|
1733
1986
|
),
|
|
1734
|
-
h(
|
|
1735
|
-
".chat-
|
|
1736
|
-
|
|
1737
|
-
)
|
|
1987
|
+
h(".chat-secondary-toolbar@secondaryToolbar", [
|
|
1988
|
+
h(".chat-context-usage-container@contextUsageWidgetContainer"),
|
|
1989
|
+
h(".chat-input-status-container@statusToolbarContainer")
|
|
1990
|
+
])
|
|
1738
1991
|
]);
|
|
1739
1992
|
}
|
|
1740
1993
|
this.container = elements.root;
|
|
@@ -1765,7 +2018,9 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1765
2018
|
this.chatToolConfirmationCarouselContainer = elements.chatToolConfirmationCarouselContainer;
|
|
1766
2019
|
hide(this.chatToolConfirmationCarouselContainer);
|
|
1767
2020
|
this.chatInputNotificationContainer = elements.chatInputNotificationContainer;
|
|
2021
|
+
this.chatGoalBannerContainer = elements.chatGoalBannerContainer;
|
|
1768
2022
|
this.contextUsageWidgetContainer = elements.contextUsageWidgetContainer;
|
|
2023
|
+
this.statusToolbarContainer = elements.statusToolbarContainer;
|
|
1769
2024
|
if (this.options.isSessionsWindow || this.options.renderStyle === "compact") {
|
|
1770
2025
|
toolbarsContainer.prepend(this.contextUsageWidgetContainer);
|
|
1771
2026
|
}
|
|
@@ -1824,6 +2079,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1824
2079
|
options.autoClosingBrackets = this.configurationService.getValue("editor.autoClosingBrackets");
|
|
1825
2080
|
options.autoClosingQuotes = this.configurationService.getValue("editor.autoClosingQuotes");
|
|
1826
2081
|
options.autoSurround = this.configurationService.getValue("editor.autoSurround");
|
|
2082
|
+
options.quickSuggestions = false;
|
|
1827
2083
|
options.suggest = {
|
|
1828
2084
|
showIcons: true,
|
|
1829
2085
|
showSnippets: false,
|
|
@@ -1849,7 +2105,8 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1849
2105
|
GlyphHoverController.ID,
|
|
1850
2106
|
DropIntoEditorController.ID,
|
|
1851
2107
|
CopyPasteController.ID,
|
|
1852
|
-
LinkDetector.ID
|
|
2108
|
+
LinkDetector.ID,
|
|
2109
|
+
InlineCompletionsController.ID
|
|
1853
2110
|
]));
|
|
1854
2111
|
this._inputEditor = this._register(
|
|
1855
2112
|
scopedInstantiationService.createInstance(CodeEditorWidget, this._inputEditorElement, options, editorOptions)
|
|
@@ -1877,9 +2134,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1877
2134
|
this._layout(this.cachedWidth);
|
|
1878
2135
|
}
|
|
1879
2136
|
}
|
|
1880
|
-
|
|
1881
|
-
const inputHasText = !!model && model.getValue().trim().length > 0;
|
|
1882
|
-
this.inputEditorHasText.set(inputHasText);
|
|
2137
|
+
this._updateInputContentContextKeys();
|
|
1883
2138
|
this._syncTextDebounced.schedule();
|
|
1884
2139
|
}));
|
|
1885
2140
|
this._register(this._inputEditor.onDidContentSizeChange(e => {
|
|
@@ -1913,13 +2168,18 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1913
2168
|
actionContext: {
|
|
1914
2169
|
widget
|
|
1915
2170
|
},
|
|
1916
|
-
|
|
2171
|
+
compact: derived(
|
|
1917
2172
|
reader => this._stableInputPartWidth.read(reader) < CHAT_INPUT_PICKER_COLLAPSE_WIDTH
|
|
1918
2173
|
)
|
|
1919
2174
|
};
|
|
2175
|
+
const primarySessionPickerOptions = {
|
|
2176
|
+
...pickerOptions,
|
|
2177
|
+
compact: constObservable(true)
|
|
2178
|
+
};
|
|
1920
2179
|
const secondaryPickerOptions = {
|
|
1921
2180
|
...pickerOptions,
|
|
1922
|
-
getOverflowAnchor: () => this.secondaryToolbar.getElement()
|
|
2181
|
+
getOverflowAnchor: () => this.secondaryToolbar.getElement(),
|
|
2182
|
+
compact: constObservable(true)
|
|
1923
2183
|
};
|
|
1924
2184
|
this._register(
|
|
1925
2185
|
addStandardDisposableListener(toolbarsContainer, EventType.CLICK, e => this.inputEditor.focus())
|
|
@@ -1952,6 +2212,13 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1952
2212
|
if (this.chatPhoneInputPresenter.enabled.get()) {
|
|
1953
2213
|
if (action.id === OpenModelPickerAction.ID && action instanceof MenuItemAction) {
|
|
1954
2214
|
if (!this._currentLanguageModel.get()) {
|
|
2215
|
+
logChangesToStateModel(
|
|
2216
|
+
this._inputModel,
|
|
2217
|
+
`actionViewItemProvider[phone]: _currentLanguageModel is undefined at toolbar build, forcing default for ${this._currentSessionKey}`,
|
|
2218
|
+
undefined,
|
|
2219
|
+
undefined,
|
|
2220
|
+
this.logService
|
|
2221
|
+
);
|
|
1955
2222
|
this.setCurrentLanguageModelToDefault();
|
|
1956
2223
|
}
|
|
1957
2224
|
const modelDelegate = this._createModelPickerDelegate();
|
|
@@ -1968,6 +2235,13 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1968
2235
|
}
|
|
1969
2236
|
if (action.id === OpenModelPickerAction.ID && action instanceof MenuItemAction) {
|
|
1970
2237
|
if (!this._currentLanguageModel.get()) {
|
|
2238
|
+
logChangesToStateModel(
|
|
2239
|
+
this._inputModel,
|
|
2240
|
+
`actionViewItemProvider[desktop]: _currentLanguageModel is undefined at toolbar build, forcing default for ${this._currentSessionKey}`,
|
|
2241
|
+
undefined,
|
|
2242
|
+
undefined,
|
|
2243
|
+
this.logService
|
|
2244
|
+
);
|
|
1971
2245
|
this.setCurrentLanguageModelToDefault();
|
|
1972
2246
|
}
|
|
1973
2247
|
const itemDelegate = this._createModelPickerDelegate();
|
|
@@ -2006,7 +2280,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2006
2280
|
pickerOptions
|
|
2007
2281
|
);
|
|
2008
2282
|
} else if (action.id === ChatSessionPrimaryPickerAction.ID && action instanceof MenuItemAction) {
|
|
2009
|
-
const widgets = this.createChatSessionPickerWidgets(action,
|
|
2283
|
+
const widgets = this.createChatSessionPickerWidgets(action, primarySessionPickerOptions);
|
|
2010
2284
|
if (widgets.length === 0) {
|
|
2011
2285
|
return ( new HiddenActionViewItem(action));
|
|
2012
2286
|
}
|
|
@@ -2031,7 +2305,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2031
2305
|
}
|
|
2032
2306
|
}));
|
|
2033
2307
|
this._register(autorun(reader => {
|
|
2034
|
-
pickerOptions.
|
|
2308
|
+
pickerOptions.compact.read(reader);
|
|
2035
2309
|
queueMicrotask(() => this.inputActionsToolbar.relayout());
|
|
2036
2310
|
}));
|
|
2037
2311
|
let lastPhoneEnabled = this.chatPhoneInputPresenter.enabled.get();
|
|
@@ -2083,17 +2357,15 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2083
2357
|
widget
|
|
2084
2358
|
};
|
|
2085
2359
|
}
|
|
2086
|
-
const
|
|
2087
|
-
OpenAgentHostModePickerAction.ID,
|
|
2088
|
-
OpenAgentHostAutoApprovePickerAction.ID,
|
|
2089
|
-
OpenAgentHostPermissionModePickerAction.ID,
|
|
2090
|
-
|
|
2091
|
-
OpenAgentHostIsolationPickerAction.ID,
|
|
2092
|
-
"sessions.tunnelHost.toggleSharing"
|
|
2360
|
+
const agentHostShortPickerMinWidths = ( new Map([
|
|
2361
|
+
[OpenAgentHostModePickerAction.ID, 22],
|
|
2362
|
+
[OpenAgentHostAutoApprovePickerAction.ID, 22],
|
|
2363
|
+
[OpenAgentHostPermissionModePickerAction.ID, 22],
|
|
2364
|
+
["sessions.tunnelHost.toggleSharing", 16]
|
|
2093
2365
|
]));
|
|
2094
2366
|
const genericChipsContainer = $$1(".chat-secondary-generic-chips");
|
|
2095
2367
|
const genericChipsLane = this._register(
|
|
2096
|
-
this.instantiationService.createInstance(AgentHostGenericConfigChips, widget
|
|
2368
|
+
this.instantiationService.createInstance(AgentHostGenericConfigChips, widget)
|
|
2097
2369
|
);
|
|
2098
2370
|
genericChipsLane.render(genericChipsContainer);
|
|
2099
2371
|
this.secondaryToolbar = this._register(this.instantiationService.createInstance(
|
|
@@ -2112,7 +2384,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2112
2384
|
kind: "all",
|
|
2113
2385
|
minItems: 1,
|
|
2114
2386
|
actionMinWidth: 48,
|
|
2115
|
-
getActionMinWidth: action =>
|
|
2387
|
+
getActionMinWidth: action => agentHostShortPickerMinWidths.get(action.id)
|
|
2116
2388
|
},
|
|
2117
2389
|
actionViewItemProvider: (action, options) => {
|
|
2118
2390
|
if ((action.id === OpenSessionTargetPickerAction.ID || action.id === OpenDelegationPickerAction.ID) && action instanceof MenuItemAction) {
|
|
@@ -2199,12 +2471,12 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2199
2471
|
this.permissionWidgetDisposeListener.clear();
|
|
2200
2472
|
});
|
|
2201
2473
|
return widget;
|
|
2202
|
-
} else if ((action.id === OpenAgentHostModePickerAction.ID || action.id === OpenAgentHostAutoApprovePickerAction.ID || action.id === OpenAgentHostPermissionModePickerAction.ID
|
|
2474
|
+
} else if ((action.id === OpenAgentHostModePickerAction.ID || action.id === OpenAgentHostAutoApprovePickerAction.ID || action.id === OpenAgentHostPermissionModePickerAction.ID) && action instanceof MenuItemAction) {
|
|
2203
2475
|
if (this.options.isSessionsWindow) {
|
|
2204
2476
|
return ( new HiddenActionViewItem(action));
|
|
2205
2477
|
}
|
|
2206
|
-
const property = action.id ===
|
|
2207
|
-
const picker = this.instantiationService.createInstance(AgentHostChatInputPicker, widget, property
|
|
2478
|
+
const property = action.id === OpenAgentHostAutoApprovePickerAction.ID ? SessionConfigKey.AutoApprove : action.id === OpenAgentHostPermissionModePickerAction.ID ? ClaudeSessionConfigKey.PermissionMode : SessionConfigKey.Mode;
|
|
2479
|
+
const picker = this.instantiationService.createInstance(AgentHostChatInputPicker, widget, property);
|
|
2208
2480
|
return ( new AgentHostChatInputPickerActionViewItem(action, picker));
|
|
2209
2481
|
} else if (action.id === ChatSessionPrimaryPickerAction.ID && action instanceof MenuItemAction) {
|
|
2210
2482
|
const widgets = this.createChatSessionPickerWidgets(action, secondaryPickerOptions);
|
|
@@ -2229,9 +2501,32 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2229
2501
|
this.chatSessionPickerContainer = container;
|
|
2230
2502
|
}
|
|
2231
2503
|
}));
|
|
2504
|
+
this.statusToolbar = this._register(this.instantiationService.createInstance(
|
|
2505
|
+
MenuWorkbenchToolBar,
|
|
2506
|
+
this.statusToolbarContainer,
|
|
2507
|
+
MenuId.ChatInputStatus,
|
|
2508
|
+
{
|
|
2509
|
+
telemetrySource: this.options.menus.telemetrySource,
|
|
2510
|
+
menuOptions: {
|
|
2511
|
+
shouldForwardArgs: true
|
|
2512
|
+
},
|
|
2513
|
+
hiddenItemStrategy: HiddenItemStrategy.NoHide,
|
|
2514
|
+
hoverDelegate,
|
|
2515
|
+
actionViewItemProvider: (action, _opts) => {
|
|
2516
|
+
if (action instanceof MenuItemAction) {
|
|
2517
|
+
return this.instantiationService.createInstance(ChatInputStatusActionViewItem, action);
|
|
2518
|
+
}
|
|
2519
|
+
return undefined;
|
|
2520
|
+
}
|
|
2521
|
+
}
|
|
2522
|
+
));
|
|
2523
|
+
this.statusToolbar.getElement().classList.add("chat-input-status-toolbar");
|
|
2524
|
+
this.statusToolbar.context = {
|
|
2525
|
+
widget
|
|
2526
|
+
};
|
|
2232
2527
|
let inputModel = this.modelService.getModel(this.inputUri);
|
|
2233
2528
|
if (!inputModel) {
|
|
2234
|
-
inputModel = this._register(this.modelService.createModel("", null, this.inputUri,
|
|
2529
|
+
inputModel = this._register(this.modelService.createModel("", null, this.inputUri, false));
|
|
2235
2530
|
}
|
|
2236
2531
|
this.textModelResolverService.createModelReference(this.inputUri).then(ref => {
|
|
2237
2532
|
if (this._store.isDisposed) {
|
|
@@ -2947,7 +3242,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2947
3242
|
const button = this._chatEditsActionsDisposables.add(( new ButtonWithIcon(overviewTitle, {
|
|
2948
3243
|
supportIcons: true,
|
|
2949
3244
|
secondary: true,
|
|
2950
|
-
ariaLabel: ( localize(
|
|
3245
|
+
ariaLabel: ( localize(7685, "Toggle changed files."))
|
|
2951
3246
|
})));
|
|
2952
3247
|
const topLevelStats = derived(reader => {
|
|
2953
3248
|
const entries = editSessionEntriesObs.read(reader);
|
|
@@ -3021,10 +3316,10 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
3021
3316
|
removed,
|
|
3022
3317
|
shouldShowEditingSession
|
|
3023
3318
|
} = topLevelStats.read(reader);
|
|
3024
|
-
const buttonLabel = files === 1 ? ( localize(
|
|
3319
|
+
const buttonLabel = files === 1 ? ( localize(7686, "1 file changed")) : ( localize(7687, "{0} files changed", files));
|
|
3025
3320
|
button.label = buttonLabel;
|
|
3026
3321
|
button.element.setAttribute("aria-label", ( localize(
|
|
3027
|
-
|
|
3322
|
+
7688,
|
|
3028
3323
|
"{0}, {1} lines added, {2} lines removed",
|
|
3029
3324
|
buttonLabel,
|
|
3030
3325
|
added,
|