@codingame/monaco-vscode-workbench-service-override 37.6.0 → 38.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/common.js +2 -0
- package/index.js +9 -10
- package/package.json +10 -10
- package/session.js +45 -42
- package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.d.ts +1 -0
- package/vscode/src/vs/platform/agentHost/common/sessionComparisonPrompts.js +12 -0
- package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.d.ts → desktopWorkbench.d.ts} +6 -5
- package/vscode/src/vs/sessions/browser/{singlePaneWorkbench.js → desktopWorkbench.js} +23 -25
- package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.d.ts +5 -2
- package/vscode/src/vs/sessions/browser/dockedAuxiliaryBarController.js +41 -3
- package/vscode/src/vs/sessions/browser/layoutActions.js +25 -41
- package/vscode/src/vs/sessions/browser/mobileWorkbench.d.ts +4 -0
- package/vscode/src/vs/sessions/browser/mobileWorkbench.js +10 -0
- package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.d.ts +10 -5
- package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +138 -34
- package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.d.ts +2 -0
- package/vscode/src/vs/sessions/browser/parts/chatGroupDropTarget.js +13 -5
- package/vscode/src/vs/sessions/browser/parts/chatGroupView.d.ts +27 -5
- package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +129 -28
- package/vscode/src/vs/sessions/browser/parts/chatGroupsView.d.ts +22 -7
- package/vscode/src/vs/sessions/browser/parts/chatGroupsView.js +260 -21
- package/vscode/src/vs/sessions/browser/parts/chatHeader.d.ts +25 -0
- package/vscode/src/vs/sessions/browser/parts/chatHeader.js +42 -0
- package/vscode/src/vs/sessions/browser/parts/customViewGridPart.js +9 -1
- package/vscode/src/vs/sessions/browser/parts/customViewNode.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/{singlePaneAuxiliaryBarPart.d.ts → desktopAuxiliaryBarPart.d.ts} +4 -4
- package/vscode/src/vs/sessions/browser/parts/desktopAuxiliaryBarPart.js +26 -0
- package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.d.ts → desktopEditorPart.d.ts} +8 -6
- package/vscode/src/vs/sessions/browser/parts/{singlePaneEditorPart.js → desktopEditorPart.js} +25 -5
- package/vscode/src/vs/sessions/browser/parts/editorPart.js +16 -4
- package/vscode/src/vs/sessions/browser/parts/editorParts.d.ts +1 -1
- package/vscode/src/vs/sessions/browser/parts/editorParts.js +7 -6
- package/vscode/src/vs/sessions/browser/parts/gridGap.d.ts +14 -0
- package/vscode/src/vs/sessions/browser/parts/gridGap.js +69 -0
- package/vscode/src/vs/sessions/browser/parts/media/chatCompositeBar.css +132 -4
- package/vscode/src/vs/sessions/browser/parts/media/chatGroupsView.css +10 -0
- package/vscode/src/vs/sessions/browser/parts/media/editorPart.css +46 -2
- package/vscode/src/vs/sessions/browser/parts/media/sessionReadOnlyBanner.css +3 -3
- package/vscode/src/vs/sessions/browser/parts/media/sessionView.css +45 -48
- package/vscode/src/vs/sessions/browser/parts/media/sessionsPart.css +15 -0
- package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +8 -8
- package/vscode/src/vs/sessions/browser/parts/mobile/mobileSessionsPart.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.d.ts +9 -1
- package/vscode/src/vs/sessions/browser/parts/remoteHostUnavailableEmptyState.js +21 -3
- package/vscode/src/vs/sessions/browser/parts/sessionBarStyles.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.d.ts +4 -3
- package/vscode/src/vs/sessions/browser/parts/sessionDropTarget.js +29 -15
- package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.d.ts +67 -0
- package/vscode/src/vs/sessions/browser/parts/sessionGridLayout.js +598 -0
- package/vscode/src/vs/sessions/browser/parts/sessionHeader.d.ts +11 -84
- package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +37 -317
- package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.d.ts +103 -0
- package/vscode/src/vs/sessions/browser/parts/sessionHeaderBar.js +391 -0
- package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.d.ts +6 -4
- package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +58 -28
- package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.d.ts +4 -0
- package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +66 -23
- package/vscode/src/vs/sessions/browser/parts/sessionView.d.ts +24 -5
- package/vscode/src/vs/sessions/browser/parts/sessionView.js +143 -33
- package/vscode/src/vs/sessions/browser/parts/sessionsPart.d.ts +25 -19
- package/vscode/src/vs/sessions/browser/parts/sessionsPart.js +157 -58
- package/vscode/src/vs/sessions/browser/parts/sessionsParts.d.ts +12 -3
- package/vscode/src/vs/sessions/browser/parts/sessionsParts.js +17 -2
- package/vscode/src/vs/sessions/browser/sessionWorkspace.d.ts +6 -3
- package/vscode/src/vs/sessions/browser/sessionWorkspace.js +2 -2
- package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +66 -20
- package/vscode/src/vs/sessions/browser/sessionsSignInDialog.d.ts +1 -0
- package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +5 -4
- package/vscode/src/vs/sessions/browser/workbenchFactory.d.ts +12 -0
- package/vscode/src/vs/sessions/browser/workbenchFactory.js +17 -0
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.d.ts +85 -1
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +118 -100
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.d.ts +3 -2
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +39 -34
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/media/accountTitleBarWidget.css +6 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.d.ts +3 -0
- package/vscode/src/vs/sessions/contrib/agentFeedback/browser/nullAgentFeedbackService.contribution.js +6 -0
- package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.js +18 -18
- package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.js +12 -12
- package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.js +7 -7
- package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.js +12 -12
- package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.js +10 -10
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.d.ts +78 -8
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.js +1166 -202
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.d.ts +11 -1
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +190 -69
- package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.d.ts +11 -9
- package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +122 -233
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.d.ts +22 -0
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTelemetry.js +62 -0
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.d.ts +7 -2
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +172 -84
- package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +17 -7
- package/vscode/src/vs/sessions/contrib/automations/browser/media/automationDialog.css +242 -60
- package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.d.ts +24 -36
- package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +104 -420
- package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +15 -14
- package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.d.ts +13 -3
- package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +66 -43
- package/vscode/src/vs/sessions/contrib/changes/browser/changesMultiDiffSourceResolver.js +2 -7
- package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +54 -59
- package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +7 -7
- package/vscode/src/vs/sessions/contrib/changes/browser/media/changesActions.css +6 -0
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +25 -21
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +21 -27
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +17 -17
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.d.ts +5 -5
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionTaskRunner.js +2 -2
- package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +2 -2
- package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.js +9 -16
- package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +7 -7
- package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +15 -13
- package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.d.ts +13 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +104 -117
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +8 -7
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.js +5 -5
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.js +1 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/media/editorBreadcrumbs.css +0 -1
- package/vscode/src/vs/sessions/contrib/editor/browser/media/editorHeader.css +1 -1
- package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.d.ts +7 -0
- package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.js +77 -13
- package/vscode/src/vs/sessions/contrib/files/browser/filesView.d.ts +2 -1
- package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +14 -4
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.d.ts +45 -10
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +527 -96
- package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.d.ts +18 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/chatLayoutOwnerKeys.js +95 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.d.ts → desktop/desktopDetailPanelCoordinator.d.ts} +5 -4
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDetailPanelCoordinator.js → desktop/desktopDetailPanelCoordinator.js} +10 -7
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.d.ts → desktop/desktopDockedTabsCoordinator.d.ts} +15 -12
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDockedTabsCoordinator.js → desktop/desktopDockedTabsCoordinator.js} +91 -44
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.d.ts → desktop/desktopDraftSessionStrategy.d.ts} +10 -5
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneDraftSessionStrategy.js → desktop/desktopDraftSessionStrategy.js} +95 -22
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.d.ts → desktop/desktopExistingSessionStrategy.d.ts} +13 -11
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneExistingSessionStrategy.js → desktop/desktopExistingSessionStrategy.js} +137 -57
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.d.ts → desktop/desktopLayoutStrategy.d.ts} +22 -13
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneLayoutStrategy.js → desktop/desktopLayoutStrategy.js} +2 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.d.ts +22 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopOwnerCompositionStore.js +136 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneSharedHelpers.d.ts → desktop/desktopSharedHelpers.d.ts} +9 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/desktop/desktopSharedHelpers.js +56 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.d.ts → desktop/desktopVisibilityProfileStore.d.ts} +3 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/{singlePane/singlePaneVisibilityProfileStore.js → desktop/desktopVisibilityProfileStore.js} +10 -9
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.d.ts +71 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopLayoutController.js +201 -0
- package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.d.ts +8 -1
- package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +35 -35
- package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.d.ts +39 -0
- package/vscode/src/vs/sessions/contrib/layout/common/sessionEditorWorkingSet.js +73 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.d.ts +42 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionTourContribution.js +14 -10
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourContribution.js +3 -4
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.d.ts +2 -2
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewTourTrigger.js +13 -9
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourContribution.js +20 -5
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.d.ts +8 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV2TourVariation.js +19 -0
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +21 -20
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +10 -5
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +12 -8
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.d.ts +3 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +12 -7
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.d.ts +9 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +46 -19
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV3Tour.js +2 -0
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/media/sessionsPolicyBlocked.css +33 -0
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.d.ts +4 -2
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/policyBlocked.contribution.js +29 -8
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.d.ts +15 -2
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +169 -32
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.js +30 -8
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js +8 -34
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.js +63 -49
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.js +1 -1
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.js +31 -17
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.d.ts +32 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnostics.contribution.js +250 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.d.ts +6 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsLogs.js +52 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.d.ts +51 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsReport.js +439 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.d.ts +45 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/connectionDiagnosticsService.js +595 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.d.ts +20 -3
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +360 -46
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.d.ts +9 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerSource.js +59 -0
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/media/connectionDiagnostics.css +201 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.d.ts +10 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/getRemoteSessionTool.js +70 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.d.ts +20 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionChatService.js +104 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.d.ts +15 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionInspector.js +152 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.d.ts +49 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionMessageRouter.js +340 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.d.ts +41 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionService.js +400 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.d.ts +28 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionSource.js +178 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.d.ts +17 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessionTools.js +206 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/remoteSessions.contribution.js +58 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.d.ts +10 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/browser/sendRemoteMessageTool.js +90 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.d.ts +38 -0
- package/vscode/src/vs/sessions/contrib/remoteSessions/common/remoteSessionInspection.js +58 -0
- package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +4 -5
- package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +1 -1
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparison.contribution.js +33 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.d.ts +30 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonGridController.js +190 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.d.ts +31 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonTool.js +559 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.d.ts +12 -0
- package/vscode/src/vs/sessions/contrib/sessionComparison/browser/sessionComparisonViewService.js +38 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.d.ts +13 -4
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +155 -22
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +9 -5
- package/vscode/src/vs/sessions/contrib/sessions/browser/media/automationsCards.css +90 -25
- package/vscode/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css +21 -4
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.d.ts +2 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +11 -7
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.d.ts +116 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +126 -30
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.d.ts +26 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsAccountTelemetry.js +160 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.d.ts +14 -6
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +555 -151
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.d.ts +192 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsLifecycleTracker.js +510 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.d.ts +6 -7
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTelemetry.contribution.js +64 -57
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.d.ts +5 -3
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +83 -51
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.d.ts +5 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +33 -12
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.d.ts +3 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationCataloguePresentation.js +53 -0
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +10 -10
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.d.ts +2 -2
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +103 -55
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.d.ts +7 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +679 -325
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.d.ts +27 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +508 -163
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.d.ts +20 -2
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.js +100 -17
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.d.ts +5 -1
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.js +108 -30
- package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.d.ts +5 -3
- package/vscode/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.js +47 -35
- package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.d.ts +9 -4
- package/vscode/src/vs/sessions/services/agentHostFilter/browser/agentHostFilterService.js +75 -25
- package/vscode/src/vs/sessions/services/customView/browser/customViewService.d.ts +11 -4
- package/vscode/src/vs/sessions/services/customView/browser/customViewService.js +17 -9
- package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.d.ts +5 -0
- package/vscode/src/vs/sessions/services/sessions/browser/closedItemHistory.js +20 -2
- package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.d.ts +75 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionComparisonService.js +1135 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.d.ts +17 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGridState.js +99 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.d.ts +4 -0
- package/vscode/src/vs/sessions/services/sessions/browser/sessionGroupsService.js +88 -23
- package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.d.ts +19 -26
- package/vscode/src/vs/sessions/services/sessions/browser/sessionNavigation.js +115 -74
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsListModelService.js +1 -1
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.d.ts +22 -7
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +278 -60
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.d.ts +17 -20
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsRecencyHistory.js +33 -22
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.d.ts +28 -8
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +673 -160
- package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.d.ts +13 -4
- package/vscode/src/vs/sessions/services/sessions/browser/visibleSessions.js +105 -15
- package/vscode/src/vs/sessions/services/sessions/common/sessionContextKeys.js +53 -34
- package/vscode/src/vs/sessions/services/workspaceFolderLabel/browser/workspaceFolderLabelService.js +1 -1
- package/vscode/src/vs/workbench/browser/layout.d.ts +46 -70
- package/vscode/src/vs/workbench/browser/layout.js +243 -44
- package/vscode/src/vs/workbench/browser/workbench.d.ts +1 -3
- package/vscode/src/vs/workbench/browser/workbench.js +26 -24
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/automations/schedule.js +41 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatUsage.js +56 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +0 -18
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.js +0 -27
- package/vscode/src/vs/sessions/browser/parts/singlePaneAuxiliaryBarPart.js +0 -36
- package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.d.ts +0 -37
- package/vscode/src/vs/sessions/contrib/automations/browser/automationLeaderElection.js +0 -126
- package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.d.ts +0 -59
- package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +0 -232
- package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.d.ts +0 -13
- package/vscode/src/vs/sessions/contrib/automations/browser/automationStorageService.js +0 -22
- package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.d.ts +0 -45
- package/vscode/src/vs/sessions/contrib/blockedSessions/browser/blockedSessions.js +0 -110
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.d.ts +0 -112
- package/vscode/src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.js +0 -444
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.js +0 -43
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.d.ts +0 -55
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.js +0 -91
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.d.ts +0 -26
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +0 -98
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +0 -33
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +0 -98
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +0 -2
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +0 -13
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +0 -122
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +0 -464
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +0 -35
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +0 -90
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +0 -84
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +0 -328
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +0 -174
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +0 -1390
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +0 -44
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +0 -30
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +0 -78
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +0 -11
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +0 -26
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.d.ts +0 -27
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostConnectionCustomization.js +0 -26
|
@@ -10,16 +10,19 @@ import { ConfirmationOptionKind } from '@codingame/monaco-vscode-api/vscode/vs/p
|
|
|
10
10
|
import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
|
|
11
11
|
import { ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
12
12
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
13
|
+
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
13
14
|
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
14
15
|
import { isAutomationModelConfiguration } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automation';
|
|
15
16
|
import { IAutomationRunner } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationRunner.service';
|
|
16
|
-
import { ConfigureAutomationToolReferenceName, serializeAutomationEditableState, AutomationSessionTemplateAuthorityError } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService';
|
|
17
|
+
import { AutomationUnavailableError, ConfigureAutomationToolReferenceName, serializeAutomationEditableState, assertAutomationTargetAuthority, AutomationSessionTemplateAuthorityError } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService';
|
|
17
18
|
import { IAutomationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationService.service';
|
|
18
19
|
import { ChatAutomationsEnabledContext, CHAT_AUTOMATIONS_ENABLED_SETTING } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationsEnabled';
|
|
19
20
|
import { ChatPermissionLevel } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
|
|
20
21
|
import { ToolDataSource } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
|
|
21
22
|
import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
|
|
23
|
+
import { ISessionsProvidersService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service';
|
|
22
24
|
import { ISessionsManagementService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement.service';
|
|
25
|
+
import { logAutomationConfigureOutcome } from './automationTelemetry.js';
|
|
23
26
|
|
|
24
27
|
const ListAutomationsToolId = "vscode_listAutomations";
|
|
25
28
|
const ConfigureAutomationToolId = "vscode_configureAutomation";
|
|
@@ -27,8 +30,7 @@ const RunAutomationToolId = "vscode_runAutomation";
|
|
|
27
30
|
const DeleteAutomationToolId = "vscode_deleteAutomation";
|
|
28
31
|
const automationToolWhen = ( ContextKeyExpr.and(ChatContextKeys.enabled, ChatAutomationsEnabledContext));
|
|
29
32
|
const deleteAutomationConfirmationId = "delete";
|
|
30
|
-
const
|
|
31
|
-
const automationIntervals = ["manual", "hourly", "daily", "weekly"];
|
|
33
|
+
const automationIntervals = ["manual", "hourly", "daily", "weekdays", "weekly"];
|
|
32
34
|
const automationIsolationKinds = ["default", "folder", "worktree"];
|
|
33
35
|
const chatPermissionLevels = [
|
|
34
36
|
ChatPermissionLevel.Default,
|
|
@@ -47,9 +49,10 @@ class AutomationToolMutationBlockedError extends Error {
|
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
let ListAutomationsTool = class ListAutomationsTool {
|
|
50
|
-
constructor(automationService, configurationService) {
|
|
52
|
+
constructor(automationService, configurationService, sessionsProvidersService) {
|
|
51
53
|
this.automationService = automationService;
|
|
52
54
|
this.configurationService = configurationService;
|
|
55
|
+
this.sessionsProvidersService = sessionsProvidersService;
|
|
53
56
|
}
|
|
54
57
|
getToolData() {
|
|
55
58
|
return {
|
|
@@ -57,9 +60,9 @@ let ListAutomationsTool = class ListAutomationsTool {
|
|
|
57
60
|
toolReferenceName: "listAutomations",
|
|
58
61
|
canBeReferencedInPrompt: false,
|
|
59
62
|
icon: Codicon.calendar,
|
|
60
|
-
displayName: ( localize(
|
|
61
|
-
userDescription: ( localize(
|
|
62
|
-
modelDescription: "List
|
|
63
|
+
displayName: ( localize(3776, "List Automations")),
|
|
64
|
+
userDescription: ( localize(3777, "List scheduled agent automations")),
|
|
65
|
+
modelDescription: "List Automation providers and their currently visible scheduled automations. The result is an array with one entry per provider. A provider's state applies only to that provider and never makes automations from another provider unavailable. When a provider is \"ready\", its automations array is complete; otherwise it may be incomplete, including when empty. Use canCreateAutomation and each automation's availableOperations before calling configureAutomation, runAutomation, or deleteAutomation. This tool never changes automation state.",
|
|
63
66
|
source: ToolDataSource.Internal,
|
|
64
67
|
when: automationToolWhen,
|
|
65
68
|
runsInWorkspace: false,
|
|
@@ -72,29 +75,48 @@ let ListAutomationsTool = class ListAutomationsTool {
|
|
|
72
75
|
}
|
|
73
76
|
async prepareToolInvocation(_context, _token) {
|
|
74
77
|
return {
|
|
75
|
-
invocationMessage: ( localize(
|
|
76
|
-
pastTenseMessage: ( localize(
|
|
78
|
+
invocationMessage: ( localize(3778, "Reading automations")),
|
|
79
|
+
pastTenseMessage: ( localize(3779, "Read automations"))
|
|
77
80
|
};
|
|
78
81
|
}
|
|
79
82
|
async invoke(_invocation, _countTokens, _progress, _token) {
|
|
80
83
|
if (!isAutomationsEnabled(this.configurationService)) {
|
|
81
84
|
return automationToolError("Automations are disabled.");
|
|
82
85
|
}
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
const providers = this.sessionsProvidersService.getProviders().flatMap(provider => {
|
|
87
|
+
const store = provider.automations;
|
|
88
|
+
if (!store || store.enabled?.get() === false) {
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
const state = store.catalogueState.get();
|
|
92
|
+
const unavailableReason = store.unavailableReason?.get();
|
|
93
|
+
return [{
|
|
94
|
+
providerId: provider.id,
|
|
95
|
+
providerLabel: provider.label,
|
|
96
|
+
state,
|
|
97
|
+
canCreateAutomation: store.canCreateAutomation.get(),
|
|
98
|
+
...(unavailableReason !== undefined ? {
|
|
99
|
+
unavailableReason
|
|
100
|
+
} : {}),
|
|
101
|
+
automations: store.automations.get().map(
|
|
102
|
+
automation => toAutomationListToolOutput(automation, this.automationService)
|
|
103
|
+
)
|
|
104
|
+
}];
|
|
105
|
+
});
|
|
106
|
+
const automationCount = providers.reduce((count, provider) => count + provider.automations.length, 0);
|
|
107
|
+
const incompleteProviderCount = providers.filter(provider => provider.state !== "ready").length;
|
|
108
|
+
const result = automationToolResult(JSON.stringify(providers, undefined, 2));
|
|
109
|
+
result.toolResultMessage = incompleteProviderCount > 0 ? ( localize(
|
|
110
|
+
3780,
|
|
111
|
+
"Visible automations: {0}; incomplete providers: {1} of {2}",
|
|
112
|
+
automationCount,
|
|
113
|
+
incompleteProviderCount,
|
|
114
|
+
providers.length
|
|
115
|
+
)) : automationCount === 1 ? ( localize(3781, "Listed 1 automation")) : ( localize(3782, "Listed {0} automations", automationCount));
|
|
94
116
|
return result;
|
|
95
117
|
}
|
|
96
118
|
};
|
|
97
|
-
ListAutomationsTool = ( __decorate([( __param(0, IAutomationService)), ( __param(1, IConfigurationService))], ListAutomationsTool));
|
|
119
|
+
ListAutomationsTool = ( __decorate([( __param(0, IAutomationService)), ( __param(1, IConfigurationService)), ( __param(2, ISessionsProvidersService))], ListAutomationsTool));
|
|
98
120
|
let RunAutomationTool = class RunAutomationTool {
|
|
99
121
|
constructor(automationService, automationRunner, configurationService) {
|
|
100
122
|
this.automationService = automationService;
|
|
@@ -107,8 +129,8 @@ let RunAutomationTool = class RunAutomationTool {
|
|
|
107
129
|
toolReferenceName: "runAutomation",
|
|
108
130
|
canBeReferencedInPrompt: false,
|
|
109
131
|
icon: Codicon.play,
|
|
110
|
-
displayName: ( localize(
|
|
111
|
-
userDescription: ( localize(
|
|
132
|
+
displayName: ( localize(3783, "Run Automation")),
|
|
133
|
+
userDescription: ( localize(3784, "Run a configured agent automation now")),
|
|
112
134
|
modelDescription: "Run a configured automation immediately by stable ID. Call listAutomations first to obtain the current ID. This starts a fresh agent session in the background using the saved prompt, target, and provider session configuration, even when scheduled runs are disabled. The tool returns after session dispatch commits; do not run it again unless the user asks.",
|
|
113
135
|
source: ToolDataSource.Internal,
|
|
114
136
|
when: automationToolWhen,
|
|
@@ -134,17 +156,17 @@ let RunAutomationTool = class RunAutomationTool {
|
|
|
134
156
|
const activeRun = this.automationService.getActiveRunFor(automation.id);
|
|
135
157
|
if (activeRun) {
|
|
136
158
|
return {
|
|
137
|
-
invocationMessage: ( localize(
|
|
138
|
-
pastTenseMessage: ( localize(
|
|
159
|
+
invocationMessage: ( localize(3785, "Automation {0} is already running", automation.name)),
|
|
160
|
+
pastTenseMessage: ( localize(3786, "Automation {0} was already running", automation.name))
|
|
139
161
|
};
|
|
140
162
|
}
|
|
141
163
|
return {
|
|
142
|
-
invocationMessage: ( localize(
|
|
143
|
-
pastTenseMessage: ( localize(
|
|
164
|
+
invocationMessage: ( localize(3787, "Running automation {0}", automation.name)),
|
|
165
|
+
pastTenseMessage: ( localize(3788, "Started automation {0}", automation.name)),
|
|
144
166
|
confirmationMessages: {
|
|
145
|
-
title: ( localize(
|
|
167
|
+
title: ( localize(3789, "Run Automation?")),
|
|
146
168
|
message: ( new MarkdownString(( localize(
|
|
147
|
-
|
|
169
|
+
3790,
|
|
148
170
|
"Run **{0}** (`{1}`) now? This starts a new agent session using the automation's configured prompt and permissions.",
|
|
149
171
|
automation.name,
|
|
150
172
|
automation.id
|
|
@@ -169,7 +191,7 @@ let RunAutomationTool = class RunAutomationTool {
|
|
|
169
191
|
throw error;
|
|
170
192
|
}
|
|
171
193
|
const dispatchCancellation = ( new CancellationTokenSource(token));
|
|
172
|
-
const operation = this.automationRunner.runOnce(automation,
|
|
194
|
+
const operation = this.automationRunner.runOnce(automation, dispatchCancellation.token);
|
|
173
195
|
let dispatch;
|
|
174
196
|
try {
|
|
175
197
|
dispatch = await operation.whenDispatched;
|
|
@@ -182,6 +204,21 @@ let RunAutomationTool = class RunAutomationTool {
|
|
|
182
204
|
if (dispatch.kind === "notStarted") {
|
|
183
205
|
return automationNotStarted(automation, dispatch);
|
|
184
206
|
}
|
|
207
|
+
if (dispatch.kind === "accepted") {
|
|
208
|
+
const result = automationToolResult(JSON.stringify({
|
|
209
|
+
status: "accepted",
|
|
210
|
+
automation: {
|
|
211
|
+
id: automation.id,
|
|
212
|
+
name: automation.name
|
|
213
|
+
}
|
|
214
|
+
}));
|
|
215
|
+
result.toolResultMessage = ( localize(
|
|
216
|
+
3791,
|
|
217
|
+
"Requested automation {0}; the provider has not returned a run.",
|
|
218
|
+
automation.name
|
|
219
|
+
));
|
|
220
|
+
return result;
|
|
221
|
+
}
|
|
185
222
|
const result = automationToolResult(JSON.stringify({
|
|
186
223
|
status: "started",
|
|
187
224
|
automation: {
|
|
@@ -194,7 +231,7 @@ let RunAutomationTool = class RunAutomationTool {
|
|
|
194
231
|
sessionResource: ( dispatch.sessionResource.toString())
|
|
195
232
|
}
|
|
196
233
|
}, undefined, 2));
|
|
197
|
-
result.toolResultMessage = ( localize(
|
|
234
|
+
result.toolResultMessage = ( localize(3792, "Started automation {0}", automation.name));
|
|
198
235
|
return result;
|
|
199
236
|
}
|
|
200
237
|
};
|
|
@@ -210,8 +247,8 @@ let DeleteAutomationTool = class DeleteAutomationTool {
|
|
|
210
247
|
toolReferenceName: "deleteAutomation",
|
|
211
248
|
canBeReferencedInPrompt: false,
|
|
212
249
|
icon: Codicon.trash,
|
|
213
|
-
displayName: ( localize(
|
|
214
|
-
userDescription: ( localize(
|
|
250
|
+
displayName: ( localize(3793, "Delete Automation")),
|
|
251
|
+
userDescription: ( localize(3794, "Delete a scheduled agent automation")),
|
|
215
252
|
modelDescription: "Delete an automation by stable ID. Call listAutomations first to obtain the current ID. The current approval policy may approve the action automatically; otherwise the user is shown a Delete/Cancel confirmation.",
|
|
216
253
|
source: ToolDataSource.Internal,
|
|
217
254
|
when: automationToolWhen,
|
|
@@ -235,23 +272,23 @@ let DeleteAutomationTool = class DeleteAutomationTool {
|
|
|
235
272
|
}
|
|
236
273
|
const automation = resolveAutomationInput(this.automationService, context.parameters, "deleteAutomation");
|
|
237
274
|
return {
|
|
238
|
-
invocationMessage: ( localize(
|
|
239
|
-
pastTenseMessage: ( localize(
|
|
275
|
+
invocationMessage: ( localize(3795, "Deleting automation {0}", automation.name)),
|
|
276
|
+
pastTenseMessage: ( localize(3796, "Deleted automation {0}", automation.name)),
|
|
240
277
|
confirmationMessages: {
|
|
241
|
-
title: ( localize(
|
|
278
|
+
title: ( localize(3797, "Delete Automation?")),
|
|
242
279
|
message: ( new MarkdownString(( localize(
|
|
243
|
-
|
|
280
|
+
3798,
|
|
244
281
|
"Delete **{0}** (`{1}`)? Its saved configuration and run history will be permanently removed. Runs already in flight will continue.",
|
|
245
282
|
automation.name,
|
|
246
283
|
automation.id
|
|
247
284
|
)))),
|
|
248
285
|
customOptions: [{
|
|
249
286
|
id: deleteAutomationConfirmationId,
|
|
250
|
-
label: ( localize(
|
|
287
|
+
label: ( localize(3799, "Delete")),
|
|
251
288
|
kind: ConfirmationOptionKind.Approve
|
|
252
289
|
}, {
|
|
253
290
|
id: "cancel",
|
|
254
|
-
label: ( localize(
|
|
291
|
+
label: ( localize(3800, "Cancel")),
|
|
255
292
|
kind: ConfirmationOptionKind.Deny
|
|
256
293
|
}]
|
|
257
294
|
}
|
|
@@ -282,6 +319,9 @@ let DeleteAutomationTool = class DeleteAutomationTool {
|
|
|
282
319
|
if (error instanceof AutomationToolMutationBlockedError) {
|
|
283
320
|
return error.result;
|
|
284
321
|
}
|
|
322
|
+
if (error instanceof AutomationUnavailableError) {
|
|
323
|
+
return automationToolError(error.message);
|
|
324
|
+
}
|
|
285
325
|
throw error;
|
|
286
326
|
}
|
|
287
327
|
const result = automationToolResult(JSON.stringify({
|
|
@@ -291,7 +331,7 @@ let DeleteAutomationTool = class DeleteAutomationTool {
|
|
|
291
331
|
name: automation.name
|
|
292
332
|
}
|
|
293
333
|
}));
|
|
294
|
-
result.toolResultMessage = ( localize(
|
|
334
|
+
result.toolResultMessage = ( localize(3801, "Deleted automation {0}", automation.name));
|
|
295
335
|
return result;
|
|
296
336
|
}
|
|
297
337
|
createMutationGuard(token) {
|
|
@@ -307,10 +347,16 @@ let DeleteAutomationTool = class DeleteAutomationTool {
|
|
|
307
347
|
};
|
|
308
348
|
DeleteAutomationTool = ( __decorate([( __param(0, IAutomationService)), ( __param(1, IConfigurationService))], DeleteAutomationTool));
|
|
309
349
|
let ConfigureAutomationTool = class ConfigureAutomationTool {
|
|
310
|
-
constructor(
|
|
350
|
+
constructor(
|
|
351
|
+
automationService,
|
|
352
|
+
sessionsManagementService,
|
|
353
|
+
configurationService,
|
|
354
|
+
telemetryService
|
|
355
|
+
) {
|
|
311
356
|
this.automationService = automationService;
|
|
312
357
|
this.sessionsManagementService = sessionsManagementService;
|
|
313
358
|
this.configurationService = configurationService;
|
|
359
|
+
this.telemetryService = telemetryService;
|
|
314
360
|
}
|
|
315
361
|
getToolData() {
|
|
316
362
|
return {
|
|
@@ -318,13 +364,13 @@ let ConfigureAutomationTool = class ConfigureAutomationTool {
|
|
|
318
364
|
toolReferenceName: ConfigureAutomationToolReferenceName,
|
|
319
365
|
canBeReferencedInPrompt: false,
|
|
320
366
|
icon: Codicon.calendar,
|
|
321
|
-
displayName: ( localize(
|
|
322
|
-
userDescription: ( localize(
|
|
367
|
+
displayName: ( localize(3802, "Configure Automation")),
|
|
368
|
+
userDescription: ( localize(3803, "Create or update an automation")),
|
|
323
369
|
modelDescription: `Create or update a persistent scheduled automation.
|
|
324
370
|
|
|
325
371
|
Create a new automation only when the user explicitly asks for an automation, or for a prompt to run on a recurring schedule. Do not infer that intent from requests merely to monitor, watch, follow, or keep something (such as a pull request) green.
|
|
326
372
|
|
|
327
|
-
Omit "automationId" to create an automation; "name", "prompt", and "schedule.interval" are then required. If "target" is omitted, the automation targets the current Agents window session. Include "automationId" to update an existing automation, and only provide fields that should change. Call listAutomations first to obtain the stable ID and current values.
|
|
373
|
+
Omit "automationId" to create an automation; "name", "prompt", and "schedule.interval" are then required. If "target" is omitted, the automation targets the current Agents window session. The target must be a connected Agent Host that supports automations; there is no local execution fallback. Include "automationId" to update an existing automation, and only provide fields that should change. Call listAutomations first to obtain the stable ID and current values. An existing automation cannot move between hosts; create a separate definition on the new host and explicitly disable the original if it should stop scheduling.
|
|
328
374
|
|
|
329
375
|
Use "sessionTemplate" for provider-owned Model, Agent, Mode, Approvals, and other configuration returned by listAutomations. Omit it on unrelated partial updates, or set it to null to reset provider configuration. Do not combine it with the legacy "modelId", "mode", or "permissionLevel" aliases.
|
|
330
376
|
|
|
@@ -356,19 +402,19 @@ The change uses the current tool-approval policy. When approval is required, the
|
|
|
356
402
|
interval: {
|
|
357
403
|
type: "string",
|
|
358
404
|
enum: [...automationIntervals],
|
|
359
|
-
description: "manual, hourly, daily, or weekly."
|
|
405
|
+
description: "manual, hourly, daily, weekdays, or weekly. Weekdays runs Monday-Friday at the same local time on an Agent Host; it is not supported by Cloud."
|
|
360
406
|
},
|
|
361
407
|
scheduleHour: {
|
|
362
408
|
type: "integer",
|
|
363
409
|
minimum: 0,
|
|
364
410
|
maximum: 23,
|
|
365
|
-
description: "Local hour, used for daily and weekly schedules."
|
|
411
|
+
description: "Local hour, used for daily, weekdays, and weekly schedules."
|
|
366
412
|
},
|
|
367
413
|
scheduleMinute: {
|
|
368
414
|
type: "integer",
|
|
369
415
|
minimum: 0,
|
|
370
416
|
maximum: 59,
|
|
371
|
-
description: "Local minute, used for daily and weekly schedules."
|
|
417
|
+
description: "Local minute, used for daily, weekdays, and weekly schedules."
|
|
372
418
|
},
|
|
373
419
|
scheduleDay: {
|
|
374
420
|
type: "integer",
|
|
@@ -467,21 +513,32 @@ The change uses the current tool-approval policy. When approval is required, the
|
|
|
467
513
|
}
|
|
468
514
|
async prepareToolInvocation(context, _token) {
|
|
469
515
|
if (!isAutomationsEnabled(this.configurationService)) {
|
|
516
|
+
logAutomationConfigureOutcome(this.telemetryService, "unknown", "blocked");
|
|
470
517
|
throw ( new AutomationToolInputError("Automations are disabled."));
|
|
471
518
|
}
|
|
472
|
-
|
|
473
|
-
|
|
519
|
+
let proposal;
|
|
520
|
+
try {
|
|
521
|
+
proposal = this.parseProposal(context.parameters, context.chatSessionResource);
|
|
522
|
+
} catch (error) {
|
|
523
|
+
logAutomationConfigureOutcome(
|
|
524
|
+
this.telemetryService,
|
|
525
|
+
"unknown",
|
|
526
|
+
error instanceof AutomationToolInputError ? "blocked" : "failed"
|
|
527
|
+
);
|
|
528
|
+
throw error;
|
|
529
|
+
}
|
|
530
|
+
const existing = proposal.kind === "update" ? proposal.existing : undefined;
|
|
474
531
|
return {
|
|
475
|
-
invocationMessage:
|
|
476
|
-
pastTenseMessage:
|
|
532
|
+
invocationMessage: existing ? ( localize(3804, "Configuring automation")) : ( localize(3805, "Configuring a new automation")),
|
|
533
|
+
pastTenseMessage: existing ? ( localize(3806, "Configured automation")) : ( localize(3807, "Configured a new automation")),
|
|
477
534
|
confirmationMessages: {
|
|
478
|
-
title:
|
|
479
|
-
message:
|
|
480
|
-
|
|
535
|
+
title: existing ? ( localize(3808, "Update Automation?")) : ( localize(3809, "Create Automation?")),
|
|
536
|
+
message: existing ? ( new MarkdownString(( localize(
|
|
537
|
+
3810,
|
|
481
538
|
"Apply the proposed changes to **{0}** (`{1}`)?",
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
)))) : ( new MarkdownString(( localize(
|
|
539
|
+
existing.name,
|
|
540
|
+
existing.id
|
|
541
|
+
)))) : ( new MarkdownString(( localize(3811, "Create the automation **{0}**?", proposal.initialValues.name))))
|
|
485
542
|
},
|
|
486
543
|
toolSpecificData: proposal.kind === "update" ? {
|
|
487
544
|
kind: "automationConfiguration",
|
|
@@ -492,65 +549,83 @@ The change uses the current tool-approval policy. When approval is required, the
|
|
|
492
549
|
}
|
|
493
550
|
async invoke(invocation, _countTokens, _progress, token) {
|
|
494
551
|
if (!isAutomationsEnabled(this.configurationService)) {
|
|
495
|
-
return automationToolError("Automations are disabled.");
|
|
552
|
+
return this.completeOperation("unknown", automationToolError("Automations are disabled."));
|
|
496
553
|
}
|
|
497
554
|
if (token.isCancellationRequested) {
|
|
498
|
-
return automationToolCancelled();
|
|
555
|
+
return this.completeOperation("unknown", automationToolCancelled());
|
|
499
556
|
}
|
|
500
557
|
let proposal;
|
|
501
558
|
try {
|
|
502
559
|
proposal = this.parseProposal(invocation.parameters, invocation.context?.sessionResource);
|
|
503
560
|
} catch (error) {
|
|
504
561
|
if (error instanceof AutomationToolInputError) {
|
|
505
|
-
return automationToolError(error.message);
|
|
562
|
+
return this.completeOperation("unknown", automationToolError(error.message));
|
|
506
563
|
}
|
|
564
|
+
logAutomationConfigureOutcome(this.telemetryService, "unknown", "failed");
|
|
507
565
|
throw error;
|
|
508
566
|
}
|
|
509
567
|
try {
|
|
510
568
|
if (proposal.kind === "create") {
|
|
511
569
|
const target = proposal.validateTargetAvailability ? this.resolveAvailableTarget(proposal.initialValues.target) : proposal.initialValues.target;
|
|
512
|
-
return await this.applyCreate({
|
|
570
|
+
return this.completeOperation("create", await this.applyCreate({
|
|
513
571
|
...proposal.initialValues,
|
|
514
572
|
target
|
|
515
|
-
}, token);
|
|
573
|
+
}, token));
|
|
516
574
|
}
|
|
517
|
-
const target = proposal.initialValues.target ? proposal.validateTargetAvailability ? this.resolveAvailableTarget(proposal.initialValues.target) : proposal.initialValues.target : undefined;
|
|
518
|
-
const patch = target ? {
|
|
519
|
-
...proposal.initialValues,
|
|
520
|
-
target
|
|
521
|
-
} : proposal.initialValues;
|
|
522
575
|
const prepared = invocation.toolSpecificData?.kind === "automationConfiguration" ? invocation.toolSpecificData : undefined;
|
|
523
576
|
if (prepared && (prepared.expectedAutomationId !== proposal.existing.id || prepared.expectedEditableState !== serializeAutomationEditableState(proposal.existing))) {
|
|
524
|
-
return automationToolError(
|
|
577
|
+
return this.completeOperation("update", automationToolError(
|
|
525
578
|
`Automation "${proposal.existing.id}" changed before the update was applied. Call listAutomations to refresh it before proposing new changes. No changes were made.`
|
|
526
|
-
);
|
|
579
|
+
));
|
|
527
580
|
}
|
|
528
|
-
|
|
581
|
+
const proposedTarget = proposal.initialValues.target;
|
|
582
|
+
const ownedTarget = proposedTarget?.kind === "workspace" && proposedTarget.providerId === undefined ? {
|
|
583
|
+
...proposedTarget,
|
|
584
|
+
providerId: proposal.existing.target.providerId
|
|
585
|
+
} : proposedTarget;
|
|
586
|
+
assertAutomationTargetAuthority(proposal.existing, ownedTarget);
|
|
587
|
+
const target = ownedTarget !== undefined && proposal.validateTargetAvailability ? this.resolveAvailableTarget(ownedTarget, proposal.existing) : ownedTarget;
|
|
588
|
+
const patch = target ? {
|
|
589
|
+
...proposal.initialValues,
|
|
590
|
+
target
|
|
591
|
+
} : proposal.initialValues;
|
|
592
|
+
return this.completeOperation("update", await this.applyUpdate(proposal.existing, patch, token));
|
|
529
593
|
} catch (error) {
|
|
530
594
|
if (error instanceof AutomationToolMutationBlockedError) {
|
|
531
|
-
return error.result;
|
|
595
|
+
return this.completeOperation(proposal.kind, error.result);
|
|
532
596
|
}
|
|
533
|
-
if (error instanceof AutomationToolInputError) {
|
|
534
|
-
return automationToolError(error.message);
|
|
597
|
+
if (error instanceof AutomationToolInputError || error instanceof AutomationUnavailableError) {
|
|
598
|
+
return this.completeOperation(proposal.kind, automationToolError(error.message));
|
|
535
599
|
}
|
|
536
600
|
if (error instanceof AutomationSessionTemplateAuthorityError) {
|
|
537
|
-
return automationToolError(error.message);
|
|
601
|
+
return this.completeOperation(proposal.kind, automationToolError(error.message));
|
|
538
602
|
}
|
|
603
|
+
logAutomationConfigureOutcome(this.telemetryService, proposal.kind, "failed");
|
|
539
604
|
throw error;
|
|
540
605
|
}
|
|
541
606
|
}
|
|
607
|
+
completeOperation(operation, result) {
|
|
608
|
+
const configured = result.toolSpecificData?.kind === "automationConfigured" ? result.toolSpecificData.operation : undefined;
|
|
609
|
+
logAutomationConfigureOutcome(this.telemetryService, operation, configured ?? "blocked");
|
|
610
|
+
return result;
|
|
611
|
+
}
|
|
542
612
|
async applyCreate(options, token) {
|
|
543
613
|
const blocked = this.getMutationBlockedResult(token);
|
|
544
614
|
if (blocked) {
|
|
545
615
|
return blocked;
|
|
546
616
|
}
|
|
617
|
+
if (!this.automationService.canCreateAutomation(options.target.providerId)) {
|
|
618
|
+
return automationToolError(
|
|
619
|
+
"The selected provider is unavailable or does not support automations. Connect to an Agent Host that supports automations."
|
|
620
|
+
);
|
|
621
|
+
}
|
|
547
622
|
const created = await this.automationService.createAutomation(options, this.createMutationGuard(token));
|
|
548
623
|
const result = automationToolResult(JSON.stringify({
|
|
549
624
|
status: "created",
|
|
550
625
|
automation: toAutomationToolOutput(created)
|
|
551
626
|
}, undefined, 2));
|
|
552
627
|
result.toolSpecificData = toAutomationConfiguredData(created, "created");
|
|
553
|
-
result.toolResultMessage = ( localize(
|
|
628
|
+
result.toolResultMessage = ( localize(3812, "Created automation {0}", created.name));
|
|
554
629
|
return result;
|
|
555
630
|
}
|
|
556
631
|
async applyUpdate(existing, patch, token) {
|
|
@@ -575,7 +650,7 @@ The change uses the current tool-approval policy. When approval is required, the
|
|
|
575
650
|
automation: toAutomationToolOutput(updated)
|
|
576
651
|
}, undefined, 2));
|
|
577
652
|
result.toolSpecificData = toAutomationConfiguredData(updated, "updated");
|
|
578
|
-
result.toolResultMessage = ( localize(
|
|
653
|
+
result.toolResultMessage = ( localize(3813, "Updated automation {0}", updated.name));
|
|
579
654
|
return result;
|
|
580
655
|
}
|
|
581
656
|
createMutationGuard(token) {
|
|
@@ -595,9 +670,12 @@ The change uses the current tool-approval policy. When approval is required, the
|
|
|
595
670
|
}
|
|
596
671
|
return undefined;
|
|
597
672
|
}
|
|
598
|
-
resolveAvailableTarget(target) {
|
|
673
|
+
resolveAvailableTarget(target, existing) {
|
|
599
674
|
const candidates = target.kind === "quickChat" ? this.sessionsManagementService.getQuickChatSessionTypes() : this.sessionsManagementService.getSessionTypesForFolder(target.folderUri);
|
|
600
|
-
const
|
|
675
|
+
const eligible = candidates.filter(
|
|
676
|
+
candidate => existing === undefined ? this.automationService.canCreateAutomation(candidate.providerId) : candidate.providerId === existing.target.providerId && this.automationService.canUpdateAutomation(existing.id)
|
|
677
|
+
);
|
|
678
|
+
const candidate = findSessionType(eligible, target.providerId, target.sessionTypeId);
|
|
601
679
|
if (!candidate) {
|
|
602
680
|
throw ( new AutomationToolInputError(
|
|
603
681
|
target.kind === "quickChat" ? `The quick-chat target "${target.providerId}/${target.sessionTypeId}" is not available.` : "The proposed workspace target is not available for the selected provider and session type."
|
|
@@ -749,7 +827,7 @@ The change uses the current tool-approval policy. When approval is required, the
|
|
|
749
827
|
return session ? automationTargetFromSession(session) : undefined;
|
|
750
828
|
}
|
|
751
829
|
};
|
|
752
|
-
ConfigureAutomationTool = ( __decorate([( __param(0, IAutomationService)), ( __param(1, ISessionsManagementService)), ( __param(2, IConfigurationService))], ConfigureAutomationTool));
|
|
830
|
+
ConfigureAutomationTool = ( __decorate([( __param(0, IAutomationService)), ( __param(1, ISessionsManagementService)), ( __param(2, IConfigurationService)), ( __param(3, ITelemetryService))], ConfigureAutomationTool));
|
|
753
831
|
let AutomationToolsContribution = class AutomationToolsContribution extends Disposable {
|
|
754
832
|
static {
|
|
755
833
|
this.ID = "sessions.contrib.automationTools";
|
|
@@ -1053,6 +1131,16 @@ function toAutomationToolOutput(automation) {
|
|
|
1053
1131
|
nextRunAt: automation.nextRunAt ?? null
|
|
1054
1132
|
};
|
|
1055
1133
|
}
|
|
1134
|
+
function toAutomationListToolOutput(automation, automationService) {
|
|
1135
|
+
return {
|
|
1136
|
+
...toAutomationToolOutput(automation),
|
|
1137
|
+
availableOperations: [
|
|
1138
|
+
...(automationService.canRunAutomation(automation.id) ? ["run"] : []),
|
|
1139
|
+
...(automationService.canUpdateAutomation(automation.id) ? ["update"] : []),
|
|
1140
|
+
...(automationService.canDeleteAutomation(automation.id) ? ["delete"] : [])
|
|
1141
|
+
]
|
|
1142
|
+
};
|
|
1143
|
+
}
|
|
1056
1144
|
function toAutomationConfiguredData(automation, operation) {
|
|
1057
1145
|
return {
|
|
1058
1146
|
kind: "automationConfigured",
|
|
@@ -1076,7 +1164,7 @@ function automationToolError(message) {
|
|
|
1076
1164
|
value: message
|
|
1077
1165
|
}],
|
|
1078
1166
|
toolResultError: message,
|
|
1079
|
-
toolResultMessage: ( localize(
|
|
1167
|
+
toolResultMessage: ( localize(3814, "Automation request failed"))
|
|
1080
1168
|
};
|
|
1081
1169
|
}
|
|
1082
1170
|
function automationToolCancelled() {
|
|
@@ -1084,7 +1172,7 @@ function automationToolCancelled() {
|
|
|
1084
1172
|
status: "cancelled",
|
|
1085
1173
|
message: "The automation change was cancelled. No changes were made."
|
|
1086
1174
|
}));
|
|
1087
|
-
result.toolResultMessage = ( localize(
|
|
1175
|
+
result.toolResultMessage = ( localize(3815, "Automation change cancelled"));
|
|
1088
1176
|
return result;
|
|
1089
1177
|
}
|
|
1090
1178
|
function automationDeleteCancelled() {
|
|
@@ -1092,7 +1180,7 @@ function automationDeleteCancelled() {
|
|
|
1092
1180
|
status: "cancelled",
|
|
1093
1181
|
message: "The automation was not deleted."
|
|
1094
1182
|
}));
|
|
1095
|
-
result.toolResultMessage = ( localize(
|
|
1183
|
+
result.toolResultMessage = ( localize(3816, "Automation deletion cancelled"));
|
|
1096
1184
|
return result;
|
|
1097
1185
|
}
|
|
1098
1186
|
function automationRunCancelled() {
|
|
@@ -1100,7 +1188,7 @@ function automationRunCancelled() {
|
|
|
1100
1188
|
status: "cancelled",
|
|
1101
1189
|
message: "The automation was not started."
|
|
1102
1190
|
}));
|
|
1103
|
-
result.toolResultMessage = ( localize(
|
|
1191
|
+
result.toolResultMessage = ( localize(3817, "Automation run cancelled"));
|
|
1104
1192
|
return result;
|
|
1105
1193
|
}
|
|
1106
1194
|
function automationAlreadyRunning(automation, run) {
|
|
@@ -1116,7 +1204,7 @@ function automationAlreadyRunning(automation, run) {
|
|
|
1116
1204
|
sessionResource: run.sessionResource?.toString() ?? null
|
|
1117
1205
|
}
|
|
1118
1206
|
}, undefined, 2));
|
|
1119
|
-
result.toolResultMessage = ( localize(
|
|
1207
|
+
result.toolResultMessage = ( localize(3818, "Automation {0} is already running", automation.name));
|
|
1120
1208
|
return result;
|
|
1121
1209
|
}
|
|
1122
1210
|
function automationNotStarted(automation, dispatch) {
|
|
@@ -11,18 +11,15 @@ import product from '@codingame/monaco-vscode-api/vscode/vs/platform/product/com
|
|
|
11
11
|
import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
|
|
12
12
|
import { Extensions, registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
|
|
13
13
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
14
|
-
import { CHAT_AUTOMATIONS_RUN_TIMEOUT_MINUTES_SETTING, DEFAULT_AUTOMATIONS_RUN_TIMEOUT_MINUTES, CHAT_AUTOMATIONS_ENABLED_SETTING, ChatAutomationsEnabledContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationsEnabled';
|
|
14
|
+
import { CHAT_AUTOMATIONS_RUN_TIMEOUT_MINUTES_SETTING, DEFAULT_AUTOMATIONS_RUN_TIMEOUT_MINUTES, CHAT_AUTOMATIONS_ENABLED_SETTING, CHAT_CLOUD_AUTOMATIONS_ENABLED_SETTING, ChatAutomationsEnabledContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/automations/automationsEnabled';
|
|
15
15
|
import './automationDialogService.js';
|
|
16
16
|
import './automationRunner.js';
|
|
17
|
-
import { AutomationScheduler } from './automationScheduler.js';
|
|
18
17
|
import './providerAutomationService.js';
|
|
19
|
-
import './automationStorageService.js';
|
|
20
18
|
import { AutomationToolsContribution } from './automationTools.js';
|
|
21
|
-
import { AGENT_HOST_AUTOMATION_RUN_TIMEOUT_MINUTES_CONFIG_KEY, AGENT_HOST_AUTOMATIONS_ENABLED_CONFIG_KEY } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/
|
|
19
|
+
import { AGENT_HOST_AUTOMATION_RUN_TIMEOUT_MINUTES_CONFIG_KEY, AGENT_HOST_AUTOMATIONS_ENABLED_CONFIG_KEY } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/automationConfig';
|
|
22
20
|
import { observableFromPromise } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/utils';
|
|
23
21
|
|
|
24
22
|
observableFromPromise(( Registry.as(Extensions.Workbench)).whenRestored.then(() => true)).map(result => result.value === true);
|
|
25
|
-
registerWorkbenchContribution2(AutomationScheduler.ID, AutomationScheduler, WorkbenchPhase.Eventually);
|
|
26
23
|
registerWorkbenchContribution2(
|
|
27
24
|
AutomationToolsContribution.ID,
|
|
28
25
|
AutomationToolsContribution,
|
|
@@ -31,13 +28,26 @@ registerWorkbenchContribution2(
|
|
|
31
28
|
( Registry.as(Extensions$1.Configuration)).registerConfiguration({
|
|
32
29
|
id: "chat",
|
|
33
30
|
properties: {
|
|
31
|
+
[CHAT_CLOUD_AUTOMATIONS_ENABLED_SETTING]: {
|
|
32
|
+
type: "boolean",
|
|
33
|
+
default: false,
|
|
34
|
+
scope: ConfigurationScope.MACHINE,
|
|
35
|
+
tags: ["experimental", "advanced"],
|
|
36
|
+
description: ( localize(
|
|
37
|
+
3819,
|
|
38
|
+
"Enables managing user-owned cloud automations in known private GitHub repositories. Disabling this setting does not stop schedules already running on GitHub."
|
|
39
|
+
)),
|
|
40
|
+
experiment: {
|
|
41
|
+
mode: "auto"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
34
44
|
[CHAT_AUTOMATIONS_ENABLED_SETTING]: {
|
|
35
45
|
type: "boolean",
|
|
36
46
|
default: true,
|
|
37
47
|
scope: ConfigurationScope.MACHINE,
|
|
38
48
|
tags: ["experimental", "advanced"],
|
|
39
49
|
description: ( localize(
|
|
40
|
-
|
|
50
|
+
3820,
|
|
41
51
|
"Enables the Automations feature: scheduling agent sessions to run on a cadence. When disabled, the Automations entry in the Customizations sidebar, the Automations section in the Customizations editor, and the Automation option in the new-session composer are hidden, and scheduled automations are not dispatched."
|
|
42
52
|
)),
|
|
43
53
|
experiment: {
|
|
@@ -54,7 +64,7 @@ registerWorkbenchContribution2(
|
|
|
54
64
|
scope: ConfigurationScope.MACHINE,
|
|
55
65
|
tags: ["experimental", "advanced"],
|
|
56
66
|
description: ( localize(
|
|
57
|
-
|
|
67
|
+
3821,
|
|
58
68
|
"Maximum number of minutes an automation run is allowed to take before it is ended. Prevents a single hung run from permanently blocking subsequent runs."
|
|
59
69
|
)),
|
|
60
70
|
included: product.quality !== "stable",
|