@codingame/monaco-vscode-workbench-service-override 37.3.2 → 37.3.4

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.
Files changed (108) hide show
  1. package/package.json +10 -10
  2. package/session.js +11 -0
  3. package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +18 -0
  4. package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.js +27 -0
  5. package/vscode/src/vs/sessions/browser/layoutActions.d.ts +1 -0
  6. package/vscode/src/vs/sessions/browser/layoutActions.js +146 -0
  7. package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +6 -6
  8. package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +5 -5
  9. package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +8 -8
  10. package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +1 -1
  11. package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +1 -1
  12. package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +20 -20
  13. package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +7 -7
  14. package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +4 -4
  15. package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +42 -42
  16. package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +11 -11
  17. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.js +18 -18
  18. package/vscode/src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.js +12 -12
  19. package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.d.ts +1 -0
  20. package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.js +149 -0
  21. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquarium.contribution.js +12 -12
  22. package/vscode/src/vs/sessions/contrib/aquarium/browser/aquariumOverlay.js +10 -10
  23. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialog.js +68 -68
  24. package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +7 -7
  25. package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +4 -4
  26. package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +2 -2
  27. package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +38 -38
  28. package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +2 -2
  29. package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +1 -1
  30. package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +6 -6
  31. package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +4 -4
  32. package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +20 -20
  33. package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +1 -1
  34. package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +9 -9
  35. package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +17 -17
  36. package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +17 -17
  37. package/vscode/src/vs/sessions/contrib/chat/browser/taskCommand.d.ts +44 -0
  38. package/vscode/src/vs/sessions/contrib/chat/browser/taskCommand.js +111 -0
  39. package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +2 -2
  40. package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.d.ts +1 -0
  41. package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.js +75 -0
  42. package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +7 -7
  43. package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +4 -4
  44. package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +8 -8
  45. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +1 -1
  46. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.js +5 -5
  47. package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditorInput.js +1 -1
  48. package/vscode/src/vs/sessions/contrib/files/browser/files.contribution.js +7 -7
  49. package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +1 -1
  50. package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +5 -5
  51. package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +2 -2
  52. package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneExistingSessionStrategy.js +1 -1
  53. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +19 -19
  54. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +4 -4
  55. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +6 -6
  56. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +2 -2
  57. package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +4 -4
  58. package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +24 -24
  59. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.d.ts +26 -0
  60. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +98 -0
  61. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +33 -0
  62. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +98 -0
  63. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.d.ts +1 -0
  64. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.js +72 -0
  65. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +2 -0
  66. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +13 -0
  67. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +122 -0
  68. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +464 -0
  69. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +35 -0
  70. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +90 -0
  71. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +84 -0
  72. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +328 -0
  73. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.d.ts +1 -0
  74. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js +94 -0
  75. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +174 -0
  76. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +1390 -0
  77. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.d.ts +1 -0
  78. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.js +468 -0
  79. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.d.ts +7 -0
  80. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.js +48 -0
  81. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +44 -0
  82. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +30 -0
  83. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +78 -0
  84. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.d.ts +1 -0
  85. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.js +345 -0
  86. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +11 -0
  87. package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +26 -0
  88. package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +6 -6
  89. package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +3 -3
  90. package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +1 -1
  91. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +4 -4
  92. package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +5 -5
  93. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +2 -2
  94. package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +8 -8
  95. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +58 -58
  96. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +8 -8
  97. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +5 -5
  98. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +10 -10
  99. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +38 -38
  100. package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +118 -118
  101. package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +53 -53
  102. package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.d.ts +42 -0
  103. package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.js +139 -0
  104. package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.d.ts +120 -0
  105. package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.js +741 -0
  106. package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +2 -2
  107. package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +2 -2
  108. package/vscode/src/vs/workbench/browser/layout.js +1 -1
@@ -67,16 +67,16 @@ import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/v
67
67
  const $ = $$1;
68
68
  const INTERVALS = [{
69
69
  value: "manual",
70
- label: ( localize(3272, "Manual"))
70
+ label: ( localize(3295, "Manual"))
71
71
  }, {
72
72
  value: "hourly",
73
- label: ( localize(3273, "Hourly"))
73
+ label: ( localize(3296, "Hourly"))
74
74
  }, {
75
75
  value: "daily",
76
- label: ( localize(3274, "Daily"))
76
+ label: ( localize(3297, "Daily"))
77
77
  }, {
78
78
  value: "weekly",
79
- label: ( localize(3275, "Weekly"))
79
+ label: ( localize(3298, "Weekly"))
80
80
  }];
81
81
  function isAutomationDialogPopupTarget(relatedTarget) {
82
82
  return isMobilePickerSheetTarget(relatedTarget) || !!relatedTarget.closest(
@@ -102,7 +102,7 @@ async function canSelectAutomationWorkspace(
102
102
  return !!(await workspaceTrustRequestService.requestResourcesTrust({
103
103
  uri: folderUri,
104
104
  message: ( localize(
105
- 3276,
105
+ 3299,
106
106
  "An agent session will be able to read files, run commands, and make changes in this folder."
107
107
  ))
108
108
  }));
@@ -528,8 +528,8 @@ let AutomationIsolationGroupActionViewItem = class AutomationIsolationGroupActio
528
528
  void this.reloadRepository(this.isolationModel.folderUri);
529
529
  },
530
530
  isolation: {
531
- label: ( localize(3277, "New Worktree")),
532
- ariaLabel: ( localize(3278, "Worktree isolation")),
531
+ label: ( localize(3300, "New Worktree")),
532
+ ariaLabel: ( localize(3301, "Worktree isolation")),
533
533
  onToggle: checked => {
534
534
  this.isolationModel.selectIsolationMode(checked ? "worktree" : "workspace");
535
535
  this.renderBranchControl();
@@ -637,23 +637,23 @@ let AutomationIsolationGroupActionViewItem = class AutomationIsolationGroupActio
637
637
  const displayBranch = this.isolationModel.displayBranch;
638
638
  if (!this.isolationModel.folderUri) {
639
639
  return {
640
- label: ( localize(3279, "—")),
641
- reason: ( localize(3280, "Select a folder to determine its Git branch.")),
640
+ label: ( localize(3302, "—")),
641
+ reason: ( localize(3303, "Select a folder to determine its Git branch.")),
642
642
  missing: true
643
643
  };
644
644
  }
645
645
  if (!this.worktreeCapabilityResolved) {
646
646
  return {
647
- label: displayBranch ?? ( localize(3279, "—")),
648
- reason: ( localize(3281, "Session capabilities are loading.")),
647
+ label: displayBranch ?? ( localize(3302, "—")),
648
+ reason: ( localize(3304, "Session capabilities are loading.")),
649
649
  missing: !displayBranch
650
650
  };
651
651
  }
652
652
  if (!this.isolationModel.supportsWorktreeConfiguration) {
653
653
  return {
654
- label: displayBranch ?? ( localize(3279, "—")),
654
+ label: displayBranch ?? ( localize(3302, "—")),
655
655
  reason: ( localize(
656
- 3282,
656
+ 3305,
657
657
  "The selected session type does not support Worktree branch configuration."
658
658
  )),
659
659
  missing: !displayBranch
@@ -661,15 +661,15 @@ let AutomationIsolationGroupActionViewItem = class AutomationIsolationGroupActio
661
661
  }
662
662
  if (this.branchLoadState === "error") {
663
663
  return {
664
- label: displayBranch ?? ( localize(3283, "Unable to load branches")),
665
- reason: ( localize(3284, "Open the branch picker to retry loading local branches.")),
664
+ label: displayBranch ?? ( localize(3306, "Unable to load branches")),
665
+ reason: ( localize(3307, "Open the branch picker to retry loading local branches.")),
666
666
  missing: !displayBranch
667
667
  };
668
668
  }
669
669
  if (this.isolationModel.isolationMode !== "worktree") {
670
670
  return {
671
- label: displayBranch ?? this.detachedCommit ?? ( localize(3279, "—")),
672
- reason: ( localize(3285, "Select Worktree to choose a branch.")),
671
+ label: displayBranch ?? this.detachedCommit ?? ( localize(3302, "—")),
672
+ reason: ( localize(3308, "Select Worktree to choose a branch.")),
673
673
  missing: !displayBranch && !this.detachedCommit
674
674
  };
675
675
  }
@@ -677,32 +677,32 @@ let AutomationIsolationGroupActionViewItem = class AutomationIsolationGroupActio
677
677
  case "loadingRepository":
678
678
  case "loadingBranches":
679
679
  return {
680
- label: displayBranch ?? ( localize(3286, "Loading branches…")),
681
- reason: ( localize(3287, "Local branches are loading.")),
680
+ label: displayBranch ?? ( localize(3309, "Loading branches…")),
681
+ reason: ( localize(3310, "Local branches are loading.")),
682
682
  missing: !displayBranch
683
683
  };
684
684
  case "noRepository":
685
685
  return {
686
- label: displayBranch ?? ( localize(3288, "no git repo")),
687
- reason: ( localize(3289, "No Git repository was found for the selected folder.")),
686
+ label: displayBranch ?? ( localize(3311, "no git repo")),
687
+ reason: ( localize(3312, "No Git repository was found for the selected folder.")),
688
688
  missing: !displayBranch
689
689
  };
690
690
  case "empty":
691
691
  return {
692
- label: displayBranch ?? ( localize(3290, "No local branches")),
693
- reason: ( localize(3291, "No local branches were found in this repository.")),
692
+ label: displayBranch ?? ( localize(3313, "No local branches")),
693
+ reason: ( localize(3314, "No local branches were found in this repository.")),
694
694
  missing: !displayBranch
695
695
  };
696
696
  case "ready":
697
697
  return {
698
- label: displayBranch ?? ( localize(3292, "Select branch")),
699
- reason: ( localize(3293, "Choose the local branch to use as the Worktree base.")),
698
+ label: displayBranch ?? ( localize(3315, "Select branch")),
699
+ reason: ( localize(3316, "Choose the local branch to use as the Worktree base.")),
700
700
  missing: !displayBranch
701
701
  };
702
702
  case "noFolder":
703
703
  return {
704
- label: ( localize(3279, "—")),
705
- reason: ( localize(3280, "Select a folder to determine its Git branch.")),
704
+ label: ( localize(3302, "—")),
705
+ reason: ( localize(3303, "Select a folder to determine its Git branch.")),
706
706
  missing: true
707
707
  };
708
708
  }
@@ -715,13 +715,13 @@ let AutomationIsolationGroupActionViewItem = class AutomationIsolationGroupActio
715
715
  }
716
716
  getWorktreeUnavailableReason() {
717
717
  if (!this.isolationModel.folderUri) {
718
- return localize(3294, "Select a folder to use Worktree isolation.");
718
+ return localize(3317, "Select a folder to use Worktree isolation.");
719
719
  }
720
720
  if (!this.worktreeCapabilityResolved) {
721
- return localize(3281, "Session capabilities are loading.");
721
+ return localize(3304, "Session capabilities are loading.");
722
722
  }
723
723
  if (!this.isolationModel.supportsWorktreeConfiguration) {
724
- return localize(3295, "Not supported by the selected session type");
724
+ return localize(3318, "Not supported by the selected session type");
725
725
  }
726
726
  if (this.isolationModel.selectedBranch) {
727
727
  return undefined;
@@ -729,17 +729,17 @@ let AutomationIsolationGroupActionViewItem = class AutomationIsolationGroupActio
729
729
  switch (this.branchLoadState) {
730
730
  case "loadingRepository":
731
731
  case "loadingBranches":
732
- return localize(3287, "Local branches are loading.");
732
+ return localize(3310, "Local branches are loading.");
733
733
  case "noRepository":
734
- return localize(3289, "No Git repository was found for the selected folder.");
734
+ return localize(3312, "No Git repository was found for the selected folder.");
735
735
  case "error":
736
- return localize(3284, "Open the branch picker to retry loading local branches.");
736
+ return localize(3307, "Open the branch picker to retry loading local branches.");
737
737
  case "empty":
738
- return localize(3291, "No local branches were found in this repository.");
738
+ return localize(3314, "No local branches were found in this repository.");
739
739
  case "ready":
740
- return this.branches.length > 0 ? undefined : ( localize(3291, "No local branches were found in this repository."));
740
+ return this.branches.length > 0 ? undefined : ( localize(3314, "No local branches were found in this repository."));
741
741
  case "noFolder":
742
- return localize(3294, "Select a folder to use Worktree isolation.");
742
+ return localize(3317, "Select a folder to use Worktree isolation.");
743
743
  }
744
744
  }
745
745
  cancelBranchRequest() {
@@ -794,7 +794,7 @@ let AutomationIsolationGroupActionViewItem = class AutomationIsolationGroupActio
794
794
  this.detachedCommit = undefined;
795
795
  this.isolationModel.setHeadBranch(head.name);
796
796
  } else if (head?.commit) {
797
- this.detachedCommit = ( localize(3296, "({0})", head.commit.slice(0, 7)));
797
+ this.detachedCommit = ( localize(3319, "({0})", head.commit.slice(0, 7)));
798
798
  this.isolationModel.setHeadBranch(undefined);
799
799
  } else {
800
800
  this.detachedCommit = undefined;
@@ -846,7 +846,7 @@ registerAction2(class OpenAutomationsHarnessChipAction extends Action2 {
846
846
  constructor() {
847
847
  super({
848
848
  id: AUTOMATIONS_HARNESS_CHIP_ACTION_ID,
849
- title: ( localize2(3297, "Automations Harness Chip")),
849
+ title: ( localize2(3320, "Automations Harness Chip")),
850
850
  f1: false,
851
851
  precondition: ChatContextKeys.enabled,
852
852
  menu: [{
@@ -863,7 +863,7 @@ registerAction2(class OpenAutomationsWorkspacePickerAction extends Action2 {
863
863
  constructor() {
864
864
  super({
865
865
  id: AUTOMATIONS_WORKSPACE_PICKER_ACTION_ID,
866
- title: ( localize2(3298, "Automations Workspace Picker")),
866
+ title: ( localize2(3321, "Automations Workspace Picker")),
867
867
  f1: false,
868
868
  precondition: ChatContextKeys.enabled,
869
869
  menu: [{
@@ -880,7 +880,7 @@ registerAction2(class OpenAutomationsIsolationGroupAction extends Action2 {
880
880
  constructor() {
881
881
  super({
882
882
  id: AUTOMATIONS_ISOLATION_GROUP_ACTION_ID,
883
- title: ( localize2(3299, "Automations Isolation Group")),
883
+ title: ( localize2(3322, "Automations Isolation Group")),
884
884
  f1: false,
885
885
  precondition: ChatContextKeys.enabled,
886
886
  menu: [{
@@ -913,12 +913,12 @@ function renderForm(
913
913
  ) {
914
914
  const formContent = append(form, $(".automation-form-content"));
915
915
  const nameRow = append(formContent, $(".automation-form-row"));
916
- append(nameRow, $("span.automation-form-label", undefined, ( localize(3300, "Name"))));
916
+ append(nameRow, $("span.automation-form-label", undefined, ( localize(3323, "Name"))));
917
917
  const nameInputContainer = append(nameRow, $(".automation-form-input-host"));
918
918
  const nameInput = disposables.add(( new InputBox(nameInputContainer, contextViewService, {
919
919
  inputBoxStyles: defaultInputBoxStyles,
920
- placeholder: ( localize(3301, "e.g. Morning standup notes")),
921
- ariaLabel: ( localize(3300, "Name"))
920
+ placeholder: ( localize(3324, "e.g. Morning standup notes")),
921
+ ariaLabel: ( localize(3323, "Name"))
922
922
  })));
923
923
  nameInput.value = state.name;
924
924
  disposables.add(nameInput.onDidChange(value => {
@@ -928,7 +928,7 @@ function renderForm(
928
928
  const scheduleRow = append(formContent, $(".automation-form-row.automation-form-schedule-row"));
929
929
  const useCustomDrawn = !hasNativeContextMenu(configurationService);
930
930
  const intervalGroup = append(scheduleRow, $(".automation-form-schedule-group"));
931
- append(intervalGroup, $("span.automation-form-label", undefined, ( localize(3302, "Schedule"))));
931
+ append(intervalGroup, $("span.automation-form-label", undefined, ( localize(3325, "Schedule"))));
932
932
  const intervalOptions = INTERVALS.map(item => ({
933
933
  text: item.label
934
934
  }));
@@ -939,7 +939,7 @@ function renderForm(
939
939
  contextViewService,
940
940
  defaultSelectBoxStyles,
941
941
  {
942
- ariaLabel: ( localize(3302, "Schedule")),
942
+ ariaLabel: ( localize(3325, "Schedule")),
943
943
  useCustomDrawn
944
944
  }
945
945
  )));
@@ -949,7 +949,7 @@ function renderForm(
949
949
  scheduleRow,
950
950
  $(".automation-form-schedule-group.automation-form-time-group")
951
951
  );
952
- append(timeGroup, $("span.automation-form-label", undefined, ( localize(3303, "Time"))));
952
+ append(timeGroup, $("span.automation-form-label", undefined, ( localize(3326, "Time"))));
953
953
  const timeOptions = buildTimeOptions();
954
954
  const initialTimeIndex = nearestTimeOptionIndex(state.hour, state.minute);
955
955
  state.hour = timeOptions[initialTimeIndex].hour;
@@ -957,7 +957,7 @@ function renderForm(
957
957
  const timeSelect = disposables.add(( new SelectBox(timeOptions.map(opt => ({
958
958
  text: opt.label
959
959
  })), initialTimeIndex, contextViewService, defaultSelectBoxStyles, {
960
- ariaLabel: ( localize(3303, "Time")),
960
+ ariaLabel: ( localize(3326, "Time")),
961
961
  useCustomDrawn
962
962
  })));
963
963
  const timeSelectContainer = append(timeGroup, $(
@@ -973,7 +973,7 @@ function renderForm(
973
973
  scheduleRow,
974
974
  $(".automation-form-schedule-group.automation-form-day-group")
975
975
  );
976
- append(dayGroup, $("span.automation-form-label", undefined, ( localize(3304, "Day of week"))));
976
+ append(dayGroup, $("span.automation-form-label", undefined, ( localize(3327, "Day of week"))));
977
977
  const dayOptions = DAYS_OF_WEEK.map(d => ({
978
978
  text: d
979
979
  }));
@@ -983,7 +983,7 @@ function renderForm(
983
983
  contextViewService,
984
984
  defaultSelectBoxStyles,
985
985
  {
986
- ariaLabel: ( localize(3304, "Day of week")),
986
+ ariaLabel: ( localize(3327, "Day of week")),
987
987
  useCustomDrawn
988
988
  }
989
989
  )));
@@ -1138,14 +1138,14 @@ function renderForm(
1138
1138
  const targetRow = append(sessionSection, $(".automation-form-row.automation-target-row"));
1139
1139
  const targetLabel = append(targetRow, $("span.automation-form-label", {
1140
1140
  id: "automation-target-label"
1141
- }, ( localize(3305, "Target"))));
1141
+ }, ( localize(3328, "Target"))));
1142
1142
  const targetContainer = append(targetRow, $(".automation-target-toolbar", {
1143
1143
  role: "group",
1144
1144
  "aria-labelledby": targetLabel.id
1145
1145
  }));
1146
1146
  const promptSection = append(sessionSection, $(".automation-prompt-section"));
1147
1147
  const promptRow = append(promptSection, $(".automation-form-row"));
1148
- append(promptRow, $("span.automation-form-label", undefined, ( localize(3306, "Prompt"))));
1148
+ append(promptRow, $("span.automation-form-label", undefined, ( localize(3329, "Prompt"))));
1149
1149
  const promptHost = append(promptRow, $(".automation-form-prompt-host.interactive-session"));
1150
1150
  const editorOverflowWidgetsDomNode = layoutService.getContainer(getWindow(promptHost)).appendChild($(".chat-editor-overflow.automation-dialog-editor-overflow.monaco-editor"));
1151
1151
  disposables.add(toDisposable(() => editorOverflowWidgetsDomNode.remove()));
@@ -1185,7 +1185,7 @@ function renderForm(
1185
1185
  targetContainer,
1186
1186
  Menus.AutomationsDialogTargetToolbar,
1187
1187
  {
1188
- ariaLabel: ( localize(3307, "Automation target options")),
1188
+ ariaLabel: ( localize(3330, "Automation target options")),
1189
1189
  telemetrySource: "automations.dialog",
1190
1190
  hiddenItemStrategy: HiddenItemStrategy.NoHide,
1191
1191
  responsiveBehavior: {
@@ -1280,7 +1280,7 @@ function renderForm(
1280
1280
  ));
1281
1281
  chatInput.render(promptHost, initialPrompt, stubWidget);
1282
1282
  chatInput.inputEditor.updateOptions({
1283
- placeholder: ( localize(3308, "Describe what you want to automate"))
1283
+ placeholder: ( localize(3331, "Describe what you want to automate"))
1284
1284
  });
1285
1285
  disposables.add(
1286
1286
  scopedInstantiationService.createInstance(AutomationInputCompletions, chatInput.inputEditor)
@@ -1288,7 +1288,7 @@ function renderForm(
1288
1288
  const sessionConfigurationRow = append(promptSection, $(".automation-form-row"));
1289
1289
  const sessionConfigurationLabel = append(sessionConfigurationRow, $("span.automation-form-label", {
1290
1290
  id: "automation-session-configuration-label"
1291
- }, ( localize(3309, "Session configuration"))));
1291
+ }, ( localize(3332, "Session configuration"))));
1292
1292
  const sessionConfiguration = append(sessionConfigurationRow, $(".automation-session-configuration", {
1293
1293
  role: "group",
1294
1294
  "aria-labelledby": sessionConfigurationLabel.id
@@ -1302,11 +1302,11 @@ function renderForm(
1302
1302
  sessionConfigContainer,
1303
1303
  scopedInstantiationService,
1304
1304
  compactModelPicker,
1305
- ( localize(3310, "Session configuration options"))
1305
+ ( localize(3333, "Session configuration options"))
1306
1306
  ));
1307
1307
  const sessionControlsContainer = append(sessionConfiguration, $(".automation-session-controls"));
1308
1308
  const sessionControlsToolbar = disposables.add(
1309
- createNewSessionControlToolbar(sessionControlsContainer, scopedInstantiationService, ( localize(3311, "Session controls")))
1309
+ createNewSessionControlToolbar(sessionControlsContainer, scopedInstantiationService, ( localize(3334, "Session controls")))
1310
1310
  );
1311
1311
  const sessionConfigLayout = disposables.add(( new ChatInputPickerResponsiveLayout("AutomationDialog.sessionConfig", sessionConfigContainer, {
1312
1312
  getItems: () => getAutomationToolbarResponsiveItems(sessionConfigToolbar, {
@@ -1346,7 +1346,7 @@ function renderForm(
1346
1346
  container.setAttribute("aria-hidden", String(controlsUnavailable));
1347
1347
  container.setAttribute("aria-busy", String(pending));
1348
1348
  }
1349
- sessionConfigurationUnavailable.textContent = pending ? ( localize(3312, "Loading session configuration…")) : hasTarget && controlsUnavailable ? ( localize(3313, "Session configuration unavailable")) : "";
1349
+ sessionConfigurationUnavailable.textContent = pending ? ( localize(3335, "Loading session configuration…")) : hasTarget && controlsUnavailable ? ( localize(3336, "Session configuration unavailable")) : "";
1350
1350
  }));
1351
1351
  disposables.add(chatInput.inputEditor.onDidChangeModelContent(() => {
1352
1352
  revalidate();
@@ -1375,7 +1375,7 @@ function renderForm(
1375
1375
  );
1376
1376
  disposables.add(resizeObserver.observe(promptHost));
1377
1377
  const enabledRow = append(formContent, $(".automation-form-row.automation-form-checkbox-row"));
1378
- const enabledLabelText = ( localize(3314, "Enabled (the scheduler runs this automation when due)"));
1378
+ const enabledLabelText = ( localize(3337, "Enabled (the scheduler runs this automation when due)"));
1379
1379
  const enabledCheckbox = disposables.add(( new Checkbox(enabledLabelText, state.enabled, defaultCheckboxStyles)));
1380
1380
  append(enabledRow, enabledCheckbox.domNode);
1381
1381
  const enabledLabel = append(
@@ -1413,7 +1413,7 @@ function renderForm(
1413
1413
  form.classList.toggle("saving", saving);
1414
1414
  if (saving) {
1415
1415
  show(saveStatus);
1416
- saveStatus.textContent = ( localize(3315, "Saving automation…"));
1416
+ saveStatus.textContent = ( localize(3338, "Saving automation…"));
1417
1417
  } else {
1418
1418
  hide(saveStatus);
1419
1419
  saveStatus.textContent = "";
@@ -1476,11 +1476,11 @@ function nearestTimeOptionIndex(hour, minute) {
1476
1476
  return carriedHour * 4 + slot;
1477
1477
  }
1478
1478
  function updateSaveButtonState(saveButton, state, validation, form, getPrompt, getBranch) {
1479
- validation.nameError = state.name.trim() === "" ? ( localize(3316, "Name is required.")) : undefined;
1480
- validation.promptError = getPrompt().trim() === "" ? ( localize(3317, "Prompt is required.")) : undefined;
1481
- validation.folderError = !state.folderUri && !state.isQuickChat ? ( localize(3318, "Workspace folder is required.")) : undefined;
1482
- validation.sessionTypeError = !state.sessionTypeId || (state.isQuickChat && !state.providerId) ? ( localize(3319, "Session type is required.")) : undefined;
1483
- validation.branchError = !state.isQuickChat && state.isolationMode === "worktree" && !getBranch() ? ( localize(3320, "A branch is required for Worktree isolation.")) : undefined;
1479
+ validation.nameError = state.name.trim() === "" ? ( localize(3339, "Name is required.")) : undefined;
1480
+ validation.promptError = getPrompt().trim() === "" ? ( localize(3340, "Prompt is required.")) : undefined;
1481
+ validation.folderError = !state.folderUri && !state.isQuickChat ? ( localize(3341, "Workspace folder is required.")) : undefined;
1482
+ validation.sessionTypeError = !state.sessionTypeId || (state.isQuickChat && !state.providerId) ? ( localize(3342, "Session type is required.")) : undefined;
1483
+ validation.branchError = !state.isQuickChat && state.isolationMode === "worktree" && !getBranch() ? ( localize(3343, "A branch is required for Worktree isolation.")) : undefined;
1484
1484
  const valid = !validation.nameError && !validation.promptError && !validation.folderError && !validation.sessionTypeError && !validation.branchError;
1485
1485
  if (saveButton) {
1486
1486
  saveButton.enabled = valid;
@@ -1509,8 +1509,8 @@ class AutomationsWorkspacePicker extends WorkspacePicker {
1509
1509
  const items = super._buildItems();
1510
1510
  const noWorkspace = {
1511
1511
  kind: ActionListItemKind.Action,
1512
- label: ( localize(3321, "No workspace")),
1513
- description: ( localize(3322, "Run without a backing workspace")),
1512
+ label: ( localize(3344, "No workspace")),
1513
+ description: ( localize(3345, "Run without a backing workspace")),
1514
1514
  group: {
1515
1515
  title: "",
1516
1516
  icon: Codicon.commentDiscussion
@@ -1540,9 +1540,9 @@ class AutomationsWorkspacePicker extends WorkspacePicker {
1540
1540
  clearNode(trigger);
1541
1541
  const workspace = this.selectedResolved?.workspace;
1542
1542
  const noWorkspace = this.targetModel?.isQuickChat === true;
1543
- const label = noWorkspace ? ( localize(3321, "No workspace")) : workspace?.label ?? ( localize(3323, "Select workspace"));
1543
+ const label = noWorkspace ? ( localize(3344, "No workspace")) : workspace?.label ?? ( localize(3346, "Select workspace"));
1544
1544
  const icon = noWorkspace ? Codicon.commentDiscussion : workspace?.icon ?? Codicon.project;
1545
- trigger.setAttribute("aria-label", workspace || noWorkspace ? ( localize(3324, "Automation target, {0}", label)) : ( localize(3325, "Pick a workspace for this automation")));
1545
+ trigger.setAttribute("aria-label", workspace || noWorkspace ? ( localize(3347, "Automation target, {0}", label)) : ( localize(3348, "Pick a workspace for this automation")));
1546
1546
  const renderedIcon = append(trigger, renderIcon(icon));
1547
1547
  renderedIcon.setAttribute("aria-hidden", "true");
1548
1548
  append(trigger, $("span.sessions-chat-dropdown-label", undefined, label));
@@ -127,12 +127,12 @@ let AutomationDialogService = class AutomationDialogService {
127
127
  let saveInProgress = false;
128
128
  const saveCancellation = disposables.add(( new MutableDisposable()));
129
129
  const completion = ( new DeferredPromise());
130
- const title = isEdit ? ( localize(3326, "Edit automation")) : ( localize(3327, "New automation"));
131
- const saveButtonLabel = isEdit ? ( localize(3328, "Save")) : ( localize(3329, "Create"));
132
- const cancelButtonLabel = ( localize(3330, "Cancel"));
133
- const savingButtonLabel = ( localize(3331, "Saving…"));
130
+ const title = isEdit ? ( localize(3349, "Edit automation")) : ( localize(3350, "New automation"));
131
+ const saveButtonLabel = isEdit ? ( localize(3351, "Save")) : ( localize(3352, "Create"));
132
+ const cancelButtonLabel = ( localize(3353, "Cancel"));
133
+ const savingButtonLabel = ( localize(3354, "Saving…"));
134
134
  const captureErrorMessage = ( localize(
135
- 3332,
135
+ 3355,
136
136
  "The automation wasn't saved because its session configuration couldn't be captured. Check the provider connection and try again."
137
137
  ));
138
138
  const buildResult = sessionConfigurationCapture => {
@@ -302,8 +302,8 @@ let AutomationDialogService = class AutomationDialogService {
302
302
  titlebar.setAttribute("aria-hidden", "true");
303
303
  titlebar.textContent = title;
304
304
  const description = append(container, $(".automation-description"));
305
- description.textContent = isEdit ? ( localize(3333, "Update the schedule, prompt, or run target for this automation.")) : ( localize(
306
- 3334,
305
+ description.textContent = isEdit ? ( localize(3356, "Update the schedule, prompt, or run target for this automation.")) : ( localize(
306
+ 3357,
307
307
  "Define a prompt that will run on a schedule against the selected target."
308
308
  ));
309
309
  const formPane = append(container, $(".automation-form-pane"));
@@ -90,7 +90,7 @@ let AutomationRunner = class AutomationRunner {
90
90
  );
91
91
  if (trigger === "manual") {
92
92
  this.notificationService.info(( localize(
93
- 3335,
93
+ 3358,
94
94
  "Automation '{0}' cannot start until its agent becomes available.",
95
95
  automation.name
96
96
  )));
@@ -232,7 +232,7 @@ let AutomationRunner = class AutomationRunner {
232
232
  return;
233
233
  }
234
234
  if (terminalStatus === SessionStatus.Error) {
235
- throw ( new Error(( localize(3336, "Agent session failed."))));
235
+ throw ( new Error(( localize(3359, "Agent session failed."))));
236
236
  }
237
237
  await this.automationService.updateRun(runId, {
238
238
  status: "completed",
@@ -250,7 +250,7 @@ let AutomationRunner = class AutomationRunner {
250
250
  this.logService.error(`[AutomationRunner] run for ${automation.id} failed`, err);
251
251
  try {
252
252
  const errorMessage = err instanceof Error ? err.message : String(err);
253
- this.notificationService.error(( localize(3337, "Automation '{0}' failed: {1}", automation.name, errorMessage)));
253
+ this.notificationService.error(( localize(3360, "Automation '{0}' failed: {1}", automation.name, errorMessage)));
254
254
  let failedRun;
255
255
  if (runId) {
256
256
  failedRun = await this.automationService.updateRun(runId, {
@@ -278,7 +278,7 @@ let AutomationRunner = class AutomationRunner {
278
278
  await this.automationService.updateRun(runId, {
279
279
  status: "failed",
280
280
  completedAt: ( new Date()).toISOString(),
281
- errorMessage: ( localize(3338, "Cancelled"))
281
+ errorMessage: ( localize(3361, "Cancelled"))
282
282
  });
283
283
  }
284
284
  } catch (err) {
@@ -17,7 +17,7 @@ import { AutomationLeaderElection } from './automationLeaderElection.js';
17
17
  import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
18
18
 
19
19
  const DEFAULT_SCHEDULER_TICK_MS = 60_000;
20
- const CRASH_RECOVERY_REASON = ( localize(3339, "Interrupted by app shutdown"));
20
+ const CRASH_RECOVERY_REASON = ( localize(3362, "Interrupted by app shutdown"));
21
21
  class AutomationSchedulerCore extends Disposable {
22
22
  constructor(automationService, runner, storageService, logService, options = {}) {
23
23
  super();
@@ -126,7 +126,7 @@ class AutomationSchedulerCore extends Disposable {
126
126
  if (active) {
127
127
  const updated = await this.automationService.updateRun(active.id, {
128
128
  status: "failed",
129
- errorMessage: ( localize(3340, "Timed out after {0} minute(s).", Math.round(timeoutMs / 60_000))),
129
+ errorMessage: ( localize(3363, "Timed out after {0} minute(s).", Math.round(timeoutMs / 60_000))),
130
130
  completedAt: this._now().toISOString()
131
131
  });
132
132
  if (updated) {