@codingame/monaco-vscode-workbench-service-override 37.5.0 → 37.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +10 -10
- package/session.js +45 -28
- package/vscode/src/vs/sessions/browser/singlePaneWorkbench.d.ts +76 -0
- package/vscode/src/vs/sessions/browser/singlePaneWorkbench.js +320 -0
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/account.contribution.js +42 -42
- package/vscode/src/vs/sessions/contrib/accountMenu/browser/chatPetAchievementBadges.js +11 -11
- 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.js +68 -68
- package/vscode/src/vs/sessions/contrib/automations/browser/automationDialogService.js +7 -7
- package/vscode/src/vs/sessions/contrib/automations/browser/automationRunner.js +4 -4
- package/vscode/src/vs/sessions/contrib/automations/browser/automationScheduler.js +2 -2
- package/vscode/src/vs/sessions/contrib/automations/browser/automationTools.js +38 -38
- package/vscode/src/vs/sessions/contrib/automations/browser/automations.contribution.js +2 -2
- package/vscode/src/vs/sessions/contrib/automations/browser/providerAutomationService.js +1 -1
- package/vscode/src/vs/sessions/contrib/changes/browser/changes.contribution.js +6 -6
- package/vscode/src/vs/sessions/contrib/changes/browser/changesActions.js +4 -4
- package/vscode/src/vs/sessions/contrib/changes/browser/changesViewActions.js +20 -20
- package/vscode/src/vs/sessions/contrib/changes/browser/changesetReviewActions.js +1 -1
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionSyncChanges.js +9 -9
- package/vscode/src/vs/sessions/contrib/changes/browser/sessionsChangesAccessibilityHelp.js +17 -17
- package/vscode/src/vs/sessions/contrib/chat/browser/sessionChatInputToolbarDebug.js +17 -17
- package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +2 -2
- package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.js +2 -2
- package/vscode/src/vs/sessions/contrib/customViewTest/browser/customViewTest.contribution.js +7 -7
- package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +4 -4
- package/vscode/src/vs/sessions/contrib/editor/browser/editor.contribution.js +8 -8
- package/vscode/src/vs/sessions/contrib/editor/browser/emptyFileEditor.contribution.js +1 -1
- 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/files/browser/files.contribution.js +7 -7
- package/vscode/src/vs/sessions/contrib/files/browser/filesView.js +1 -1
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +6 -6
- package/vscode/src/vs/sessions/contrib/layout/browser/sessions.layout.contribution.js +2 -2
- package/vscode/src/vs/sessions/contrib/layout/browser/singlePane/singlePaneExistingSessionStrategy.js +1 -1
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/newSessionViewV3Prompt.js +19 -19
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionTour.js +4 -4
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTour.js +6 -6
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js +2 -2
- package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js +4 -4
- package/vscode/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.js +24 -24
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +3 -3
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +3 -3
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +2 -2
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +8 -8
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js +3 -3
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +32 -32
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.js +29 -29
- 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 +3 -3
- package/vscode/src/vs/sessions/contrib/providers/remoteAgentHost/browser/devContainerAgentHostService.js +6 -6
- package/vscode/src/vs/sessions/contrib/search/browser/search.contribution.js +3 -3
- package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js +1 -1
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsIndicatorModel.js +4 -4
- package/vscode/src/vs/sessions/contrib/sessions/browser/blockedSessionsList.js +5 -5
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionDetailsAction.js +2 -2
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessions.contribution.js +8 -8
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsActions.js +58 -58
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.js +8 -8
- package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsWindowNotifier.js +5 -5
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationTemplates.js +10 -10
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.js +38 -38
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/automationsView.js +118 -118
- package/vscode/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.js +53 -53
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.js +1 -1
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.js +2 -2
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsManagementService.js +2 -2
- package/vscode/src/vs/sessions/services/sessions/browser/sessionsService.js +2 -2
- package/vscode/src/vs/workbench/browser/layout.js +1 -1
|
@@ -57,8 +57,8 @@ let ListAutomationsTool = class ListAutomationsTool {
|
|
|
57
57
|
toolReferenceName: "listAutomations",
|
|
58
58
|
canBeReferencedInPrompt: false,
|
|
59
59
|
icon: Codicon.calendar,
|
|
60
|
-
displayName: ( localize(
|
|
61
|
-
userDescription: ( localize(
|
|
60
|
+
displayName: ( localize(3366, "List Automations")),
|
|
61
|
+
userDescription: ( localize(3367, "List scheduled agent automations")),
|
|
62
62
|
modelDescription: "List all currently available scheduled automations and their stable IDs, editable fields, targets, and timing metadata. The result includes catalogueState; only \"ready\" means the list is complete, so never interpret an empty non-ready result as no configured automations. Use this before configureAutomation, runAutomation, or deleteAutomation when acting on an existing automation. This tool never changes automation state.",
|
|
63
63
|
source: ToolDataSource.Internal,
|
|
64
64
|
when: automationToolWhen,
|
|
@@ -72,8 +72,8 @@ let ListAutomationsTool = class ListAutomationsTool {
|
|
|
72
72
|
}
|
|
73
73
|
async prepareToolInvocation(_context, _token) {
|
|
74
74
|
return {
|
|
75
|
-
invocationMessage: ( localize(
|
|
76
|
-
pastTenseMessage: ( localize(
|
|
75
|
+
invocationMessage: ( localize(3368, "Reading automations")),
|
|
76
|
+
pastTenseMessage: ( localize(3369, "Read automations"))
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
79
|
async invoke(_invocation, _countTokens, _progress, _token) {
|
|
@@ -87,10 +87,10 @@ let ListAutomationsTool = class ListAutomationsTool {
|
|
|
87
87
|
automations
|
|
88
88
|
}, undefined, 2));
|
|
89
89
|
result.toolResultMessage = catalogueState !== "ready" ? ( localize(
|
|
90
|
-
|
|
90
|
+
3370,
|
|
91
91
|
"Listed {0} available automations; catalogue is incomplete",
|
|
92
92
|
automations.length
|
|
93
|
-
)) : automations.length === 1 ? ( localize(
|
|
93
|
+
)) : automations.length === 1 ? ( localize(3371, "Listed 1 automation")) : ( localize(3372, "Listed {0} automations", automations.length));
|
|
94
94
|
return result;
|
|
95
95
|
}
|
|
96
96
|
};
|
|
@@ -107,8 +107,8 @@ let RunAutomationTool = class RunAutomationTool {
|
|
|
107
107
|
toolReferenceName: "runAutomation",
|
|
108
108
|
canBeReferencedInPrompt: false,
|
|
109
109
|
icon: Codicon.play,
|
|
110
|
-
displayName: ( localize(
|
|
111
|
-
userDescription: ( localize(
|
|
110
|
+
displayName: ( localize(3373, "Run Automation")),
|
|
111
|
+
userDescription: ( localize(3374, "Run a configured agent automation now")),
|
|
112
112
|
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
113
|
source: ToolDataSource.Internal,
|
|
114
114
|
when: automationToolWhen,
|
|
@@ -134,17 +134,17 @@ let RunAutomationTool = class RunAutomationTool {
|
|
|
134
134
|
const activeRun = this.automationService.getActiveRunFor(automation.id);
|
|
135
135
|
if (activeRun) {
|
|
136
136
|
return {
|
|
137
|
-
invocationMessage: ( localize(
|
|
138
|
-
pastTenseMessage: ( localize(
|
|
137
|
+
invocationMessage: ( localize(3375, "Automation {0} is already running", automation.name)),
|
|
138
|
+
pastTenseMessage: ( localize(3376, "Automation {0} was already running", automation.name))
|
|
139
139
|
};
|
|
140
140
|
}
|
|
141
141
|
return {
|
|
142
|
-
invocationMessage: ( localize(
|
|
143
|
-
pastTenseMessage: ( localize(
|
|
142
|
+
invocationMessage: ( localize(3377, "Running automation {0}", automation.name)),
|
|
143
|
+
pastTenseMessage: ( localize(3378, "Started automation {0}", automation.name)),
|
|
144
144
|
confirmationMessages: {
|
|
145
|
-
title: ( localize(
|
|
145
|
+
title: ( localize(3379, "Run Automation?")),
|
|
146
146
|
message: ( new MarkdownString(( localize(
|
|
147
|
-
|
|
147
|
+
3380,
|
|
148
148
|
"Run **{0}** (`{1}`) now? This starts a new agent session using the automation's configured prompt and permissions.",
|
|
149
149
|
automation.name,
|
|
150
150
|
automation.id
|
|
@@ -194,7 +194,7 @@ let RunAutomationTool = class RunAutomationTool {
|
|
|
194
194
|
sessionResource: ( dispatch.sessionResource.toString())
|
|
195
195
|
}
|
|
196
196
|
}, undefined, 2));
|
|
197
|
-
result.toolResultMessage = ( localize(
|
|
197
|
+
result.toolResultMessage = ( localize(3381, "Started automation {0}", automation.name));
|
|
198
198
|
return result;
|
|
199
199
|
}
|
|
200
200
|
};
|
|
@@ -210,8 +210,8 @@ let DeleteAutomationTool = class DeleteAutomationTool {
|
|
|
210
210
|
toolReferenceName: "deleteAutomation",
|
|
211
211
|
canBeReferencedInPrompt: false,
|
|
212
212
|
icon: Codicon.trash,
|
|
213
|
-
displayName: ( localize(
|
|
214
|
-
userDescription: ( localize(
|
|
213
|
+
displayName: ( localize(3382, "Delete Automation")),
|
|
214
|
+
userDescription: ( localize(3383, "Delete a scheduled agent automation")),
|
|
215
215
|
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
216
|
source: ToolDataSource.Internal,
|
|
217
217
|
when: automationToolWhen,
|
|
@@ -235,23 +235,23 @@ let DeleteAutomationTool = class DeleteAutomationTool {
|
|
|
235
235
|
}
|
|
236
236
|
const automation = resolveAutomationInput(this.automationService, context.parameters, "deleteAutomation");
|
|
237
237
|
return {
|
|
238
|
-
invocationMessage: ( localize(
|
|
239
|
-
pastTenseMessage: ( localize(
|
|
238
|
+
invocationMessage: ( localize(3384, "Deleting automation {0}", automation.name)),
|
|
239
|
+
pastTenseMessage: ( localize(3385, "Deleted automation {0}", automation.name)),
|
|
240
240
|
confirmationMessages: {
|
|
241
|
-
title: ( localize(
|
|
241
|
+
title: ( localize(3386, "Delete Automation?")),
|
|
242
242
|
message: ( new MarkdownString(( localize(
|
|
243
|
-
|
|
243
|
+
3387,
|
|
244
244
|
"Delete **{0}** (`{1}`)? Its saved configuration and run history will be permanently removed. Runs already in flight will continue.",
|
|
245
245
|
automation.name,
|
|
246
246
|
automation.id
|
|
247
247
|
)))),
|
|
248
248
|
customOptions: [{
|
|
249
249
|
id: deleteAutomationConfirmationId,
|
|
250
|
-
label: ( localize(
|
|
250
|
+
label: ( localize(3388, "Delete")),
|
|
251
251
|
kind: ConfirmationOptionKind.Approve
|
|
252
252
|
}, {
|
|
253
253
|
id: "cancel",
|
|
254
|
-
label: ( localize(
|
|
254
|
+
label: ( localize(3389, "Cancel")),
|
|
255
255
|
kind: ConfirmationOptionKind.Deny
|
|
256
256
|
}]
|
|
257
257
|
}
|
|
@@ -291,7 +291,7 @@ let DeleteAutomationTool = class DeleteAutomationTool {
|
|
|
291
291
|
name: automation.name
|
|
292
292
|
}
|
|
293
293
|
}));
|
|
294
|
-
result.toolResultMessage = ( localize(
|
|
294
|
+
result.toolResultMessage = ( localize(3390, "Deleted automation {0}", automation.name));
|
|
295
295
|
return result;
|
|
296
296
|
}
|
|
297
297
|
createMutationGuard(token) {
|
|
@@ -318,8 +318,8 @@ let ConfigureAutomationTool = class ConfigureAutomationTool {
|
|
|
318
318
|
toolReferenceName: ConfigureAutomationToolReferenceName,
|
|
319
319
|
canBeReferencedInPrompt: false,
|
|
320
320
|
icon: Codicon.calendar,
|
|
321
|
-
displayName: ( localize(
|
|
322
|
-
userDescription: ( localize(
|
|
321
|
+
displayName: ( localize(3391, "Configure Automation")),
|
|
322
|
+
userDescription: ( localize(3392, "Create or update an automation")),
|
|
323
323
|
modelDescription: `Create or update a persistent scheduled automation.
|
|
324
324
|
|
|
325
325
|
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.
|
|
@@ -472,16 +472,16 @@ The change uses the current tool-approval policy. When approval is required, the
|
|
|
472
472
|
const proposal = this.parseProposal(context.parameters, context.chatSessionResource);
|
|
473
473
|
const isUpdate = proposal.kind === "update";
|
|
474
474
|
return {
|
|
475
|
-
invocationMessage: isUpdate ? ( localize(
|
|
476
|
-
pastTenseMessage: isUpdate ? ( localize(
|
|
475
|
+
invocationMessage: isUpdate ? ( localize(3393, "Configuring automation")) : ( localize(3394, "Configuring a new automation")),
|
|
476
|
+
pastTenseMessage: isUpdate ? ( localize(3395, "Configured automation")) : ( localize(3396, "Configured a new automation")),
|
|
477
477
|
confirmationMessages: {
|
|
478
|
-
title: isUpdate ? ( localize(
|
|
478
|
+
title: isUpdate ? ( localize(3397, "Update Automation?")) : ( localize(3398, "Create Automation?")),
|
|
479
479
|
message: isUpdate ? ( new MarkdownString(( localize(
|
|
480
|
-
|
|
480
|
+
3399,
|
|
481
481
|
"Apply the proposed changes to **{0}** (`{1}`)?",
|
|
482
482
|
proposal.existing.name,
|
|
483
483
|
proposal.existing.id
|
|
484
|
-
)))) : ( new MarkdownString(( localize(
|
|
484
|
+
)))) : ( new MarkdownString(( localize(3400, "Create the automation **{0}**?", proposal.initialValues.name))))
|
|
485
485
|
},
|
|
486
486
|
toolSpecificData: proposal.kind === "update" ? {
|
|
487
487
|
kind: "automationConfiguration",
|
|
@@ -550,7 +550,7 @@ The change uses the current tool-approval policy. When approval is required, the
|
|
|
550
550
|
automation: toAutomationToolOutput(created)
|
|
551
551
|
}, undefined, 2));
|
|
552
552
|
result.toolSpecificData = toAutomationConfiguredData(created, "created");
|
|
553
|
-
result.toolResultMessage = ( localize(
|
|
553
|
+
result.toolResultMessage = ( localize(3401, "Created automation {0}", created.name));
|
|
554
554
|
return result;
|
|
555
555
|
}
|
|
556
556
|
async applyUpdate(existing, patch, token) {
|
|
@@ -575,7 +575,7 @@ The change uses the current tool-approval policy. When approval is required, the
|
|
|
575
575
|
automation: toAutomationToolOutput(updated)
|
|
576
576
|
}, undefined, 2));
|
|
577
577
|
result.toolSpecificData = toAutomationConfiguredData(updated, "updated");
|
|
578
|
-
result.toolResultMessage = ( localize(
|
|
578
|
+
result.toolResultMessage = ( localize(3402, "Updated automation {0}", updated.name));
|
|
579
579
|
return result;
|
|
580
580
|
}
|
|
581
581
|
createMutationGuard(token) {
|
|
@@ -1076,7 +1076,7 @@ function automationToolError(message) {
|
|
|
1076
1076
|
value: message
|
|
1077
1077
|
}],
|
|
1078
1078
|
toolResultError: message,
|
|
1079
|
-
toolResultMessage: ( localize(
|
|
1079
|
+
toolResultMessage: ( localize(3403, "Automation request failed"))
|
|
1080
1080
|
};
|
|
1081
1081
|
}
|
|
1082
1082
|
function automationToolCancelled() {
|
|
@@ -1084,7 +1084,7 @@ function automationToolCancelled() {
|
|
|
1084
1084
|
status: "cancelled",
|
|
1085
1085
|
message: "The automation change was cancelled. No changes were made."
|
|
1086
1086
|
}));
|
|
1087
|
-
result.toolResultMessage = ( localize(
|
|
1087
|
+
result.toolResultMessage = ( localize(3404, "Automation change cancelled"));
|
|
1088
1088
|
return result;
|
|
1089
1089
|
}
|
|
1090
1090
|
function automationDeleteCancelled() {
|
|
@@ -1092,7 +1092,7 @@ function automationDeleteCancelled() {
|
|
|
1092
1092
|
status: "cancelled",
|
|
1093
1093
|
message: "The automation was not deleted."
|
|
1094
1094
|
}));
|
|
1095
|
-
result.toolResultMessage = ( localize(
|
|
1095
|
+
result.toolResultMessage = ( localize(3405, "Automation deletion cancelled"));
|
|
1096
1096
|
return result;
|
|
1097
1097
|
}
|
|
1098
1098
|
function automationRunCancelled() {
|
|
@@ -1100,7 +1100,7 @@ function automationRunCancelled() {
|
|
|
1100
1100
|
status: "cancelled",
|
|
1101
1101
|
message: "The automation was not started."
|
|
1102
1102
|
}));
|
|
1103
|
-
result.toolResultMessage = ( localize(
|
|
1103
|
+
result.toolResultMessage = ( localize(3406, "Automation run cancelled"));
|
|
1104
1104
|
return result;
|
|
1105
1105
|
}
|
|
1106
1106
|
function automationAlreadyRunning(automation, run) {
|
|
@@ -1116,7 +1116,7 @@ function automationAlreadyRunning(automation, run) {
|
|
|
1116
1116
|
sessionResource: run.sessionResource?.toString() ?? null
|
|
1117
1117
|
}
|
|
1118
1118
|
}, undefined, 2));
|
|
1119
|
-
result.toolResultMessage = ( localize(
|
|
1119
|
+
result.toolResultMessage = ( localize(3407, "Automation {0} is already running", automation.name));
|
|
1120
1120
|
return result;
|
|
1121
1121
|
}
|
|
1122
1122
|
function automationNotStarted(automation, dispatch) {
|
|
@@ -37,7 +37,7 @@ registerWorkbenchContribution2(
|
|
|
37
37
|
scope: ConfigurationScope.MACHINE,
|
|
38
38
|
tags: ["experimental", "advanced"],
|
|
39
39
|
description: ( localize(
|
|
40
|
-
|
|
40
|
+
3408,
|
|
41
41
|
"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
42
|
)),
|
|
43
43
|
experiment: {
|
|
@@ -54,7 +54,7 @@ registerWorkbenchContribution2(
|
|
|
54
54
|
scope: ConfigurationScope.MACHINE,
|
|
55
55
|
tags: ["experimental", "advanced"],
|
|
56
56
|
description: ( localize(
|
|
57
|
-
|
|
57
|
+
3409,
|
|
58
58
|
"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
59
|
)),
|
|
60
60
|
included: product.quality !== "stable",
|
|
@@ -226,7 +226,7 @@ let ProviderAutomationService = class ProviderAutomationService extends Disposab
|
|
|
226
226
|
}
|
|
227
227
|
createActiveRunTransferError() {
|
|
228
228
|
return (new Error(localize(
|
|
229
|
-
|
|
229
|
+
3410,
|
|
230
230
|
"Wait for the active run to finish before changing this automation's agent."
|
|
231
231
|
)));
|
|
232
232
|
}
|
|
@@ -41,7 +41,7 @@ let SinglePaneChangesEditorContribution = class SinglePaneChangesEditorContribut
|
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
43
|
this._register(( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
|
|
44
|
-
EditorPaneDescriptor.create(SessionChangesEditor, SessionChangesEditor.ID, ( localize(
|
|
44
|
+
EditorPaneDescriptor.create(SessionChangesEditor, SessionChangesEditor.ID, ( localize(3411, "Changes"))),
|
|
45
45
|
[( new SyncDescriptor(SessionChangesEditorInput))]
|
|
46
46
|
));
|
|
47
47
|
this._register(( Registry.as(EditorExtensions.EditorFactory)).registerEditorSerializer(SessionChangesEditorInput.ID, SessionChangesEditorSerializer));
|
|
@@ -54,11 +54,11 @@ registerWorkbenchContribution2(
|
|
|
54
54
|
WorkbenchPhase.BlockStartup
|
|
55
55
|
);
|
|
56
56
|
AccessibleViewRegistry.register(( new SessionsChangesAccessibilityHelp()));
|
|
57
|
-
const changesViewIcon = registerIcon("changes-view-icon", Codicon.gitCompare, ( localize2(
|
|
57
|
+
const changesViewIcon = registerIcon("changes-view-icon", Codicon.gitCompare, ( localize2(3412, "View icon for the Changes view.")).value);
|
|
58
58
|
const viewContainersRegistry = ( Registry.as(Extensions.ViewContainersRegistry));
|
|
59
59
|
const changesViewContainer = viewContainersRegistry.registerViewContainer({
|
|
60
60
|
id: CHANGES_VIEW_CONTAINER_ID,
|
|
61
|
-
title: ( localize2(
|
|
61
|
+
title: ( localize2(3413, "Changes")),
|
|
62
62
|
icon: changesViewIcon,
|
|
63
63
|
order: 10,
|
|
64
64
|
ctorDescriptor: ( new SyncDescriptor(ChangesViewPaneContainer)),
|
|
@@ -66,7 +66,7 @@ const changesViewContainer = viewContainersRegistry.registerViewContainer({
|
|
|
66
66
|
hideIfEmpty: true,
|
|
67
67
|
openCommandActionDescriptor: {
|
|
68
68
|
id: CHANGES_VIEW_CONTAINER_ID,
|
|
69
|
-
mnemonicTitle: ( localize(
|
|
69
|
+
mnemonicTitle: ( localize(3414, "Chan&&ges")),
|
|
70
70
|
keybindings: {
|
|
71
71
|
primary: 0,
|
|
72
72
|
win: {
|
|
@@ -94,7 +94,7 @@ let ChangesViewContribution = class ChangesViewContribution extends Disposable {
|
|
|
94
94
|
const ctor = layoutService.isSinglePaneLayoutEnabled ? SinglePaneChangesViewPane : ChangesViewPane;
|
|
95
95
|
viewsRegistry.registerViews([{
|
|
96
96
|
id: CHANGES_VIEW_ID,
|
|
97
|
-
name: ( localize2(
|
|
97
|
+
name: ( localize2(3413, "Changes")),
|
|
98
98
|
containerIcon: changesViewIcon,
|
|
99
99
|
ctorDescriptor: ( new SyncDescriptor(ctor)),
|
|
100
100
|
canToggleVisibility: false,
|
|
@@ -119,7 +119,7 @@ registerWorkbenchContribution2(
|
|
|
119
119
|
type: "boolean",
|
|
120
120
|
tags: ["preview"],
|
|
121
121
|
description: ( localize(
|
|
122
|
-
|
|
122
|
+
3415,
|
|
123
123
|
"Controls whether clicking a file in the Changes view opens a single file diff editor instead of the multi file diff editor."
|
|
124
124
|
)),
|
|
125
125
|
default: false
|
|
@@ -51,7 +51,7 @@ class ViewAllChangesAction extends Action2 {
|
|
|
51
51
|
constructor() {
|
|
52
52
|
super({
|
|
53
53
|
id: ViewAllChangesAction.ID,
|
|
54
|
-
title: ( localize2(
|
|
54
|
+
title: ( localize2(3416, "Changes")),
|
|
55
55
|
icon: Codicon.diffMultiple,
|
|
56
56
|
f1: false
|
|
57
57
|
});
|
|
@@ -81,7 +81,7 @@ class OpenChangedFileAction extends Action2 {
|
|
|
81
81
|
constructor() {
|
|
82
82
|
super({
|
|
83
83
|
id: OpenChangedFileAction.ID,
|
|
84
|
-
title: ( localize2(
|
|
84
|
+
title: ( localize2(3417, "Open File")),
|
|
85
85
|
icon: Codicon.goToFile,
|
|
86
86
|
f1: false,
|
|
87
87
|
menu: {
|
|
@@ -128,7 +128,7 @@ class ExpandFullFileAction extends Action2 {
|
|
|
128
128
|
constructor() {
|
|
129
129
|
super({
|
|
130
130
|
id: ExpandFullFileAction.ID,
|
|
131
|
-
title: ( localize2(
|
|
131
|
+
title: ( localize2(3418, "Expand Full File")),
|
|
132
132
|
icon: Codicon.unfold,
|
|
133
133
|
f1: false,
|
|
134
134
|
menu: {
|
|
@@ -155,7 +155,7 @@ class CollapseUnchangedRegionsAction extends Action2 {
|
|
|
155
155
|
constructor() {
|
|
156
156
|
super({
|
|
157
157
|
id: CollapseUnchangedRegionsAction.ID,
|
|
158
|
-
title: ( localize2(
|
|
158
|
+
title: ( localize2(3419, "Collapse Unchanged Regions")),
|
|
159
159
|
icon: Codicon.fold,
|
|
160
160
|
f1: false,
|
|
161
161
|
menu: {
|
|
@@ -42,7 +42,7 @@ import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base
|
|
|
42
42
|
|
|
43
43
|
const openChangesViewActionOptions = {
|
|
44
44
|
id: "workbench.action.agentSessions.openChangesView",
|
|
45
|
-
title: ( localize2(
|
|
45
|
+
title: ( localize2(3434, "Changes")),
|
|
46
46
|
icon: Codicon.diffMultiple,
|
|
47
47
|
f1: false
|
|
48
48
|
};
|
|
@@ -103,7 +103,7 @@ class OpenPullRequestAction extends Action2 {
|
|
|
103
103
|
constructor() {
|
|
104
104
|
super({
|
|
105
105
|
id: OpenPullRequestAction.ID,
|
|
106
|
-
title: ( localize2(
|
|
106
|
+
title: ( localize2(3435, "Open Pull Request")),
|
|
107
107
|
icon: Codicon.gitPullRequest,
|
|
108
108
|
f1: false,
|
|
109
109
|
menu: {
|
|
@@ -178,7 +178,7 @@ class ToggleSessionsEditorWordWrapAction extends Action2 {
|
|
|
178
178
|
constructor() {
|
|
179
179
|
super({
|
|
180
180
|
id: ToggleSessionsEditorWordWrapAction.ID,
|
|
181
|
-
title: ( localize2(
|
|
181
|
+
title: ( localize2(3436, "Word Wrap")),
|
|
182
182
|
f1: false,
|
|
183
183
|
menu: [{
|
|
184
184
|
id: Menus.SessionsEditorTitle,
|
|
@@ -205,7 +205,7 @@ class ToggleSessionsDiffEditorWordWrapAction extends Action2 {
|
|
|
205
205
|
constructor() {
|
|
206
206
|
super({
|
|
207
207
|
id: ToggleSessionsDiffEditorWordWrapAction.ID,
|
|
208
|
-
title: ( localize2(
|
|
208
|
+
title: ( localize2(3437, "Word Wrap")),
|
|
209
209
|
f1: false,
|
|
210
210
|
menu: [{
|
|
211
211
|
id: Menus.SessionsEditorTitle,
|
|
@@ -261,7 +261,7 @@ class ChangesHeaderActionsAction extends Action2 {
|
|
|
261
261
|
constructor() {
|
|
262
262
|
super({
|
|
263
263
|
id: CHANGES_HEADER_ACTIONS_ID,
|
|
264
|
-
title: ( localize2(
|
|
264
|
+
title: ( localize2(3438, "Changes Actions")),
|
|
265
265
|
f1: false,
|
|
266
266
|
menu: {
|
|
267
267
|
id: Menus.TitleBarSessionMenu,
|
|
@@ -281,7 +281,7 @@ class SetChangesListViewModeAction extends Action2 {
|
|
|
281
281
|
constructor() {
|
|
282
282
|
super({
|
|
283
283
|
id: SetChangesListViewModeAction.ID,
|
|
284
|
-
title: ( localize2(
|
|
284
|
+
title: ( localize2(3439, "View as List")),
|
|
285
285
|
icon: Codicon.listFlat,
|
|
286
286
|
f1: false,
|
|
287
287
|
menu: {
|
|
@@ -305,7 +305,7 @@ class SetChangesTreeViewModeAction extends Action2 {
|
|
|
305
305
|
constructor() {
|
|
306
306
|
super({
|
|
307
307
|
id: SetChangesTreeViewModeAction.ID,
|
|
308
|
-
title: ( localize2(
|
|
308
|
+
title: ( localize2(3440, "View as Tree")),
|
|
309
309
|
icon: Codicon.listTree,
|
|
310
310
|
f1: false,
|
|
311
311
|
menu: {
|
|
@@ -329,7 +329,7 @@ class CollapseAllSessionChangesDiffsAction extends Action2 {
|
|
|
329
329
|
constructor() {
|
|
330
330
|
super({
|
|
331
331
|
id: CollapseAllSessionChangesDiffsAction.ID,
|
|
332
|
-
title: ( localize2(
|
|
332
|
+
title: ( localize2(3441, "Collapse All Diffs")),
|
|
333
333
|
icon: Codicon.collapseAll,
|
|
334
334
|
f1: false,
|
|
335
335
|
menu: {
|
|
@@ -358,7 +358,7 @@ class ExpandAllSessionChangesDiffsAction extends Action2 {
|
|
|
358
358
|
constructor() {
|
|
359
359
|
super({
|
|
360
360
|
id: ExpandAllSessionChangesDiffsAction.ID,
|
|
361
|
-
title: ( localize2(
|
|
361
|
+
title: ( localize2(3442, "Expand All Diffs")),
|
|
362
362
|
icon: Codicon.expandAll,
|
|
363
363
|
f1: false,
|
|
364
364
|
menu: {
|
|
@@ -379,14 +379,14 @@ class ExpandAllSessionChangesDiffsAction extends Action2 {
|
|
|
379
379
|
registerAction2(ExpandAllSessionChangesDiffsAction);
|
|
380
380
|
MenuRegistry.appendMenuItem(Menus.SessionsEditorHeaderLayout, {
|
|
381
381
|
submenu: Menus.SessionsDiffEditorView,
|
|
382
|
-
title: ( localize(
|
|
382
|
+
title: ( localize(3443, "Diff View")),
|
|
383
383
|
group: "secondary/1_diff",
|
|
384
384
|
order: 20,
|
|
385
385
|
when: singlePaneDiffEditorTitleVisible
|
|
386
386
|
});
|
|
387
387
|
MenuRegistry.appendMenuItem(MenuId.EditorTitle, {
|
|
388
388
|
submenu: Menus.SessionsDiffEditorView,
|
|
389
|
-
title: ( localize(
|
|
389
|
+
title: ( localize(3443, "Diff View")),
|
|
390
390
|
group: "1_diff",
|
|
391
391
|
order: 10,
|
|
392
392
|
when: ( ContextKeyExpr.and(agentsDiffEditorActive, ( SinglePaneLayoutEnabledContext.negate())))
|
|
@@ -394,7 +394,7 @@ MenuRegistry.appendMenuItem(MenuId.EditorTitle, {
|
|
|
394
394
|
MenuRegistry.appendMenuItem(Menus.SessionsDiffEditorView, {
|
|
395
395
|
command: {
|
|
396
396
|
id: SET_DIFF_VIEW_MODE_INLINE,
|
|
397
|
-
title: ( localize(
|
|
397
|
+
title: ( localize(3444, "Inline")),
|
|
398
398
|
toggled: ( SessionsDiffViewModeContext.isEqualTo("inline"))
|
|
399
399
|
},
|
|
400
400
|
group: "1_view",
|
|
@@ -403,13 +403,13 @@ MenuRegistry.appendMenuItem(Menus.SessionsDiffEditorView, {
|
|
|
403
403
|
MenuRegistry.appendMenuItem(Menus.SessionsDiffEditorView, {
|
|
404
404
|
command: {
|
|
405
405
|
id: SET_DIFF_VIEW_MODE_SIDE_BY_SIDE,
|
|
406
|
-
title: ( localize(
|
|
406
|
+
title: ( localize(3445, "Side by Side")),
|
|
407
407
|
toggled: ( SessionsDiffViewModeContext.isEqualTo("sideBySide"))
|
|
408
408
|
},
|
|
409
409
|
group: "1_view",
|
|
410
410
|
order: 2
|
|
411
411
|
});
|
|
412
|
-
for (const [title, when] of [[( localize(
|
|
412
|
+
for (const [title, when] of [[( localize(3446, "Automatic (Currently Side by Side)")), EditorContextKeys.diffEditorAutomaticRenderSideBySide], [( localize(3447, "Automatic (Currently Inline)")), ( EditorContextKeys.diffEditorAutomaticRenderSideBySide.toNegated())]]) {
|
|
413
413
|
MenuRegistry.appendMenuItem(Menus.SessionsDiffEditorView, {
|
|
414
414
|
command: {
|
|
415
415
|
id: SET_DIFF_VIEW_MODE_AUTOMATIC,
|
|
@@ -424,7 +424,7 @@ for (const [title, when] of [[( localize(3444, "Automatic (Currently Side by Sid
|
|
|
424
424
|
MenuRegistry.appendMenuItem(Menus.SessionsDiffEditorView, {
|
|
425
425
|
command: {
|
|
426
426
|
id: DIFF_VIEW_MODE_INLINE_TEMPORARY,
|
|
427
|
-
title: ( localize(
|
|
427
|
+
title: ( localize(3448, "Inline (Temporary)")),
|
|
428
428
|
toggled: EditorContextKeys.diffEditorTemporaryInlineMode,
|
|
429
429
|
precondition: ( ContextKeyExpr.false())
|
|
430
430
|
},
|
|
@@ -435,8 +435,8 @@ MenuRegistry.appendMenuItem(Menus.SessionsDiffEditorView, {
|
|
|
435
435
|
MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
|
|
436
436
|
command: {
|
|
437
437
|
id: TOGGLE_DIFF_SIDE_BY_SIDE,
|
|
438
|
-
title: ( localize2(
|
|
439
|
-
category: ( localize2(
|
|
438
|
+
title: ( localize2(3449, "Toggle Preferred Diff View")),
|
|
439
|
+
category: ( localize2(3450, "Changes"))
|
|
440
440
|
},
|
|
441
441
|
when: agentsDiffEditorActive
|
|
442
442
|
});
|
|
@@ -447,7 +447,7 @@ class OpenChangesAction extends Action2 {
|
|
|
447
447
|
constructor() {
|
|
448
448
|
super({
|
|
449
449
|
id: OpenChangesAction.ID,
|
|
450
|
-
title: ( localize2(
|
|
450
|
+
title: ( localize2(3451, "Open Changes")),
|
|
451
451
|
icon: Codicon.gitCompare,
|
|
452
452
|
f1: false
|
|
453
453
|
});
|
|
@@ -476,7 +476,7 @@ class OpenFileAction extends Action2 {
|
|
|
476
476
|
constructor() {
|
|
477
477
|
super({
|
|
478
478
|
id: OpenFileAction.ID,
|
|
479
|
-
title: ( localize2(
|
|
479
|
+
title: ( localize2(3452, "Open File")),
|
|
480
480
|
icon: Codicon.goToFile,
|
|
481
481
|
f1: false,
|
|
482
482
|
menu: [
|
|
@@ -492,7 +492,7 @@ class OpenFileAction extends Action2 {
|
|
|
492
492
|
order: 1,
|
|
493
493
|
alt: {
|
|
494
494
|
id: OpenChangesAction.ID,
|
|
495
|
-
title: ( localize2(
|
|
495
|
+
title: ( localize2(3451, "Open Changes")),
|
|
496
496
|
icon: Codicon.gitCompare
|
|
497
497
|
},
|
|
498
498
|
when: ( ContextKeyExpr.and(IsSessionsWindowContext, ( ChangesContextKeys.ChangeKind.isEqualTo("file")), ( openSingleFileDiffEnabled.negate())))
|
|
@@ -14,7 +14,7 @@ class ChangesetReviewAction extends Action2 {
|
|
|
14
14
|
constructor() {
|
|
15
15
|
super({
|
|
16
16
|
id: CHANGESET_REVIEW_ACTION_ID,
|
|
17
|
-
title: ( localize(
|
|
17
|
+
title: ( localize(3453, "Viewed")),
|
|
18
18
|
f1: false,
|
|
19
19
|
toggled: {
|
|
20
20
|
condition: ContextKeyExpr.in(SessionChangesFileResourceContext.key, ChangesetReviewedFilesContext.key)
|
|
@@ -45,16 +45,16 @@ function hasSyncChangesCounts(session, reader) {
|
|
|
45
45
|
}
|
|
46
46
|
function getSyncChangesTooltip(incomingChanges, outgoingChanges, upstreamBranchName) {
|
|
47
47
|
if (!upstreamBranchName || (incomingChanges === 0 && outgoingChanges === 0)) {
|
|
48
|
-
return localize(
|
|
48
|
+
return localize(3545, "Synchronize Changes");
|
|
49
49
|
}
|
|
50
50
|
if (outgoingChanges === 0) {
|
|
51
|
-
return localize(
|
|
51
|
+
return localize(3546, "Pull {0} commits from {1}", incomingChanges, upstreamBranchName);
|
|
52
52
|
}
|
|
53
53
|
if (incomingChanges === 0) {
|
|
54
|
-
return localize(
|
|
54
|
+
return localize(3547, "Push {0} commits to {1}", outgoingChanges, upstreamBranchName);
|
|
55
55
|
}
|
|
56
56
|
return localize(
|
|
57
|
-
|
|
57
|
+
3548,
|
|
58
58
|
"Pull {0} and push {1} commits between {2}",
|
|
59
59
|
incomingChanges,
|
|
60
60
|
outgoingChanges,
|
|
@@ -68,7 +68,7 @@ class SessionSyncChangesAction extends Action2 {
|
|
|
68
68
|
constructor() {
|
|
69
69
|
super({
|
|
70
70
|
id: SessionSyncChangesAction.ID,
|
|
71
|
-
title: ( localize2(
|
|
71
|
+
title: ( localize2(3549, "Sync Changes")),
|
|
72
72
|
icon: Codicon.sync,
|
|
73
73
|
f1: false
|
|
74
74
|
});
|
|
@@ -77,7 +77,7 @@ class SessionSyncChangesAction extends Action2 {
|
|
|
77
77
|
const session = context ? context.session : accessor.get(ISessionsService).activeSession.get();
|
|
78
78
|
const sync = getSyncChangesOperation(session);
|
|
79
79
|
if (!sync || !isSyncChangesEnabled(sync.operation)) {
|
|
80
|
-
throw ( new Error(( localize(
|
|
80
|
+
throw ( new Error(( localize(3550, "Sync Changes is no longer available for this session."))));
|
|
81
81
|
}
|
|
82
82
|
await sync.changeset.invokeOperation(sync.operation.id);
|
|
83
83
|
}
|
|
@@ -103,10 +103,10 @@ let SessionSyncChangesActionViewItem = class SessionSyncChangesActionViewItem ex
|
|
|
103
103
|
if (incomingChanges === 0 && outgoingChanges === 0) {
|
|
104
104
|
return;
|
|
105
105
|
}
|
|
106
|
-
this._countsLabel = incomingChanges > 0 ? outgoingChanges > 0 ? ( localize(
|
|
106
|
+
this._countsLabel = incomingChanges > 0 ? outgoingChanges > 0 ? ( localize(3551, "{0}↓ {1}↑", incomingChanges, outgoingChanges)) : ( localize(3552, "{0}↓", incomingChanges)) : ( localize(3553, "{0}↑", outgoingChanges));
|
|
107
107
|
this._running = operation?.status === SessionChangesetOperationStatus.Running;
|
|
108
108
|
this._icon = this._running ? ThemeIcon.modify(Codicon.sync, "spin") : operation?.icon ?? Codicon.sync;
|
|
109
|
-
this._tooltip = this._running ? ( localize(
|
|
109
|
+
this._tooltip = this._running ? ( localize(3554, "Synchronizing Changes...")) : getSyncChangesTooltip(incomingChanges, outgoingChanges, repository?.upstreamBranchName);
|
|
110
110
|
this.updateLabel();
|
|
111
111
|
this.updateTooltip();
|
|
112
112
|
}));
|
|
@@ -164,7 +164,7 @@ let SessionSyncChangesContribution = class SessionSyncChangesContribution extend
|
|
|
164
164
|
reader.store.add(MenuRegistry.appendMenuItem(Menus.NewSessionRepositoryConfig, {
|
|
165
165
|
command: {
|
|
166
166
|
id: SessionSyncChangesAction.ID,
|
|
167
|
-
title: ( localize(
|
|
167
|
+
title: ( localize(3549, "Sync Changes")),
|
|
168
168
|
icon: Codicon.sync,
|
|
169
169
|
precondition: enabled ? undefined : ( ContextKeyExpr.false())
|
|
170
170
|
},
|