@codingame/monaco-vscode-katex-common 30.0.1 → 31.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/vscode/src/vs/platform/actions/browser/actionbar.d.ts +16 -0
- package/vscode/src/vs/platform/actions/browser/actionbar.js +22 -0
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -2
- package/vscode/src/vs/platform/networkFilter/common/domainMatcher.d.ts +50 -0
- package/vscode/src/vs/platform/networkFilter/common/domainMatcher.js +138 -0
- package/vscode/src/vs/platform/networkFilter/common/settings.d.ts +12 -0
- package/vscode/src/vs/platform/networkFilter/common/settings.js +14 -0
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.d.ts +18 -0
- package/vscode/src/vs/platform/sandbox/common/sandboxHelperIpc.js +13 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.d.ts +73 -0
- package/vscode/src/vs/platform/sandbox/common/terminalSandboxService.js +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +16 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +51 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +64 -72
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +17 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +17 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +73 -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 +32 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentModel.js +20 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +73 -49
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.d.ts +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +41 -99
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +13 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +12 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +14 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.d.ts +11 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +339 -161
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +9 -2
- 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.d.ts +9 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +33 -5
- 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/chatCollections.d.ts +43 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollections.js +147 -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.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +55 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentCodePools.js +7 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +42 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -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/animations/animation.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/animationRegistry.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/animationRegistry.js +16 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/blockAnimations.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/animations/blockAnimations.js +33 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/buffer.d.ts +46 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/bufferRegistry.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/bufferRegistry.js +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/offBuffer.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/offBuffer.js +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/paragraphBuffer.js +37 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/wordBuffer.d.ts +34 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/buffers/wordBuffer.js +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.d.ts +77 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/chatIncrementalRendering.js +170 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatIncrementalRendering/media/chatIncrementalRendering.css +112 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +26 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +24 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +111 -145
- 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 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +425 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +16 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +68 -25
- 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 +101 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
- 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 +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +36 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +217 -25
- 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 +23 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +168 -60
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +18 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +1 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +7 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +1 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +7 -19
- 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 +24 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +104 -78
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +11 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +257 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSubagentContent.css +30 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +286 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +1 -1
- 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/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 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +1 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +25 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +29 -53
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +258 -321
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.d.ts +53 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +392 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +24 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +2 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +9 -8
- 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/terminalToolAutoExpand.d.ts +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/terminalToolAutoExpand.js +2 -3
- 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 +38 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +577 -113
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +0 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +4 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +1 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +58 -75
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +44 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +362 -188
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +4 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +42 -95
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +9 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +57 -38
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +21 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/{modelPickerActionItem2.js → modelPickerActionItem.js} +5 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +38 -31
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +4 -5
- 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 +94 -40
- 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/common/chatArtifactExtraction.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatArtifactExtraction.js +218 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +7 -7
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +6 -1
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +15 -15
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +12 -21
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +2 -32
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +355 -156
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +2 -13
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +72 -65
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +4 -43
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +238 -204
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.d.ts +4 -19
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +128 -115
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.d.ts +6 -9
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +152 -49
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +64 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +40 -40
- 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/terminal/terminalContribChatExports.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/alternativeRecommendation.js +41 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/commandFileWriteParser.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/commandParsers/sedFileWriteParser.js +142 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.js +165 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +53 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.js +163 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +27 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.js +142 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.js +144 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.d.ts +40 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/strategyHelpers.js +174 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/outputHelpers.js +43 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +256 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalToolTelemetry.js +94 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +221 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/commandLineAutoApprover.js +392 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +243 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.d.ts +52 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAnalyzer.js +10 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +310 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +168 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineSandboxAnalyzer.js +33 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/commandLinePresenter.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/nodeCommandLinePresenter.js +37 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/pythonCommandLinePresenter.js +37 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/rubyCommandLinePresenter.js +44 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLinePresenter/sandboxedCommandLinePresenter.js +22 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineBackgroundDetachRewriter.js +47 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineCdPrefixRewriter.js +27 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePreventHistoryRewriter.js +29 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLinePwshChainOperatorRewriter.js +33 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineRewriter.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineRewriter/commandLineSandboxRewriter.js +32 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +108 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +412 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.js +23 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +192 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +2258 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +43 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalCommandArtifactCollector.js +118 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/terminalToolAutoApprove.js +44 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/toolIds.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.d.ts +25 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/treeSitterCommandParser.js +141 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +85 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +608 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.d.ts +0 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +0 -196
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.d.ts +0 -29
- package/vscode/src/vs/workbench/contrib/chat/common/widget/codeBlockModelCollection.d.ts +0 -46
- package/vscode/src/vs/workbench/contrib/chat/common/widget/codeBlockModelCollection.js +0 -215
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +0 -18
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +0 -107
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
-
import { $ as $$1, clearNode, h, append, addStandardDisposableListener, EventType, DisposableResizeObserver, setVisibility, isKeyboardEvent, getActiveElement, getWindow, addDisposableListener, getTotalWidth } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
3
|
+
import { $ as $$1, clearNode, h, hide, append, addStandardDisposableListener, EventType, DisposableResizeObserver, setVisibility, isKeyboardEvent, getActiveElement, getWindow, show, addDisposableListener, getTotalWidth } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
4
4
|
import { DEFAULT_FONT_FAMILY } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/fonts';
|
|
5
5
|
import { hasModifierKeys } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/keyboardEvent';
|
|
6
6
|
import { BaseActionViewItem, ActionViewItem } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/actionbar/actionViewItems';
|
|
7
7
|
import { status } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
|
|
8
8
|
import { ButtonWithIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
|
|
9
9
|
import { createInstantHoverDelegate } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
|
|
10
|
-
import { HoverPosition } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverWidget';
|
|
11
10
|
import { equals } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
|
|
12
11
|
import { RunOnceScheduler, DeferredPromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
13
12
|
import { isDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
14
13
|
import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
|
|
15
14
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
16
|
-
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
15
|
+
import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
17
16
|
import { Iterable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iterator';
|
|
18
17
|
import { KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
|
|
19
18
|
import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
|
|
@@ -62,12 +61,12 @@ import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/t
|
|
|
62
61
|
import { ISharedWebContentExtractorService } from '@codingame/monaco-vscode-api/vscode/vs/platform/webContentExtractor/common/webContentExtractor.service';
|
|
63
62
|
import { WorkbenchState } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace';
|
|
64
63
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
64
|
+
import { ISCMService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/scm/common/scm.service';
|
|
65
65
|
import { Position } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService';
|
|
66
66
|
import { IWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service';
|
|
67
67
|
import { ViewContainerLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views';
|
|
68
68
|
import { IViewDescriptorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/views.service';
|
|
69
69
|
import { ResourceLabels } from '@codingame/monaco-vscode-api/vscode/vs/workbench/browser/labels';
|
|
70
|
-
import { IWorkbenchAssignmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/assignment/common/assignmentService.service';
|
|
71
70
|
import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
|
|
72
71
|
import { SIDE_GROUP, ACTIVE_GROUP } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService';
|
|
73
72
|
import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
@@ -76,13 +75,12 @@ import { AccessibilityCommandId } from '@codingame/monaco-vscode-api/vscode/vs/w
|
|
|
76
75
|
import { getSimpleEditorOptions, getSimpleCodeEditorWidgetOptions, setupSimpleEditorSelectionStyling } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/codeEditor/browser/simpleEditorOptions';
|
|
77
76
|
import { InlineChatConfigKeys } from '../../../../inlineChat/common/inlineChat.js';
|
|
78
77
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
79
|
-
import { ChatRequestVariableSet, isImageVariableEntry, isStringVariableEntry,
|
|
78
|
+
import { ChatRequestVariableSet, isImageVariableEntry, isStringVariableEntry, getImageAttachmentLimit, OmittedState, isNotebookOutputVariableEntry, isPromptFileVariableEntry, isPromptTextVariableEntry, isElementVariableEntry, isPasteVariableEntry, isSCMHistoryItemVariableEntry, isSCMHistoryItemChangeVariableEntry, isSCMHistoryItemChangeRangeVariableEntry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
|
|
80
79
|
import { getModeNameForTelemetry, ChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes';
|
|
81
80
|
import { IChatModeService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes.service';
|
|
82
|
-
import {
|
|
83
|
-
import { agentOptionId, localChatSessionType, isIChatSessionFileChange2 } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
|
|
81
|
+
import { localChatSessionType, isIChatSessionFileChange2 } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
|
|
84
82
|
import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
|
|
85
|
-
import { ChatAgentLocation, ChatModeKind,
|
|
83
|
+
import { ChatAgentLocation, ChatModeKind, ChatConfiguration, ChatPermissionLevel, isChatPermissionLevel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
86
84
|
import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService';
|
|
87
85
|
import { ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
88
86
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
@@ -101,12 +99,13 @@ import { ToolSetOrToolItemAttachmentWidget, NotebookCellOutputChatAttachmentWidg
|
|
|
101
99
|
import { ChatImplicitContexts } from '../../attachments/chatImplicitContext.js';
|
|
102
100
|
import { ImplicitContextAttachmentWidget } from '../../attachments/implicitContextAttachment.js';
|
|
103
101
|
import { isIChatResourceViewContext, isIChatViewViewContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
|
|
104
|
-
import { ChatEditingShowChangesAction, ViewPreviousEditsAction
|
|
102
|
+
import { ChatEditingShowChangesAction, ViewPreviousEditsAction } from '../../chatEditing/chatEditingActions.js';
|
|
105
103
|
import { resizeImage } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatImageUtils';
|
|
106
104
|
import { ChatSessionPickerActionItem } from '../../chatSessions/chatSessionPickerActionItem.js';
|
|
107
|
-
import { SearchableOptionPickerActionItem } from '../../chatSessions/searchableOptionPickerActionItem.js';
|
|
108
105
|
import { IChatContextService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.service';
|
|
106
|
+
import { ChatPlanReviewPart } from '../chatContentParts/chatPlanReviewPart.js';
|
|
109
107
|
import { ChatQuestionCarouselPart } from '../chatContentParts/chatQuestionCarouselPart.js';
|
|
108
|
+
import { ChatToolConfirmationCarouselPart } from '../chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js';
|
|
110
109
|
import { CollapsibleListPool } from '../chatContentParts/chatReferencesContentPart.js';
|
|
111
110
|
import { ChatTodoListWidget } from '../chatContentParts/chatTodoListWidget.js';
|
|
112
111
|
import { ChatArtifactsWidget } from '../chatArtifactsWidget.js';
|
|
@@ -115,13 +114,13 @@ import { ChatFollowups } from './chatFollowups.js';
|
|
|
115
114
|
import { ChatInputPartWidgetController } from './chatInputPartWidgets.js';
|
|
116
115
|
import { ChatSelectedTools } from './chatSelectedTools.js';
|
|
117
116
|
import { DelegationSessionPickerActionItem } from './delegationSessionPickerActionItem.js';
|
|
117
|
+
import { ModelPickerActionItem } from './modelPickerActionItem.js';
|
|
118
118
|
import { ModePickerActionItem } from './modePickerActionItem.js';
|
|
119
119
|
import { PermissionPickerActionItem } from './permissionPickerActionItem.js';
|
|
120
120
|
import { SessionTypePickerActionItem } from './sessionTargetPickerActionItem.js';
|
|
121
121
|
import { WorkspacePickerActionItem } from './workspacePickerActionItem.js';
|
|
122
122
|
import { ChatContextUsageWidget } from '../../widgetHosts/viewPane/chatContextUsageWidget.js';
|
|
123
123
|
import { Target } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes';
|
|
124
|
-
import { EnhancedModelPickerActionItem } from './modelPickerActionItem2.js';
|
|
125
124
|
import { findLast } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arraysFind';
|
|
126
125
|
import { ConfigureToolsAction } from '../../actions/chatToolActions.js';
|
|
127
126
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
@@ -285,15 +284,14 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
285
284
|
storageService,
|
|
286
285
|
agentService,
|
|
287
286
|
sharedWebExtracterService,
|
|
288
|
-
experimentService,
|
|
289
287
|
entitlementService,
|
|
290
288
|
chatModeService,
|
|
291
289
|
toolService,
|
|
292
|
-
chatService,
|
|
293
290
|
chatSessionsService,
|
|
294
291
|
chatContextService,
|
|
295
292
|
agentSessionsService,
|
|
296
293
|
workspaceContextService,
|
|
294
|
+
scmService,
|
|
297
295
|
layoutService,
|
|
298
296
|
viewDescriptorService,
|
|
299
297
|
_chatAttachmentWidgetRegistry
|
|
@@ -317,15 +315,14 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
317
315
|
this.storageService = storageService;
|
|
318
316
|
this.agentService = agentService;
|
|
319
317
|
this.sharedWebExtracterService = sharedWebExtracterService;
|
|
320
|
-
this.experimentService = experimentService;
|
|
321
318
|
this.entitlementService = entitlementService;
|
|
322
319
|
this.chatModeService = chatModeService;
|
|
323
320
|
this.toolService = toolService;
|
|
324
|
-
this.chatService = chatService;
|
|
325
321
|
this.chatSessionsService = chatSessionsService;
|
|
326
322
|
this.chatContextService = chatContextService;
|
|
327
323
|
this.agentSessionsService = agentSessionsService;
|
|
328
324
|
this.workspaceContextService = workspaceContextService;
|
|
325
|
+
this.scmService = scmService;
|
|
329
326
|
this.layoutService = layoutService;
|
|
330
327
|
this.viewDescriptorService = viewDescriptorService;
|
|
331
328
|
this._chatAttachmentWidgetRegistry = _chatAttachmentWidgetRegistry;
|
|
@@ -336,6 +333,10 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
336
333
|
this._chatQuestionCarouselWidgets = this._register(( new DisposableMap()));
|
|
337
334
|
this._questionCarouselResponseIds = ( new Map());
|
|
338
335
|
this._questionCarouselSessionResources = ( new Map());
|
|
336
|
+
this._chatPlanReviewWidgets = this._register(( new DisposableMap()));
|
|
337
|
+
this._planReviewResponseIds = ( new Map());
|
|
338
|
+
this._planReviewSessionResources = ( new Map());
|
|
339
|
+
this._chatToolConfirmationCarousels = this._register(( new DisposableMap()));
|
|
339
340
|
this._chatEditingTodosDisposables = this._register(( new DisposableStore()));
|
|
340
341
|
this._onDidLoadInputState = this._register(( new Emitter()));
|
|
341
342
|
this.onDidLoadInputState = this._onDidLoadInputState.event;
|
|
@@ -392,7 +393,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
392
393
|
onDidChangeVisibility: this._onDidChangeVisibility.event
|
|
393
394
|
}));
|
|
394
395
|
this._currentModeObservable = observableValue("currentMode", this.options.defaultMode ?? ChatMode.Agent);
|
|
395
|
-
this._currentPermissionLevel = observableValue("permissionLevel",
|
|
396
|
+
this._currentPermissionLevel = observableValue("permissionLevel", this.getDefaultPermissionLevel());
|
|
396
397
|
this._register(this.editorService.onDidActiveEditorChange(() => {
|
|
397
398
|
this._indexOfLastOpenedContext = -1;
|
|
398
399
|
this.refreshChatSessionPickers();
|
|
@@ -406,9 +407,8 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
406
407
|
this._register(this.chatSessionsService.onDidChangeOptionGroups(chatSessionType => {
|
|
407
408
|
const sessionResource = this._widget?.viewModel?.model.sessionResource;
|
|
408
409
|
if (sessionResource) {
|
|
409
|
-
const ctx = this.chatService.getChatSessionFromInternalUri(sessionResource);
|
|
410
410
|
const delegateSessionType = this.options.sessionTypePickerDelegate?.getActiveSessionProvider?.();
|
|
411
|
-
if (
|
|
411
|
+
if (getChatSessionType(sessionResource) === chatSessionType || delegateSessionType === chatSessionType) {
|
|
412
412
|
this.refreshChatSessionPickers();
|
|
413
413
|
}
|
|
414
414
|
}
|
|
@@ -416,10 +416,11 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
416
416
|
if (this.options.sessionTypePickerDelegate?.onDidChangeActiveSessionProvider) {
|
|
417
417
|
this._register(
|
|
418
418
|
this.options.sessionTypePickerDelegate.onDidChangeActiveSessionProvider(async newSessionType => {
|
|
419
|
-
this.
|
|
419
|
+
this.getVisibleOptionGroupsModeAndUpdateContextKeys(this.getCurrentSessionResource());
|
|
420
420
|
this.agentSessionTypeKey.set(newSessionType);
|
|
421
421
|
this.chatSessionSupportsDelegationKey.set(this.chatSessionsService.supportsDelegationForSessionType(newSessionType));
|
|
422
422
|
this.updateWidgetLockStateFromSessionType(newSessionType);
|
|
423
|
+
this.checkModeInSessionPool(newSessionType);
|
|
423
424
|
this.refreshChatSessionPickers();
|
|
424
425
|
})
|
|
425
426
|
);
|
|
@@ -443,6 +444,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
443
444
|
this.chatModeNameKey = ChatContextKeys.chatModeName.bindTo(contextKeyService);
|
|
444
445
|
this.chatModelIdKey = ChatContextKeys.chatModelId.bindTo(contextKeyService);
|
|
445
446
|
this.permissionLevelKey = ChatContextKeys.chatPermissionLevel.bindTo(contextKeyService);
|
|
447
|
+
this.permissionLevelKey.set(this._currentPermissionLevel.get());
|
|
446
448
|
this.withinEditSessionKey = ChatContextKeys.withinEditSessionDiff.bindTo(contextKeyService);
|
|
447
449
|
this.filePartOfEditSessionKey = ChatContextKeys.filePartOfEditSession.bindTo(contextKeyService);
|
|
448
450
|
this.chatSessionHasOptions = ChatContextKeys.chatSessionHasModels.bindTo(contextKeyService);
|
|
@@ -465,6 +467,14 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
465
467
|
);
|
|
466
468
|
this._register(this.configurationService.onDidChangeConfiguration(e => {
|
|
467
469
|
const newOptions = {};
|
|
470
|
+
if (e.affectsConfiguration(ChatConfiguration.GlobalAutoApprove)) {
|
|
471
|
+
this.setPermissionLevel(this._currentPermissionLevel.get());
|
|
472
|
+
}
|
|
473
|
+
if (e.affectsConfiguration(ChatConfiguration.DefaultPermissionLevel)) {
|
|
474
|
+
if (this._chatSessionIsEmpty) {
|
|
475
|
+
this.setPermissionLevel(this.getDefaultPermissionLevel());
|
|
476
|
+
}
|
|
477
|
+
}
|
|
468
478
|
if (e.affectsConfiguration(AccessibilityVerbositySettingId.Chat)) {
|
|
469
479
|
newOptions.ariaLabel = this._getAriaLabel();
|
|
470
480
|
}
|
|
@@ -528,26 +538,6 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
528
538
|
this.switchModelByQualifiedName(models);
|
|
529
539
|
}
|
|
530
540
|
}));
|
|
531
|
-
this._register(autorun(r => {
|
|
532
|
-
const mode = this._currentModeObservable.read(r);
|
|
533
|
-
const modeName = mode.name.read(r);
|
|
534
|
-
const sessionResource = this._widget?.viewModel?.model.sessionResource;
|
|
535
|
-
if (sessionResource) {
|
|
536
|
-
const ctx = this.chatService.getChatSessionFromInternalUri(sessionResource);
|
|
537
|
-
if (ctx) {
|
|
538
|
-
let needsUpdate = true;
|
|
539
|
-
const agentOption = this.chatSessionsService.getSessionOption(ctx.chatSessionResource, agentOptionId);
|
|
540
|
-
if (typeof agentOption !== "undefined") {
|
|
541
|
-
const agentId = (typeof agentOption === "string" ? agentOption : agentOption.id) || ChatMode.Agent.id;
|
|
542
|
-
const isDefaultAgent = agentId === ChatMode.Agent.id;
|
|
543
|
-
needsUpdate = isDefaultAgent ? mode.id !== ChatMode.Agent.id : mode.label.read(undefined) !== agentId;
|
|
544
|
-
}
|
|
545
|
-
if (needsUpdate) {
|
|
546
|
-
this.chatSessionsService.updateSessionOptions(ctx.chatSessionResource, ( new Map([[agentOptionId, mode.isBuiltin ? "" : modeName]])));
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
}));
|
|
551
541
|
this.validateCurrentChatMode();
|
|
552
542
|
}
|
|
553
543
|
setImplicitContextEnablement() {
|
|
@@ -651,11 +641,22 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
651
641
|
this.permissionWidget?.show();
|
|
652
642
|
}
|
|
653
643
|
setPermissionLevel(level) {
|
|
644
|
+
level = this.getPermittedPermissionLevel(level);
|
|
654
645
|
this._currentPermissionLevel.set(level, undefined);
|
|
655
646
|
this.permissionLevelKey.set(level);
|
|
656
647
|
this.permissionWidget?.refresh();
|
|
657
648
|
this._syncInputStateToModel();
|
|
658
649
|
}
|
|
650
|
+
getDefaultPermissionLevel() {
|
|
651
|
+
const level = this.configurationService.getValue(ChatConfiguration.DefaultPermissionLevel);
|
|
652
|
+
return isChatPermissionLevel(level) ? level : ChatPermissionLevel.Default;
|
|
653
|
+
}
|
|
654
|
+
getPermittedPermissionLevel(level) {
|
|
655
|
+
if (this.configurationService.inspect(ChatConfiguration.GlobalAutoApprove).policyValue === false && level !== ChatPermissionLevel.Default) {
|
|
656
|
+
return ChatPermissionLevel.Default;
|
|
657
|
+
}
|
|
658
|
+
return level;
|
|
659
|
+
}
|
|
659
660
|
openSessionTargetPicker() {
|
|
660
661
|
this.sessionTargetWidget?.show();
|
|
661
662
|
}
|
|
@@ -669,21 +670,18 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
669
670
|
createChatSessionPickerWidgets(action, pickerOptions) {
|
|
670
671
|
this._lastSessionPickerAction = action;
|
|
671
672
|
this._lastSessionPickerOptions = pickerOptions;
|
|
672
|
-
const
|
|
673
|
-
|
|
673
|
+
const sessionResource = this.getCurrentSessionResource();
|
|
674
|
+
const visibleOptionGroups = this.getVisibleOptionGroupsModeAndUpdateContextKeys(sessionResource);
|
|
675
|
+
if (!visibleOptionGroups.length) {
|
|
676
|
+
return [];
|
|
677
|
+
}
|
|
678
|
+
const effectiveSessionType = this.getEffectiveSessionType(sessionResource);
|
|
679
|
+
if (!effectiveSessionType) {
|
|
674
680
|
return [];
|
|
675
681
|
}
|
|
676
|
-
const {
|
|
677
|
-
visibleGroupIds,
|
|
678
|
-
optionGroups,
|
|
679
|
-
effectiveSessionType
|
|
680
|
-
} = result;
|
|
681
682
|
this.chatSessionPickerWidgets.clearAndDisposeAll();
|
|
682
683
|
const widgets = [];
|
|
683
|
-
for (const optionGroup of
|
|
684
|
-
if (!( visibleGroupIds.has(optionGroup.id))) {
|
|
685
|
-
continue;
|
|
686
|
-
}
|
|
684
|
+
for (const optionGroup of visibleOptionGroups) {
|
|
687
685
|
const initialItem = this.getCurrentOptionForGroup(optionGroup.id);
|
|
688
686
|
const initialState = {
|
|
689
687
|
group: optionGroup,
|
|
@@ -696,9 +694,8 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
696
694
|
this.updateOptionContextKey(optionGroup.id, option.id);
|
|
697
695
|
this.getOrCreateOptionEmitter(optionGroup.id).fire(option);
|
|
698
696
|
const sessionResource = this._widget?.viewModel?.model.sessionResource;
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
this.chatSessionsService.setSessionOption(currentCtx.chatSessionResource, optionGroup.id, option);
|
|
697
|
+
if (sessionResource) {
|
|
698
|
+
this.chatSessionsService.setSessionOption(sessionResource, optionGroup.id, option);
|
|
702
699
|
}
|
|
703
700
|
this.refreshChatSessionPickers();
|
|
704
701
|
},
|
|
@@ -711,7 +708,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
711
708
|
}
|
|
712
709
|
};
|
|
713
710
|
const widget = this.instantiationService.createInstance(
|
|
714
|
-
|
|
711
|
+
ChatSessionPickerActionItem,
|
|
715
712
|
action,
|
|
716
713
|
initialState,
|
|
717
714
|
itemDelegate,
|
|
@@ -732,6 +729,16 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
732
729
|
this._chatSessionIsEmpty = chatSessionIsEmpty;
|
|
733
730
|
if (chatSessionIsEmpty) {
|
|
734
731
|
this._setEmptyModelState();
|
|
732
|
+
this._modelSyncDisposables.add(this.configurationService.onDidChangeConfiguration(e => {
|
|
733
|
+
if (this._chatSessionIsEmpty && e.affectsConfiguration(ChatConfiguration.DefaultNewSessionMode)) {
|
|
734
|
+
this._setEmptyModelState();
|
|
735
|
+
}
|
|
736
|
+
}));
|
|
737
|
+
this._modelSyncDisposables.add(this.chatModeService.onDidChangeChatModes(() => {
|
|
738
|
+
if (this._chatSessionIsEmpty) {
|
|
739
|
+
this._setEmptyModelState();
|
|
740
|
+
}
|
|
741
|
+
}));
|
|
735
742
|
}
|
|
736
743
|
this._modelSyncDisposables.add(autorun(reader => {
|
|
737
744
|
let state = model.state.read(reader);
|
|
@@ -742,24 +749,26 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
742
749
|
}));
|
|
743
750
|
}
|
|
744
751
|
_setEmptyModelState() {
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
752
|
+
this.setPermissionLevel(this.getDefaultPermissionLevel());
|
|
753
|
+
if (this.entitlementService.anonymous) {
|
|
754
|
+
this.setChatMode(ChatModeKind.Agent, false);
|
|
755
|
+
this.checkModelSupported();
|
|
756
|
+
return;
|
|
757
|
+
}
|
|
758
|
+
const rawDefaultMode = this.configurationService.getValue(ChatConfiguration.DefaultNewSessionMode);
|
|
759
|
+
if (typeof rawDefaultMode === "string") {
|
|
760
|
+
const defaultMode = rawDefaultMode.trim();
|
|
761
|
+
if (defaultMode) {
|
|
762
|
+
const defaultModeLower = defaultMode.toLowerCase();
|
|
763
|
+
const resolved = this.chatModeService.findModeById(defaultMode) ?? this.chatModeService.findModeByName(defaultMode) ?? this.chatModeService.getModes().custom.find(m => m.name.get().toLowerCase() === defaultModeLower);
|
|
764
|
+
if (resolved) {
|
|
765
|
+
this.logService.trace(
|
|
766
|
+
`[ChatInputPart] Applying default mode from setting: ${defaultMode} -> ${resolved.id}`
|
|
767
|
+
);
|
|
768
|
+
this.setChatMode(resolved.id, false);
|
|
769
|
+
this.checkModelSupported();
|
|
761
770
|
}
|
|
762
|
-
}
|
|
771
|
+
}
|
|
763
772
|
}
|
|
764
773
|
}
|
|
765
774
|
_syncFromModel(state) {
|
|
@@ -808,7 +817,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
808
817
|
}
|
|
809
818
|
}
|
|
810
819
|
if (!this.configurationService.getValue(ChatConfiguration.GlobalAutoApprove)) {
|
|
811
|
-
const targetLevel = state?.permissionLevel ?? ChatPermissionLevel.Default;
|
|
820
|
+
const targetLevel = this.getPermittedPermissionLevel(state?.permissionLevel ?? ChatPermissionLevel.Default);
|
|
812
821
|
if (this._currentPermissionLevel.get() !== targetLevel) {
|
|
813
822
|
this._currentPermissionLevel.set(targetLevel, undefined);
|
|
814
823
|
this.permissionLevelKey.set(targetLevel);
|
|
@@ -918,8 +927,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
918
927
|
return delegateSessionType;
|
|
919
928
|
}
|
|
920
929
|
const sessionResource = this._widget?.viewModel?.model.sessionResource;
|
|
921
|
-
|
|
922
|
-
return ctx ? getChatSessionType(ctx.chatSessionResource) : undefined;
|
|
930
|
+
return sessionResource ? getChatSessionType(sessionResource) : undefined;
|
|
923
931
|
}
|
|
924
932
|
hasModelsTargetingSessionType() {
|
|
925
933
|
return hasModelsTargetingSession(this.getAllMergedModels(), this.getCurrentSessionType());
|
|
@@ -933,6 +941,31 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
933
941
|
this.setCurrentLanguageModelToDefault();
|
|
934
942
|
}
|
|
935
943
|
}
|
|
944
|
+
checkModeInSessionPool(sessionType) {
|
|
945
|
+
if (!sessionType) {
|
|
946
|
+
const sessionResource = this._widget?.viewModel?.model.sessionResource;
|
|
947
|
+
if (!sessionResource) {
|
|
948
|
+
return;
|
|
949
|
+
}
|
|
950
|
+
sessionType = getChatSessionType(sessionResource);
|
|
951
|
+
}
|
|
952
|
+
const customAgentTarget = this.chatSessionsService.getCustomAgentTargetForSessionType(sessionType);
|
|
953
|
+
if (!customAgentTarget || customAgentTarget === Target.Undefined) {
|
|
954
|
+
return;
|
|
955
|
+
}
|
|
956
|
+
const currentMode = this._currentModeObservable.get();
|
|
957
|
+
if (currentMode.id === ChatMode.Agent.id) {
|
|
958
|
+
return;
|
|
959
|
+
}
|
|
960
|
+
if (currentMode.isBuiltin) {
|
|
961
|
+
this.setChatMode(ChatModeKind.Agent, false);
|
|
962
|
+
return;
|
|
963
|
+
}
|
|
964
|
+
const modeTarget = currentMode.target.get();
|
|
965
|
+
if (modeTarget !== customAgentTarget && modeTarget !== Target.Undefined) {
|
|
966
|
+
this.setChatMode(ChatModeKind.Agent, false);
|
|
967
|
+
}
|
|
968
|
+
}
|
|
936
969
|
preselectModelFromSessionHistory() {
|
|
937
970
|
const requests = this._widget?.viewModel?.model.getRequests();
|
|
938
971
|
if (!requests || requests.length === 0) {
|
|
@@ -1001,40 +1034,40 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1001
1034
|
}
|
|
1002
1035
|
const mode = this._currentModeObservable.get();
|
|
1003
1036
|
const modelName = this._currentLanguageModel.get()?.metadata.name;
|
|
1004
|
-
const modelInfo = modelName ? ( localize(
|
|
1037
|
+
const modelInfo = modelName ? ( localize(7156, ", {0}. ", modelName)) : "";
|
|
1005
1038
|
let modeLabel = "";
|
|
1006
1039
|
if (!mode.isBuiltin) {
|
|
1007
1040
|
const mode = this.currentModeObs.get();
|
|
1008
|
-
modeLabel = ( localize(
|
|
1041
|
+
modeLabel = ( localize(7157, "({0}), {1}", mode.label.get(), mode.description.get()));
|
|
1009
1042
|
} else {
|
|
1010
1043
|
switch (this.currentModeKind) {
|
|
1011
1044
|
case ChatModeKind.Agent:
|
|
1012
|
-
modeLabel = ( localize(
|
|
1045
|
+
modeLabel = ( localize(7158, "(Agent), edit files in your workspace."));
|
|
1013
1046
|
break;
|
|
1014
1047
|
case ChatModeKind.Edit:
|
|
1015
|
-
modeLabel = ( localize(
|
|
1048
|
+
modeLabel = ( localize(7159, "(Edit), edit files in your workspace."));
|
|
1016
1049
|
break;
|
|
1017
1050
|
case ChatModeKind.Ask:
|
|
1018
1051
|
default:
|
|
1019
|
-
modeLabel = ( localize(
|
|
1052
|
+
modeLabel = ( localize(7160, "(Ask), ask questions or type / for topics."));
|
|
1020
1053
|
break;
|
|
1021
1054
|
}
|
|
1022
1055
|
}
|
|
1023
1056
|
if (verbose) {
|
|
1024
1057
|
return kbLabel ? ( localize(
|
|
1025
|
-
|
|
1058
|
+
7161,
|
|
1026
1059
|
"Chat Input {0}{1} Press Enter to send out the request. Use {2} for Chat Accessibility Help.",
|
|
1027
1060
|
modeLabel,
|
|
1028
1061
|
modelInfo,
|
|
1029
1062
|
kbLabel
|
|
1030
1063
|
)) : ( localize(
|
|
1031
|
-
|
|
1064
|
+
7162,
|
|
1032
1065
|
"Chat Input {0}{1} Press Enter to send out the request. Use the Chat Accessibility Help command for more information.",
|
|
1033
1066
|
modeLabel,
|
|
1034
1067
|
modelInfo
|
|
1035
1068
|
));
|
|
1036
1069
|
} else {
|
|
1037
|
-
return localize(
|
|
1070
|
+
return localize(7163, "Chat Input {0}{1}.", modeLabel, modelInfo);
|
|
1038
1071
|
}
|
|
1039
1072
|
}
|
|
1040
1073
|
validateCurrentChatMode() {
|
|
@@ -1050,10 +1083,6 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1050
1083
|
return;
|
|
1051
1084
|
}
|
|
1052
1085
|
}
|
|
1053
|
-
getDefaultModeExperimentStorageKey() {
|
|
1054
|
-
const tag = this.options.widgetViewKindTag;
|
|
1055
|
-
return `chat.${tag}.hasSetDefaultModeByExperiment`;
|
|
1056
|
-
}
|
|
1057
1086
|
logInputHistory() {
|
|
1058
1087
|
const historyStr = ( this.history.values.map(entry => JSON.stringify(entry))).join("\n");
|
|
1059
1088
|
this.logService.info(`[${this.location}] Chat input history:`, historyStr);
|
|
@@ -1271,99 +1300,81 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1271
1300
|
}
|
|
1272
1301
|
return this._scopedContextKeyService.contextMatchesRules(expr);
|
|
1273
1302
|
}
|
|
1274
|
-
|
|
1275
|
-
const
|
|
1276
|
-
this.chatSessionHasOptions.set(false);
|
|
1277
|
-
this.chatSessionOptionsValid.set(true);
|
|
1278
|
-
};
|
|
1279
|
-
const sessionResource = this._widget?.viewModel?.model.sessionResource;
|
|
1280
|
-
const ctx = sessionResource ? this.chatService.getChatSessionFromInternalUri(sessionResource) : undefined;
|
|
1281
|
-
const customAgentTarget = ctx && this.chatSessionsService.getCustomAgentTargetForSessionType(getChatSessionType(ctx.chatSessionResource));
|
|
1303
|
+
getVisibleOptionGroupsModeAndUpdateContextKeys(sessionResource) {
|
|
1304
|
+
const customAgentTarget = sessionResource && this.chatSessionsService.getCustomAgentTargetForSessionType(getChatSessionType(sessionResource));
|
|
1282
1305
|
this.chatSessionHasCustomAgentTarget.set(customAgentTarget !== Target.Undefined);
|
|
1283
|
-
const requiresCustomModels =
|
|
1306
|
+
const requiresCustomModels = sessionResource && this.chatSessionsService.requiresCustomModelsForSessionType(getChatSessionType(sessionResource));
|
|
1284
1307
|
this.chatSessionHasTargetedModels.set(!!requiresCustomModels);
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1308
|
+
const visibleOptionGroups = this.getVisibleOptionGroups(sessionResource);
|
|
1309
|
+
if (!visibleOptionGroups.length) {
|
|
1310
|
+
this.chatSessionHasOptions.set(false);
|
|
1311
|
+
this.chatSessionOptionsValid.set(true);
|
|
1312
|
+
return [];
|
|
1313
|
+
}
|
|
1314
|
+
const allOptionsValid = sessionResource ? this.areAllOptionsValid(sessionResource, visibleOptionGroups) : true;
|
|
1315
|
+
this.chatSessionHasOptions.set(true);
|
|
1316
|
+
this.chatSessionOptionsValid.set(allOptionsValid);
|
|
1317
|
+
return visibleOptionGroups;
|
|
1318
|
+
}
|
|
1319
|
+
getCurrentSessionResource() {
|
|
1320
|
+
return this._widget?.viewModel?.model.sessionResource;
|
|
1321
|
+
}
|
|
1322
|
+
areAllOptionsValid(sessionResource, visibleOptionGroups) {
|
|
1323
|
+
for (const optionGroup of visibleOptionGroups) {
|
|
1324
|
+
const currentOption = this.chatSessionsService.getSessionOption(sessionResource, optionGroup.id);
|
|
1325
|
+
if (currentOption) {
|
|
1326
|
+
const currentOptionId = typeof currentOption === "string" ? currentOption : currentOption.id;
|
|
1327
|
+
if (!( optionGroup.items.some(item => item.id === currentOptionId)) && typeof currentOption === "string") {
|
|
1328
|
+
return false;
|
|
1295
1329
|
}
|
|
1296
1330
|
}
|
|
1297
1331
|
}
|
|
1332
|
+
return true;
|
|
1333
|
+
}
|
|
1334
|
+
getAllOptionsGroups(sessionResource) {
|
|
1298
1335
|
const delegateSessionType = this.options.sessionTypePickerDelegate?.getActiveSessionProvider?.();
|
|
1299
|
-
const effectiveSessionType = delegateSessionType ?? (
|
|
1336
|
+
const effectiveSessionType = delegateSessionType ?? (sessionResource ? getChatSessionType(sessionResource) : undefined);
|
|
1300
1337
|
if (!effectiveSessionType) {
|
|
1301
|
-
|
|
1302
|
-
return undefined;
|
|
1338
|
+
return [];
|
|
1303
1339
|
}
|
|
1304
|
-
const
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1340
|
+
const allOptionGroups = this.chatSessionsService.getOptionGroupsForSessionType(effectiveSessionType);
|
|
1341
|
+
return allOptionGroups ?? [];
|
|
1342
|
+
}
|
|
1343
|
+
getVisibleOptionGroups(sessionResource) {
|
|
1344
|
+
const allOptionGroups = this.getAllOptionsGroups(sessionResource);
|
|
1345
|
+
if (!allOptionGroups.length) {
|
|
1346
|
+
return [];
|
|
1308
1347
|
}
|
|
1309
|
-
if (
|
|
1310
|
-
for (const optionGroup of
|
|
1311
|
-
const currentOption = this.chatSessionsService.getSessionOption(
|
|
1348
|
+
if (sessionResource) {
|
|
1349
|
+
for (const optionGroup of allOptionGroups) {
|
|
1350
|
+
const currentOption = this.chatSessionsService.getSessionOption(sessionResource, optionGroup.id);
|
|
1312
1351
|
if (currentOption) {
|
|
1313
1352
|
const optionId = typeof currentOption === "string" ? currentOption : currentOption.id;
|
|
1314
1353
|
this.updateOptionContextKey(optionGroup.id, optionId);
|
|
1315
1354
|
}
|
|
1316
1355
|
}
|
|
1317
1356
|
}
|
|
1318
|
-
const
|
|
1319
|
-
for (const optionGroup of
|
|
1357
|
+
const visibleGroups = ( new Map());
|
|
1358
|
+
for (const optionGroup of allOptionGroups) {
|
|
1320
1359
|
const hasItems = optionGroup.items.length > 0 || (optionGroup.commands || []).length > 0;
|
|
1321
1360
|
const passesWhenClause = this.evaluateOptionGroupVisibility(optionGroup);
|
|
1322
|
-
const sessionHasOption = !
|
|
1361
|
+
const sessionHasOption = !sessionResource || this.chatSessionsService.getSessionOption(sessionResource, optionGroup.id) !== undefined;
|
|
1323
1362
|
if (hasItems && passesWhenClause && sessionHasOption) {
|
|
1324
|
-
|
|
1363
|
+
visibleGroups.set(optionGroup.id, optionGroup);
|
|
1325
1364
|
}
|
|
1326
1365
|
}
|
|
1327
|
-
|
|
1328
|
-
setNoOptions();
|
|
1329
|
-
return undefined;
|
|
1330
|
-
}
|
|
1331
|
-
let allOptionsValid = true;
|
|
1332
|
-
if (ctx) {
|
|
1333
|
-
for (const groupId of visibleGroupIds) {
|
|
1334
|
-
const optionGroup = optionGroups.find(g => g.id === groupId);
|
|
1335
|
-
const currentOption = this.chatSessionsService.getSessionOption(ctx.chatSessionResource, groupId);
|
|
1336
|
-
if (optionGroup && currentOption) {
|
|
1337
|
-
const currentOptionId = typeof currentOption === "string" ? currentOption : currentOption.id;
|
|
1338
|
-
if (!( optionGroup.items.some(item => item.id === currentOptionId)) && typeof currentOption === "string") {
|
|
1339
|
-
allOptionsValid = false;
|
|
1340
|
-
break;
|
|
1341
|
-
}
|
|
1342
|
-
}
|
|
1343
|
-
}
|
|
1344
|
-
}
|
|
1345
|
-
this.chatSessionHasOptions.set(true);
|
|
1346
|
-
this.chatSessionOptionsValid.set(allOptionsValid);
|
|
1347
|
-
return {
|
|
1348
|
-
visibleGroupIds,
|
|
1349
|
-
optionGroups,
|
|
1350
|
-
ctx,
|
|
1351
|
-
effectiveSessionType
|
|
1352
|
-
};
|
|
1366
|
+
return Array.from(( visibleGroups.values()));
|
|
1353
1367
|
}
|
|
1354
1368
|
refreshChatSessionPickers() {
|
|
1355
|
-
const
|
|
1356
|
-
|
|
1369
|
+
const sessionResource = this.getCurrentSessionResource();
|
|
1370
|
+
const allOptionsGroups = this.getAllOptionsGroups(sessionResource);
|
|
1371
|
+
const visibleOptionGroups = this.getVisibleOptionGroupsModeAndUpdateContextKeys(sessionResource);
|
|
1372
|
+
if (!allOptionsGroups.length || !visibleOptionGroups.length) {
|
|
1357
1373
|
this.hideAllSessionPickerWidgets();
|
|
1358
1374
|
return;
|
|
1359
1375
|
}
|
|
1360
|
-
const {
|
|
1361
|
-
visibleGroupIds,
|
|
1362
|
-
optionGroups,
|
|
1363
|
-
ctx
|
|
1364
|
-
} = result;
|
|
1365
1376
|
const currentWidgetGroupIds = ( new Set(( this.chatSessionPickerWidgets.keys())));
|
|
1366
|
-
const needsRecreation = currentWidgetGroupIds.size !==
|
|
1377
|
+
const needsRecreation = currentWidgetGroupIds.size !== visibleOptionGroups.length || !visibleOptionGroups.every(group => ( currentWidgetGroupIds.has(group.id)));
|
|
1367
1378
|
if (needsRecreation && this._lastSessionPickerAction && this.chatSessionPickerContainer) {
|
|
1368
1379
|
const widgets = this.createChatSessionPickerWidgets(this._lastSessionPickerAction, this._lastSessionPickerOptions);
|
|
1369
1380
|
clearNode(this.chatSessionPickerContainer);
|
|
@@ -1376,11 +1387,11 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1376
1387
|
if (this.chatSessionPickerContainer) {
|
|
1377
1388
|
this.chatSessionPickerContainer.style.display = "";
|
|
1378
1389
|
}
|
|
1379
|
-
if (
|
|
1390
|
+
if (sessionResource) {
|
|
1380
1391
|
for (const [optionGroupId] of this.chatSessionPickerWidgets) {
|
|
1381
|
-
const currentOption = this.chatSessionsService.getSessionOption(
|
|
1392
|
+
const currentOption = this.chatSessionsService.getSessionOption(sessionResource, optionGroupId);
|
|
1382
1393
|
if (currentOption) {
|
|
1383
|
-
const optionGroup =
|
|
1394
|
+
const optionGroup = allOptionsGroups.find(g => g.id === optionGroupId);
|
|
1384
1395
|
if (optionGroup) {
|
|
1385
1396
|
const currentOptionId = typeof currentOption === "string" ? currentOption : currentOption.id;
|
|
1386
1397
|
const item = optionGroup.items.find(m => m.id === currentOptionId);
|
|
@@ -1404,20 +1415,16 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1404
1415
|
if (!sessionResource) {
|
|
1405
1416
|
return;
|
|
1406
1417
|
}
|
|
1407
|
-
|
|
1408
|
-
if (!ctx) {
|
|
1409
|
-
return;
|
|
1410
|
-
}
|
|
1411
|
-
if (this.chatSessionsService.getSessionOption(ctx.chatSessionResource, optionGroupId) === undefined) {
|
|
1418
|
+
if (this.chatSessionsService.getSessionOption(sessionResource, optionGroupId) === undefined) {
|
|
1412
1419
|
return;
|
|
1413
1420
|
}
|
|
1414
|
-
const effectiveSessionType = this.getEffectiveSessionType(
|
|
1415
|
-
const optionGroups = this.chatSessionsService.getOptionGroupsForSessionType(effectiveSessionType);
|
|
1421
|
+
const effectiveSessionType = this.getEffectiveSessionType(sessionResource);
|
|
1422
|
+
const optionGroups = effectiveSessionType ? this.chatSessionsService.getOptionGroupsForSessionType(effectiveSessionType) : undefined;
|
|
1416
1423
|
const optionGroup = optionGroups?.find(g => g.id === optionGroupId);
|
|
1417
1424
|
if (!optionGroup || optionGroup.items.length === 0) {
|
|
1418
1425
|
return;
|
|
1419
1426
|
}
|
|
1420
|
-
const currentOptionValue = this.chatSessionsService.getSessionOption(
|
|
1427
|
+
const currentOptionValue = this.chatSessionsService.getSessionOption(sessionResource, optionGroupId);
|
|
1421
1428
|
if (!currentOptionValue) {
|
|
1422
1429
|
const defaultItem = optionGroup.items.find(item => item.default);
|
|
1423
1430
|
return defaultItem;
|
|
@@ -1429,8 +1436,20 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1429
1436
|
return currentOptionValue;
|
|
1430
1437
|
}
|
|
1431
1438
|
}
|
|
1432
|
-
|
|
1433
|
-
|
|
1439
|
+
hasWorkspaceScmRepository() {
|
|
1440
|
+
const folders = this.workspaceContextService.getWorkspace().folders;
|
|
1441
|
+
if (folders.length === 0) {
|
|
1442
|
+
return false;
|
|
1443
|
+
}
|
|
1444
|
+
for (const repo of this.scmService.repositories) {
|
|
1445
|
+
if (repo.provider.rootUri && this.workspaceContextService.getWorkspaceFolder(repo.provider.rootUri)) {
|
|
1446
|
+
return true;
|
|
1447
|
+
}
|
|
1448
|
+
}
|
|
1449
|
+
return false;
|
|
1450
|
+
}
|
|
1451
|
+
getEffectiveSessionType(sessionResource) {
|
|
1452
|
+
return this.options.sessionTypePickerDelegate?.getActiveSessionProvider?.() ?? (sessionResource ? getChatSessionType(sessionResource) : undefined);
|
|
1434
1453
|
}
|
|
1435
1454
|
updateAgentSessionTypeContextKey() {
|
|
1436
1455
|
const sessionResource = this._widget?.viewModel?.model.sessionResource;
|
|
@@ -1489,7 +1508,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1489
1508
|
}
|
|
1490
1509
|
render(container, initialValue, widget) {
|
|
1491
1510
|
this._widget = widget;
|
|
1492
|
-
this.
|
|
1511
|
+
this.getVisibleOptionGroupsModeAndUpdateContextKeys(this.getCurrentSessionResource());
|
|
1493
1512
|
const delegate = this.options.sessionTypePickerDelegate;
|
|
1494
1513
|
if (delegate?.setActiveSessionProvider && delegate?.getActiveSessionProvider) {
|
|
1495
1514
|
const initialSessionType = delegate.getActiveSessionProvider();
|
|
@@ -1515,18 +1534,36 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1515
1534
|
if (this._questionCarouselSessionResources.size > 0 && (!e.currentSessionResource || !hasMatchingResource)) {
|
|
1516
1535
|
this.clearQuestionCarousel();
|
|
1517
1536
|
}
|
|
1537
|
+
let hasMatchingPlanReviewResource = false;
|
|
1538
|
+
if (e.currentSessionResource) {
|
|
1539
|
+
for (const r of ( this._planReviewSessionResources.values())) {
|
|
1540
|
+
if (isEqual(r, e.currentSessionResource)) {
|
|
1541
|
+
hasMatchingPlanReviewResource = true;
|
|
1542
|
+
break;
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1545
|
+
}
|
|
1546
|
+
if (this._planReviewSessionResources.size > 0 && (!e.currentSessionResource || !hasMatchingPlanReviewResource)) {
|
|
1547
|
+
this.clearPlanReview();
|
|
1548
|
+
}
|
|
1549
|
+
this._syncToolConfirmationCarouselForSession();
|
|
1518
1550
|
const newSessionType = this.getCurrentSessionType();
|
|
1519
1551
|
if (e.currentSessionResource && newSessionType !== this._currentSessionType) {
|
|
1520
1552
|
this._currentSessionType = newSessionType;
|
|
1521
1553
|
this.initSelectedModel();
|
|
1522
1554
|
this.checkModelInSessionPool();
|
|
1555
|
+
this.checkModeInSessionPool();
|
|
1523
1556
|
}
|
|
1524
1557
|
this.preselectModelFromSessionHistory();
|
|
1525
1558
|
}));
|
|
1526
1559
|
let elements;
|
|
1527
1560
|
if (this.options.renderStyle === "compact") {
|
|
1528
1561
|
elements = h(".interactive-input-part", [h(".interactive-input-and-edit-session", [
|
|
1562
|
+
h(".chat-plan-review-widget-container@chatPlanReviewContainer"),
|
|
1529
1563
|
h(".chat-question-carousel-widget-container@chatQuestionCarouselContainer"),
|
|
1564
|
+
h(
|
|
1565
|
+
".chat-tool-confirmation-carousel-container@chatToolConfirmationCarouselContainer"
|
|
1566
|
+
),
|
|
1530
1567
|
h(".chat-input-widgets-container@chatInputWidgetsContainer"),
|
|
1531
1568
|
h(".chat-todo-list-widget-container@chatInputTodoListWidgetContainer"),
|
|
1532
1569
|
h(".chat-artifacts-widget-container@chatArtifactsWidgetContainer"),
|
|
@@ -1551,7 +1588,11 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1551
1588
|
])]);
|
|
1552
1589
|
} else {
|
|
1553
1590
|
elements = h(".interactive-input-part", [
|
|
1591
|
+
h(".chat-plan-review-widget-container@chatPlanReviewContainer"),
|
|
1554
1592
|
h(".chat-question-carousel-widget-container@chatQuestionCarouselContainer"),
|
|
1593
|
+
h(
|
|
1594
|
+
".chat-tool-confirmation-carousel-container@chatToolConfirmationCarouselContainer"
|
|
1595
|
+
),
|
|
1555
1596
|
h(".interactive-input-followups@followupsContainer"),
|
|
1556
1597
|
h(".chat-input-widgets-container@chatInputWidgetsContainer"),
|
|
1557
1598
|
h(".chat-todo-list-widget-container@chatInputTodoListWidgetContainer"),
|
|
@@ -1595,6 +1636,9 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1595
1636
|
this.chatGettingStartedTipContainer = elements.chatGettingStartedTipContainer;
|
|
1596
1637
|
this.chatGettingStartedTipContainer.style.display = "none";
|
|
1597
1638
|
this.chatQuestionCarouselContainer = elements.chatQuestionCarouselContainer;
|
|
1639
|
+
this.chatPlanReviewContainer = elements.chatPlanReviewContainer;
|
|
1640
|
+
this.chatToolConfirmationCarouselContainer = elements.chatToolConfirmationCarouselContainer;
|
|
1641
|
+
hide(this.chatToolConfirmationCarouselContainer);
|
|
1598
1642
|
this.chatInputWidgetsContainer = elements.chatInputWidgetsContainer;
|
|
1599
1643
|
this.contextUsageWidgetContainer = elements.contextUsageWidgetContainer;
|
|
1600
1644
|
if (this.options.isSessionsWindow || this.options.renderStyle === "compact") {
|
|
@@ -1737,8 +1781,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1737
1781
|
}));
|
|
1738
1782
|
const hoverDelegate = this._register(createInstantHoverDelegate());
|
|
1739
1783
|
const {
|
|
1740
|
-
location
|
|
1741
|
-
isMaximized
|
|
1784
|
+
location
|
|
1742
1785
|
} = this.getWidgetLocationInfo(widget);
|
|
1743
1786
|
const pickerOptions = {
|
|
1744
1787
|
getOverflowAnchor: () => this.inputActionsToolbar.getElement(),
|
|
@@ -1747,11 +1790,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1747
1790
|
},
|
|
1748
1791
|
hideChevrons: derived(
|
|
1749
1792
|
reader => this._stableInputPartWidth.read(reader) < CHAT_INPUT_PICKER_COLLAPSE_WIDTH
|
|
1750
|
-
)
|
|
1751
|
-
hoverPosition: {
|
|
1752
|
-
forcePosition: true,
|
|
1753
|
-
hoverPosition: location === ChatWidgetLocation.SidebarRight && !isMaximized ? HoverPosition.LEFT : HoverPosition.RIGHT
|
|
1754
|
-
}
|
|
1793
|
+
)
|
|
1755
1794
|
};
|
|
1756
1795
|
this._register(
|
|
1757
1796
|
addStandardDisposableListener(toolbarsContainer, EventType.CLICK, e => this.inputEditor.focus())
|
|
@@ -1810,15 +1849,14 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1810
1849
|
return !sessionType || sessionType === localChatSessionType;
|
|
1811
1850
|
}
|
|
1812
1851
|
};
|
|
1813
|
-
return this.modelWidget = this.instantiationService.createInstance(
|
|
1852
|
+
return this.modelWidget = this.instantiationService.createInstance(ModelPickerActionItem, action, itemDelegate, pickerOptions);
|
|
1814
1853
|
} else if (action.id === OpenModePickerAction.ID && action instanceof MenuItemAction) {
|
|
1815
1854
|
const delegate = {
|
|
1816
1855
|
currentMode: this._currentModeObservable,
|
|
1817
1856
|
sessionResource: () => this._widget?.viewModel?.sessionResource,
|
|
1818
1857
|
customAgentTarget: () => {
|
|
1819
1858
|
const sessionResource = this._widget?.viewModel?.model.sessionResource;
|
|
1820
|
-
|
|
1821
|
-
return (ctx && this.chatSessionsService.getCustomAgentTargetForSessionType(getChatSessionType(ctx.chatSessionResource))) ?? Target.Undefined;
|
|
1859
|
+
return (sessionResource && this.chatSessionsService.getCustomAgentTargetForSessionType(getChatSessionType(sessionResource))) ?? Target.Undefined;
|
|
1822
1860
|
}
|
|
1823
1861
|
};
|
|
1824
1862
|
return this.modeWidget = this.instantiationService.createInstance(ModePickerActionItem, action, delegate, pickerOptions);
|
|
@@ -1840,7 +1878,8 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1840
1878
|
this.updateWidgetLockStateFromSessionType(provider);
|
|
1841
1879
|
this.updateAgentSessionTypeContextKey();
|
|
1842
1880
|
this.refreshChatSessionPickers();
|
|
1843
|
-
}
|
|
1881
|
+
},
|
|
1882
|
+
hasGitRepository: () => this.hasWorkspaceScmRepository()
|
|
1844
1883
|
};
|
|
1845
1884
|
const isWelcomeViewMode = !!this.options.sessionTypePickerDelegate?.setActiveSessionProvider;
|
|
1846
1885
|
const Picker = (action.id === OpenSessionTargetPickerAction.ID || isWelcomeViewMode) ? SessionTypePickerActionItem : DelegationSessionPickerActionItem;
|
|
@@ -1960,7 +1999,8 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
1960
1999
|
this.updateWidgetLockStateFromSessionType(provider);
|
|
1961
2000
|
this.updateAgentSessionTypeContextKey();
|
|
1962
2001
|
this.refreshChatSessionPickers();
|
|
1963
|
-
}
|
|
2002
|
+
},
|
|
2003
|
+
hasGitRepository: () => this.hasWorkspaceScmRepository()
|
|
1964
2004
|
};
|
|
1965
2005
|
const isWelcomeViewMode = !!this.options.sessionTypePickerDelegate?.setActiveSessionProvider;
|
|
1966
2006
|
const Picker = (action.id === OpenSessionTargetPickerAction.ID || isWelcomeViewMode) ? SessionTypePickerActionItem : DelegationSessionPickerActionItem;
|
|
@@ -2054,6 +2094,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2054
2094
|
}));
|
|
2055
2095
|
this.renderAttachedContext();
|
|
2056
2096
|
const inputResizeObserver = this._register(new DisposableResizeObserver(() => {
|
|
2097
|
+
this.updateToolConfirmationCarouselMaxHeight();
|
|
2057
2098
|
const newHeight = this.container.offsetHeight;
|
|
2058
2099
|
this.height.set(newHeight, undefined);
|
|
2059
2100
|
}));
|
|
@@ -2131,9 +2172,10 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2131
2172
|
this._indexOfLastAttachedContextDeletedWithKeyboard = -1;
|
|
2132
2173
|
this._indexOfLastOpenedContext = -1;
|
|
2133
2174
|
}
|
|
2175
|
+
const maxImagesPerRequest = getImageAttachmentLimit(this._currentLanguageModel.get()?.metadata);
|
|
2134
2176
|
const imageAttachments = attachments.filter(([, a]) => isImageVariableEntry(a));
|
|
2135
|
-
if (imageAttachments.length >
|
|
2136
|
-
const excessCount = imageAttachments.length -
|
|
2177
|
+
if (maxImagesPerRequest !== undefined && imageAttachments.length > maxImagesPerRequest) {
|
|
2178
|
+
const excessCount = imageAttachments.length - maxImagesPerRequest;
|
|
2137
2179
|
for (let i = 0; i < excessCount; i++) {
|
|
2138
2180
|
const attachment = imageAttachments[i][1];
|
|
2139
2181
|
if (attachment.omittedState === OmittedState.NotOmitted || attachment.omittedState === OmittedState.ImageLimitExceeded) {
|
|
@@ -2386,10 +2428,10 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2386
2428
|
clearNode(this.chatArtifactsWidgetContainer);
|
|
2387
2429
|
append(this.chatArtifactsWidgetContainer, widget.domNode);
|
|
2388
2430
|
}
|
|
2389
|
-
this._chatArtifactsWidget.value.
|
|
2431
|
+
this._chatArtifactsWidget.value.setSessionResource(chatSessionResource);
|
|
2390
2432
|
}
|
|
2391
2433
|
clearArtifactsWidget() {
|
|
2392
|
-
this._chatArtifactsWidget.value?.
|
|
2434
|
+
this._chatArtifactsWidget.value?.setSessionResource(undefined);
|
|
2393
2435
|
}
|
|
2394
2436
|
renderQuestionCarousel(carousel, context, options) {
|
|
2395
2437
|
const carouselKey = carousel.resolveId ?? `${isResponseVM(context.element) ? context.element.requestId : ""}_${context.contentIndex}`;
|
|
@@ -2468,6 +2510,124 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2468
2510
|
const carousel = this.questionCarousel;
|
|
2469
2511
|
return carousel?.navigateToNextQuestion() ?? false;
|
|
2470
2512
|
}
|
|
2513
|
+
renderPlanReview(review, context, options) {
|
|
2514
|
+
const key = review.resolveId ?? `${isResponseVM(context.element) ? context.element.requestId : ""}_${context.contentIndex}`;
|
|
2515
|
+
const existing = this._chatPlanReviewWidgets.get(key);
|
|
2516
|
+
if (existing) {
|
|
2517
|
+
return existing;
|
|
2518
|
+
}
|
|
2519
|
+
if (isResponseVM(context.element)) {
|
|
2520
|
+
this._planReviewResponseIds.set(key, context.element.requestId);
|
|
2521
|
+
this._planReviewSessionResources.set(key, context.element.sessionResource);
|
|
2522
|
+
}
|
|
2523
|
+
const part = this.instantiationService.createInstance(ChatPlanReviewPart, review, context, options);
|
|
2524
|
+
this._chatPlanReviewWidgets.set(key, part);
|
|
2525
|
+
append(this.chatPlanReviewContainer, part.domNode);
|
|
2526
|
+
return part;
|
|
2527
|
+
}
|
|
2528
|
+
clearPlanReview(responseId, resolveId) {
|
|
2529
|
+
if (resolveId !== undefined) {
|
|
2530
|
+
const part = this._chatPlanReviewWidgets.get(resolveId);
|
|
2531
|
+
if (part) {
|
|
2532
|
+
part.domNode.remove();
|
|
2533
|
+
this._chatPlanReviewWidgets.deleteAndDispose(resolveId);
|
|
2534
|
+
}
|
|
2535
|
+
this._planReviewResponseIds.delete(resolveId);
|
|
2536
|
+
this._planReviewSessionResources.delete(resolveId);
|
|
2537
|
+
} else if (responseId !== undefined) {
|
|
2538
|
+
for (const [key, rid] of this._planReviewResponseIds) {
|
|
2539
|
+
if (rid === responseId) {
|
|
2540
|
+
const part = this._chatPlanReviewWidgets.get(key);
|
|
2541
|
+
if (part) {
|
|
2542
|
+
part.domNode.remove();
|
|
2543
|
+
this._chatPlanReviewWidgets.deleteAndDispose(key);
|
|
2544
|
+
}
|
|
2545
|
+
this._planReviewResponseIds.delete(key);
|
|
2546
|
+
this._planReviewSessionResources.delete(key);
|
|
2547
|
+
}
|
|
2548
|
+
}
|
|
2549
|
+
} else {
|
|
2550
|
+
this._chatPlanReviewWidgets.clearAndDisposeAll();
|
|
2551
|
+
this._planReviewResponseIds.clear();
|
|
2552
|
+
this._planReviewSessionResources.clear();
|
|
2553
|
+
clearNode(this.chatPlanReviewContainer);
|
|
2554
|
+
}
|
|
2555
|
+
}
|
|
2556
|
+
get planReview() {
|
|
2557
|
+
return this._chatPlanReviewWidgets.size > 0 ? ( this._chatPlanReviewWidgets.values()).next().value : undefined;
|
|
2558
|
+
}
|
|
2559
|
+
get _currentSessionKey() {
|
|
2560
|
+
return this._widget?.viewModel?.model.sessionResource.toString();
|
|
2561
|
+
}
|
|
2562
|
+
get _currentToolConfirmationCarousel() {
|
|
2563
|
+
const key = this._currentSessionKey;
|
|
2564
|
+
return key ? this._chatToolConfirmationCarousels.get(key) : undefined;
|
|
2565
|
+
}
|
|
2566
|
+
renderToolConfirmationCarousel(tool, factory, subAgentInvocationId, agentName, scrollToSubagent, toolPart) {
|
|
2567
|
+
const existing = this._currentToolConfirmationCarousel;
|
|
2568
|
+
if (existing) {
|
|
2569
|
+
existing.addToolInvocation(tool, subAgentInvocationId, agentName, scrollToSubagent, toolPart);
|
|
2570
|
+
this.updateToolConfirmationCarouselMaxHeight();
|
|
2571
|
+
return existing;
|
|
2572
|
+
}
|
|
2573
|
+
const key = this._currentSessionKey;
|
|
2574
|
+
if (!key) {
|
|
2575
|
+
throw ( new Error("Cannot render tool confirmation carousel without an active session"));
|
|
2576
|
+
}
|
|
2577
|
+
const part = ( new ChatToolConfirmationCarouselPart(factory, [], scrollToSubagent, subAgentInvocationId, agentName));
|
|
2578
|
+
part.addToolInvocation(tool, subAgentInvocationId, agentName, scrollToSubagent, toolPart);
|
|
2579
|
+
this._chatToolConfirmationCarousels.set(key, part);
|
|
2580
|
+
append(this.chatToolConfirmationCarouselContainer, part.domNode);
|
|
2581
|
+
show(this.chatToolConfirmationCarouselContainer);
|
|
2582
|
+
this.updateToolConfirmationCarouselMaxHeight();
|
|
2583
|
+
const capturedKey = key;
|
|
2584
|
+
Event.once(part.onDidEmpty)(() => {
|
|
2585
|
+
this._chatToolConfirmationCarousels.deleteAndDispose(capturedKey);
|
|
2586
|
+
if (this._currentSessionKey === capturedKey) {
|
|
2587
|
+
clearNode(this.chatToolConfirmationCarouselContainer);
|
|
2588
|
+
hide(this.chatToolConfirmationCarouselContainer);
|
|
2589
|
+
}
|
|
2590
|
+
});
|
|
2591
|
+
return part;
|
|
2592
|
+
}
|
|
2593
|
+
addToolToConfirmationCarousel(tool, factory, subAgentInvocationId, agentName, scrollToSubagent, toolPart) {
|
|
2594
|
+
const existing = this._currentToolConfirmationCarousel;
|
|
2595
|
+
if (existing) {
|
|
2596
|
+
existing.addToolInvocation(tool, subAgentInvocationId, agentName, scrollToSubagent, toolPart);
|
|
2597
|
+
this.updateToolConfirmationCarouselMaxHeight();
|
|
2598
|
+
} else {
|
|
2599
|
+
this.renderToolConfirmationCarousel(tool, factory, subAgentInvocationId, agentName, scrollToSubagent, toolPart);
|
|
2600
|
+
}
|
|
2601
|
+
}
|
|
2602
|
+
activateCarouselForSubagent(subAgentInvocationId) {
|
|
2603
|
+
this._currentToolConfirmationCarousel?.activateFirstToolForSubagent(subAgentInvocationId);
|
|
2604
|
+
}
|
|
2605
|
+
hasToolInConfirmationCarousel(toolCallId) {
|
|
2606
|
+
return this._currentToolConfirmationCarousel?.hasToolInvocation(toolCallId) ?? false;
|
|
2607
|
+
}
|
|
2608
|
+
get hasActiveToolConfirmationCarousel() {
|
|
2609
|
+
const carousel = this._currentToolConfirmationCarousel;
|
|
2610
|
+
return !!carousel && carousel.pendingCount > 0;
|
|
2611
|
+
}
|
|
2612
|
+
clearToolConfirmationCarousel() {
|
|
2613
|
+
const key = this._currentSessionKey;
|
|
2614
|
+
if (key) {
|
|
2615
|
+
this._chatToolConfirmationCarousels.deleteAndDispose(key);
|
|
2616
|
+
}
|
|
2617
|
+
clearNode(this.chatToolConfirmationCarouselContainer);
|
|
2618
|
+
hide(this.chatToolConfirmationCarouselContainer);
|
|
2619
|
+
}
|
|
2620
|
+
_syncToolConfirmationCarouselForSession() {
|
|
2621
|
+
clearNode(this.chatToolConfirmationCarouselContainer);
|
|
2622
|
+
const carousel = this._currentToolConfirmationCarousel;
|
|
2623
|
+
if (carousel && carousel.pendingCount > 0) {
|
|
2624
|
+
append(this.chatToolConfirmationCarouselContainer, carousel.domNode);
|
|
2625
|
+
show(this.chatToolConfirmationCarouselContainer);
|
|
2626
|
+
this.updateToolConfirmationCarouselMaxHeight();
|
|
2627
|
+
} else {
|
|
2628
|
+
hide(this.chatToolConfirmationCarouselContainer);
|
|
2629
|
+
}
|
|
2630
|
+
}
|
|
2471
2631
|
setWorkingSetCollapsed(collapsed) {
|
|
2472
2632
|
this._workingSetCollapsed.set(collapsed, undefined);
|
|
2473
2633
|
}
|
|
@@ -2585,7 +2745,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2585
2745
|
const button = this._chatEditsActionsDisposables.add(( new ButtonWithIcon(overviewTitle, {
|
|
2586
2746
|
supportIcons: true,
|
|
2587
2747
|
secondary: true,
|
|
2588
|
-
ariaLabel: ( localize(
|
|
2748
|
+
ariaLabel: ( localize(7164, "Toggle changed files."))
|
|
2589
2749
|
})));
|
|
2590
2750
|
const topLevelStats = derived(reader => {
|
|
2591
2751
|
const entries = editSessionEntriesObs.read(reader);
|
|
@@ -2640,7 +2800,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2640
2800
|
}) : undefined,
|
|
2641
2801
|
disableWhileRunning: isSessionMenu,
|
|
2642
2802
|
buttonConfigProvider: action => {
|
|
2643
|
-
if (action.id === ChatEditingShowChangesAction.ID || action.id === ViewPreviousEditsAction.Id
|
|
2803
|
+
if (action.id === ChatEditingShowChangesAction.ID || action.id === ViewPreviousEditsAction.Id) {
|
|
2644
2804
|
return {
|
|
2645
2805
|
showIcon: true,
|
|
2646
2806
|
showLabel: false,
|
|
@@ -2659,10 +2819,10 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2659
2819
|
removed,
|
|
2660
2820
|
shouldShowEditingSession
|
|
2661
2821
|
} = topLevelStats.read(reader);
|
|
2662
|
-
const buttonLabel = files === 1 ? ( localize(
|
|
2822
|
+
const buttonLabel = files === 1 ? ( localize(7165, "1 file changed")) : ( localize(7166, "{0} files changed", files));
|
|
2663
2823
|
button.label = buttonLabel;
|
|
2664
2824
|
button.element.setAttribute("aria-label", ( localize(
|
|
2665
|
-
|
|
2825
|
+
7167,
|
|
2666
2826
|
"{0}, {1} lines added, {2} lines removed",
|
|
2667
2827
|
buttonLabel,
|
|
2668
2828
|
added,
|
|
@@ -2778,6 +2938,20 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2778
2938
|
}
|
|
2779
2939
|
setMaxHeight(maxHeight) {
|
|
2780
2940
|
this._maxHeight = maxHeight;
|
|
2941
|
+
this.updateToolConfirmationCarouselMaxHeight();
|
|
2942
|
+
}
|
|
2943
|
+
updateToolConfirmationCarouselMaxHeight() {
|
|
2944
|
+
const carousel = this._currentToolConfirmationCarousel;
|
|
2945
|
+
if (!carousel) {
|
|
2946
|
+
return;
|
|
2947
|
+
}
|
|
2948
|
+
if (this._maxHeight === undefined) {
|
|
2949
|
+
carousel.setMaxHeight(undefined);
|
|
2950
|
+
return;
|
|
2951
|
+
}
|
|
2952
|
+
const carouselHeight = this.chatToolConfirmationCarouselContainer.offsetHeight;
|
|
2953
|
+
const otherInputHeight = Math.max(0, this.container.offsetHeight - carouselHeight);
|
|
2954
|
+
carousel.setMaxHeight(this._maxHeight - otherInputHeight);
|
|
2781
2955
|
}
|
|
2782
2956
|
layout(width) {
|
|
2783
2957
|
this.cachedWidth = width;
|
|
@@ -2910,7 +3084,7 @@ let ChatInputPart = class ChatInputPart extends Disposable {
|
|
|
2910
3084
|
this.updateInputEditorScrollbarOptions();
|
|
2911
3085
|
}
|
|
2912
3086
|
};
|
|
2913
|
-
ChatInputPart = ChatInputPart_1 = ( __decorate([( __param(4, IModelService)), ( __param(5, IInstantiationService)), ( __param(6, IContextKeyService)), ( __param(7, IConfigurationService)), ( __param(8, IKeybindingService)), ( __param(9, IAccessibilityService)), ( __param(10, ILanguageModelsService)), ( __param(11, ILogService)), ( __param(12, IFileService)), ( __param(13, IEditorService)), ( __param(14, IThemeService)), ( __param(15, ITextModelService)), ( __param(16, IStorageService)), ( __param(17, IChatAgentService)), ( __param(18, ISharedWebContentExtractorService)), ( __param(19,
|
|
3087
|
+
ChatInputPart = ChatInputPart_1 = ( __decorate([( __param(4, IModelService)), ( __param(5, IInstantiationService)), ( __param(6, IContextKeyService)), ( __param(7, IConfigurationService)), ( __param(8, IKeybindingService)), ( __param(9, IAccessibilityService)), ( __param(10, ILanguageModelsService)), ( __param(11, ILogService)), ( __param(12, IFileService)), ( __param(13, IEditorService)), ( __param(14, IThemeService)), ( __param(15, ITextModelService)), ( __param(16, IStorageService)), ( __param(17, IChatAgentService)), ( __param(18, ISharedWebContentExtractorService)), ( __param(19, IChatEntitlementService)), ( __param(20, IChatModeService)), ( __param(21, ILanguageModelToolsService)), ( __param(22, IChatSessionsService)), ( __param(23, IChatContextService)), ( __param(24, IAgentSessionsService)), ( __param(25, IWorkspaceContextService)), ( __param(26, ISCMService)), ( __param(27, IWorkbenchLayoutService)), ( __param(28, IViewDescriptorService)), ( __param(29, IChatAttachmentWidgetRegistry))], ChatInputPart));
|
|
2914
3088
|
function getLastPosition(model) {
|
|
2915
3089
|
return {
|
|
2916
3090
|
lineNumber: model.getLineCount(),
|