@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
|
@@ -34,10 +34,11 @@ import { IChatAttachmentResolveService } from '@codingame/monaco-vscode-api/vsco
|
|
|
34
34
|
import { ModifiedFileEntryState } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService';
|
|
35
35
|
import { IChatEditingService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/editing/chatEditingService.service';
|
|
36
36
|
import { ChatMode } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatModes';
|
|
37
|
+
import { IChatToolInvocation, ToolConfirmKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
37
38
|
import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service';
|
|
38
39
|
import { IDiagnosticVariableEntryFilterData } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
|
|
39
40
|
import { isResponseVM } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel';
|
|
40
|
-
import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
41
|
+
import { ChatAgentLocation, ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
41
42
|
import { isILanguageModelChatSelector, ILanguageModelChatMetadata } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels';
|
|
42
43
|
import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
|
|
43
44
|
import { isNotebookContainingCellEditor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/browser/notebookEditor';
|
|
@@ -47,7 +48,7 @@ import { INotebookService } from '@codingame/monaco-vscode-api/vscode/vs/workben
|
|
|
47
48
|
import { CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_FILE_BELONGS_TO_CHAT, CTX_INLINE_CHAT_PENDING_CONFIRMATION, CTX_INLINE_CHAT_TERMINATED, InlineChatConfigKeys } from '../common/inlineChat.js';
|
|
48
49
|
import { InlineChatAffordance } from './inlineChatAffordance.js';
|
|
49
50
|
import { InlineChatInputWidget, InlineChatSessionOverlayWidget } from './inlineChatOverlayWidget.js';
|
|
50
|
-
import { continueInPanelChat } from './inlineChatSessionService.js';
|
|
51
|
+
import { continueInPanelChat, rephraseInlineChat } from './inlineChatSessionService.js';
|
|
51
52
|
import { IInlineChatSessionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.service';
|
|
52
53
|
import { InlineChatZoneWidget } from './inlineChatZoneWidget.js';
|
|
53
54
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
@@ -93,63 +94,82 @@ let InlineChatController = class InlineChatController {
|
|
|
93
94
|
static get(editor) {
|
|
94
95
|
return editor.getContribution(InlineChatController_1.ID) ?? undefined;
|
|
95
96
|
}
|
|
97
|
+
static #userSelectedModel;
|
|
98
|
+
#store = ( new DisposableStore());
|
|
99
|
+
#isActiveController = observableValue(this, false);
|
|
100
|
+
#renderMode;
|
|
101
|
+
#zone;
|
|
102
|
+
#inputWidget;
|
|
103
|
+
#currentSession;
|
|
104
|
+
#editor;
|
|
105
|
+
#instaService;
|
|
106
|
+
#notebookEditorService;
|
|
107
|
+
#inlineChatSessionService;
|
|
108
|
+
#configurationService;
|
|
109
|
+
#webContentExtractorService;
|
|
110
|
+
#fileService;
|
|
111
|
+
#chatAttachmentResolveService;
|
|
112
|
+
#editorService;
|
|
113
|
+
#markerDecorationsService;
|
|
114
|
+
#languageModelService;
|
|
115
|
+
#logService;
|
|
116
|
+
#chatEditingService;
|
|
117
|
+
#chatService;
|
|
96
118
|
get widget() {
|
|
97
|
-
return this.
|
|
119
|
+
return this.#zone.value.widget;
|
|
98
120
|
}
|
|
99
121
|
get isActive() {
|
|
100
|
-
return Boolean(this.
|
|
122
|
+
return Boolean(this.#currentSession.get());
|
|
101
123
|
}
|
|
102
124
|
get inputWidget() {
|
|
103
|
-
return this
|
|
125
|
+
return this.#inputWidget;
|
|
104
126
|
}
|
|
105
127
|
constructor(
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
128
|
+
editor,
|
|
129
|
+
instaService,
|
|
130
|
+
notebookEditorService,
|
|
131
|
+
inlineChatSessionService,
|
|
110
132
|
codeEditorService,
|
|
111
133
|
contextKeyService,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
134
|
+
configurationService,
|
|
135
|
+
webContentExtractorService,
|
|
136
|
+
fileService,
|
|
137
|
+
chatAttachmentResolveService,
|
|
138
|
+
editorService,
|
|
139
|
+
markerDecorationsService,
|
|
140
|
+
languageModelService,
|
|
141
|
+
logService,
|
|
142
|
+
chatEditingService,
|
|
143
|
+
chatService
|
|
122
144
|
) {
|
|
123
|
-
this
|
|
124
|
-
this
|
|
125
|
-
this
|
|
126
|
-
this
|
|
127
|
-
this
|
|
128
|
-
this
|
|
129
|
-
this
|
|
130
|
-
this
|
|
131
|
-
this
|
|
132
|
-
this
|
|
133
|
-
this
|
|
134
|
-
this
|
|
135
|
-
this
|
|
136
|
-
this
|
|
137
|
-
|
|
138
|
-
this._isActiveController = observableValue(this, false);
|
|
139
|
-
const editorObs = observableCodeEditor(_editor);
|
|
145
|
+
this.#editor = editor;
|
|
146
|
+
this.#instaService = instaService;
|
|
147
|
+
this.#notebookEditorService = notebookEditorService;
|
|
148
|
+
this.#inlineChatSessionService = inlineChatSessionService;
|
|
149
|
+
this.#configurationService = configurationService;
|
|
150
|
+
this.#webContentExtractorService = webContentExtractorService;
|
|
151
|
+
this.#fileService = fileService;
|
|
152
|
+
this.#chatAttachmentResolveService = chatAttachmentResolveService;
|
|
153
|
+
this.#editorService = editorService;
|
|
154
|
+
this.#markerDecorationsService = markerDecorationsService;
|
|
155
|
+
this.#languageModelService = languageModelService;
|
|
156
|
+
this.#logService = logService;
|
|
157
|
+
this.#chatEditingService = chatEditingService;
|
|
158
|
+
this.#chatService = chatService;
|
|
159
|
+
const editorObs = observableCodeEditor(editor);
|
|
140
160
|
const ctxInlineChatVisible = CTX_INLINE_CHAT_VISIBLE.bindTo(contextKeyService);
|
|
141
161
|
const ctxFileBelongsToChat = CTX_INLINE_CHAT_FILE_BELONGS_TO_CHAT.bindTo(contextKeyService);
|
|
142
162
|
const ctxPendingConfirmation = CTX_INLINE_CHAT_PENDING_CONFIRMATION.bindTo(contextKeyService);
|
|
143
163
|
const ctxTerminated = CTX_INLINE_CHAT_TERMINATED.bindTo(contextKeyService);
|
|
144
|
-
const notebookAgentConfig = observableConfigValue(InlineChatConfigKeys.notebookAgent, false, this
|
|
145
|
-
this
|
|
146
|
-
this.
|
|
164
|
+
const notebookAgentConfig = observableConfigValue(InlineChatConfigKeys.notebookAgent, false, this.#configurationService);
|
|
165
|
+
this.#renderMode = observableConfigValue(InlineChatConfigKeys.RenderMode, "zone", this.#configurationService);
|
|
166
|
+
this.#store.add(autorun(r => {
|
|
147
167
|
const model = editorObs.model.read(r);
|
|
148
168
|
if (!model) {
|
|
149
169
|
ctxFileBelongsToChat.set(false);
|
|
150
170
|
return;
|
|
151
171
|
}
|
|
152
|
-
const sessions = this.
|
|
172
|
+
const sessions = this.#chatEditingService.editingSessionsObs.read(r);
|
|
153
173
|
let hasEdits = false;
|
|
154
174
|
for (const session of sessions) {
|
|
155
175
|
const entries = session.entries.read(r);
|
|
@@ -165,47 +185,47 @@ let InlineChatController = class InlineChatController {
|
|
|
165
185
|
}
|
|
166
186
|
ctxFileBelongsToChat.set(hasEdits);
|
|
167
187
|
}));
|
|
168
|
-
const overlayWidget = this
|
|
169
|
-
const sessionOverlayWidget = this.
|
|
170
|
-
this.
|
|
188
|
+
const overlayWidget = this.#inputWidget = this.#store.add(this.#instaService.createInstance(InlineChatInputWidget, editorObs));
|
|
189
|
+
const sessionOverlayWidget = this.#store.add(
|
|
190
|
+
this.#instaService.createInstance(InlineChatSessionOverlayWidget, editorObs)
|
|
171
191
|
);
|
|
172
|
-
this.inputOverlayWidget = this.
|
|
173
|
-
this.
|
|
192
|
+
this.inputOverlayWidget = this.#store.add(
|
|
193
|
+
this.#instaService.createInstance(InlineChatAffordance, this.#editor, overlayWidget)
|
|
174
194
|
);
|
|
175
|
-
this
|
|
195
|
+
this.#zone = ( new Lazy(() => {
|
|
176
196
|
assertType(
|
|
177
|
-
this.
|
|
197
|
+
this.#editor.hasModel(),
|
|
178
198
|
"[Illegal State] widget should only be created when the editor has a model"
|
|
179
199
|
);
|
|
180
200
|
const location = {
|
|
181
201
|
location: ChatAgentLocation.EditorInline,
|
|
182
202
|
resolveData: () => {
|
|
183
|
-
assertType(this.
|
|
184
|
-
const wholeRange = this.
|
|
185
|
-
const document = this.
|
|
203
|
+
assertType(this.#editor.hasModel());
|
|
204
|
+
const wholeRange = this.#editor.getSelection();
|
|
205
|
+
const document = this.#editor.getModel().uri;
|
|
186
206
|
return {
|
|
187
207
|
type: ChatAgentLocation.EditorInline,
|
|
188
|
-
id: getEditorId(this
|
|
189
|
-
selection: this.
|
|
208
|
+
id: getEditorId(this.#editor, this.#editor.getModel()),
|
|
209
|
+
selection: this.#editor.getSelection(),
|
|
190
210
|
document,
|
|
191
211
|
wholeRange
|
|
192
212
|
};
|
|
193
213
|
}
|
|
194
214
|
};
|
|
195
|
-
const notebookEditor = this.
|
|
215
|
+
const notebookEditor = this.#notebookEditorService.getNotebookForPossibleCell(this.#editor);
|
|
196
216
|
if (!!notebookEditor) {
|
|
197
217
|
location.location = ChatAgentLocation.Notebook;
|
|
198
218
|
if (notebookAgentConfig.get()) {
|
|
199
219
|
location.resolveData = () => {
|
|
200
|
-
assertType(this.
|
|
220
|
+
assertType(this.#editor.hasModel());
|
|
201
221
|
return {
|
|
202
222
|
type: ChatAgentLocation.Notebook,
|
|
203
|
-
sessionInputUri: this.
|
|
223
|
+
sessionInputUri: this.#editor.getModel().uri
|
|
204
224
|
};
|
|
205
225
|
};
|
|
206
226
|
}
|
|
207
227
|
}
|
|
208
|
-
const result = this.
|
|
228
|
+
const result = this.#instaService.createInstance(InlineChatZoneWidget, location, {
|
|
209
229
|
enableWorkingSet: "implicit",
|
|
210
230
|
enableImplicitContext: false,
|
|
211
231
|
renderInputOnTop: false,
|
|
@@ -223,25 +243,25 @@ let InlineChatController = class InlineChatController {
|
|
|
223
243
|
},
|
|
224
244
|
defaultMode: ChatMode.Ask
|
|
225
245
|
}, {
|
|
226
|
-
editor: this
|
|
246
|
+
editor: this.#editor,
|
|
227
247
|
notebookEditor
|
|
228
248
|
}, () => Promise.resolve());
|
|
229
|
-
this.
|
|
249
|
+
this.#store.add(result);
|
|
230
250
|
result.domNode.classList.add("inline-chat-2");
|
|
231
251
|
return result;
|
|
232
252
|
}));
|
|
233
|
-
const sessionsSignal = observableSignalFromEvent(this,
|
|
234
|
-
this
|
|
253
|
+
const sessionsSignal = observableSignalFromEvent(this, inlineChatSessionService.onDidChangeSessions);
|
|
254
|
+
this.#currentSession = derived(r => {
|
|
235
255
|
sessionsSignal.read(r);
|
|
236
256
|
const model = editorObs.model.read(r);
|
|
237
|
-
const session = model &&
|
|
257
|
+
const session = model && inlineChatSessionService.getSessionByTextModel(model.uri);
|
|
238
258
|
return session ?? undefined;
|
|
239
259
|
});
|
|
240
260
|
let lastSession = undefined;
|
|
241
|
-
this.
|
|
242
|
-
const session = this.
|
|
261
|
+
this.#store.add(autorun(r => {
|
|
262
|
+
const session = this.#currentSession.read(r);
|
|
243
263
|
if (!session) {
|
|
244
|
-
this.
|
|
264
|
+
this.#isActiveController.set(false, undefined);
|
|
245
265
|
if (lastSession && !lastSession.chatModel.hasRequests) {
|
|
246
266
|
const state = lastSession.chatModel.inputModel.state.read(undefined);
|
|
247
267
|
if (!state || (!state.inputText && state.attachments.length === 0)) {
|
|
@@ -254,20 +274,21 @@ let InlineChatController = class InlineChatController {
|
|
|
254
274
|
lastSession = session;
|
|
255
275
|
let foundOne = false;
|
|
256
276
|
for (const editor of codeEditorService.listCodeEditors()) {
|
|
257
|
-
|
|
277
|
+
const ctrl = InlineChatController_1.get(editor);
|
|
278
|
+
if (ctrl && ctrl.#isActiveController.read(undefined)) {
|
|
258
279
|
foundOne = true;
|
|
259
280
|
break;
|
|
260
281
|
}
|
|
261
282
|
}
|
|
262
283
|
if (!foundOne && editorObs.isFocused.read(r)) {
|
|
263
|
-
this.
|
|
284
|
+
this.#isActiveController.set(true, undefined);
|
|
264
285
|
}
|
|
265
286
|
}));
|
|
266
287
|
const visibleSessionObs = observableValue(this, undefined);
|
|
267
|
-
this.
|
|
288
|
+
this.#store.add(autorun(r => {
|
|
268
289
|
const model = editorObs.model.read(r);
|
|
269
|
-
const session = this.
|
|
270
|
-
const isActive = this.
|
|
290
|
+
const session = this.#currentSession.read(r);
|
|
291
|
+
const isActive = this.#isActiveController.read(r);
|
|
271
292
|
if (!session || !isActive || !model) {
|
|
272
293
|
visibleSessionObs.set(undefined, undefined);
|
|
273
294
|
} else {
|
|
@@ -275,39 +296,37 @@ let InlineChatController = class InlineChatController {
|
|
|
275
296
|
}
|
|
276
297
|
}));
|
|
277
298
|
const defaultPlaceholderObs = ( visibleSessionObs.map((session, r) => {
|
|
278
|
-
return session?.initialSelection.isEmpty() ? ( localize(
|
|
299
|
+
return session?.initialSelection.isEmpty() ? ( localize(10089, "Generate code")) : ( localize(10090, "Modify selected code"));
|
|
279
300
|
}));
|
|
280
|
-
this.
|
|
301
|
+
this.#store.add(autorun(r => {
|
|
281
302
|
const session = visibleSessionObs.read(r);
|
|
282
303
|
ctxTerminated.set(!!session?.terminationState.read(r));
|
|
283
304
|
}));
|
|
284
|
-
this.
|
|
305
|
+
this.#store.add(autorun(r => {
|
|
285
306
|
const session = visibleSessionObs.read(r);
|
|
286
|
-
const renderMode = this.
|
|
307
|
+
const renderMode = this.#renderMode.read(r);
|
|
287
308
|
if (!session) {
|
|
288
|
-
this.
|
|
289
|
-
this.
|
|
290
|
-
|
|
309
|
+
this.#zone.rawValue?.hide();
|
|
310
|
+
this.#zone.rawValue?.widget.chatWidget.setModel(undefined);
|
|
311
|
+
editor.focus();
|
|
291
312
|
ctxInlineChatVisible.reset();
|
|
292
313
|
} else if (renderMode === "hover") {
|
|
293
|
-
this._zone.value.widget.chatWidget.setModel(session.chatModel);
|
|
294
|
-
this._zone.rawValue?.hide();
|
|
295
314
|
ctxInlineChatVisible.set(true);
|
|
296
315
|
} else {
|
|
297
316
|
ctxInlineChatVisible.set(true);
|
|
298
|
-
this.
|
|
299
|
-
if (!this.
|
|
300
|
-
this.
|
|
301
|
-
this.
|
|
302
|
-
this.
|
|
317
|
+
this.#zone.value.widget.chatWidget.setModel(session.chatModel);
|
|
318
|
+
if (!this.#zone.value.position) {
|
|
319
|
+
this.#zone.value.widget.chatWidget.setInputPlaceholder(defaultPlaceholderObs.read(r));
|
|
320
|
+
this.#zone.value.widget.chatWidget.input.renderAttachedContext();
|
|
321
|
+
this.#zone.value.show(session.initialPosition);
|
|
303
322
|
}
|
|
304
|
-
this.
|
|
305
|
-
this.
|
|
323
|
+
this.#zone.value.reveal(this.#zone.value.position);
|
|
324
|
+
this.#zone.value.widget.focus();
|
|
306
325
|
}
|
|
307
326
|
}));
|
|
308
|
-
this.
|
|
327
|
+
this.#store.add(autorun(r => {
|
|
309
328
|
const session = visibleSessionObs.read(r);
|
|
310
|
-
const renderMode = this.
|
|
329
|
+
const renderMode = this.#renderMode.read(r);
|
|
311
330
|
if (!session || renderMode !== "hover") {
|
|
312
331
|
ctxPendingConfirmation.set(false);
|
|
313
332
|
sessionOverlayWidget.hide();
|
|
@@ -327,7 +346,27 @@ let InlineChatController = class InlineChatController {
|
|
|
327
346
|
sessionOverlayWidget.hide();
|
|
328
347
|
}
|
|
329
348
|
}));
|
|
330
|
-
this.
|
|
349
|
+
this.#store.add(autorun(r => {
|
|
350
|
+
const session = this.#currentSession.read(r);
|
|
351
|
+
if (!session) {
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
const lastRequest = session.chatModel.lastRequestObs.read(r);
|
|
355
|
+
const response = lastRequest?.response;
|
|
356
|
+
const pending = response?.isPendingConfirmation.read(r);
|
|
357
|
+
if (pending) {
|
|
358
|
+
this.#logService.info(`[InlineChat] auto-approving: ${pending.detail ?? "unknown"}`);
|
|
359
|
+
for (const part of response.response.value) {
|
|
360
|
+
if (part.kind === "toolInvocation") {
|
|
361
|
+
IChatToolInvocation.confirmWith(part, {
|
|
362
|
+
type: ToolConfirmKind.ConfirmationNotNeeded,
|
|
363
|
+
reason: "inlineChat"
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}));
|
|
369
|
+
this.#store.add(autorun(r => {
|
|
331
370
|
const session = visibleSessionObs.read(r);
|
|
332
371
|
if (session) {
|
|
333
372
|
const entries = session.editingSession.entries.read(r);
|
|
@@ -342,7 +381,7 @@ let InlineChatController = class InlineChatController {
|
|
|
342
381
|
return true;
|
|
343
382
|
});
|
|
344
383
|
for (const entry of otherEntries) {
|
|
345
|
-
this.
|
|
384
|
+
this.#editorService.openEditor({
|
|
346
385
|
resource: entry.modifiedURI
|
|
347
386
|
}, SIDE_GROUP).catch(onUnexpectedError);
|
|
348
387
|
}
|
|
@@ -369,31 +408,37 @@ let InlineChatController = class InlineChatController {
|
|
|
369
408
|
() => response.response.value.findLast(part => part.kind === "progressMessage")
|
|
370
409
|
).read(r);
|
|
371
410
|
}));
|
|
372
|
-
this.
|
|
411
|
+
this.#store.add(autorun(r => {
|
|
373
412
|
const session = visibleSessionObs.read(r);
|
|
374
413
|
const response = lastResponseObs.read(r);
|
|
375
414
|
const terminationState = session?.terminationState.read(r);
|
|
376
|
-
this.
|
|
415
|
+
const renderMode = this.#renderMode.read(r);
|
|
416
|
+
this.#zone.rawValue?.widget.updateInfo("");
|
|
377
417
|
if (!response?.isInProgress.read(r)) {
|
|
378
418
|
if (response?.result?.errorDetails) {
|
|
379
|
-
this.
|
|
419
|
+
this.#zone.rawValue?.widget.updateInfo(`$(error) ${response.result.errorDetails.message}`);
|
|
380
420
|
alert(response.result.errorDetails.message);
|
|
421
|
+
} else if (terminationState && renderMode === "zone") {
|
|
422
|
+
this.#zone.rawValue?.showTerminationCard(terminationState, this.#instaService);
|
|
381
423
|
} else if (terminationState) {
|
|
382
|
-
this.
|
|
424
|
+
this.#zone.rawValue?.widget.updateInfo(`$(info) ${renderAsPlaintext(terminationState)}`);
|
|
425
|
+
}
|
|
426
|
+
if (!terminationState || renderMode !== "zone") {
|
|
427
|
+
this.#zone.rawValue?.hideTerminationCard();
|
|
383
428
|
}
|
|
384
|
-
this.
|
|
385
|
-
this.
|
|
429
|
+
this.#zone.rawValue?.widget.domNode.classList.toggle("request-in-progress", false);
|
|
430
|
+
this.#zone.rawValue?.widget.chatWidget.setInputPlaceholder(defaultPlaceholderObs.read(r));
|
|
386
431
|
} else {
|
|
387
|
-
this.
|
|
432
|
+
this.#zone.rawValue?.widget.domNode.classList.toggle("request-in-progress", true);
|
|
388
433
|
let placeholder = response.request?.message.text;
|
|
389
434
|
const lastProgress = lastResponseProgressObs.read(r);
|
|
390
435
|
if (lastProgress) {
|
|
391
436
|
placeholder = renderAsPlaintext(lastProgress.content);
|
|
392
437
|
}
|
|
393
|
-
this.
|
|
438
|
+
this.#zone.rawValue?.widget.chatWidget.setInputPlaceholder(placeholder || ( localize(10091, "Working...")));
|
|
394
439
|
}
|
|
395
440
|
}));
|
|
396
|
-
this.
|
|
441
|
+
this.#store.add(autorun(r => {
|
|
397
442
|
const session = visibleSessionObs.read(r);
|
|
398
443
|
if (!session) {
|
|
399
444
|
return;
|
|
@@ -403,23 +448,23 @@ let InlineChatController = class InlineChatController {
|
|
|
403
448
|
entry?.enableReviewModeUntilSettled();
|
|
404
449
|
}
|
|
405
450
|
}));
|
|
406
|
-
this.
|
|
451
|
+
this.#store.add(autorun(r => {
|
|
407
452
|
const session = visibleSessionObs.read(r);
|
|
408
453
|
const entry = session?.editingSession.readEntry(session.uri, r);
|
|
409
|
-
const pane = this.
|
|
410
|
-
candidate => candidate.getControl() === this
|
|
454
|
+
const pane = this.#editorService.visibleEditorPanes.find(
|
|
455
|
+
candidate => candidate.getControl() === this.#editor || isNotebookContainingCellEditor(candidate, this.#editor)
|
|
411
456
|
);
|
|
412
457
|
if (pane && entry) {
|
|
413
458
|
entry?.getEditorIntegration(pane);
|
|
414
459
|
}
|
|
415
|
-
if (entry?.diffInfo && this.
|
|
460
|
+
if (entry?.diffInfo && this.#zone.rawValue?.position) {
|
|
416
461
|
const {
|
|
417
462
|
position
|
|
418
|
-
} = this.
|
|
463
|
+
} = this.#zone.rawValue;
|
|
419
464
|
const diff = entry.diffInfo.read(r);
|
|
420
465
|
for (const change of diff.changes) {
|
|
421
466
|
if (change.modified.contains(position.lineNumber)) {
|
|
422
|
-
this.
|
|
467
|
+
this.#zone.rawValue?.updatePositionAndHeight(( new Position(change.modified.startLineNumber - 1, 1)));
|
|
423
468
|
break;
|
|
424
469
|
}
|
|
425
470
|
}
|
|
@@ -427,79 +472,162 @@ let InlineChatController = class InlineChatController {
|
|
|
427
472
|
}));
|
|
428
473
|
}
|
|
429
474
|
dispose() {
|
|
430
|
-
this.
|
|
475
|
+
this.#store.dispose();
|
|
431
476
|
}
|
|
432
477
|
getWidgetPosition() {
|
|
433
|
-
return this.
|
|
478
|
+
return this.#zone.rawValue?.position;
|
|
434
479
|
}
|
|
435
480
|
focus() {
|
|
436
|
-
this.
|
|
481
|
+
this.#zone.rawValue?.widget.focus();
|
|
437
482
|
}
|
|
438
483
|
async run(arg) {
|
|
439
|
-
assertType(this.
|
|
440
|
-
const uri = this.
|
|
441
|
-
const existingSession = this.
|
|
484
|
+
assertType(this.#editor.hasModel());
|
|
485
|
+
const uri = this.#editor.getModel().uri;
|
|
486
|
+
const existingSession = this.#inlineChatSessionService.getSessionByTextModel(uri);
|
|
442
487
|
if (existingSession) {
|
|
443
488
|
await existingSession.editingSession.accept();
|
|
444
489
|
existingSession.dispose();
|
|
445
490
|
}
|
|
446
|
-
this.
|
|
447
|
-
const session = this.
|
|
491
|
+
this.#isActiveController.set(true, undefined);
|
|
492
|
+
const session = this.#inlineChatSessionService.createSession(this.#editor);
|
|
493
|
+
if (this.#renderMode.get() === "hover") {
|
|
494
|
+
return this.#runHover(session, arg);
|
|
495
|
+
} else {
|
|
496
|
+
return this.#runZone(session, arg);
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
async #runHover(session, arg) {
|
|
500
|
+
assertType(this.#editor.hasModel());
|
|
501
|
+
const uri = this.#editor.getModel().uri;
|
|
502
|
+
if (arg && InlineChatRunOptions.isInlineChatRunOptions(arg)) {
|
|
503
|
+
if (arg.initialRange) {
|
|
504
|
+
this.#editor.revealRange(arg.initialRange);
|
|
505
|
+
}
|
|
506
|
+
if (arg.initialSelection) {
|
|
507
|
+
this.#editor.setSelection(arg.initialSelection);
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
const {
|
|
511
|
+
location,
|
|
512
|
+
locationData
|
|
513
|
+
} = this.#buildLocationData();
|
|
514
|
+
let userSelectedModelId;
|
|
515
|
+
if (arg?.modelSelector) {
|
|
516
|
+
userSelectedModelId = (await this.#languageModelService.selectLanguageModels(arg.modelSelector)).sort().at(0);
|
|
517
|
+
if (!userSelectedModelId) {
|
|
518
|
+
throw ( new Error(
|
|
519
|
+
`No language models found matching selector: ${JSON.stringify(arg.modelSelector)}.`
|
|
520
|
+
));
|
|
521
|
+
}
|
|
522
|
+
} else {
|
|
523
|
+
userSelectedModelId = await this.#resolveModelId(location);
|
|
524
|
+
}
|
|
525
|
+
const attachedContext = [];
|
|
526
|
+
if (arg?.attachments) {
|
|
527
|
+
for (const attachment of arg.attachments) {
|
|
528
|
+
const resolved = await this.#chatAttachmentResolveService.resolveImageEditorAttachContext(attachment);
|
|
529
|
+
if (resolved) {
|
|
530
|
+
attachedContext.push(resolved);
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
if (arg?.attachDiagnostics) {
|
|
535
|
+
for (const [range, marker] of this.#markerDecorationsService.getLiveMarkers(uri)) {
|
|
536
|
+
if (range.intersectRanges(this.#editor.getSelection())) {
|
|
537
|
+
const filter = IDiagnosticVariableEntryFilterData.fromMarker(marker);
|
|
538
|
+
attachedContext.push(IDiagnosticVariableEntryFilterData.toEntry(filter));
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
if (attachedContext.length > 0 && !arg.message) {
|
|
542
|
+
arg.message = attachedContext.length > 1 ? ( localize(10092, "Fix the attached problems")) : ( localize(10093, "Fix the attached problem"));
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
if (arg?.message && arg.autoSend) {
|
|
546
|
+
await this.#chatService.sendRequest(session.chatModel.sessionResource, arg.message, {
|
|
547
|
+
userSelectedModelId,
|
|
548
|
+
location,
|
|
549
|
+
locationData,
|
|
550
|
+
attachedContext: attachedContext.length > 0 ? attachedContext : undefined,
|
|
551
|
+
modeInfo: {
|
|
552
|
+
kind: ChatModeKind.Ask,
|
|
553
|
+
isBuiltin: true,
|
|
554
|
+
modeInstructions: undefined,
|
|
555
|
+
modeId: "ask",
|
|
556
|
+
applyCodeBlockSuggestionId: undefined
|
|
557
|
+
}
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
if (!arg?.resolveOnResponse) {
|
|
561
|
+
await Event.toPromise(session.editingSession.onDidDispose);
|
|
562
|
+
const rejected = session.editingSession.getEntry(uri)?.state.get() === ModifiedFileEntryState.Rejected;
|
|
563
|
+
return !rejected;
|
|
564
|
+
} else {
|
|
565
|
+
const modifiedObs = derived(r => {
|
|
566
|
+
const entry = session.editingSession.readEntry(uri, r);
|
|
567
|
+
return entry?.state.read(r) === ModifiedFileEntryState.Modified && !entry?.isCurrentlyBeingModifiedBy.read(r);
|
|
568
|
+
});
|
|
569
|
+
await waitForState(modifiedObs, state => state === true);
|
|
570
|
+
return true;
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
async #runZone(session, arg) {
|
|
574
|
+
assertType(this.#editor.hasModel());
|
|
575
|
+
const uri = this.#editor.getModel().uri;
|
|
448
576
|
const sessionStore = ( new DisposableStore());
|
|
449
577
|
try {
|
|
450
|
-
await this
|
|
578
|
+
await this.#applyModelDefaults(session, sessionStore);
|
|
451
579
|
if (arg) {
|
|
452
|
-
arg.attachDiagnostics ??=
|
|
580
|
+
arg.attachDiagnostics ??= true;
|
|
453
581
|
}
|
|
454
582
|
if (arg?.attachDiagnostics) {
|
|
455
583
|
const entries = [];
|
|
456
|
-
for (const [range, marker] of this.
|
|
457
|
-
if (range.intersectRanges(this.
|
|
584
|
+
for (const [range, marker] of this.#markerDecorationsService.getLiveMarkers(uri)) {
|
|
585
|
+
if (range.intersectRanges(this.#editor.getSelection())) {
|
|
458
586
|
const filter = IDiagnosticVariableEntryFilterData.fromMarker(marker);
|
|
459
587
|
entries.push(IDiagnosticVariableEntryFilterData.toEntry(filter));
|
|
460
588
|
}
|
|
461
589
|
}
|
|
462
590
|
if (entries.length > 0) {
|
|
463
|
-
this.
|
|
464
|
-
const msg = entries.length > 1 ? ( localize(
|
|
465
|
-
this.
|
|
591
|
+
this.#zone.value.widget.chatWidget.attachmentModel.addContext(...entries);
|
|
592
|
+
const msg = entries.length > 1 ? ( localize(10092, "Fix the attached problems")) : ( localize(10093, "Fix the attached problem"));
|
|
593
|
+
this.#zone.value.widget.chatWidget.input.setValue(msg, true);
|
|
466
594
|
arg.message = msg;
|
|
467
|
-
this.
|
|
595
|
+
this.#zone.value.widget.chatWidget.inputEditor.setSelection(( new Selection(1, 1, Number.MAX_SAFE_INTEGER, 1)));
|
|
468
596
|
}
|
|
469
597
|
}
|
|
470
598
|
if (arg && InlineChatRunOptions.isInlineChatRunOptions(arg)) {
|
|
471
599
|
if (arg.initialRange) {
|
|
472
|
-
this.
|
|
600
|
+
this.#editor.revealRange(arg.initialRange);
|
|
473
601
|
}
|
|
474
602
|
if (arg.initialSelection) {
|
|
475
|
-
this.
|
|
603
|
+
this.#editor.setSelection(arg.initialSelection);
|
|
476
604
|
}
|
|
477
605
|
if (arg.attachments) {
|
|
478
606
|
await Promise.all(( arg.attachments.map(async attachment => {
|
|
479
|
-
await this.
|
|
607
|
+
await this.#zone.value.widget.chatWidget.attachmentModel.addFile(attachment);
|
|
480
608
|
})));
|
|
481
609
|
delete arg.attachments;
|
|
482
610
|
}
|
|
483
611
|
if (arg.modelSelector) {
|
|
484
|
-
const id = (await this.
|
|
612
|
+
const id = (await this.#languageModelService.selectLanguageModels(arg.modelSelector)).sort().at(0);
|
|
485
613
|
if (!id) {
|
|
486
614
|
throw ( new Error(
|
|
487
615
|
`No language models found matching selector: ${JSON.stringify(arg.modelSelector)}.`
|
|
488
616
|
));
|
|
489
617
|
}
|
|
490
|
-
const model = this.
|
|
618
|
+
const model = this.#languageModelService.lookupLanguageModel(id);
|
|
491
619
|
if (!model) {
|
|
492
620
|
throw ( new Error(`Language model not loaded: ${id}.`));
|
|
493
621
|
}
|
|
494
|
-
this.
|
|
622
|
+
this.#zone.value.widget.chatWidget.input.setCurrentLanguageModel({
|
|
495
623
|
metadata: model,
|
|
496
624
|
identifier: id
|
|
497
625
|
});
|
|
498
626
|
}
|
|
499
627
|
if (arg.message) {
|
|
500
|
-
this.
|
|
628
|
+
this.#zone.value.widget.chatWidget.setInput(arg.message);
|
|
501
629
|
if (arg.autoSend) {
|
|
502
|
-
await this.
|
|
630
|
+
await this.#zone.value.widget.chatWidget.acceptInput();
|
|
503
631
|
}
|
|
504
632
|
}
|
|
505
633
|
}
|
|
@@ -520,7 +648,7 @@ let InlineChatController = class InlineChatController {
|
|
|
520
648
|
}
|
|
521
649
|
}
|
|
522
650
|
async acceptSession() {
|
|
523
|
-
const session = this.
|
|
651
|
+
const session = this.#currentSession.get();
|
|
524
652
|
if (!session) {
|
|
525
653
|
return;
|
|
526
654
|
}
|
|
@@ -528,45 +656,53 @@ let InlineChatController = class InlineChatController {
|
|
|
528
656
|
session.dispose();
|
|
529
657
|
}
|
|
530
658
|
async rejectSession() {
|
|
531
|
-
const session = this.
|
|
659
|
+
const session = this.#currentSession.get();
|
|
532
660
|
if (!session) {
|
|
533
661
|
return;
|
|
534
662
|
}
|
|
535
|
-
await this.
|
|
663
|
+
await this.#chatService.cancelCurrentRequestForSession(session.chatModel.sessionResource, "inlineChatReject");
|
|
536
664
|
await session.editingSession.reject();
|
|
537
665
|
session.dispose();
|
|
538
666
|
}
|
|
539
667
|
async continueSessionInChat() {
|
|
540
|
-
const session = this.
|
|
668
|
+
const session = this.#currentSession.get();
|
|
541
669
|
if (!session) {
|
|
542
670
|
return;
|
|
543
671
|
}
|
|
544
|
-
await this.
|
|
672
|
+
await this.#instaService.invokeFunction(continueInPanelChat, session);
|
|
545
673
|
}
|
|
546
674
|
async rephraseSession() {
|
|
547
|
-
const session = this.
|
|
675
|
+
const session = this.#currentSession.get();
|
|
548
676
|
if (!session) {
|
|
549
677
|
return;
|
|
550
678
|
}
|
|
679
|
+
if (this.#renderMode.get() === "zone") {
|
|
680
|
+
const requestText = this.#instaService.invokeFunction(rephraseInlineChat, session);
|
|
681
|
+
if (requestText) {
|
|
682
|
+
this.#zone.rawValue?.widget.chatWidget.setInput(requestText);
|
|
683
|
+
}
|
|
684
|
+
this.#zone.rawValue?.widget.focus();
|
|
685
|
+
return;
|
|
686
|
+
}
|
|
551
687
|
const requestText = session.chatModel.getRequests().at(-1)?.message.text;
|
|
552
688
|
session.dispose();
|
|
553
689
|
if (!requestText) {
|
|
554
690
|
return;
|
|
555
691
|
}
|
|
556
|
-
const selection = this.
|
|
557
|
-
const placeholder = selection && !selection.isEmpty() ? ( localize(
|
|
692
|
+
const selection = this.#editor.getSelection();
|
|
693
|
+
const placeholder = selection && !selection.isEmpty() ? ( localize(10094, "Describe how to change this")) : ( localize(10095, "Describe what to generate"));
|
|
558
694
|
await this.inputOverlayWidget.showMenuAtSelection(placeholder, requestText);
|
|
559
695
|
}
|
|
560
|
-
async
|
|
561
|
-
const model = this.
|
|
696
|
+
async #selectVendorDefaultModel(session) {
|
|
697
|
+
const model = this.#zone.value.widget.chatWidget.input.selectedLanguageModel.get();
|
|
562
698
|
if (model && !model.metadata.isDefaultForLocation[session.chatModel.initialLocation]) {
|
|
563
|
-
const ids = await this.
|
|
699
|
+
const ids = await this.#languageModelService.selectLanguageModels({
|
|
564
700
|
vendor: model.metadata.vendor
|
|
565
701
|
});
|
|
566
702
|
for (const identifier of ids) {
|
|
567
|
-
const candidate = this.
|
|
703
|
+
const candidate = this.#languageModelService.lookupLanguageModel(identifier);
|
|
568
704
|
if (candidate?.isDefaultForLocation[session.chatModel.initialLocation]) {
|
|
569
|
-
this.
|
|
705
|
+
this.#zone.value.widget.chatWidget.input.setCurrentLanguageModel({
|
|
570
706
|
metadata: candidate,
|
|
571
707
|
identifier
|
|
572
708
|
});
|
|
@@ -575,30 +711,93 @@ let InlineChatController = class InlineChatController {
|
|
|
575
711
|
}
|
|
576
712
|
}
|
|
577
713
|
}
|
|
578
|
-
async
|
|
579
|
-
const userSelectedModel = InlineChatController_1
|
|
580
|
-
const defaultModelSetting = this.
|
|
714
|
+
async #resolveModelId(location) {
|
|
715
|
+
const userSelectedModel = InlineChatController_1.#userSelectedModel;
|
|
716
|
+
const defaultModelSetting = this.#configurationService.getValue(InlineChatConfigKeys.DefaultModel);
|
|
717
|
+
if (userSelectedModel) {
|
|
718
|
+
const match = this.#languageModelService.lookupLanguageModelByQualifiedName(userSelectedModel);
|
|
719
|
+
if (match) {
|
|
720
|
+
return match.identifier;
|
|
721
|
+
}
|
|
722
|
+
InlineChatController_1.#userSelectedModel = undefined;
|
|
723
|
+
}
|
|
724
|
+
if (defaultModelSetting) {
|
|
725
|
+
const match = this.#languageModelService.lookupLanguageModelByQualifiedName(defaultModelSetting);
|
|
726
|
+
if (match) {
|
|
727
|
+
return match.identifier;
|
|
728
|
+
}
|
|
729
|
+
this.#logService.warn(
|
|
730
|
+
`inlineChat.defaultModel setting value '${defaultModelSetting}' did not match any available model. Falling back to vendor default.`
|
|
731
|
+
);
|
|
732
|
+
}
|
|
733
|
+
for (const id of this.#languageModelService.getLanguageModelIds()) {
|
|
734
|
+
const metadata = this.#languageModelService.lookupLanguageModel(id);
|
|
735
|
+
if (metadata?.isDefaultForLocation[location]) {
|
|
736
|
+
return id;
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
return undefined;
|
|
740
|
+
}
|
|
741
|
+
#buildLocationData() {
|
|
742
|
+
assertType(this.#editor.hasModel());
|
|
743
|
+
const notebookEditor = this.#notebookEditorService.getNotebookForPossibleCell(this.#editor);
|
|
744
|
+
if (notebookEditor) {
|
|
745
|
+
const useNotebookAgent = this.#configurationService.getValue(InlineChatConfigKeys.notebookAgent);
|
|
746
|
+
if (useNotebookAgent) {
|
|
747
|
+
return {
|
|
748
|
+
location: ChatAgentLocation.Notebook,
|
|
749
|
+
locationData: {
|
|
750
|
+
type: ChatAgentLocation.Notebook,
|
|
751
|
+
sessionInputUri: this.#editor.getModel().uri
|
|
752
|
+
}
|
|
753
|
+
};
|
|
754
|
+
}
|
|
755
|
+
return {
|
|
756
|
+
location: ChatAgentLocation.Notebook,
|
|
757
|
+
locationData: {
|
|
758
|
+
type: ChatAgentLocation.EditorInline,
|
|
759
|
+
id: getEditorId(this.#editor, this.#editor.getModel()),
|
|
760
|
+
selection: this.#editor.getSelection(),
|
|
761
|
+
document: this.#editor.getModel().uri,
|
|
762
|
+
wholeRange: this.#editor.getSelection()
|
|
763
|
+
}
|
|
764
|
+
};
|
|
765
|
+
}
|
|
766
|
+
return {
|
|
767
|
+
location: ChatAgentLocation.EditorInline,
|
|
768
|
+
locationData: {
|
|
769
|
+
type: ChatAgentLocation.EditorInline,
|
|
770
|
+
id: getEditorId(this.#editor, this.#editor.getModel()),
|
|
771
|
+
selection: this.#editor.getSelection(),
|
|
772
|
+
document: this.#editor.getModel().uri,
|
|
773
|
+
wholeRange: this.#editor.getSelection()
|
|
774
|
+
}
|
|
775
|
+
};
|
|
776
|
+
}
|
|
777
|
+
async #applyModelDefaults(session, sessionStore) {
|
|
778
|
+
const userSelectedModel = InlineChatController_1.#userSelectedModel;
|
|
779
|
+
const defaultModelSetting = this.#configurationService.getValue(InlineChatConfigKeys.DefaultModel);
|
|
581
780
|
let modelApplied = false;
|
|
582
781
|
if (userSelectedModel) {
|
|
583
|
-
modelApplied = this.
|
|
782
|
+
modelApplied = this.#zone.value.widget.chatWidget.input.switchModelByQualifiedName([userSelectedModel]);
|
|
584
783
|
if (!modelApplied) {
|
|
585
|
-
InlineChatController_1
|
|
784
|
+
InlineChatController_1.#userSelectedModel = undefined;
|
|
586
785
|
}
|
|
587
786
|
}
|
|
588
787
|
if (!modelApplied && defaultModelSetting) {
|
|
589
|
-
modelApplied = this.
|
|
788
|
+
modelApplied = this.#zone.value.widget.chatWidget.input.switchModelByQualifiedName([defaultModelSetting]);
|
|
590
789
|
if (!modelApplied) {
|
|
591
|
-
this.
|
|
790
|
+
this.#logService.warn(
|
|
592
791
|
`inlineChat.defaultModel setting value '${defaultModelSetting}' did not match any available model. Falling back to vendor default.`
|
|
593
792
|
);
|
|
594
793
|
}
|
|
595
794
|
}
|
|
596
795
|
if (!modelApplied) {
|
|
597
|
-
await this
|
|
796
|
+
await this.#selectVendorDefaultModel(session);
|
|
598
797
|
}
|
|
599
798
|
let initialModelId;
|
|
600
799
|
sessionStore.add(autorun(r => {
|
|
601
|
-
const newModel = this.
|
|
800
|
+
const newModel = this.#zone.value.widget.chatWidget.input.selectedLanguageModel.read(r);
|
|
602
801
|
if (!newModel) {
|
|
603
802
|
return;
|
|
604
803
|
}
|
|
@@ -607,24 +806,24 @@ let InlineChatController = class InlineChatController {
|
|
|
607
806
|
return;
|
|
608
807
|
}
|
|
609
808
|
if (initialModelId !== newModel.identifier) {
|
|
610
|
-
InlineChatController_1
|
|
809
|
+
InlineChatController_1.#userSelectedModel = ILanguageModelChatMetadata.asQualifiedName(newModel.metadata);
|
|
611
810
|
initialModelId = newModel.identifier;
|
|
612
811
|
}
|
|
613
812
|
}));
|
|
614
813
|
}
|
|
615
814
|
async createImageAttachment(attachment) {
|
|
616
|
-
const value = this.
|
|
815
|
+
const value = this.#currentSession.get();
|
|
617
816
|
if (!value) {
|
|
618
817
|
return undefined;
|
|
619
818
|
}
|
|
620
819
|
if (attachment.scheme === Schemas.file) {
|
|
621
|
-
if (await this.
|
|
622
|
-
return await this.
|
|
820
|
+
if (await this.#fileService.canHandleResource(attachment)) {
|
|
821
|
+
return await this.#chatAttachmentResolveService.resolveImageEditorAttachContext(attachment);
|
|
623
822
|
}
|
|
624
823
|
} else if (attachment.scheme === Schemas.http || attachment.scheme === Schemas.https) {
|
|
625
|
-
const extractedImages = await this.
|
|
824
|
+
const extractedImages = await this.#webContentExtractorService.readImage(attachment, CancellationToken.None);
|
|
626
825
|
if (extractedImages) {
|
|
627
|
-
return await this.
|
|
826
|
+
return await this.#chatAttachmentResolveService.resolveImageEditorAttachContext(attachment, extractedImages);
|
|
628
827
|
}
|
|
629
828
|
}
|
|
630
829
|
return undefined;
|