@codingame/monaco-vscode-workbench-service-override 37.3.3 → 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.
- package/package.json +10 -10
- package/session.js +11 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.d.ts +18 -0
- package/vscode/src/vs/platform/agentHost/common/meta/agentCheckoutOperationMeta.js +27 -0
- package/vscode/src/vs/sessions/browser/layoutActions.d.ts +1 -0
- package/vscode/src/vs/sessions/browser/layoutActions.js +146 -0
- package/vscode/src/vs/sessions/browser/parts/chatCompositeBar.js +6 -6
- package/vscode/src/vs/sessions/browser/parts/chatGroupView.js +5 -5
- package/vscode/src/vs/sessions/browser/parts/menubar.contribution.js +8 -8
- package/vscode/src/vs/sessions/browser/parts/sessionHeader.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/sessionReadOnlyBanner.js +1 -1
- package/vscode/src/vs/sessions/browser/parts/sessionRemoteConnection.js +20 -20
- package/vscode/src/vs/sessions/browser/sessionsSetUpService.js +7 -7
- package/vscode/src/vs/sessions/browser/sessionsSignInDialog.js +4 -4
- 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.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.js +149 -0
- 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/chat/browser/taskCommand.d.ts +44 -0
- package/vscode/src/vs/sessions/contrib/chat/browser/taskCommand.js +111 -0
- package/vscode/src/vs/sessions/contrib/chatDebug/browser/chatDebug.contribution.js +2 -2
- package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.js +75 -0
- 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 +5 -5
- 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.d.ts +26 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostClaudePermissionModePicker.js +98 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.d.ts +33 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostCodexApprovalsPicker.js +98 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostForkActions.js +72 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.d.ts +2 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModeIcon.js +13 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.d.ts +122 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostModePicker.js +464 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.d.ts +35 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerActionItem.js +90 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.d.ts +84 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostPermissionPickerDelegate.js +328 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionBranchActions.js +94 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.d.ts +174 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentHostSessionConfigPicker.js +1390 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.js +468 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.d.ts +7 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/exportDebugLogsAction.js +48 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/media/agentHostSessionConfigPicker.css +44 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.d.ts +30 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileAgentHostModePicker.js +78 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.d.ts +1 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatInputConfigPicker.js +345 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.d.ts +11 -0
- package/vscode/src/vs/sessions/contrib/providers/agentHost/browser/mobile/mobileChatPhoneInputTarget.js +26 -0
- 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.d.ts +42 -0
- package/vscode/src/vs/sessions/contrib/terminal/browser/agentHostSessionTaskRunner.js +139 -0
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.d.ts +120 -0
- package/vscode/src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.js +741 -0
- 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
package/vscode/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.js
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { toAction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/actions';
|
|
4
|
+
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
|
+
import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/network';
|
|
6
|
+
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
7
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
8
|
+
import { localize, localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
9
|
+
import { Action2, MenuId, registerAction2, MenuRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
10
|
+
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
11
|
+
import { RawContextKey, ContextKeyExpr } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey';
|
|
12
|
+
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
13
|
+
import '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification';
|
|
14
|
+
import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
|
|
15
|
+
import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
|
|
16
|
+
import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
|
|
17
|
+
import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
|
|
18
|
+
import { IsSessionsWindowContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
19
|
+
import { CHAT_CATEGORY } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
20
|
+
import { ISessionsService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsService.service';
|
|
21
|
+
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
22
|
+
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
23
|
+
import { SessionIsArchivedContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
|
|
24
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
|
25
|
+
import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
|
|
26
|
+
|
|
27
|
+
const hasWorktreeAndRepositoryContextKey = new RawContextKey("agentSessionHasWorktreeAndRepository", false, {
|
|
28
|
+
type: "boolean",
|
|
29
|
+
description: ( localize(
|
|
30
|
+
3262,
|
|
31
|
+
"True when the active agent session has both a worktree and a parent repository."
|
|
32
|
+
))
|
|
33
|
+
});
|
|
34
|
+
let ApplyChangesToParentRepoContribution = class ApplyChangesToParentRepoContribution extends Disposable {
|
|
35
|
+
static {
|
|
36
|
+
this.ID = "sessions.contrib.applyChangesToParentRepo";
|
|
37
|
+
}
|
|
38
|
+
constructor(contextKeyService, sessionsService) {
|
|
39
|
+
super();
|
|
40
|
+
const worktreeAndRepoKey = hasWorktreeAndRepositoryContextKey.bindTo(contextKeyService);
|
|
41
|
+
this._register(autorun(reader => {
|
|
42
|
+
const activeSession = sessionsService.activeSession.read(reader);
|
|
43
|
+
const folder = activeSession?.workspace.read(reader)?.folders[0];
|
|
44
|
+
const hasWorktreeAndRepo = !!folder?.gitRepository?.workTreeUri;
|
|
45
|
+
worktreeAndRepoKey.set(hasWorktreeAndRepo);
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
ApplyChangesToParentRepoContribution = ( __decorate([( __param(0, IContextKeyService)), ( __param(1, ISessionsService))], ApplyChangesToParentRepoContribution));
|
|
50
|
+
class ApplyChangesToParentRepoAction extends Action2 {
|
|
51
|
+
static {
|
|
52
|
+
this.ID = "chatEditing.applyChangesToParentRepo";
|
|
53
|
+
}
|
|
54
|
+
constructor() {
|
|
55
|
+
super({
|
|
56
|
+
id: ApplyChangesToParentRepoAction.ID,
|
|
57
|
+
title: ( localize2(3263, "Apply Changes to Parent Repository")),
|
|
58
|
+
icon: Codicon.desktopDownload,
|
|
59
|
+
category: CHAT_CATEGORY,
|
|
60
|
+
precondition: ( ContextKeyExpr.and(IsSessionsWindowContext, hasWorktreeAndRepositoryContextKey)),
|
|
61
|
+
menu: [{
|
|
62
|
+
id: MenuId.AgentsChangesPrimaryActionSubMenu,
|
|
63
|
+
group: "navigation",
|
|
64
|
+
order: 2,
|
|
65
|
+
when: ( ContextKeyExpr.and(( ContextKeyExpr.false()), IsSessionsWindowContext, hasWorktreeAndRepositoryContextKey))
|
|
66
|
+
}]
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
async run(accessor) {
|
|
70
|
+
const sessionsService = accessor.get(ISessionsService);
|
|
71
|
+
const commandService = accessor.get(ICommandService);
|
|
72
|
+
const notificationService = accessor.get(INotificationService);
|
|
73
|
+
const logService = accessor.get(ILogService);
|
|
74
|
+
const openerService = accessor.get(IOpenerService);
|
|
75
|
+
const productService = accessor.get(IProductService);
|
|
76
|
+
const activeSession = sessionsService.activeSession.get();
|
|
77
|
+
const folder = activeSession?.workspace.get()?.folders[0];
|
|
78
|
+
if (!activeSession || !folder?.gitRepository?.workTreeUri) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const worktreeRoot = folder.gitRepository.workTreeUri;
|
|
82
|
+
const repoRoot = folder.root;
|
|
83
|
+
const openFolderAction = toAction({
|
|
84
|
+
id: "applyChangesToParentRepo.openFolder",
|
|
85
|
+
label: ( localize(3264, "Open in VS Code")),
|
|
86
|
+
run: () => {
|
|
87
|
+
const scheme = productService.quality === "stable" ? "vscode" : productService.quality === "exploration" ? "vscode-exploration" : "vscode-insiders";
|
|
88
|
+
const params = ( new URLSearchParams());
|
|
89
|
+
params.set("windowId", "_blank");
|
|
90
|
+
params.set("session", ( activeSession.resource.toString()));
|
|
91
|
+
openerService.open(( URI.from({
|
|
92
|
+
scheme,
|
|
93
|
+
authority: Schemas.file,
|
|
94
|
+
path: repoRoot.path,
|
|
95
|
+
query: ( params.toString())
|
|
96
|
+
})), {
|
|
97
|
+
openExternal: true
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
try {
|
|
102
|
+
const worktreeBranch = await commandService.executeCommand("_git.revParseAbbrevRef", worktreeRoot.fsPath);
|
|
103
|
+
if (!worktreeBranch) {
|
|
104
|
+
notificationService.notify({
|
|
105
|
+
severity: Severity.Warning,
|
|
106
|
+
message: ( localize(3265, "Could not determine worktree branch name."))
|
|
107
|
+
});
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const result = await commandService.executeCommand("_git.mergeBranch", repoRoot.fsPath, worktreeBranch);
|
|
111
|
+
if (!result) {
|
|
112
|
+
logService.warn("[ApplyChangesToParentRepo] No result from merge command");
|
|
113
|
+
} else {
|
|
114
|
+
notificationService.notify({
|
|
115
|
+
severity: Severity.Info,
|
|
116
|
+
message: typeof result === "string" && result.startsWith("Already up to date") ? ( localize(3266, "Parent repository is up to date with worktree.")) : ( localize(3267, "Applied changes to parent repository.")),
|
|
117
|
+
actions: {
|
|
118
|
+
primary: [openFolderAction]
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
} catch (err) {
|
|
123
|
+
logService.error("[ApplyChangesToParentRepo] Failed to apply changes", err);
|
|
124
|
+
notificationService.notify({
|
|
125
|
+
severity: Severity.Warning,
|
|
126
|
+
message: ( localize(
|
|
127
|
+
3268,
|
|
128
|
+
"Failed to apply changes to parent repo. The parent repo may have diverged — resolve conflicts manually."
|
|
129
|
+
)),
|
|
130
|
+
actions: {
|
|
131
|
+
primary: [openFolderAction]
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
registerAction2(ApplyChangesToParentRepoAction);
|
|
138
|
+
registerWorkbenchContribution2(
|
|
139
|
+
ApplyChangesToParentRepoContribution.ID,
|
|
140
|
+
ApplyChangesToParentRepoContribution,
|
|
141
|
+
WorkbenchPhase.AfterRestored
|
|
142
|
+
);
|
|
143
|
+
MenuRegistry.appendMenuItem(MenuId.AgentsChangesToolbar, {
|
|
144
|
+
submenu: MenuId.AgentsChangesPrimaryActionSubMenu,
|
|
145
|
+
title: ( localize2(3269, "Apply Actions")),
|
|
146
|
+
group: "navigation",
|
|
147
|
+
order: 1,
|
|
148
|
+
when: ( ContextKeyExpr.and(IsSessionsWindowContext, ( SessionIsArchivedContext.isEqualTo(false))))
|
|
149
|
+
});
|
|
@@ -18,7 +18,7 @@ registerCss(aquarium, 1);
|
|
|
18
18
|
[SESSIONS_DEVELOPER_JOY_ENABLED_SETTING]: {
|
|
19
19
|
type: "boolean",
|
|
20
20
|
default: true,
|
|
21
|
-
description: ( localize(
|
|
21
|
+
description: ( localize(3270, "Adds an easter egg to the Agents window.")),
|
|
22
22
|
tags: ["experimental"]
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -30,7 +30,7 @@ class SimulateFishFeedingStreakAction extends Action2 {
|
|
|
30
30
|
constructor() {
|
|
31
31
|
super({
|
|
32
32
|
id: SimulateFishFeedingStreakAction.ID,
|
|
33
|
-
title: ( localize2(
|
|
33
|
+
title: ( localize2(3271, "Simulate Fish Feeding Streak")),
|
|
34
34
|
f1: true,
|
|
35
35
|
category: Categories.Developer
|
|
36
36
|
});
|
|
@@ -40,21 +40,21 @@ class SimulateFishFeedingStreakAction extends Action2 {
|
|
|
40
40
|
const aquariumService = accessor.get(IAquariumService);
|
|
41
41
|
const aliveItem = {
|
|
42
42
|
id: "alive",
|
|
43
|
-
label: ( localize(
|
|
44
|
-
detail: ( localize(
|
|
43
|
+
label: ( localize(3272, "Alive streak")),
|
|
44
|
+
detail: ( localize(3273, "Show a live feeding streak in the toggle tooltip."))
|
|
45
45
|
};
|
|
46
46
|
const diedItem = {
|
|
47
47
|
id: "died",
|
|
48
|
-
label: ( localize(
|
|
49
|
-
detail: ( localize(
|
|
48
|
+
label: ( localize(3274, "Died streak (revivable)")),
|
|
49
|
+
detail: ( localize(3275, "Park a died streak and offer the revival prompt."))
|
|
50
50
|
};
|
|
51
51
|
const clearItem = {
|
|
52
52
|
id: "clear",
|
|
53
|
-
label: ( localize(
|
|
54
|
-
detail: ( localize(
|
|
53
|
+
label: ( localize(3276, "Clear streak")),
|
|
54
|
+
detail: ( localize(3277, "Remove all streak state."))
|
|
55
55
|
};
|
|
56
56
|
const scenario = await quickInputService.pick([aliveItem, diedItem, clearItem], {
|
|
57
|
-
placeHolder: ( localize(
|
|
57
|
+
placeHolder: ( localize(3278, "Pick a streak scenario to simulate"))
|
|
58
58
|
});
|
|
59
59
|
if (!scenario) {
|
|
60
60
|
return;
|
|
@@ -65,10 +65,10 @@ class SimulateFishFeedingStreakAction extends Action2 {
|
|
|
65
65
|
}
|
|
66
66
|
const raw = await quickInputService.input({
|
|
67
67
|
value: "30",
|
|
68
|
-
prompt: ( localize(
|
|
68
|
+
prompt: ( localize(3279, "How many days should the streak be?")),
|
|
69
69
|
validateInput: async value => {
|
|
70
70
|
const n = Number(value);
|
|
71
|
-
return (!Number.isInteger(n) || n <= 0) ? ( localize(
|
|
71
|
+
return (!Number.isInteger(n) || n <= 0) ? ( localize(3280, "Enter a whole number greater than 0.")) : undefined;
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
74
|
if (raw === undefined) {
|
|
@@ -85,7 +85,7 @@ class ToggleAquariumActionVisibilityAction extends Action2 {
|
|
|
85
85
|
constructor() {
|
|
86
86
|
super({
|
|
87
87
|
id: ToggleAquariumActionVisibilityAction.ID,
|
|
88
|
-
title: ( localize2(
|
|
88
|
+
title: ( localize2(3281, "Toggle Aquarium Action Visibility")),
|
|
89
89
|
f1: true,
|
|
90
90
|
category: Categories.Developer
|
|
91
91
|
});
|
|
@@ -148,7 +148,7 @@ let AquariumService = class AquariumService extends Disposable {
|
|
|
148
148
|
StorageScope.APPLICATION,
|
|
149
149
|
StorageTarget.USER
|
|
150
150
|
);
|
|
151
|
-
this.accessibilityService.status(visible ? ( localize(
|
|
151
|
+
this.accessibilityService.status(visible ? ( localize(3282, "Aquarium action shown")) : ( localize(3283, "Aquarium action hidden")));
|
|
152
152
|
return visible;
|
|
153
153
|
}
|
|
154
154
|
simulateStreak(count, alive) {
|
|
@@ -231,7 +231,7 @@ let AquariumService = class AquariumService extends Disposable {
|
|
|
231
231
|
streakSpan.append(String(streak));
|
|
232
232
|
} else {
|
|
233
233
|
streakSpan.classList.add("revivable");
|
|
234
|
-
streakSpan.append(( localize(
|
|
234
|
+
streakSpan.append(( localize(3284, "{0} · Feed again to revive", revivable)));
|
|
235
235
|
}
|
|
236
236
|
button.appendChild(streakSpan);
|
|
237
237
|
}
|
|
@@ -243,18 +243,18 @@ let AquariumService = class AquariumService extends Disposable {
|
|
|
243
243
|
button.setAttribute("aria-label", label);
|
|
244
244
|
}
|
|
245
245
|
getToggleLabel(active) {
|
|
246
|
-
const base = active ? ( localize(
|
|
246
|
+
const base = active ? ( localize(3285, "Hide Aquarium")) : ( localize(3286, "Show Aquarium"));
|
|
247
247
|
const streak = this.streak.count;
|
|
248
248
|
if (streak > 0) {
|
|
249
249
|
const hungerDescription = getFishHungerDescription(this.streak.hungerState);
|
|
250
250
|
return (streak === 1 ? localize(
|
|
251
|
-
|
|
251
|
+
3287,
|
|
252
252
|
"{0} — {1} — {2} day feeding streak",
|
|
253
253
|
base,
|
|
254
254
|
hungerDescription,
|
|
255
255
|
streak
|
|
256
256
|
) : localize(
|
|
257
|
-
|
|
257
|
+
3288,
|
|
258
258
|
"{0} — {1} — {2} days feeding streak",
|
|
259
259
|
base,
|
|
260
260
|
hungerDescription,
|
|
@@ -263,7 +263,7 @@ let AquariumService = class AquariumService extends Disposable {
|
|
|
263
263
|
}
|
|
264
264
|
const revivable = this.streak.revivableCount;
|
|
265
265
|
if (revivable > 0) {
|
|
266
|
-
return revivable === 1 ? ( localize(
|
|
266
|
+
return revivable === 1 ? ( localize(3289, "{0} — feed a fish to revive your {1} day streak", base, revivable)) : ( localize(3290, "{0} — feed a fish to revive your {1} day streak", base, revivable));
|
|
267
267
|
}
|
|
268
268
|
return base;
|
|
269
269
|
}
|
|
@@ -736,13 +736,13 @@ function addIconClasses(element, icon) {
|
|
|
736
736
|
function getFishHungerDescription(state) {
|
|
737
737
|
switch (state) {
|
|
738
738
|
case "happy":
|
|
739
|
-
return localize(
|
|
739
|
+
return localize(3291, "fish is happy");
|
|
740
740
|
case "neutral":
|
|
741
|
-
return localize(
|
|
741
|
+
return localize(3292, "fish is getting hungry");
|
|
742
742
|
case "sad":
|
|
743
|
-
return localize(
|
|
743
|
+
return localize(3293, "fish is hungry");
|
|
744
744
|
case "verySad":
|
|
745
|
-
return localize(
|
|
745
|
+
return localize(3294, "fish is starving");
|
|
746
746
|
}
|
|
747
747
|
}
|
|
748
748
|
function computeWallAvoidAngle(centerX, centerY, width, height) {
|