@codingame/monaco-vscode-katex-common 34.1.2 → 35.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/base/browser/animationSync.d.ts +36 -0
- package/vscode/src/vs/base/browser/animationSync.js +23 -0
- package/vscode/src/vs/base/browser/ui/pixelSpinner/pixelSpinner.js +23 -2
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +3 -2
- package/vscode/src/vs/platform/agentHost/common/claudeSessionConfigKeys.d.ts +5 -5
- package/vscode/src/vs/platform/agentHost/common/fileEditDiff.d.ts +32 -0
- package/vscode/src/vs/platform/agentHost/common/fileEditDiff.js +33 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentFeedbackAnnotations.d.ts +90 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentFeedbackAttachments.d.ts +30 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentToolCallMeta.d.ts +65 -0
- package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.d.ts +16 -5
- package/vscode/src/vs/platform/agentHost/common/sessionConfigKeys.js +3 -2
- package/vscode/src/vs/platform/agentHost/common/state/protocol/channels-resource-watch/reducer.d.ts +21 -0
- package/vscode/src/vs/platform/agentHost/common/state/protocol/reducers.d.ts +8 -0
- package/vscode/src/vs/platform/agentHost/common/state/sessionReducers.d.ts +9 -0
- package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +2 -2
- 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 +29 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +105 -28
- 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 +15 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +74 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +98 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.contribution.js +31 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.d.ts +45 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostChatInputPicker.js +163 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostFolderPickerActionItem.d.ts +47 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostFolderPickerActionItem.js +172 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostGenericConfigChips.js +7 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSessionReferenceAttachment.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSnapshotController.d.ts +116 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostSnapshotController.js +348 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/media/agentHostChatInputPicker.css +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/stateToProgressAdapter.d.ts +211 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/stateToProgressAdapter.js +64 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +13 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +30 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +29 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +24 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +119 -41
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +27 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionTypeAvailability.d.ts +63 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/sessionTypeAvailability.js +97 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +5 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +105 -88
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +46 -48
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +98 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +9 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatTurnPills.css +162 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.d.ts +9 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/chatToolRiskAssessmentService.js +95 -24
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.d.ts +22 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +151 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatArtifactsWidget.js +10 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentMarkdownRenderer.js +20 -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 +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +61 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAutoModeResolutionContentPart.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAutoModeResolutionContentPart.js +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +81 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatEditPillElement.js +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.js +9 -33
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.d.ts +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExternalEditContentPart.js +21 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +13 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +6 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +40 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpAuthenticationContentPart.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpAuthenticationContentPart.js +140 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersStartingContentPart.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersStartingContentPart.js +58 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +29 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPlanReviewPart.js +30 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +44 -44
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +12 -66
- 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 +39 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +167 -43
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.d.ts +1 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +9 -86
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSystemNotificationContentPart.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSystemNotificationContentPart.js +23 -0
- 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 +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +141 -72
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +17 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +17 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTurnPillsPart.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTurnPillsPart.js +110 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatAgentFeedbackReviewConfirmation.css +133 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatAutoModeResolution.css +30 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +18 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatPlanReview.css +23 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +33 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatSubagentContent.css +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +44 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +2 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatToolConfirmationCarousel.css +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +9 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +21 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatAgentFeedbackReviewConfirmationSubPart.d.ts +48 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatAgentFeedbackReviewConfirmationSubPart.js +279 -0
- 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.d.ts +43 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +53 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +7 -9
- 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/chatModifiedFilesConfirmationSubPart.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatModifiedFilesConfirmationSubPart.js +24 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/{chatMissingSandboxDepsConfirmationSubPart.d.ts → chatSandboxPrerequisiteConfirmationSubPart.d.ts} +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/{chatMissingSandboxDepsConfirmationSubPart.js → chatSandboxPrerequisiteConfirmationSubPart.js} +14 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +30 -59
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +41 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationCarouselPart.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +12 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +43 -35
- 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.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +11 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeHelper.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeHelper.js +51 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/toolRiskBadgeWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +18 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +266 -98
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +8 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatRestoreCheckpointActionViewItem.d.ts +32 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatRestoreCheckpointActionViewItem.js +135 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatTurnPills.d.ts +85 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatTurnPills.js +275 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +18 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +84 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatGoalBannerWidget.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.d.ts +6 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationWidget.js +52 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +187 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +435 -139
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatePersistence.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatePersistence.js +21 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationLogic.d.ts +50 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationLogic.js +49 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationStore.d.ts +79 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelConfigurationStore.js +127 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +84 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +658 -430
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +72 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +82 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatPhoneInputPresenter.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatSelectedTools.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +23 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatGoalBannerWidget.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/media/chatInputNotificationWidget.css +28 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +15 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +60 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +18 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +49 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +141 -81
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +7 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +30 -47
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerInputActionItem.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerInputActionItem.js +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +469 -148
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +11 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +79 -28
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +71 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +107 -45
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatErrorMessages.d.ts +110 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatErrorMessages.js +37 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatImageExtraction.js +13 -11
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/common/chatPermissionWarnings.js +57 -21
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +18 -18
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +4 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +30 -30
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.d.ts +39 -8
- package/vscode/src/vs/workbench/contrib/mcp/browser/mcpToolCallUI.js +168 -72
- 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/chat/browser/widget/input/chatInputStatusActionViewItem.d.ts +0 -30
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputStatusActionViewItem.js +0 -147
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { IMarkdownString, MarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent";
|
|
2
|
+
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
3
|
+
import { type ActiveTurn, type ICompletedToolCall, type Message, type ToolCallState, type Turn, FileEditKind, type ToolResultContent, type UsageInfo } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/sessionState";
|
|
4
|
+
import { IChatErrorContext } from "../../../common/chatErrorMessages.js";
|
|
5
|
+
import { type MessageAttachment, type StringOrMarkdown } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/state";
|
|
6
|
+
import { type IChatProgress, type IChatToolInvocationSerialized, type IChatUsage } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
7
|
+
import { type IChatSessionHistoryItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService";
|
|
8
|
+
import { type IQuotaSnapshot } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService";
|
|
9
|
+
import { ChatToolInvocation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation";
|
|
10
|
+
import { type IChatRequestVariableData } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatModel";
|
|
11
|
+
/**
|
|
12
|
+
* Constructs a terminal tool session ID from a terminal URI and backend session.
|
|
13
|
+
* The ID is a JSON string containing both so consumers can parse out either.
|
|
14
|
+
*/
|
|
15
|
+
export declare function makeAhpTerminalToolSessionId(terminalUri: string, session: URI): string;
|
|
16
|
+
/**
|
|
17
|
+
* Parses a terminal tool session ID back into its terminal and session URIs.
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseAhpTerminalToolSessionId(id: string): {
|
|
20
|
+
terminal: string;
|
|
21
|
+
session: string;
|
|
22
|
+
} | undefined;
|
|
23
|
+
export declare function isSubagentToolName(toolName: string): boolean;
|
|
24
|
+
export declare function systemNotificationToChatPart(content: StringOrMarkdown | undefined, connectionAuthority: string): IChatProgress | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Returns true if this tool call spawns a subagent session, either because
|
|
27
|
+
* the server reported `_meta.toolKind === 'subagent'` or because the tool
|
|
28
|
+
* name is in the known fallback set (older snapshots without `_meta`).
|
|
29
|
+
*/
|
|
30
|
+
export declare function isSubagentTool(tc: ToolCallState): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Finds a terminal content block in a tool call's content array.
|
|
33
|
+
* Returns the terminal URI if found.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getTerminalContentUri(content: ToolResultContent[] | undefined): string | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Resolves a raw per-turn model id (as it appears on `UsageInfo.model`) into
|
|
38
|
+
* the chat layer's namespaced language-model id and a human-readable display
|
|
39
|
+
* details. Both halves are independent: the id flows onto request history
|
|
40
|
+
* items (so the input picker shows the model that ran), while the details
|
|
41
|
+
* flow onto response history items (so the response footer shows the model
|
|
42
|
+
* and any usage metadata).
|
|
43
|
+
*/
|
|
44
|
+
export interface TurnModelLookup {
|
|
45
|
+
/** Returns the chat-layer namespaced model id for a raw AHP model id. */
|
|
46
|
+
toLanguageModelId(rawModelId: string | undefined): string | undefined;
|
|
47
|
+
/** Returns the human-readable response details, or undefined if unknown. */
|
|
48
|
+
toResponseDetails(rawModelId: string | undefined, usage: UsageInfo | undefined): string | undefined;
|
|
49
|
+
}
|
|
50
|
+
/** Minimal model metadata needed to render a turn's response footer (kept small for unit testing). */
|
|
51
|
+
export interface ITurnResponseModel {
|
|
52
|
+
readonly name: string;
|
|
53
|
+
readonly pricing?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Formats a turn's response footer: the model display name plus usage metadata (credits or pricing).
|
|
57
|
+
* `model` is the resolved model; `billedModelId` is the turn's `usage.model` when it didn't resolve to a
|
|
58
|
+
* registered model (e.g. an "Auto" pick billed as `raptor-mini`), shown inline as `Auto (raptor-mini)`.
|
|
59
|
+
* Returns `undefined` when the model is unknown.
|
|
60
|
+
*/
|
|
61
|
+
export declare function formatTurnResponseDetails(model: ITurnResponseModel | undefined, billedModelId: string | undefined, usage: UsageInfo | undefined): string | undefined;
|
|
62
|
+
export declare function usageInfoToChatUsage(usage: UsageInfo | undefined): IChatUsage | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* A partial quota update derived from a usage report's `_meta.quotaSnapshots`. Structurally a
|
|
65
|
+
* subset of the entitlement service's quota state, so callers merge it onto the existing quotas.
|
|
66
|
+
*/
|
|
67
|
+
export interface IAgentHostQuotaUpdate {
|
|
68
|
+
readonly chat?: IQuotaSnapshot;
|
|
69
|
+
readonly completions?: IQuotaSnapshot;
|
|
70
|
+
readonly premiumChat?: IQuotaSnapshot;
|
|
71
|
+
readonly additionalUsageEnabled?: boolean;
|
|
72
|
+
readonly additionalUsageCount?: number;
|
|
73
|
+
readonly resetDate?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Maps the per-category quota snapshots carried on a usage report's `_meta.quotaSnapshots`
|
|
77
|
+
* (reported by the model-call usage event) into a partial quota update for the entitlement
|
|
78
|
+
* service. Returns `undefined` when no usable snapshot is present.
|
|
79
|
+
*/
|
|
80
|
+
export declare function usageInfoToQuotas(usage: UsageInfo | undefined): IAgentHostQuotaUpdate | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Converts completed turns from the protocol state into session history items.
|
|
83
|
+
*
|
|
84
|
+
* Per turn, prefers `turn.usage?.model` so each request/response pair shows
|
|
85
|
+
* the model that actually ran, even if the user changed models mid-session.
|
|
86
|
+
* The `lookup` callback is responsible for any session-level fallback (e.g.
|
|
87
|
+
* `summary.model?.id` when usage hasn't reported a model yet).
|
|
88
|
+
*/
|
|
89
|
+
export declare function turnsToHistory(backendSession: URI, turns: readonly Turn[], participantId: string, connectionAuthority: string, lookup?: TurnModelLookup, errorContext?: IChatErrorContext): IChatSessionHistoryItem[];
|
|
90
|
+
/**
|
|
91
|
+
* Converts a turn's persisted {@link Message} into the chat-layer
|
|
92
|
+
* {@link IChatRequestVariableData} shape so attachments survive a
|
|
93
|
+
* history replay (and pending/server-initiated turn synthesis). Returns
|
|
94
|
+
* `undefined` when the message has no convertible attachments.
|
|
95
|
+
*/
|
|
96
|
+
export declare function messageToVariableData(message: Message, connectionAuthority: string): IChatRequestVariableData | undefined;
|
|
97
|
+
export declare function messageAttachmentsToVariableData(attachments: readonly MessageAttachment[] | undefined, connectionAuthority: string): IChatRequestVariableData | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* Converts an active (in-progress) turn's accumulated state into progress
|
|
100
|
+
* items suitable for replaying into the chat UI when reconnecting to a
|
|
101
|
+
* session that is mid-turn.
|
|
102
|
+
*
|
|
103
|
+
* Returns serialized progress items for content already received (text,
|
|
104
|
+
* reasoning, completed tool calls) and live {@link ChatToolInvocation}
|
|
105
|
+
* objects for running tool calls and pending confirmations.
|
|
106
|
+
*/
|
|
107
|
+
export declare function activeTurnToProgress(sessionResource: URI, activeTurn: ActiveTurn, connectionAuthority: string): IChatProgress[];
|
|
108
|
+
/**
|
|
109
|
+
* Converts a completed tool call from the protocol state into a serialized
|
|
110
|
+
* tool invocation suitable for history replay.
|
|
111
|
+
*/
|
|
112
|
+
export declare function completedToolCallToSerialized(tc: ICompletedToolCall, subAgentInvocationId: string | undefined, sessionResource: URI, connectionAuthority: string): IChatToolInvocationSerialized;
|
|
113
|
+
/**
|
|
114
|
+
* Builds {@link IChatExternalEdit} progress parts for a completed tool call
|
|
115
|
+
* that produced file edits. Returns an empty array if the tool call has no
|
|
116
|
+
* edits. Each emitted part carries the URI, edit kind, before/after content
|
|
117
|
+
* URIs, and the diff stats already known from the agent host protocol —
|
|
118
|
+
* downstream rendering can produce a static "edit pill" without re-deriving
|
|
119
|
+
* any of this from an editing session.
|
|
120
|
+
*
|
|
121
|
+
* `connectionAuthority` is required so all emitted URIs are wrapped via
|
|
122
|
+
* {@link toAgentHostUri}; otherwise the chat session would receive raw
|
|
123
|
+
* remote URIs that its file system providers cannot resolve.
|
|
124
|
+
*/
|
|
125
|
+
export declare function completedToolCallToEditParts(tc: ICompletedToolCall, connectionAuthority: string): IChatProgress[];
|
|
126
|
+
/**
|
|
127
|
+
* Rewrites inline markdown link URIs so that non-external schemes are wrapped
|
|
128
|
+
* in the `vscode-agent-host://` scheme, mirroring {@link toAgentHostUri}.
|
|
129
|
+
* This allows links in markdown content streamed from a remote agent host
|
|
130
|
+
* (e.g. `file:///...` or `agenthost-content:///...`) to resolve correctly on
|
|
131
|
+
* the client through the agent host filesystem provider.
|
|
132
|
+
*
|
|
133
|
+
* Links with external schemes (http, https, mailto, command, etc.) and
|
|
134
|
+
* relative/anchor-only links without a scheme are preserved as-is. The
|
|
135
|
+
* markdown is parsed with marked and each `link` / `image` token is
|
|
136
|
+
* rewritten individually, so link-looking text inside code spans or fenced
|
|
137
|
+
* code blocks is untouched (marked emits those as `code`/`codespan` tokens
|
|
138
|
+
* with no nested link tokens).
|
|
139
|
+
*/
|
|
140
|
+
export declare function rewriteMarkdownLinks(markdown: string, connectionAuthority: string): string;
|
|
141
|
+
/**
|
|
142
|
+
* Wraps a raw markdown string into an {@link IMarkdownString}, rewriting
|
|
143
|
+
* link URIs through {@link rewriteMarkdownLinks} when a connection authority
|
|
144
|
+
* is provided.
|
|
145
|
+
*/
|
|
146
|
+
export declare function rawMarkdownToString(content: string, connectionAuthority: string): MarkdownString;
|
|
147
|
+
/** Wraps an absolute path or internal URI target for the owning Agent Host connection. */
|
|
148
|
+
export declare function rewriteAgentHostLinkTarget(href: string, connectionAuthority: string): string;
|
|
149
|
+
/**
|
|
150
|
+
* Converts a protocol `StringOrMarkdown` value to a chat-layer `IMarkdownString`.
|
|
151
|
+
*
|
|
152
|
+
* When `connectionAuthority` is provided, markdown link URIs are rewritten
|
|
153
|
+
* through {@link rewriteMarkdownLinks} so that remote resources resolve
|
|
154
|
+
* through the agent host filesystem provider.
|
|
155
|
+
*/
|
|
156
|
+
export declare function stringOrMarkdownToString(value: StringOrMarkdown, connectionAuthority: string): string | IMarkdownString;
|
|
157
|
+
export declare function stringOrMarkdownToString(value: StringOrMarkdown | undefined, connectionAuthority: string): string | IMarkdownString | undefined;
|
|
158
|
+
/**
|
|
159
|
+
* Creates a live {@link ChatToolInvocation} from the protocol's tool-call
|
|
160
|
+
* state. Used during active turns to represent running tool calls in the UI.
|
|
161
|
+
*
|
|
162
|
+
* @param connectionAuthority Sanitized connection identifier used when
|
|
163
|
+
* wrapping remote file URIs into `vscode-agent-host:` URIs. Omit to skip
|
|
164
|
+
* URI wrapping (e.g. in tests that don't exercise the confirmation UI).
|
|
165
|
+
*/
|
|
166
|
+
export declare function toolCallStateToInvocation(tc: ToolCallState, subAgentInvocationId: string | undefined, sessionResource: URI, connectionAuthority: string): ChatToolInvocation;
|
|
167
|
+
/**
|
|
168
|
+
* Updates a running tool invocation's `toolSpecificData` based on the
|
|
169
|
+
* protocol tool call state. Handles terminal and subagent content detection.
|
|
170
|
+
*
|
|
171
|
+
* Called from the session handler when a tool transitions to Running state
|
|
172
|
+
* to set the initial `toolSpecificData`, or when content changes arrive.
|
|
173
|
+
*/
|
|
174
|
+
export declare function updateRunningToolSpecificData(existing: ChatToolInvocation, tc: ToolCallState, sessionResource: URI, connectionAuthority: string): void;
|
|
175
|
+
/**
|
|
176
|
+
* Data returned by {@link finalizeToolInvocation} describing file edits
|
|
177
|
+
* that should be routed through the editing session's external edits pipeline.
|
|
178
|
+
*/
|
|
179
|
+
export interface IToolCallFileEdit {
|
|
180
|
+
/** The kind of file operation. */
|
|
181
|
+
readonly kind: FileEditKind;
|
|
182
|
+
/** The primary file URI (after-URI for edits/creates/renames, before-URI for deletes). */
|
|
183
|
+
readonly resource: URI;
|
|
184
|
+
/** For renames, the original file URI before the move. */
|
|
185
|
+
readonly originalResource?: URI;
|
|
186
|
+
/** URI to read the before-snapshot content from. Absent for creates. */
|
|
187
|
+
readonly beforeContentUri?: URI;
|
|
188
|
+
/** URI to read the after-content from. Absent for deletes. */
|
|
189
|
+
readonly afterContentUri?: URI;
|
|
190
|
+
/** Undo stop ID for grouping edits. */
|
|
191
|
+
readonly undoStopId: string;
|
|
192
|
+
/** Optional diff display metadata. */
|
|
193
|
+
readonly diff?: {
|
|
194
|
+
added?: number;
|
|
195
|
+
removed?: number;
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Updates a live {@link ChatToolInvocation} with completion data from the
|
|
200
|
+
* protocol's tool-call state, transitioning it to the completed state.
|
|
201
|
+
*
|
|
202
|
+
* Returns file edits that the caller should route through the editing
|
|
203
|
+
* session's external edits pipeline.
|
|
204
|
+
*/
|
|
205
|
+
export declare function finalizeToolInvocation(invocation: ChatToolInvocation, tc: ToolCallState, backendSession: URI, connectionAuthority: string): IToolCallFileEdit[];
|
|
206
|
+
/**
|
|
207
|
+
* Extracts file edit content entries from a completed tool call and
|
|
208
|
+
* converts them to {@link IToolCallFileEdit} data for routing through
|
|
209
|
+
* the editing session's external edits pipeline.
|
|
210
|
+
*/
|
|
211
|
+
export declare function fileEditsToExternalEdits(tc: ToolCallState): IToolCallFileEdit[];
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
|
|
2
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
|
|
3
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
4
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
6
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/filters';
|
|
7
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
|
|
8
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
9
|
+
import 'marked';
|
|
10
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
11
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
|
|
12
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/charCode';
|
|
13
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/marshallingIds';
|
|
14
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
15
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
|
|
16
|
+
import { getToolFileEdits, FileEditKind } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/sessionState';
|
|
17
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/common/actions';
|
|
18
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-session/state';
|
|
19
|
+
import { ToolCallStatus } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-chat/state';
|
|
20
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-changeset/state';
|
|
21
|
+
import '../../../common/chatErrorMessages.js';
|
|
22
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-root/state';
|
|
23
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-terminal/state';
|
|
24
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/channels-resource-watch/state';
|
|
25
|
+
import { normalizeFileEdit } from '../../../../../../platform/agentHost/common/fileEditDiff.js';
|
|
26
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService';
|
|
27
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
28
|
+
import '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
29
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
|
|
30
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/attachments/chatVariableEntries';
|
|
31
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
32
|
+
import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
|
|
33
|
+
|
|
34
|
+
function fileEditsToExternalEdits(tc) {
|
|
35
|
+
if (tc.status !== ToolCallStatus.Completed) {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
const edits = getToolFileEdits(tc);
|
|
39
|
+
if (edits.length === 0) {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
return mapFileEdits(edits, tc.toolCallId);
|
|
43
|
+
}
|
|
44
|
+
function mapFileEdits(items, undoStopId) {
|
|
45
|
+
const result = [];
|
|
46
|
+
for (const edit of items) {
|
|
47
|
+
const normalized = normalizeFileEdit(edit);
|
|
48
|
+
if (!normalized) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
result.push({
|
|
52
|
+
kind: normalized.kind,
|
|
53
|
+
resource: normalized.resource,
|
|
54
|
+
originalResource: normalized.kind === FileEditKind.Rename ? normalized.beforeUri : undefined,
|
|
55
|
+
beforeContentUri: normalized.beforeContentUri,
|
|
56
|
+
afterContentUri: normalized.afterContentUri,
|
|
57
|
+
undoStopId,
|
|
58
|
+
diff: edit.diff
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export { fileEditsToExternalEdits };
|
package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts
CHANGED
|
@@ -3,12 +3,30 @@ import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/
|
|
|
3
3
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
4
4
|
import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service";
|
|
5
5
|
import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
|
|
6
|
+
/**
|
|
7
|
+
* The kind of attention a pending approval needs. Lets consumers tailor UI
|
|
8
|
+
* (e.g. a summary message) to what the user is actually being asked to do.
|
|
9
|
+
*/
|
|
10
|
+
export declare enum AgentSessionApprovalKind {
|
|
11
|
+
/** A terminal command is waiting to be run. */
|
|
12
|
+
Terminal = "terminal",
|
|
13
|
+
/** The agent is asking the user a question / needs a free-form response. */
|
|
14
|
+
Question = "question",
|
|
15
|
+
/** Some other tool invocation is waiting for confirmation. */
|
|
16
|
+
Other = "other"
|
|
17
|
+
}
|
|
6
18
|
export interface IAgentSessionApprovalInfo {
|
|
19
|
+
readonly kind: AgentSessionApprovalKind;
|
|
7
20
|
readonly label: string;
|
|
8
21
|
readonly languageId: string | undefined;
|
|
9
22
|
readonly since: Date;
|
|
10
23
|
confirm(): void;
|
|
11
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* A stable identity for a specific pending approval, distinguishing it from a
|
|
27
|
+
* later, distinct approval on the same session (a fresh `since` yields a new id).
|
|
28
|
+
*/
|
|
29
|
+
export declare function agentSessionApprovalId(info: IAgentSessionApprovalInfo): string;
|
|
12
30
|
/**
|
|
13
31
|
* Tracks approval state for all live chat sessions. For each session,
|
|
14
32
|
* exposes an observable that emits {@link IAgentSessionApprovalInfo}
|
package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js
CHANGED
|
@@ -10,6 +10,12 @@ import { ILanguageService } from '@codingame/monaco-vscode-api/vscode/vs/editor/
|
|
|
10
10
|
import { autorunIterableDelta, autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
11
11
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
12
12
|
|
|
13
|
+
var AgentSessionApprovalKind;
|
|
14
|
+
(function(AgentSessionApprovalKind) {
|
|
15
|
+
AgentSessionApprovalKind["Terminal"] = "terminal";
|
|
16
|
+
AgentSessionApprovalKind["Question"] = "question";
|
|
17
|
+
AgentSessionApprovalKind["Other"] = "other";
|
|
18
|
+
})(AgentSessionApprovalKind || (AgentSessionApprovalKind = {}));
|
|
13
19
|
let AgentSessionApprovalModel = class AgentSessionApprovalModel extends Disposable {
|
|
14
20
|
constructor(_chatService, _languageService) {
|
|
15
21
|
super();
|
|
@@ -52,7 +58,7 @@ let AgentSessionApprovalModel = class AgentSessionApprovalModel extends Disposab
|
|
|
52
58
|
if (current === value) {
|
|
53
59
|
return;
|
|
54
60
|
}
|
|
55
|
-
if (current !== undefined && value !== undefined && current.label === value.label && current.languageId === value.languageId) {
|
|
61
|
+
if (current !== undefined && value !== undefined && current.kind === value.kind && current.label === value.label && current.languageId === value.languageId) {
|
|
56
62
|
return;
|
|
57
63
|
}
|
|
58
64
|
settable.set(value, undefined);
|
|
@@ -76,18 +82,23 @@ let AgentSessionApprovalModel = class AgentSessionApprovalModel extends Disposab
|
|
|
76
82
|
if (state.type === IChatToolInvocation.StateKind.WaitingForConfirmation || state.type === IChatToolInvocation.StateKind.WaitingForPostApproval) {
|
|
77
83
|
let label;
|
|
78
84
|
let languageId;
|
|
85
|
+
let kind;
|
|
79
86
|
if (part.toolSpecificData?.kind === "terminal") {
|
|
80
87
|
const terminalData = migrateLegacyTerminalToolSpecificData(part.toolSpecificData);
|
|
81
88
|
label = terminalData.presentationOverrides?.commandLine ?? terminalData.commandLine.forDisplay ?? terminalData.commandLine.userEdited ?? terminalData.commandLine.toolEdited ?? terminalData.commandLine.original;
|
|
82
89
|
languageId = this._languageService.getLanguageIdByLanguageName(terminalData.presentationOverrides?.language ?? terminalData.language) ?? undefined;
|
|
90
|
+
kind = AgentSessionApprovalKind.Terminal;
|
|
83
91
|
} else if (needsInput.detail) {
|
|
84
92
|
label = needsInput.detail;
|
|
93
|
+
kind = AgentSessionApprovalKind.Question;
|
|
85
94
|
} else {
|
|
86
95
|
const msg = part.invocationMessage;
|
|
87
96
|
label = typeof msg === "string" ? msg : renderAsPlaintext(msg);
|
|
97
|
+
kind = AgentSessionApprovalKind.Other;
|
|
88
98
|
}
|
|
89
99
|
const confirmState = state;
|
|
90
100
|
setIfChanged({
|
|
101
|
+
kind,
|
|
91
102
|
label,
|
|
92
103
|
languageId,
|
|
93
104
|
since: ( new Date()),
|
|
@@ -104,4 +115,4 @@ let AgentSessionApprovalModel = class AgentSessionApprovalModel extends Disposab
|
|
|
104
115
|
};
|
|
105
116
|
AgentSessionApprovalModel = ( __decorate([( __param(0, IChatService)), ( __param(1, ILanguageService))], AgentSessionApprovalModel));
|
|
106
117
|
|
|
107
|
-
export { AgentSessionApprovalModel };
|
|
118
|
+
export { AgentSessionApprovalKind, AgentSessionApprovalModel };
|
package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.d.ts
CHANGED
|
@@ -16,10 +16,10 @@ export declare class AgentSessionHoverWidget extends Disposable {
|
|
|
16
16
|
private readonly contentElement;
|
|
17
17
|
private readonly loadingElement;
|
|
18
18
|
private readonly renderScheduler;
|
|
19
|
-
private hasRendered;
|
|
20
19
|
private readonly cts;
|
|
21
20
|
constructor(session: IAgentSession, chatService: IChatService, instantiationService: IInstantiationService, chatWidgetService: IChatWidgetService, agentSessionsService: IAgentSessionsService);
|
|
22
21
|
onRendered(): void;
|
|
22
|
+
onHidden(): void;
|
|
23
23
|
private loadModel;
|
|
24
24
|
private render;
|
|
25
25
|
private buildHeader;
|
package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js
CHANGED
|
@@ -43,7 +43,6 @@ let AgentSessionHoverWidget = class AgentSessionHoverWidget extends Disposable {
|
|
|
43
43
|
this.instantiationService = instantiationService;
|
|
44
44
|
this.chatWidgetService = chatWidgetService;
|
|
45
45
|
this.agentSessionsService = agentSessionsService;
|
|
46
|
-
this.hasRendered = false;
|
|
47
46
|
this.domNode = $(".agent-session-hover.interactive-session");
|
|
48
47
|
this.domNode.style.width = `${CHAT_HOVER_WIDTH}px`;
|
|
49
48
|
this.domNode.style.height = `${HEADER_HEIGHT + CHAT_LIST_HEIGHT}px`;
|
|
@@ -58,12 +57,15 @@ let AgentSessionHoverWidget = class AgentSessionHoverWidget extends Disposable {
|
|
|
58
57
|
}
|
|
59
58
|
onRendered() {
|
|
60
59
|
this.modelRef ??= this.loadModel();
|
|
61
|
-
if (
|
|
62
|
-
this.
|
|
63
|
-
this.
|
|
64
|
-
|
|
65
|
-
this.listWidget?.layout(CHAT_LIST_HEIGHT, CHAT_HOVER_WIDTH);
|
|
60
|
+
if (this.listWidget) {
|
|
61
|
+
this.listWidget.layout(CHAT_LIST_HEIGHT, CHAT_HOVER_WIDTH);
|
|
62
|
+
this.listWidget.refresh();
|
|
63
|
+
return;
|
|
66
64
|
}
|
|
65
|
+
this.renderScheduler.schedule();
|
|
66
|
+
}
|
|
67
|
+
onHidden() {
|
|
68
|
+
this.renderScheduler.cancel();
|
|
67
69
|
}
|
|
68
70
|
async loadModel() {
|
|
69
71
|
const modelRef = await this.chatService.acquireOrLoadSession(
|
|
@@ -88,7 +90,12 @@ let AgentSessionHoverWidget = class AgentSessionHoverWidget extends Disposable {
|
|
|
88
90
|
async render() {
|
|
89
91
|
this.modelRef ??= this.loadModel();
|
|
90
92
|
const model = await this.modelRef;
|
|
91
|
-
if (!model || this._store.isDisposed) {
|
|
93
|
+
if (!model || this._store.isDisposed || !this.domNode.isConnected) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (this.listWidget) {
|
|
97
|
+
this.listWidget.layout(CHAT_LIST_HEIGHT, CHAT_HOVER_WIDTH);
|
|
98
|
+
this.listWidget.refresh();
|
|
92
99
|
return;
|
|
93
100
|
}
|
|
94
101
|
this.loadingElement.remove();
|
|
@@ -104,14 +111,19 @@ let AgentSessionHoverWidget = class AgentSessionHoverWidget extends Disposable {
|
|
|
104
111
|
},
|
|
105
112
|
currentChatMode: () => ChatModeKind.Ask
|
|
106
113
|
}));
|
|
114
|
+
this.listWidget = listWidget;
|
|
107
115
|
listWidget.layout(CHAT_LIST_HEIGHT, CHAT_HOVER_WIDTH);
|
|
108
116
|
listWidget.setScrollLock(true);
|
|
109
117
|
listWidget.setViewModel(viewModel);
|
|
110
118
|
listWidget.refresh();
|
|
111
|
-
const
|
|
119
|
+
const viewModelScheduler = this._register(( new RunOnceScheduler(() => {
|
|
120
|
+
if (this.domNode.isConnected) {
|
|
121
|
+
listWidget.refresh();
|
|
122
|
+
}
|
|
123
|
+
}, 500)));
|
|
112
124
|
this._register(viewModel.onDidChange(() => {
|
|
113
|
-
if (!
|
|
114
|
-
|
|
125
|
+
if (this.domNode.isConnected && !viewModelScheduler.isScheduled()) {
|
|
126
|
+
viewModelScheduler.schedule();
|
|
115
127
|
}
|
|
116
128
|
}));
|
|
117
129
|
this._register(listWidget.onDidClickFollowup(async followup => {
|
|
@@ -158,7 +170,7 @@ let AgentSessionHoverWidget = class AgentSessionHoverWidget extends Disposable {
|
|
|
158
170
|
diffSeparator.style.display = "";
|
|
159
171
|
diffContainer.style.display = "";
|
|
160
172
|
if (diff.files > 0) {
|
|
161
|
-
append(diffContainer, $("span", undefined, diff.files === 1 ? ( localize(
|
|
173
|
+
append(diffContainer, $("span", undefined, diff.files === 1 ? ( localize(5514, "1 file")) : ( localize(5515, "{0} files", diff.files))));
|
|
162
174
|
}
|
|
163
175
|
if (diff.insertions > 0) {
|
|
164
176
|
append(diffContainer, $("span.insertions", undefined, `+${diff.insertions}`));
|
|
@@ -178,7 +190,7 @@ let AgentSessionHoverWidget = class AgentSessionHoverWidget extends Disposable {
|
|
|
178
190
|
if (session.isArchived()) {
|
|
179
191
|
append(detailsRow, $("span.separator", undefined, "•"));
|
|
180
192
|
append(detailsRow, renderIcon(Codicon.archive));
|
|
181
|
-
append(detailsRow, $("span", undefined, ( localize(
|
|
193
|
+
append(detailsRow, $("span", undefined, ( localize(5516, "Archived"))));
|
|
182
194
|
}
|
|
183
195
|
}
|
|
184
196
|
buildFallbackTooltip(session) {
|
|
@@ -215,7 +227,7 @@ let AgentSessionHoverWidget = class AgentSessionHoverWidget extends Disposable {
|
|
|
215
227
|
if (diff && hasValidDiff(session.changes)) {
|
|
216
228
|
const diffParts = [];
|
|
217
229
|
if (diff.files > 0) {
|
|
218
|
-
diffParts.push(diff.files === 1 ? ( localize(
|
|
230
|
+
diffParts.push(diff.files === 1 ? ( localize(5514, "1 file")) : ( localize(5515, "{0} files", diff.files)));
|
|
219
231
|
}
|
|
220
232
|
if (diff.insertions > 0) {
|
|
221
233
|
diffParts.push(`+${diff.insertions}`);
|
|
@@ -232,7 +244,7 @@ let AgentSessionHoverWidget = class AgentSessionHoverWidget extends Disposable {
|
|
|
232
244
|
}
|
|
233
245
|
lines.push(details.join(" • "));
|
|
234
246
|
if (session.isArchived()) {
|
|
235
|
-
lines.push(`$(archive) ${( localize(
|
|
247
|
+
lines.push(`$(archive) ${( localize(5516, "Archived"))}`);
|
|
236
248
|
}
|
|
237
249
|
return ( new MarkdownString(lines.join("\n\n"), {
|
|
238
250
|
supportThemeIcons: true
|
|
@@ -249,16 +261,16 @@ let AgentSessionHoverWidget = class AgentSessionHoverWidget extends Disposable {
|
|
|
249
261
|
let statusLabel;
|
|
250
262
|
switch (status) {
|
|
251
263
|
case ChatSessionStatus.NeedsInput:
|
|
252
|
-
statusLabel = ( localize(
|
|
264
|
+
statusLabel = ( localize(5517, "Needs Input"));
|
|
253
265
|
break;
|
|
254
266
|
case ChatSessionStatus.InProgress:
|
|
255
|
-
statusLabel = ( localize(
|
|
267
|
+
statusLabel = ( localize(5518, "In Progress"));
|
|
256
268
|
break;
|
|
257
269
|
case ChatSessionStatus.Failed:
|
|
258
|
-
statusLabel = ( localize(
|
|
270
|
+
statusLabel = ( localize(5519, "Failed"));
|
|
259
271
|
break;
|
|
260
272
|
default:
|
|
261
|
-
statusLabel = ( localize(
|
|
273
|
+
statusLabel = ( localize(5520, "Completed"));
|
|
262
274
|
}
|
|
263
275
|
return statusLabel;
|
|
264
276
|
}
|
package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts
CHANGED
|
@@ -93,7 +93,10 @@ export declare class AgentSessionsControl extends Disposable implements IAgentSe
|
|
|
93
93
|
private _updateSectionCollapseStatesCore;
|
|
94
94
|
refresh(): Promise<void>;
|
|
95
95
|
collapseAllSections(): void;
|
|
96
|
-
update(): Promise<
|
|
96
|
+
update(): Promise<boolean>;
|
|
97
|
+
private updatePauseOwner;
|
|
98
|
+
private hasPendingUpdate;
|
|
99
|
+
private pauseUpdates;
|
|
97
100
|
setVisible(visible: boolean): void;
|
|
98
101
|
layout(height: number, width: number): void;
|
|
99
102
|
focus(): void;
|
|
@@ -19,7 +19,7 @@ import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/wor
|
|
|
19
19
|
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
20
20
|
import { ACTION_ID_NEW_CHAT } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
21
21
|
import { Emitter, Event } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
22
|
-
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
22
|
+
import { Disposable, toDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
23
23
|
import { Throttler } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
|
|
24
24
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
25
25
|
import { MarshalledId } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshallingIds';
|
|
@@ -82,6 +82,7 @@ let AgentSessionsControl = class AgentSessionsControl extends Disposable {
|
|
|
82
82
|
this._onDidUpdate = this._register(( new Emitter()));
|
|
83
83
|
this.onDidUpdate = this._onDidUpdate.event;
|
|
84
84
|
this.visible = true;
|
|
85
|
+
this.hasPendingUpdate = false;
|
|
85
86
|
this.focusedAgentSessionArchivedContextKey = ChatContextKeys.isArchivedAgentSession.bindTo(this.contextKeyService);
|
|
86
87
|
this.focusedAgentSessionPinnedContextKey = ChatContextKeys.isPinnedAgentSession.bindTo(this.contextKeyService);
|
|
87
88
|
this.focusedAgentSessionReadContextKey = ChatContextKeys.isReadAgentSession.bindTo(this.contextKeyService);
|
|
@@ -122,9 +123,9 @@ let AgentSessionsControl = class AgentSessionsControl extends Disposable {
|
|
|
122
123
|
this.emptyFilterMessage = append(container, $(".agent-sessions-empty-filter-message"));
|
|
123
124
|
hide(this.emptyFilterMessage);
|
|
124
125
|
const span = append(this.emptyFilterMessage, $("span"));
|
|
125
|
-
span.textContent = `${( localize(
|
|
126
|
+
span.textContent = `${( localize(5592, "No matching sessions"))} - `;
|
|
126
127
|
const link = append(this.emptyFilterMessage, $("span.reset-filter-link"));
|
|
127
|
-
link.textContent = ( localize(
|
|
128
|
+
link.textContent = ( localize(5593, "Reset Filter"));
|
|
128
129
|
link.tabIndex = 0;
|
|
129
130
|
link.setAttribute("role", "button");
|
|
130
131
|
this._register(
|
|
@@ -213,7 +214,8 @@ let AgentSessionsControl = class AgentSessionsControl extends Disposable {
|
|
|
213
214
|
const sessionRenderer = this._register(this.instantiationService.createInstance(AgentSessionRenderer, {
|
|
214
215
|
...this.options,
|
|
215
216
|
isGroupedByRepository: () => this.options.filter.groupResults?.() === AgentSessionsGrouping.Repository,
|
|
216
|
-
isSortedByUpdated: () => this.options.filter.sortResults?.() === AgentSessionsSorting.Updated
|
|
217
|
+
isSortedByUpdated: () => this.options.filter.sortResults?.() === AgentSessionsSorting.Updated,
|
|
218
|
+
pauseSessionUpdates: () => this.pauseUpdates()
|
|
217
219
|
}, approvalModel, activeSessionResource));
|
|
218
220
|
const compact = this.options.compactShowMore;
|
|
219
221
|
const sessionDataSource = this.sessionsDataSource = this._register(( new AgentSessionsDataSource(this.options.filter, sorter, this.options.repositoryGroupLimit)));
|
|
@@ -661,10 +663,33 @@ let AgentSessionsControl = class AgentSessionsControl extends Disposable {
|
|
|
661
663
|
}
|
|
662
664
|
}
|
|
663
665
|
async update() {
|
|
666
|
+
if (this.updatePauseOwner) {
|
|
667
|
+
this.hasPendingUpdate = true;
|
|
668
|
+
return false;
|
|
669
|
+
}
|
|
664
670
|
return this.updateSessionsListThrottler.queue(async () => {
|
|
671
|
+
if (this.updatePauseOwner) {
|
|
672
|
+
this.hasPendingUpdate = true;
|
|
673
|
+
return false;
|
|
674
|
+
}
|
|
675
|
+
this.hasPendingUpdate = false;
|
|
665
676
|
this.computeRecentRepositoryLabels();
|
|
666
677
|
await this.sessionsList?.updateChildren();
|
|
667
678
|
this._onDidUpdate.fire();
|
|
679
|
+
return true;
|
|
680
|
+
});
|
|
681
|
+
}
|
|
682
|
+
pauseUpdates() {
|
|
683
|
+
const owner = {};
|
|
684
|
+
this.updatePauseOwner = owner;
|
|
685
|
+
return toDisposable(() => {
|
|
686
|
+
if (this.updatePauseOwner !== owner) {
|
|
687
|
+
return;
|
|
688
|
+
}
|
|
689
|
+
this.updatePauseOwner = undefined;
|
|
690
|
+
if (this.hasPendingUpdate && this.visible) {
|
|
691
|
+
this.update();
|
|
692
|
+
}
|
|
668
693
|
});
|
|
669
694
|
}
|
|
670
695
|
setVisible(visible) {
|
|
@@ -142,7 +142,7 @@ let AgentSessionsFilter = class AgentSessionsFilter extends Disposable {
|
|
|
142
142
|
constructor() {
|
|
143
143
|
super({
|
|
144
144
|
id: `agentSessions.filter.sortByCreated.${menuId.id.toLowerCase()}`,
|
|
145
|
-
title: ( localize(
|
|
145
|
+
title: ( localize(5594, "Sort by Created")),
|
|
146
146
|
menu: {
|
|
147
147
|
id: menuId,
|
|
148
148
|
group: "0_sort",
|
|
@@ -159,7 +159,7 @@ let AgentSessionsFilter = class AgentSessionsFilter extends Disposable {
|
|
|
159
159
|
constructor() {
|
|
160
160
|
super({
|
|
161
161
|
id: `agentSessions.filter.sortByUpdated.${menuId.id.toLowerCase()}`,
|
|
162
|
-
title: ( localize(
|
|
162
|
+
title: ( localize(5595, "Sort by Updated")),
|
|
163
163
|
menu: {
|
|
164
164
|
id: menuId,
|
|
165
165
|
group: "0_sort",
|
|
@@ -235,16 +235,16 @@ let AgentSessionsFilter = class AgentSessionsFilter extends Disposable {
|
|
|
235
235
|
registerStateActions(disposables, menuId) {
|
|
236
236
|
const states = [{
|
|
237
237
|
id: ChatSessionStatus.Completed,
|
|
238
|
-
label: ( localize(
|
|
238
|
+
label: ( localize(5596, "Completed"))
|
|
239
239
|
}, {
|
|
240
240
|
id: ChatSessionStatus.InProgress,
|
|
241
|
-
label: ( localize(
|
|
241
|
+
label: ( localize(5597, "In Progress"))
|
|
242
242
|
}, {
|
|
243
243
|
id: ChatSessionStatus.NeedsInput,
|
|
244
|
-
label: ( localize(
|
|
244
|
+
label: ( localize(5598, "Input Needed"))
|
|
245
245
|
}, {
|
|
246
246
|
id: ChatSessionStatus.Failed,
|
|
247
|
-
label: ( localize(
|
|
247
|
+
label: ( localize(5599, "Failed"))
|
|
248
248
|
}];
|
|
249
249
|
const that = this;
|
|
250
250
|
let counter = 0;
|
|
@@ -281,7 +281,7 @@ let AgentSessionsFilter = class AgentSessionsFilter extends Disposable {
|
|
|
281
281
|
constructor() {
|
|
282
282
|
super({
|
|
283
283
|
id: `agentSessions.filter.toggleExcludeArchived.${menuId.id.toLowerCase()}`,
|
|
284
|
-
title: ( localize(
|
|
284
|
+
title: ( localize(5600, "Archived")),
|
|
285
285
|
menu: {
|
|
286
286
|
id: menuId,
|
|
287
287
|
group: "3_props",
|
|
@@ -304,7 +304,7 @@ let AgentSessionsFilter = class AgentSessionsFilter extends Disposable {
|
|
|
304
304
|
constructor() {
|
|
305
305
|
super({
|
|
306
306
|
id: `agentSessions.filter.toggleExcludeRead.${menuId.id.toLowerCase()}`,
|
|
307
|
-
title: ( localize(
|
|
307
|
+
title: ( localize(5601, "Read")),
|
|
308
308
|
menu: {
|
|
309
309
|
id: menuId,
|
|
310
310
|
group: "3_props",
|
|
@@ -335,7 +335,7 @@ let AgentSessionsFilter = class AgentSessionsFilter extends Disposable {
|
|
|
335
335
|
constructor() {
|
|
336
336
|
super({
|
|
337
337
|
id: `agentSessions.filter.resetExcludes.${menuId.id.toLowerCase()}`,
|
|
338
|
-
title: ( localize(
|
|
338
|
+
title: ( localize(5602, "Reset")),
|
|
339
339
|
menu: {
|
|
340
340
|
id: menuId,
|
|
341
341
|
group: "4_reset",
|