@codingame/monaco-vscode-workbench-service-override 37.6.0 → 37.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +2 -2
- package/package.json +10 -10
- package/session.js +2 -2
- package/vscode/src/vs/sessions/contrib/editor/browser/addTabActions.js +5 -3
- package/vscode/src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.js +3 -22
- 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.d.ts +46 -70
- package/vscode/src/vs/workbench/browser/layout.js +243 -44
- package/vscode/src/vs/workbench/browser/workbench.d.ts +1 -1
- package/vscode/src/vs/workbench/browser/workbench.js +3 -4
package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js
CHANGED
|
@@ -26,7 +26,7 @@ registerAction2(class CopyAgentHostSessionLinkAction extends Action2 {
|
|
|
26
26
|
constructor() {
|
|
27
27
|
super({
|
|
28
28
|
id: COPY_AGENT_HOST_SESSION_LINK_COMMAND_ID,
|
|
29
|
-
title: ( localize2(
|
|
29
|
+
title: ( localize2(4209, "Copy Link")),
|
|
30
30
|
menu: [{
|
|
31
31
|
id: SessionItemContextMenuId,
|
|
32
32
|
group: "2_open",
|
|
@@ -52,7 +52,7 @@ registerAction2(class CopyAgentHostChatLinkAction extends Action2 {
|
|
|
52
52
|
constructor() {
|
|
53
53
|
super({
|
|
54
54
|
id: COPY_AGENT_HOST_CHAT_LINK_COMMAND_ID,
|
|
55
|
-
title: ( localize2(
|
|
55
|
+
title: ( localize2(4210, "Copy Link")),
|
|
56
56
|
menu: [{
|
|
57
57
|
id: Menus.SessionChatItemContext,
|
|
58
58
|
group: "2_copy",
|
|
@@ -74,7 +74,7 @@ registerAction2(class CopySessionBranchNameAction extends Action2 {
|
|
|
74
74
|
constructor() {
|
|
75
75
|
super({
|
|
76
76
|
id: "sessionsViewPane.agentHost.copySessionBranchName",
|
|
77
|
-
title: ( localize2(
|
|
77
|
+
title: ( localize2(4211, "Copy Branch Name")),
|
|
78
78
|
menu: [{
|
|
79
79
|
id: SessionItemContextMenuId,
|
|
80
80
|
group: "2_open",
|
package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js
CHANGED
|
@@ -86,7 +86,7 @@ registerAction2(class extends Action2 {
|
|
|
86
86
|
constructor() {
|
|
87
87
|
super({
|
|
88
88
|
id: "sessions.agentHost.sessionConfigPicker",
|
|
89
|
-
title: ( localize2(
|
|
89
|
+
title: ( localize2(4214, "Session Configuration")),
|
|
90
90
|
f1: false,
|
|
91
91
|
menu: [{
|
|
92
92
|
id: Menus.NewSessionRepositoryConfig,
|
|
@@ -125,7 +125,7 @@ function getConfigIcon(property, value, hasUncommittedChanges = false) {
|
|
|
125
125
|
return undefined;
|
|
126
126
|
}
|
|
127
127
|
function formatUncommittedChanges(count) {
|
|
128
|
-
return count === 1 ? ( localize(
|
|
128
|
+
return count === 1 ? ( localize(4215, "1 uncommitted file")) : ( localize(4216, "{0} uncommitted files", count));
|
|
129
129
|
}
|
|
130
130
|
function getBranchUncommittedChanges(branchName, repositoryBranchName, repositoryUncommittedChanges) {
|
|
131
131
|
return branchName === repositoryBranchName && (repositoryUncommittedChanges ?? 0) > 0 ? repositoryUncommittedChanges : undefined;
|
|
@@ -147,7 +147,7 @@ function toActionItems(
|
|
|
147
147
|
return {
|
|
148
148
|
kind: ActionListItemKind.Action,
|
|
149
149
|
label: item.label,
|
|
150
|
-
detail: disabled ? ( localize(
|
|
150
|
+
detail: disabled ? ( localize(4217, "Disabled by your organization. Contact your administrator.")) : uncommittedChangesDescription ?? item.description,
|
|
151
151
|
group: {
|
|
152
152
|
title: "",
|
|
153
153
|
icon: getConfigIcon(property, item.value, uncommittedChanges !== undefined)
|
|
@@ -160,7 +160,7 @@ function toActionItems(
|
|
|
160
160
|
},
|
|
161
161
|
toolbarActions: property === SessionConfigKey.Branch && item.value === repositoryBranchName && onShowChanges ? [toAction({
|
|
162
162
|
id: "sessions.agentHost.showBranchChanges",
|
|
163
|
-
label: ( localize(
|
|
163
|
+
label: ( localize(4218, "Show Changes")),
|
|
164
164
|
class: ThemeIcon.asClassName(Codicon.diffMultiple),
|
|
165
165
|
run: onShowChanges
|
|
166
166
|
})] : undefined
|
|
@@ -236,9 +236,9 @@ async function confirmAutoApproveLevel(value, label, dialogService, storageServi
|
|
|
236
236
|
}
|
|
237
237
|
function triggerAriaLabel(title, label, isReadOnly, hasUncommittedChanges) {
|
|
238
238
|
if (hasUncommittedChanges) {
|
|
239
|
-
return isReadOnly ? ( localize(
|
|
239
|
+
return isReadOnly ? ( localize(4219, "{0}: {1}, Uncommitted Files, Read-Only", title, label)) : ( localize(4220, "{0}: {1}, Uncommitted Files", title, label));
|
|
240
240
|
}
|
|
241
|
-
return isReadOnly ? ( localize(
|
|
241
|
+
return isReadOnly ? ( localize(4221, "{0}: {1}, Read-Only", title, label)) : ( localize(4222, "{0}: {1}", title, label));
|
|
242
242
|
}
|
|
243
243
|
class ConfigCheckboxControl extends Disposable {
|
|
244
244
|
constructor(sessionId, label, className, _hoverService, onToggle, onboardingTarget) {
|
|
@@ -552,16 +552,16 @@ let AgentHostSessionConfigPicker = class AgentHostSessionConfigPicker extends Di
|
|
|
552
552
|
} = await this._dialogService.prompt({
|
|
553
553
|
type: "warning",
|
|
554
554
|
message: ( localize(
|
|
555
|
-
|
|
555
|
+
4223,
|
|
556
556
|
"Your local changes would be overwritten when checking out '{0}'.",
|
|
557
557
|
treeish
|
|
558
558
|
)),
|
|
559
559
|
detail: ( new MarkdownString(errorMessage)),
|
|
560
560
|
buttons: [{
|
|
561
|
-
label: ( localize(
|
|
561
|
+
label: ( localize(4224, "Stash & Checkout")),
|
|
562
562
|
run: () => CheckoutOperationPreAction.Stash
|
|
563
563
|
}, {
|
|
564
|
-
label: ( localize(
|
|
564
|
+
label: ( localize(4225, "Commit & Checkout")),
|
|
565
565
|
run: () => CheckoutOperationPreAction.Commit
|
|
566
566
|
}],
|
|
567
567
|
cancelButton: true
|
|
@@ -620,7 +620,7 @@ let AgentHostSessionConfigPicker = class AgentHostSessionConfigPicker extends Di
|
|
|
620
620
|
triggerAriaLabel(schema.title, label, isReadOnly, hasUncommittedChanges)
|
|
621
621
|
);
|
|
622
622
|
const branchName = schema.description ?? schema.title;
|
|
623
|
-
const content = !hasUncommittedChanges ? branchName : uncommittedChanges === 1 ? ( localize(
|
|
623
|
+
const content = !hasUncommittedChanges ? branchName : uncommittedChanges === 1 ? ( localize(4226, "{0}, {1} uncommitted file", branchName, uncommittedChanges)) : ( localize(4227, "{0}, {1} uncommitted files", branchName, uncommittedChanges));
|
|
624
624
|
if (appliedHoverContent !== content) {
|
|
625
625
|
appliedHoverContent = content;
|
|
626
626
|
hover.clear();
|
|
@@ -634,11 +634,11 @@ let AgentHostSessionConfigPicker = class AgentHostSessionConfigPicker extends Di
|
|
|
634
634
|
return !isPhoneLayout(this._layoutService) && Array.isArray(schema.enum) && schema.enum.includes("worktree") && schema.enum.includes("folder");
|
|
635
635
|
}
|
|
636
636
|
_renderIsolationCheckbox(provider, sessionId, schema, value, isReadOnly, isLoading) {
|
|
637
|
-
const label = ( localize(
|
|
637
|
+
const label = ( localize(4228, "New Worktree"));
|
|
638
638
|
const worktreeIndex = schema.enum?.indexOf("worktree") ?? -1;
|
|
639
639
|
const checked = value === "worktree";
|
|
640
640
|
const combinationDisabled = !this._isDevContainerWorktreeEnabled() && provider.isDevContainerEnabled?.(sessionId) === true && !checked;
|
|
641
|
-
const tooltip = combinationDisabled ? ( localize(
|
|
641
|
+
const tooltip = combinationDisabled ? ( localize(4229, "New Worktree cannot be combined with Dev Container execution.")) : (worktreeIndex >= 0 ? schema.enumDescriptions?.[worktreeIndex] : undefined) ?? schema.description ?? schema.title;
|
|
642
642
|
let control = this._isolationCheckbox.value;
|
|
643
643
|
if (!control || control.sessionId !== sessionId) {
|
|
644
644
|
control = ( new ConfigCheckboxControl(
|
|
@@ -761,12 +761,12 @@ let AgentHostSessionConfigPicker = class AgentHostSessionConfigPicker extends Di
|
|
|
761
761
|
undefined,
|
|
762
762
|
[],
|
|
763
763
|
{
|
|
764
|
-
getAriaLabel: item => item.ariaDescription ? ( localize(
|
|
765
|
-
getWidgetAriaLabel: () => ( localize(
|
|
764
|
+
getAriaLabel: item => item.ariaDescription ? ( localize(4230, "{0}, {1}", item.label ?? "", item.ariaDescription)) : item.label ?? "",
|
|
765
|
+
getWidgetAriaLabel: () => ( localize(4231, "{0} Picker", schema.title))
|
|
766
766
|
},
|
|
767
767
|
items.length > 10 ? {
|
|
768
768
|
showFilter: true,
|
|
769
|
-
filterPlaceholder: ( localize(
|
|
769
|
+
filterPlaceholder: ( localize(4232, "Filter options...")),
|
|
770
770
|
minWidth: 255
|
|
771
771
|
} : {
|
|
772
772
|
minWidth: 255
|
|
@@ -801,10 +801,10 @@ let AgentHostSessionConfigPicker = class AgentHostSessionConfigPicker extends Di
|
|
|
801
801
|
if (schema.type === "boolean") {
|
|
802
802
|
return [{
|
|
803
803
|
value: "true",
|
|
804
|
-
label: ( localize(
|
|
804
|
+
label: ( localize(4233, "On"))
|
|
805
805
|
}, {
|
|
806
806
|
value: "false",
|
|
807
|
-
label: ( localize(
|
|
807
|
+
label: ( localize(4234, "Off"))
|
|
808
808
|
}];
|
|
809
809
|
}
|
|
810
810
|
const dynamicItems = schema.enumDynamic ? await provider.getSessionConfigCompletions(sessionId, property, query) : undefined;
|
|
@@ -853,7 +853,7 @@ let AgentHostSessionConfigPicker = class AgentHostSessionConfigPicker extends Di
|
|
|
853
853
|
}
|
|
854
854
|
_getLabel(sessionId, property, schema, value) {
|
|
855
855
|
if (schema.type === "boolean") {
|
|
856
|
-
return value === true ? ( localize(
|
|
856
|
+
return value === true ? ( localize(4235, "On")) : ( localize(4236, "Off"));
|
|
857
857
|
}
|
|
858
858
|
if (typeof value === "string") {
|
|
859
859
|
if (schema.enumDynamic) {
|
|
@@ -945,10 +945,10 @@ class MobileAgentHostSessionConfigPicker extends AgentHostSessionConfigPicker {
|
|
|
945
945
|
description: item.description,
|
|
946
946
|
icon: getConfigIcon(SessionConfigKey.Isolation, item.value),
|
|
947
947
|
checked: item.value === isolationValue,
|
|
948
|
-
sectionTitle: index === 0 ? (isolationSchema?.title ?? ( localize(
|
|
948
|
+
sectionTitle: index === 0 ? (isolationSchema?.title ?? ( localize(4237, "Isolation"))) : undefined
|
|
949
949
|
});
|
|
950
950
|
});
|
|
951
|
-
const branchSectionTitle = branchSchema?.title ?? ( localize(
|
|
951
|
+
const branchSectionTitle = branchSchema?.title ?? ( localize(4238, "Base Branch"));
|
|
952
952
|
if (!branchSchema?.enumDynamic) {
|
|
953
953
|
branchItems.forEach((item, index) => {
|
|
954
954
|
const uncommittedChanges = getBranchUncommittedChanges(item.value, repositoryState.branchName, repositoryState.uncommittedChanges);
|
|
@@ -973,10 +973,10 @@ class MobileAgentHostSessionConfigPicker extends AgentHostSessionConfigPicker {
|
|
|
973
973
|
let search;
|
|
974
974
|
if (branchSchema?.enumDynamic && !branchSchema.readOnly && canSelectBranch) {
|
|
975
975
|
search = {
|
|
976
|
-
placeholder: ( localize(
|
|
977
|
-
ariaLabel: ( localize(
|
|
976
|
+
placeholder: ( localize(4239, "Search branches")),
|
|
977
|
+
ariaLabel: ( localize(4240, "Search base branches")),
|
|
978
978
|
resultsSectionTitle: branchSectionTitle,
|
|
979
|
-
emptyMessage: ( localize(
|
|
979
|
+
emptyMessage: ( localize(4241, "No matching branches.")),
|
|
980
980
|
loadItems: async (query, token) => {
|
|
981
981
|
const items = query ? await this._getItems(provider, sessionId, SessionConfigKey.Branch, branchSchema, query) : branchItems;
|
|
982
982
|
if (token.isCancellationRequested) {
|
|
@@ -1001,7 +1001,7 @@ class MobileAgentHostSessionConfigPicker extends AgentHostSessionConfigPicker {
|
|
|
1001
1001
|
};
|
|
1002
1002
|
}
|
|
1003
1003
|
trigger.setAttribute("aria-expanded", "true");
|
|
1004
|
-
await showMobilePickerSheet(this._layoutService.mainContainer, ( localize(
|
|
1004
|
+
await showMobilePickerSheet(this._layoutService.mainContainer, ( localize(4242, "Worktree")), sheetItems, {
|
|
1005
1005
|
search,
|
|
1006
1006
|
stayOpenOnSelect: true,
|
|
1007
1007
|
onDidSelect: id => {
|
|
@@ -1248,7 +1248,7 @@ registerAction2(class extends Action2 {
|
|
|
1248
1248
|
constructor() {
|
|
1249
1249
|
super({
|
|
1250
1250
|
id: NEW_SESSION_APPROVE_PICKER_ID,
|
|
1251
|
-
title: ( localize2(
|
|
1251
|
+
title: ( localize2(4243, "Session Approvals")),
|
|
1252
1252
|
f1: false,
|
|
1253
1253
|
menu: [{
|
|
1254
1254
|
id: Menus.NewSessionControl,
|
|
@@ -1265,7 +1265,7 @@ registerAction2(class extends Action2 {
|
|
|
1265
1265
|
constructor() {
|
|
1266
1266
|
super({
|
|
1267
1267
|
id: NEW_SESSION_PERMISSION_MODE_PICKER_ID,
|
|
1268
|
-
title: ( localize2(
|
|
1268
|
+
title: ( localize2(4244, "Approvals")),
|
|
1269
1269
|
f1: false,
|
|
1270
1270
|
menu: [{
|
|
1271
1271
|
id: Menus.NewSessionControl,
|
|
@@ -1282,7 +1282,7 @@ registerAction2(class extends Action2 {
|
|
|
1282
1282
|
constructor() {
|
|
1283
1283
|
super({
|
|
1284
1284
|
id: NEW_SESSION_CODEX_APPROVALS_PICKER_ID,
|
|
1285
|
-
title: ( localize2(
|
|
1285
|
+
title: ( localize2(4245, "Approvals")),
|
|
1286
1286
|
f1: false,
|
|
1287
1287
|
menu: [{
|
|
1288
1288
|
id: Menus.NewSessionControl,
|
|
@@ -1299,7 +1299,7 @@ registerAction2(class extends Action2 {
|
|
|
1299
1299
|
constructor() {
|
|
1300
1300
|
super({
|
|
1301
1301
|
id: NEW_SESSION_MODE_PICKER_ID,
|
|
1302
|
-
title: ( localize2(
|
|
1302
|
+
title: ( localize2(4246, "Agent Mode")),
|
|
1303
1303
|
f1: false,
|
|
1304
1304
|
menu: [{
|
|
1305
1305
|
id: Menus.NewSessionControl,
|
|
@@ -1316,7 +1316,7 @@ registerAction2(class extends Action2 {
|
|
|
1316
1316
|
constructor() {
|
|
1317
1317
|
super({
|
|
1318
1318
|
id: RUNNING_SESSION_CONFIG_PICKER_ID,
|
|
1319
|
-
title: ( localize2(
|
|
1319
|
+
title: ( localize2(4247, "Session Approvals")),
|
|
1320
1320
|
f1: false,
|
|
1321
1321
|
menu: [{
|
|
1322
1322
|
id: MenuId.ChatInputSecondary,
|
|
@@ -1333,7 +1333,7 @@ registerAction2(class extends Action2 {
|
|
|
1333
1333
|
constructor() {
|
|
1334
1334
|
super({
|
|
1335
1335
|
id: RUNNING_SESSION_PERMISSION_MODE_PICKER_ID,
|
|
1336
|
-
title: ( localize2(
|
|
1336
|
+
title: ( localize2(4248, "Approvals")),
|
|
1337
1337
|
f1: false,
|
|
1338
1338
|
menu: [{
|
|
1339
1339
|
id: MenuId.ChatInputSecondary,
|
|
@@ -1350,7 +1350,7 @@ registerAction2(class extends Action2 {
|
|
|
1350
1350
|
constructor() {
|
|
1351
1351
|
super({
|
|
1352
1352
|
id: RUNNING_SESSION_CODEX_APPROVALS_PICKER_ID,
|
|
1353
|
-
title: ( localize2(
|
|
1353
|
+
title: ( localize2(4249, "Approvals")),
|
|
1354
1354
|
f1: false,
|
|
1355
1355
|
menu: [{
|
|
1356
1356
|
id: MenuId.ChatInputSecondary,
|
|
@@ -1367,7 +1367,7 @@ registerAction2(class extends Action2 {
|
|
|
1367
1367
|
constructor() {
|
|
1368
1368
|
super({
|
|
1369
1369
|
id: RUNNING_SESSION_MODE_PICKER_ID,
|
|
1370
|
-
title: ( localize2(
|
|
1370
|
+
title: ( localize2(4250, "Agent Mode")),
|
|
1371
1371
|
f1: false,
|
|
1372
1372
|
menu: [{
|
|
1373
1373
|
id: MenuId.ChatInputSecondary,
|
|
@@ -44,21 +44,21 @@ const AgentMergeSessionActionContexts = {
|
|
|
44
44
|
addressReviews: new RawContextKey("sessionAgentMergeAddressReviews", false, {
|
|
45
45
|
type: "boolean",
|
|
46
46
|
description: ( localize(
|
|
47
|
-
|
|
47
|
+
4261,
|
|
48
48
|
"True when Agent Merge may address reviews for the active agent session."
|
|
49
49
|
))
|
|
50
50
|
}),
|
|
51
51
|
fixCI: new RawContextKey("sessionAgentMergeFixCI", false, {
|
|
52
52
|
type: "boolean",
|
|
53
53
|
description: ( localize(
|
|
54
|
-
|
|
54
|
+
4262,
|
|
55
55
|
"True when Agent Merge may fix CI failures for the active agent session."
|
|
56
56
|
))
|
|
57
57
|
}),
|
|
58
58
|
resolveConflicts: new RawContextKey("sessionAgentMergeResolveConflicts", false, {
|
|
59
59
|
type: "boolean",
|
|
60
60
|
description: ( localize(
|
|
61
|
-
|
|
61
|
+
4263,
|
|
62
62
|
"True when Agent Merge may resolve conflicts for the active agent session."
|
|
63
63
|
))
|
|
64
64
|
})
|
|
@@ -66,28 +66,28 @@ const AgentMergeSessionActionContexts = {
|
|
|
66
66
|
const AgentMergeSessionMergePullRequestContext = new RawContextKey("sessionAgentMergeMergePullRequest", "never", {
|
|
67
67
|
type: "string",
|
|
68
68
|
description: ( localize(
|
|
69
|
-
|
|
69
|
+
4264,
|
|
70
70
|
"When Agent Merge may merge the pull request for the active agent session ('always', 'ifUnchanged' or 'never')."
|
|
71
71
|
))
|
|
72
72
|
});
|
|
73
73
|
const agentMergeActionLabels = {
|
|
74
|
-
addressReviews: ( localize(
|
|
75
|
-
fixCI: ( localize(
|
|
76
|
-
resolveConflicts: ( localize(
|
|
74
|
+
addressReviews: ( localize(4265, "Address Reviews")),
|
|
75
|
+
fixCI: ( localize(4266, "Fix CI Failures")),
|
|
76
|
+
resolveConflicts: ( localize(4267, "Resolve Conflicts and Behind Branches"))
|
|
77
77
|
};
|
|
78
78
|
const agentMergeRepairActions = ( Object.keys(agentMergeActionLabels));
|
|
79
79
|
const agentMergeMergePullRequestLabels = {
|
|
80
|
-
always: ( localize(
|
|
81
|
-
ifUnchanged: ( localize(
|
|
82
|
-
never: ( localize(
|
|
80
|
+
always: ( localize(4268, "On")),
|
|
81
|
+
ifUnchanged: ( localize(4269, "Only if Agent Merge Made No Changes")),
|
|
82
|
+
never: ( localize(4270, "Off"))
|
|
83
83
|
};
|
|
84
84
|
const agentMergeMergePullRequestDescriptions = {
|
|
85
|
-
always: ( localize(
|
|
85
|
+
always: ( localize(4271, "Merge the pull request whenever it is ready.")),
|
|
86
86
|
ifUnchanged: ( localize(
|
|
87
|
-
|
|
87
|
+
4272,
|
|
88
88
|
"Merge the pull request only while Agent Merge has not changed it. Once a repair turn lands a commit this switches itself off."
|
|
89
89
|
)),
|
|
90
|
-
never: ( localize(
|
|
90
|
+
never: ( localize(4273, "Do not merge the pull request automatically."))
|
|
91
91
|
};
|
|
92
92
|
let AgentMergeContextContribution = class AgentMergeContextContribution extends Disposable {
|
|
93
93
|
static {
|
|
@@ -167,7 +167,7 @@ class AgentMergeActionBase extends Action2 {
|
|
|
167
167
|
}
|
|
168
168
|
MenuRegistry.appendMenuItem(Menus.ChangesOperationsDropdown, {
|
|
169
169
|
submenu: Menus.ChangesAgentMerge,
|
|
170
|
-
title: ( localize2(
|
|
170
|
+
title: ( localize2(4274, "Agent Merge")),
|
|
171
171
|
icon: Codicon.gitMerge,
|
|
172
172
|
group: CHANGES_OPERATIONS_DROPDOWN_PRIMARY_GROUP,
|
|
173
173
|
order: 1,
|
|
@@ -178,7 +178,7 @@ registerAction2(class EnableAgentMergeInSessionAction extends AgentMergeActionBa
|
|
|
178
178
|
constructor() {
|
|
179
179
|
super({
|
|
180
180
|
id: "sessions.agentHost.agentMerge.enableInSession",
|
|
181
|
-
title: ( localize2(
|
|
181
|
+
title: ( localize2(4275, "Enable Agent Merge")),
|
|
182
182
|
f1: false,
|
|
183
183
|
menu: agentMergeTopLevelMenus.map(id => ({
|
|
184
184
|
id,
|
|
@@ -204,7 +204,7 @@ registerAction2(class DisableAgentMergeInSessionAction extends AgentMergeActionB
|
|
|
204
204
|
constructor() {
|
|
205
205
|
super({
|
|
206
206
|
id: "sessions.agentHost.agentMerge.disableInSession",
|
|
207
|
-
title: ( localize2(
|
|
207
|
+
title: ( localize2(4276, "Disable Agent Merge")),
|
|
208
208
|
f1: false,
|
|
209
209
|
menu: agentMergeTopLevelMenus.map(id => ({
|
|
210
210
|
id,
|
|
@@ -229,7 +229,7 @@ registerAction2(class DisableAgentMergeInSessionAction extends AgentMergeActionB
|
|
|
229
229
|
for (const id of agentMergeTopLevelMenus) {
|
|
230
230
|
MenuRegistry.appendMenuItem(id, {
|
|
231
231
|
submenu: Menus.ChangesAgentMergeConfigure,
|
|
232
|
-
title: ( localize2(
|
|
232
|
+
title: ( localize2(4277, "Configure Agent Merge")),
|
|
233
233
|
group: "1_agentMerge",
|
|
234
234
|
order: 2,
|
|
235
235
|
when: agentMergeMenuPrecondition
|
|
@@ -274,7 +274,7 @@ for (const value of agentMergeMergePullRequestValues) {
|
|
|
274
274
|
MenuRegistry.appendMenuItem(Menus.ChangesAgentMergeConfigure, mergePullRequestSubmenuItem(value));
|
|
275
275
|
}
|
|
276
276
|
function mergePullRequestSubmenuItem(value) {
|
|
277
|
-
const title = ( localize(
|
|
277
|
+
const title = ( localize(4278, "Merge Pull Request ({0})", agentMergeMergePullRequestLabels[value]));
|
|
278
278
|
return {
|
|
279
279
|
submenu: Menus.ChangesAgentMergeMergePullRequest,
|
|
280
280
|
title: {
|
|
@@ -316,7 +316,7 @@ registerAction2(class OpenAgentMergeDefaultsAction extends Action2 {
|
|
|
316
316
|
constructor() {
|
|
317
317
|
super({
|
|
318
318
|
id: "sessions.agentHost.agentMerge.openDefaults",
|
|
319
|
-
title: ( localize2(
|
|
319
|
+
title: ( localize2(4279, "Agent Merge Defaults")),
|
|
320
320
|
f1: false,
|
|
321
321
|
menu: [{
|
|
322
322
|
id: Menus.ChangesAgentMergeConfigure,
|
|
@@ -340,7 +340,7 @@ registerAction2(class EnableAgentMergeAction extends AgentMergeActionBase {
|
|
|
340
340
|
constructor() {
|
|
341
341
|
super({
|
|
342
342
|
id: "sessions.agentHost.agentMerge.enable",
|
|
343
|
-
title: ( localize2(
|
|
343
|
+
title: ( localize2(4280, "Enable Agent Merge for Active Session")),
|
|
344
344
|
f1: true,
|
|
345
345
|
precondition: ( ContextKeyExpr.and(agentMergeCommandPrecondition, ( SessionAgentMergeEnabledContext.negate())))
|
|
346
346
|
});
|
|
@@ -356,14 +356,14 @@ registerAction2(class EnableAgentMergeAction extends AgentMergeActionBase {
|
|
|
356
356
|
logService.info(
|
|
357
357
|
`[AgentMergeActions] Enable requested: session=${active.session.sessionId}, provider=${active.session.providerId}`
|
|
358
358
|
);
|
|
359
|
-
notificationService.info(( localize(
|
|
359
|
+
notificationService.info(( localize(4281, "Agent Merge is enabled for the active session.")));
|
|
360
360
|
}
|
|
361
361
|
});
|
|
362
362
|
registerAction2(class DisableAgentMergeAction extends AgentMergeActionBase {
|
|
363
363
|
constructor() {
|
|
364
364
|
super({
|
|
365
365
|
id: "sessions.agentHost.agentMerge.disable",
|
|
366
|
-
title: ( localize2(
|
|
366
|
+
title: ( localize2(4282, "Disable Agent Merge for Active Session")),
|
|
367
367
|
f1: true,
|
|
368
368
|
precondition: ( ContextKeyExpr.and(agentMergeCommandPrecondition, SessionAgentMergeEnabledContext))
|
|
369
369
|
});
|
|
@@ -379,14 +379,14 @@ registerAction2(class DisableAgentMergeAction extends AgentMergeActionBase {
|
|
|
379
379
|
logService.info(
|
|
380
380
|
`[AgentMergeActions] Disable requested: session=${active.session.sessionId}, provider=${active.session.providerId}`
|
|
381
381
|
);
|
|
382
|
-
notificationService.info(( localize(
|
|
382
|
+
notificationService.info(( localize(4283, "Agent Merge is disabled for the active session.")));
|
|
383
383
|
}
|
|
384
384
|
});
|
|
385
385
|
registerAction2(class ConfigureAgentMergeAction extends AgentMergeActionBase {
|
|
386
386
|
constructor() {
|
|
387
387
|
super({
|
|
388
388
|
id: "sessions.agentHost.agentMerge.configure",
|
|
389
|
-
title: ( localize2(
|
|
389
|
+
title: ( localize2(4284, "Configure Agent Merge for Active Session")),
|
|
390
390
|
f1: true,
|
|
391
391
|
precondition: agentMergeCommandPrecondition
|
|
392
392
|
});
|
|
@@ -418,23 +418,23 @@ registerAction2(class ConfigureAgentMergeAction extends AgentMergeActionBase {
|
|
|
418
418
|
`[AgentMergeActions] Action overrides updated: session=${active.session.sessionId}, provider=${active.session.providerId}, reset=${result.reset}, enabledActions=${[...result.actions].sort().join(",") || "none"}`
|
|
419
419
|
);
|
|
420
420
|
notificationService.info(result.reset ? ( localize(
|
|
421
|
-
|
|
421
|
+
4285,
|
|
422
422
|
"Agent Merge now follows the global action defaults for this session."
|
|
423
|
-
)) : ( localize(
|
|
423
|
+
)) : ( localize(4286, "Agent Merge actions were updated for the active session.")));
|
|
424
424
|
}
|
|
425
425
|
});
|
|
426
426
|
function pickAgentMergeActions(quickInputService, picks) {
|
|
427
427
|
const store = ( new DisposableStore());
|
|
428
428
|
return (new Promise(resolve => {
|
|
429
429
|
const quickPick = store.add(quickInputService.createQuickPick());
|
|
430
|
-
quickPick.title = ( localize(
|
|
431
|
-
quickPick.placeholder = ( localize(
|
|
430
|
+
quickPick.title = ( localize(4287, "Agent Merge"));
|
|
431
|
+
quickPick.placeholder = ( localize(4288, "Select actions Agent Merge may perform for this session"));
|
|
432
432
|
quickPick.canSelectMany = true;
|
|
433
433
|
quickPick.items = picks;
|
|
434
434
|
quickPick.selectedItems = picks.filter(pick => pick.picked);
|
|
435
435
|
quickPick.buttons = [{
|
|
436
436
|
iconClass: ThemeIcon.asClassName(Codicon.discard),
|
|
437
|
-
tooltip: ( localize(
|
|
437
|
+
tooltip: ( localize(4289, "Reset to Global Defaults"))
|
|
438
438
|
}];
|
|
439
439
|
store.add(quickPick.onDidTriggerButton(() => {
|
|
440
440
|
resolve({
|
|
@@ -19,7 +19,7 @@ class ExportAgentHostDebugLogsAction extends Action2 {
|
|
|
19
19
|
constructor() {
|
|
20
20
|
super({
|
|
21
21
|
id: ExportAgentHostDebugLogsAction.ID,
|
|
22
|
-
title: ( localize2(
|
|
22
|
+
title: ( localize2(4308, "Export Agent Host Debug Logs...")),
|
|
23
23
|
f1: true,
|
|
24
24
|
category: Categories.Developer,
|
|
25
25
|
precondition: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.or(IsSessionsWindowContext, AGENT_HOST_ENABLED_CONTEXT_KEY))))
|
|
@@ -177,7 +177,7 @@ let MobileChatInputConfigPicker = class MobileChatInputConfigPicker extends Disp
|
|
|
177
177
|
if (currentModel) {
|
|
178
178
|
append(this._triggerElement, renderIcon(getModelProviderIcon(currentModel)));
|
|
179
179
|
}
|
|
180
|
-
const labelText = currentModel?.metadata.name ?? (ctx.showAutoModel ? ( localize(
|
|
180
|
+
const labelText = currentModel?.metadata.name ?? (ctx.showAutoModel ? ( localize(4309, "Auto")) : ( localize(4310, "No models available")));
|
|
181
181
|
const labelSpan = append(this._triggerElement, $("span.chat-input-picker-label"));
|
|
182
182
|
labelSpan.textContent = labelText;
|
|
183
183
|
const ariaParts = [];
|
|
@@ -188,7 +188,7 @@ let MobileChatInputConfigPicker = class MobileChatInputConfigPicker extends Disp
|
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
190
|
ariaParts.push(labelText);
|
|
191
|
-
this._triggerElement.ariaLabel = ( localize(
|
|
191
|
+
this._triggerElement.ariaLabel = ( localize(4311, "Pick Mode and Model, {0}", ariaParts.join(", ")));
|
|
192
192
|
const isResolving = ctx.provider.isSessionConfigResolving(ctx.session.sessionId).get();
|
|
193
193
|
this._slotElement.classList.toggle("resolving", isResolving);
|
|
194
194
|
this._triggerElement.setAttribute("aria-disabled", isResolving ? "true" : "false");
|
|
@@ -270,7 +270,7 @@ registerAction2(class extends Action2 {
|
|
|
270
270
|
constructor() {
|
|
271
271
|
super({
|
|
272
272
|
id: MOBILE_CHAT_INPUT_CONFIG_PICKER_ID,
|
|
273
|
-
title: ( localize2(
|
|
273
|
+
title: ( localize2(4312, "Mode and Model")),
|
|
274
274
|
f1: false,
|
|
275
275
|
menu: [{
|
|
276
276
|
id: Menus.NewSessionConfig,
|
|
@@ -82,7 +82,7 @@ class DevContainerConnectionFactory extends Disposable {
|
|
|
82
82
|
const authority = agentHostAuthority(entry.connection.address);
|
|
83
83
|
if (connection.workspaceUri.scheme !== AGENT_HOST_SCHEME || connection.workspaceUri.authority !== authority) {
|
|
84
84
|
throw ( new Error(( localize(
|
|
85
|
-
|
|
85
|
+
4384,
|
|
86
86
|
"Dev Container workspace URI must use the '{0}' scheme and '{1}' authority.",
|
|
87
87
|
AGENT_HOST_SCHEME,
|
|
88
88
|
authority
|
|
@@ -150,7 +150,7 @@ let DevContainerAgentHostService = class DevContainerAgentHostService extends Di
|
|
|
150
150
|
}
|
|
151
151
|
registerConnector(connector) {
|
|
152
152
|
if (this._connector) {
|
|
153
|
-
throw ( new Error(( localize(
|
|
153
|
+
throw ( new Error(( localize(4385, "A Dev Container Agent Host connector is already registered."))));
|
|
154
154
|
}
|
|
155
155
|
this._connector = connector;
|
|
156
156
|
this._onDidRegisterConnector.fire(connector);
|
|
@@ -213,7 +213,7 @@ let DevContainerAgentHostService = class DevContainerAgentHostService extends Di
|
|
|
213
213
|
try {
|
|
214
214
|
const connector = await raceCancellationError(raceTimeout(connectorPromise, CONNECTOR_REGISTRATION_TIMEOUT_MS), token);
|
|
215
215
|
if (!connector) {
|
|
216
|
-
throw ( new Error(( localize(
|
|
216
|
+
throw ( new Error(( localize(4386, "No Dev Container Agent Host connector is registered."))));
|
|
217
217
|
}
|
|
218
218
|
return connector;
|
|
219
219
|
} finally {
|
|
@@ -243,7 +243,7 @@ let DevContainerAgentHostService = class DevContainerAgentHostService extends Di
|
|
|
243
243
|
const connection = this._remoteAgentHostService.getConnection(connectionInfo.address);
|
|
244
244
|
if (!connection) {
|
|
245
245
|
throw ( new Error(( localize(
|
|
246
|
-
|
|
246
|
+
4387,
|
|
247
247
|
"Dev Container Agent Host connection was not available after connecting."
|
|
248
248
|
))));
|
|
249
249
|
}
|
|
@@ -340,7 +340,7 @@ let DevContainerAgentHostService = class DevContainerAgentHostService extends Di
|
|
|
340
340
|
const remaining = deadline - Date.now();
|
|
341
341
|
if (remaining <= 0) {
|
|
342
342
|
throw ( new Error(( localize(
|
|
343
|
-
|
|
343
|
+
4388,
|
|
344
344
|
"Timed out waiting for the Dev Container Agent Host to advertise agents."
|
|
345
345
|
))));
|
|
346
346
|
}
|
|
@@ -352,7 +352,7 @@ let DevContainerAgentHostService = class DevContainerAgentHostService extends Di
|
|
|
352
352
|
), token);
|
|
353
353
|
if (timedOut) {
|
|
354
354
|
throw ( new Error(( localize(
|
|
355
|
-
|
|
355
|
+
4388,
|
|
356
356
|
"Timed out waiting for the Dev Container Agent Host to advertise agents."
|
|
357
357
|
))));
|
|
358
358
|
}
|
|
@@ -24,7 +24,7 @@ KeybindingsRegistry.registerKeybindingRule({
|
|
|
24
24
|
MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
|
|
25
25
|
command: {
|
|
26
26
|
id: OpenEditorCommandId,
|
|
27
|
-
title: ( localize2(
|
|
27
|
+
title: ( localize2(4580, "Search")),
|
|
28
28
|
icon: Codicon.search
|
|
29
29
|
},
|
|
30
30
|
group: "1_files",
|
|
@@ -34,7 +34,7 @@ MenuRegistry.appendMenuItem(MenuId.ViewTitle, {
|
|
|
34
34
|
MenuRegistry.appendMenuItem(MenuId.MenubarViewMenu, {
|
|
35
35
|
command: {
|
|
36
36
|
id: OpenEditorCommandId,
|
|
37
|
-
title: ( localize(
|
|
37
|
+
title: ( localize(4581, "&&Search"))
|
|
38
38
|
},
|
|
39
39
|
group: "4_auxbar",
|
|
40
40
|
order: 1
|
|
@@ -43,7 +43,7 @@ registerAction2(class extends Action2 {
|
|
|
43
43
|
constructor() {
|
|
44
44
|
super({
|
|
45
45
|
id: "sessions.files.action.findInFolder",
|
|
46
|
-
title: ( localize2(
|
|
46
|
+
title: ( localize2(4582, "Find in Folder...")),
|
|
47
47
|
menu: {
|
|
48
48
|
id: MenuId.ExplorerContext,
|
|
49
49
|
group: "4_search",
|
package/vscode/src/vs/sessions/contrib/search/browser/searchEditorEmptyState.contribution.js
CHANGED
|
@@ -30,7 +30,7 @@ class SearchEditorEmptyStateContribution extends Disposable {
|
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
const container = $(".sessions-search-empty-state");
|
|
33
|
-
renderSessionsEmptyState(container, ( localize(
|
|
33
|
+
renderSessionsEmptyState(container, ( localize(4583, "Search")), ( localize(4584, "Search for text in your files")));
|
|
34
34
|
reader.store.add(editorObservable.createOverlayWidget({
|
|
35
35
|
domNode: container,
|
|
36
36
|
position: constObservable(null),
|
|
@@ -258,13 +258,13 @@ let BlockedSessionsIndicatorModel = class BlockedSessionsIndicatorModel extends
|
|
|
258
258
|
getRequiresInputLabel(count, kind) {
|
|
259
259
|
switch (kind) {
|
|
260
260
|
case RequiresInputKind.TerminalApproval:
|
|
261
|
-
return count === 1 ? ( localize(
|
|
261
|
+
return count === 1 ? ( localize(4616, "1 session requires terminal approval")) : ( localize(4617, "{0} sessions require terminal approval", count));
|
|
262
262
|
case RequiresInputKind.Question:
|
|
263
|
-
return count === 1 ? ( localize(
|
|
263
|
+
return count === 1 ? ( localize(4618, "1 session has a question")) : ( localize(4619, "{0} sessions have questions", count));
|
|
264
264
|
case RequiresInputKind.FailingCI:
|
|
265
|
-
return count === 1 ? ( localize(
|
|
265
|
+
return count === 1 ? ( localize(4620, "1 session is failing CI")) : ( localize(4621, "{0} sessions are failing CI", count));
|
|
266
266
|
default:
|
|
267
|
-
return count === 1 ? ( localize(
|
|
267
|
+
return count === 1 ? ( localize(4622, "1 session requires input")) : ( localize(4623, "{0} sessions require input", count));
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
270
|
_ignoreOccurrence(blocked, occurrenceId) {
|
|
@@ -23,7 +23,7 @@ function registerBlockedSessionsItemActions() {
|
|
|
23
23
|
return combinedDisposable(MenuRegistry.appendMenuItem(Menus.BlockedSessionsItem, {
|
|
24
24
|
command: {
|
|
25
25
|
id: IGNORE_INPUT_NEEDED_COMMAND_ID,
|
|
26
|
-
title: ( localize(
|
|
26
|
+
title: ( localize(4624, "Ignore Input Needed")),
|
|
27
27
|
icon: Codicon.bellSlash
|
|
28
28
|
},
|
|
29
29
|
group: "navigation",
|
|
@@ -32,7 +32,7 @@ function registerBlockedSessionsItemActions() {
|
|
|
32
32
|
}), MenuRegistry.appendMenuItem(Menus.BlockedSessionsItem, {
|
|
33
33
|
command: {
|
|
34
34
|
id: IGNORE_CI_FAILURE_COMMAND_ID,
|
|
35
|
-
title: ( localize(
|
|
35
|
+
title: ( localize(4625, "Ignore CI Failure")),
|
|
36
36
|
icon: Codicon.bellSlash
|
|
37
37
|
},
|
|
38
38
|
group: "navigation",
|
|
@@ -54,7 +54,7 @@ let BlockedSessionsList = class BlockedSessionsList extends Disposable {
|
|
|
54
54
|
const element = append(container, $(".agent-sessions-blocked-list"));
|
|
55
55
|
const header = append(element, $(".agent-sessions-blocked-list-header"));
|
|
56
56
|
const title = append(header, $(".agent-sessions-blocked-list-title"));
|
|
57
|
-
title.textContent = ( localize(
|
|
57
|
+
title.textContent = ( localize(4626, "Sessions requiring input"));
|
|
58
58
|
const headerActions = append(header, $(".agent-sessions-blocked-list-header-actions"));
|
|
59
59
|
this._register(
|
|
60
60
|
instantiationService.createInstance(MenuWorkbenchToolBar, headerActions, Menus.BlockedSessionsHeader, {
|
|
@@ -64,7 +64,7 @@ let BlockedSessionsList = class BlockedSessionsList extends Disposable {
|
|
|
64
64
|
showAllSessions: options.onShowAllSessions,
|
|
65
65
|
ignoreAllSessions: () => {
|
|
66
66
|
options.onIgnoreAllSessions();
|
|
67
|
-
status(( localize(
|
|
67
|
+
status(( localize(4627, "All current blocked sessions were ignored.")));
|
|
68
68
|
},
|
|
69
69
|
close: options.onClose
|
|
70
70
|
}
|
|
@@ -89,7 +89,7 @@ let BlockedSessionsList = class BlockedSessionsList extends Disposable {
|
|
|
89
89
|
return false;
|
|
90
90
|
}
|
|
91
91
|
options.onIgnoreSession(session);
|
|
92
|
-
status(action.id === IGNORE_INPUT_NEEDED_COMMAND_ID ? ( localize(
|
|
92
|
+
status(action.id === IGNORE_INPUT_NEEDED_COMMAND_ID ? ( localize(4628, "Input needed ignored until this session needs input again.")) : ( localize(4629, "CI failure ignored until this session has another CI failure.")));
|
|
93
93
|
return true;
|
|
94
94
|
}
|
|
95
95
|
})
|