@codingame/monaco-vscode-workbench-service-override 37.3.2 → 37.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
@@ -56,7 +56,7 @@ let EmptyFileEditorInput = class EmptyFileEditorInput extends DockedEditorInput
|
|
|
56
56
|
return this.layoutService.isVisible(Parts.EDITOR_PART, mainWindow) ? capabilities : capabilities | EditorInputCapabilities.CannotClose;
|
|
57
57
|
}
|
|
58
58
|
getName() {
|
|
59
|
-
return localize(
|
|
59
|
+
return localize(4071, "Files");
|
|
60
60
|
}
|
|
61
61
|
getIcon() {
|
|
62
62
|
return EmptyFileEditorInput_1.ICON;
|
|
@@ -16,11 +16,11 @@ import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/com
|
|
|
16
16
|
import { IsPhoneLayoutContext, SessionHasWorkspaceContext, SinglePaneLayoutEnabledContext, IsQuickChatSessionContext } from '@codingame/monaco-vscode-api/vscode/vs/sessions/common/contextkeys';
|
|
17
17
|
|
|
18
18
|
const SESSIONS_FILES_CONTAINER_ID = "workbench.sessions.auxiliaryBar.filesContainer";
|
|
19
|
-
const filesViewIcon = registerIcon("sessions-files-view-icon", Codicon.files, ( localize2(
|
|
19
|
+
const filesViewIcon = registerIcon("sessions-files-view-icon", Codicon.files, ( localize2(4074, "View icon of the files view in the sessions window.")).value);
|
|
20
20
|
const viewContainerRegistry = ( Registry.as(Extensions.ViewContainersRegistry));
|
|
21
21
|
const filesViewContainer = viewContainerRegistry.registerViewContainer({
|
|
22
22
|
id: SESSIONS_FILES_CONTAINER_ID,
|
|
23
|
-
title: ( localize2(
|
|
23
|
+
title: ( localize2(4075, "Files")),
|
|
24
24
|
icon: filesViewIcon,
|
|
25
25
|
order: 11,
|
|
26
26
|
ctorDescriptor: ( new SyncDescriptor(ViewPaneContainer, [SESSIONS_FILES_CONTAINER_ID, {
|
|
@@ -30,8 +30,8 @@ const filesViewContainer = viewContainerRegistry.registerViewContainer({
|
|
|
30
30
|
hideIfEmpty: true,
|
|
31
31
|
openCommandActionDescriptor: {
|
|
32
32
|
id: SESSIONS_FILES_CONTAINER_ID,
|
|
33
|
-
title: ( localize2(
|
|
34
|
-
mnemonicTitle: ( localize(
|
|
33
|
+
title: ( localize2(4076, "Explorer")),
|
|
34
|
+
mnemonicTitle: ( localize(4077, "Fil&&es")),
|
|
35
35
|
keybindings: {
|
|
36
36
|
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KeyE
|
|
37
37
|
},
|
|
@@ -49,7 +49,7 @@ class RegisterFilesViewContribution {
|
|
|
49
49
|
const viewsRegistry = ( Registry.as(Extensions.ViewsRegistry));
|
|
50
50
|
viewsRegistry.registerViews([{
|
|
51
51
|
id: SESSIONS_FILES_VIEW_ID,
|
|
52
|
-
name: ( localize2(
|
|
52
|
+
name: ( localize2(4075, "Files")),
|
|
53
53
|
containerIcon: filesViewIcon,
|
|
54
54
|
ctorDescriptor: ( new SyncDescriptor(SessionsExplorerView)),
|
|
55
55
|
canToggleVisibility: false,
|
|
@@ -59,7 +59,7 @@ class RegisterFilesViewContribution {
|
|
|
59
59
|
}], filesViewContainer);
|
|
60
60
|
viewsRegistry.registerViews([{
|
|
61
61
|
id: SESSIONS_FILES_EMPTY_VIEW_ID,
|
|
62
|
-
name: ( localize2(
|
|
62
|
+
name: ( localize2(4075, "Files")),
|
|
63
63
|
containerIcon: filesViewIcon,
|
|
64
64
|
ctorDescriptor: ( new SyncDescriptor(SessionsExplorerEmptyView)),
|
|
65
65
|
canToggleVisibility: false,
|
|
@@ -78,7 +78,7 @@ registerAction2(class extends Action2 {
|
|
|
78
78
|
constructor() {
|
|
79
79
|
super({
|
|
80
80
|
id: "sessions.files.action.collapseExplorerFolders",
|
|
81
|
-
title: ( localize2(
|
|
81
|
+
title: ( localize2(4078, "Collapse Folders in Explorer")),
|
|
82
82
|
icon: Codicon.collapseAll,
|
|
83
83
|
menu: {
|
|
84
84
|
id: MenuId.ViewTitle,
|
|
@@ -68,7 +68,7 @@ let SessionsExplorerEmptyView = class SessionsExplorerEmptyView extends ViewPane
|
|
|
68
68
|
const bodyContainer = append(container, $(".files-empty-view-body"));
|
|
69
69
|
const welcomeContainer = append(bodyContainer, $(".files-empty-welcome"));
|
|
70
70
|
const welcomeMessage = append(welcomeContainer, $(".files-empty-welcome-message"));
|
|
71
|
-
welcomeMessage.textContent = ( localize(
|
|
71
|
+
welcomeMessage.textContent = ( localize(4079, "Folders and files will appear here."));
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
74
|
SessionsExplorerEmptyView = ( __decorate([( __param(1, IKeybindingService)), ( __param(2, IContextMenuService)), ( __param(3, IConfigurationService)), ( __param(4, IContextKeyService)), ( __param(5, IViewDescriptorService)), ( __param(6, IInstantiationService)), ( __param(7, IOpenerService)), ( __param(8, IThemeService)), ( __param(9, IHoverService))], SessionsExplorerEmptyView));
|
|
@@ -54,12 +54,12 @@ import { ISessionChangesService } from '@codingame/monaco-vscode-api/vscode/vs/s
|
|
|
54
54
|
const secondarySidebarToggleClosedIcon = registerIcon(
|
|
55
55
|
"agent-secondary-sidebar-toggle-closed",
|
|
56
56
|
Codicon.layoutSidebarRightOff,
|
|
57
|
-
( localize(
|
|
57
|
+
( localize(4111, "Icon for the sessions secondary sidebar when closed."))
|
|
58
58
|
);
|
|
59
59
|
const secondarySidebarToggleOpenIcon = registerIcon(
|
|
60
60
|
"agent-secondary-sidebar-toggle-open",
|
|
61
61
|
Codicon.layoutSidebarRight,
|
|
62
|
-
( localize(
|
|
62
|
+
( localize(4112, "Icon for the sessions secondary sidebar when open."))
|
|
63
63
|
);
|
|
64
64
|
const SESSION_LAYOUT_STATE_KEY = "sessions.layoutState";
|
|
65
65
|
const WORKING_SETS_STORAGE_KEY = "sessions.workingSets";
|
|
@@ -296,7 +296,7 @@ let BaseLayoutController = class BaseLayoutController extends Disposable {
|
|
|
296
296
|
constructor() {
|
|
297
297
|
super({
|
|
298
298
|
id: "workbench.action.agentToggleSidePanel",
|
|
299
|
-
title: ( localize2(
|
|
299
|
+
title: ( localize2(4113, "Toggle Side Panel")),
|
|
300
300
|
icon: secondarySidebarToggleClosedIcon,
|
|
301
301
|
toggled: {
|
|
302
302
|
condition: ( ContextKeyExpr.or(AuxiliaryBarVisibleContext, MainEditorAreaVisibleContext)),
|
|
@@ -304,7 +304,7 @@ let BaseLayoutController = class BaseLayoutController extends Disposable {
|
|
|
304
304
|
},
|
|
305
305
|
metadata: {
|
|
306
306
|
description: ( localize(
|
|
307
|
-
|
|
307
|
+
4114,
|
|
308
308
|
"Open/Show and Close/Hide the Side Panel (editor area and auxiliary bar)"
|
|
309
309
|
))
|
|
310
310
|
},
|
|
@@ -326,7 +326,7 @@ let BaseLayoutController = class BaseLayoutController extends Disposable {
|
|
|
326
326
|
run(accessor) {
|
|
327
327
|
const nowVisible = accessor.get(IAgentWorkbenchLayoutService).toggleSidePane();
|
|
328
328
|
logSidePanelToggle(accessor.get(ITelemetryService), nowVisible);
|
|
329
|
-
alert(nowVisible ? ( localize(
|
|
329
|
+
alert(nowVisible ? ( localize(4115, "Side Panel shown")) : ( localize(4116, "Side Panel hidden")));
|
|
330
330
|
}
|
|
331
331
|
});
|
|
332
332
|
}
|
|
@@ -43,7 +43,7 @@ registerWorkbenchContribution2(
|
|
|
43
43
|
[RESPONSIVE_SIDEBAR_SETTING]: {
|
|
44
44
|
type: "boolean",
|
|
45
45
|
markdownDescription: ( localize(
|
|
46
|
-
|
|
46
|
+
4117,
|
|
47
47
|
"Controls whether the sessions sidebar is automatically collapsed in a narrow Agents window while both the editor and the side panel are open, and shown again once either of them closes."
|
|
48
48
|
)),
|
|
49
49
|
default: product.quality !== "stable",
|
|
@@ -55,7 +55,7 @@ registerWorkbenchContribution2(
|
|
|
55
55
|
[DOCK_DETAIL_PANEL_SETTING]: {
|
|
56
56
|
type: "boolean",
|
|
57
57
|
markdownDescription: ( localize(
|
|
58
|
-
|
|
58
|
+
4118,
|
|
59
59
|
"Controls whether the Agents window docks the detail panel inside the editor so a single editor tab bar spans across the editor and the detail panel. Requires a window reload to take effect."
|
|
60
60
|
)),
|
|
61
61
|
default: true,
|
|
@@ -407,7 +407,7 @@ let SinglePaneExistingSessionStrategy = class SinglePaneExistingSessionStrategy
|
|
|
407
407
|
constructor() {
|
|
408
408
|
super({
|
|
409
409
|
id: TOGGLE_DETAILS_COMMAND_ID,
|
|
410
|
-
title: ( localize2(
|
|
410
|
+
title: ( localize2(4119, "Toggle Details")),
|
|
411
411
|
icon: Codicon.listSelection,
|
|
412
412
|
f1: false,
|
|
413
413
|
toggled: AuxiliaryBarVisibleContext,
|
|
@@ -29,9 +29,9 @@ const DEFAULT_GITHUB_LOOKUP_TIMEOUTS = {
|
|
|
29
29
|
const LOG_PREFIX = "[NewSessionViewV3Prompt]";
|
|
30
30
|
const PROMPT_TEMPLATE_TREATMENT = "onb.newSessionViewV3.promptTemplate";
|
|
31
31
|
const PLACEHOLDER_TREATMENT = "onb.newSessionViewV3.placeholder";
|
|
32
|
-
const DEFAULT_TASK_PLACEHOLDER = ( localize(
|
|
32
|
+
const DEFAULT_TASK_PLACEHOLDER = ( localize(4120, "[describe the coding task]"));
|
|
33
33
|
const DEFAULT_PROMPT_TEMPLATE = ( localize(
|
|
34
|
-
|
|
34
|
+
4121,
|
|
35
35
|
"Help me complete {0} in this project. First, inspect the relevant files and explain your approach briefly. Then implement the solution using existing project conventions, avoid unrelated changes, and run the most relevant tests or checks. If anything is unclear, make a reasonable assumption and state it. When finished, summarize what changed and mention any remaining issues."
|
|
36
36
|
));
|
|
37
37
|
const PROMPT_OPTION_COUNT = 3;
|
|
@@ -1056,7 +1056,7 @@ class NewSessionViewV3PromptRunner {
|
|
|
1056
1056
|
}
|
|
1057
1057
|
_createGitHubPromptOption(candidate) {
|
|
1058
1058
|
const plan = this._createGitHubPrompt(candidate);
|
|
1059
|
-
const title = candidate.strategy === "githubIssue" ? ( localize(
|
|
1059
|
+
const title = candidate.strategy === "githubIssue" ? ( localize(4122, "Tackle issue")) : candidate.strategy === "githubMergeConflict" ? ( localize(4123, "Resolve conflicts")) : candidate.strategy === "githubCiFailure" ? ( localize(4124, "Fix CI")) : ( localize(4125, "Address PR comments"));
|
|
1060
1060
|
const icon = candidate.strategy === "githubIssue" ? computeIssueIcon(GitHubIssueState.Open, undefined) : computePullRequestIcon(GitHubPullRequestState.Open, {
|
|
1061
1061
|
hasMergeConflicts: candidate.strategy === "githubMergeConflict",
|
|
1062
1062
|
hasFailingChecks: candidate.strategy === "githubCiFailure",
|
|
@@ -1073,15 +1073,15 @@ class NewSessionViewV3PromptRunner {
|
|
|
1073
1073
|
};
|
|
1074
1074
|
}
|
|
1075
1075
|
_createStandardPromptOptions() {
|
|
1076
|
-
const implementFeaturePlaceholder = ( localize(
|
|
1077
|
-
const fixBugPlaceholder = ( localize(
|
|
1078
|
-
const fixCiPlaceholder = ( localize(
|
|
1076
|
+
const implementFeaturePlaceholder = ( localize(4126, "[describe the feature]"));
|
|
1077
|
+
const fixBugPlaceholder = ( localize(4127, "[describe the bug]"));
|
|
1078
|
+
const fixCiPlaceholder = ( localize(4128, "[describe the CI failure or paste a link]"));
|
|
1079
1079
|
return [{
|
|
1080
1080
|
id: "standard:implementFeature",
|
|
1081
|
-
title: ( localize(
|
|
1082
|
-
description: ( localize(
|
|
1081
|
+
title: ( localize(4129, "Implement a feature")),
|
|
1082
|
+
description: ( localize(4130, "Describe what you want to build")),
|
|
1083
1083
|
prompt: ( localize(
|
|
1084
|
-
|
|
1084
|
+
4131,
|
|
1085
1085
|
"Help me implement {0} in this project. Ask me questions if anything is unclear regarding the intended behaviour.",
|
|
1086
1086
|
implementFeaturePlaceholder
|
|
1087
1087
|
)),
|
|
@@ -1089,10 +1089,10 @@ class NewSessionViewV3PromptRunner {
|
|
|
1089
1089
|
icon: Codicon.lightbulbSparkleAutofix
|
|
1090
1090
|
}, {
|
|
1091
1091
|
id: "standard:fixBug",
|
|
1092
|
-
title: ( localize(
|
|
1093
|
-
description: ( localize(
|
|
1092
|
+
title: ( localize(4132, "Fix a bug")),
|
|
1093
|
+
description: ( localize(4133, "Describe the unexpected behavior")),
|
|
1094
1094
|
prompt: ( localize(
|
|
1095
|
-
|
|
1095
|
+
4134,
|
|
1096
1096
|
"Help me fix {0} in this project. Ask me questions if anything is unclear regarding the bug or the intended behaviour.",
|
|
1097
1097
|
fixBugPlaceholder
|
|
1098
1098
|
)),
|
|
@@ -1100,10 +1100,10 @@ class NewSessionViewV3PromptRunner {
|
|
|
1100
1100
|
icon: Codicon.bug
|
|
1101
1101
|
}, {
|
|
1102
1102
|
id: "standard:fixCi",
|
|
1103
|
-
title: ( localize(
|
|
1104
|
-
description: ( localize(
|
|
1103
|
+
title: ( localize(4135, "Fix CI")),
|
|
1104
|
+
description: ( localize(4136, "Describe a failing check or paste a link")),
|
|
1105
1105
|
prompt: ( localize(
|
|
1106
|
-
|
|
1106
|
+
4137,
|
|
1107
1107
|
"Help me fix the failing CI for {0} in this project. Ask me questions if anything is unclear regarding the CI failure or how it should be fixed.",
|
|
1108
1108
|
fixCiPlaceholder
|
|
1109
1109
|
)),
|
|
@@ -1113,22 +1113,22 @@ class NewSessionViewV3PromptRunner {
|
|
|
1113
1113
|
}
|
|
1114
1114
|
_createGitHubPrompt(candidate) {
|
|
1115
1115
|
const prompt = candidate.strategy === "githubMergeConflict" ? ( localize(
|
|
1116
|
-
|
|
1116
|
+
4138,
|
|
1117
1117
|
"The following pull request has merge conflicts: \"{0}\" ({1}). Resolve the conflicts and update the pull request.",
|
|
1118
1118
|
candidate.title,
|
|
1119
1119
|
candidate.url
|
|
1120
1120
|
)) : candidate.strategy === "githubCiFailure" ? ( localize(
|
|
1121
|
-
|
|
1121
|
+
4139,
|
|
1122
1122
|
"The following pull request has failing CI checks: \"{0}\" ({1}). Investigate the failures and resolve them.",
|
|
1123
1123
|
candidate.title,
|
|
1124
1124
|
candidate.url
|
|
1125
1125
|
)) : candidate.strategy === "githubReviewComments" ? ( localize(
|
|
1126
|
-
|
|
1126
|
+
4140,
|
|
1127
1127
|
"The following pull request has unresolved review comments that have not been addressed by a newer commit: \"{0}\" ({1}). Address the review comments and update the pull request.",
|
|
1128
1128
|
candidate.title,
|
|
1129
1129
|
candidate.url
|
|
1130
1130
|
)) : ( localize(
|
|
1131
|
-
|
|
1131
|
+
4141,
|
|
1132
1132
|
"Tackle the following issue and create a pull request for it: \"{0}\" ({1}).",
|
|
1133
1133
|
candidate.title,
|
|
1134
1134
|
candidate.url
|
|
@@ -15,18 +15,18 @@ const newSessionPayload = {
|
|
|
15
15
|
steps: [{
|
|
16
16
|
id: "workspacePicker",
|
|
17
17
|
targetId: "sessions.newSession.workspacePicker",
|
|
18
|
-
title: ( localize(
|
|
18
|
+
title: ( localize(4142, "Work Across Workspaces")),
|
|
19
19
|
description: ( localize(
|
|
20
|
-
|
|
20
|
+
4143,
|
|
21
21
|
"Choose between the folders and repositories you work in. Run multiple sessions at once in a single workspace, or across many."
|
|
22
22
|
)),
|
|
23
23
|
placement: "above"
|
|
24
24
|
}, {
|
|
25
25
|
id: "isolation",
|
|
26
26
|
targetId: "sessions.newSession.isolation",
|
|
27
|
-
title: ( localize(
|
|
27
|
+
title: ( localize(4144, "Isolate Your Work")),
|
|
28
28
|
description: ( localize(
|
|
29
|
-
|
|
29
|
+
4145,
|
|
30
30
|
"Use a worktree to work on multiple tasks in the same project without conflicts. Each task stays isolated, so you can experiment freely and safely."
|
|
31
31
|
)),
|
|
32
32
|
placement: "below"
|
|
@@ -16,9 +16,9 @@ const newSessionViewPayload = {
|
|
|
16
16
|
steps: [{
|
|
17
17
|
id: "workspacePicker",
|
|
18
18
|
targetId: "sessions.newSession.workspacePicker",
|
|
19
|
-
title: ( localize(
|
|
19
|
+
title: ( localize(4146, "Work Across Workspaces")),
|
|
20
20
|
description: ( localize(
|
|
21
|
-
|
|
21
|
+
4147,
|
|
22
22
|
"Choose between the folders and repositories you work in. Run multiple sessions at once in a single workspace, or across many."
|
|
23
23
|
)),
|
|
24
24
|
placement: "above",
|
|
@@ -27,9 +27,9 @@ const newSessionViewPayload = {
|
|
|
27
27
|
}, {
|
|
28
28
|
id: "harnessPicker",
|
|
29
29
|
targetId: "sessions.newSession.harnessPicker",
|
|
30
|
-
title: ( localize(
|
|
30
|
+
title: ( localize(4148, "Choose a Harness")),
|
|
31
31
|
description: ( localize(
|
|
32
|
-
|
|
32
|
+
4149,
|
|
33
33
|
"Each has different strengths; choose what works best for your task and switch anytime."
|
|
34
34
|
)),
|
|
35
35
|
placement: "above",
|
|
@@ -38,9 +38,9 @@ const newSessionViewPayload = {
|
|
|
38
38
|
}, {
|
|
39
39
|
id: "isolation",
|
|
40
40
|
targetId: "sessions.newSession.isolation",
|
|
41
|
-
title: ( localize(
|
|
41
|
+
title: ( localize(4150, "Isolate Your Work")),
|
|
42
42
|
description: ( localize(
|
|
43
|
-
|
|
43
|
+
4151,
|
|
44
44
|
"Use a worktree to work on multiple tasks in the same project without conflicts. Each task stays isolated, so you can experiment freely and safely."
|
|
45
45
|
)),
|
|
46
46
|
placement: "below",
|
package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewTourShared.js
CHANGED
|
@@ -19,9 +19,9 @@ function createNewSessionViewWorkspaceStep() {
|
|
|
19
19
|
return {
|
|
20
20
|
id: "workspacePicker",
|
|
21
21
|
targetId: "sessions.newSession.workspacePicker",
|
|
22
|
-
title: ( localize(
|
|
22
|
+
title: ( localize(4152, "Choose a workspace")),
|
|
23
23
|
description: ( localize(
|
|
24
|
-
|
|
24
|
+
4153,
|
|
25
25
|
"A workspace is the folder or repository where your agent reads context and makes changes. Choose one so it can understand your project and work on the right files."
|
|
26
26
|
)),
|
|
27
27
|
placement: "above",
|
package/vscode/src/vs/sessions/contrib/onboardingTours/browser/tours/newSessionViewV2Tour.js
CHANGED
|
@@ -18,9 +18,9 @@ const newSessionViewV2Payload = {
|
|
|
18
18
|
steps: [createNewSessionViewWorkspaceStep(), {
|
|
19
19
|
id: "harnessPicker",
|
|
20
20
|
targetId: "sessions.newSession.harnessPicker",
|
|
21
|
-
title: ( localize(
|
|
21
|
+
title: ( localize(4154, "Choose a harness")),
|
|
22
22
|
description: ( localize(
|
|
23
|
-
|
|
23
|
+
4155,
|
|
24
24
|
"A harness is the agent runtime that plans, uses tools, and carries out your task. Choose one based on the capabilities your work needs."
|
|
25
25
|
)),
|
|
26
26
|
placement: "above",
|
|
@@ -31,9 +31,9 @@ const newSessionViewV2Payload = {
|
|
|
31
31
|
}, {
|
|
32
32
|
id: "modelPicker",
|
|
33
33
|
targetId: "sessions.newSession.modelPicker",
|
|
34
|
-
title: ( localize(
|
|
34
|
+
title: ( localize(4156, "Choose a model")),
|
|
35
35
|
description: ( localize(
|
|
36
|
-
|
|
36
|
+
4157,
|
|
37
37
|
"The model powers your agent's reasoning. Choose one based on the balance of speed and capability your task needs."
|
|
38
38
|
)),
|
|
39
39
|
placement: "below",
|
|
@@ -80,13 +80,13 @@ let SessionsPolicyBlockedOverlay = class SessionsPolicyBlockedOverlay extends Di
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
_renderAgentDisabled(card) {
|
|
83
|
-
this.overlay.setAttribute("aria-label", ( localize(
|
|
84
|
-
append(card, $("h2", undefined, ( localize(
|
|
83
|
+
this.overlay.setAttribute("aria-label", ( localize(4163, "Agents disabled by organization policy")));
|
|
84
|
+
append(card, $("h2", undefined, ( localize(4164, "Agents Disabled"))));
|
|
85
85
|
const description = append(card, $("p"));
|
|
86
|
-
append(description, createTextNode(( localize(
|
|
86
|
+
append(description, createTextNode(( localize(4165, "Your organization has disabled Agents via policy."))));
|
|
87
87
|
append(description, createTextNode(" "));
|
|
88
88
|
const learnMore = append(description, $("a.sessions-policy-blocked-link"));
|
|
89
|
-
learnMore.textContent = ( localize(
|
|
89
|
+
learnMore.textContent = ( localize(4166, "Learn more"));
|
|
90
90
|
learnMore.href = "https://aka.ms/VSCode/Agents/docs";
|
|
91
91
|
this._register(addDisposableListener(learnMore, EventType.CLICK, e => {
|
|
92
92
|
e.preventDefault();
|
|
@@ -96,11 +96,11 @@ let SessionsPolicyBlockedOverlay = class SessionsPolicyBlockedOverlay extends Di
|
|
|
96
96
|
...defaultButtonStyles,
|
|
97
97
|
secondary: true
|
|
98
98
|
})));
|
|
99
|
-
button.label = ( localize(
|
|
99
|
+
button.label = ( localize(4167, "Open VS Code"));
|
|
100
100
|
this._register(button.onDidClick(() => this._openVSCode()));
|
|
101
101
|
}
|
|
102
102
|
_renderLoading(card) {
|
|
103
|
-
this.overlay.setAttribute("aria-label", ( localize(
|
|
103
|
+
this.overlay.setAttribute("aria-label", ( localize(4168, "Loading")));
|
|
104
104
|
append(card, $(
|
|
105
105
|
"div.sessions-policy-blocked-progress-bar",
|
|
106
106
|
undefined,
|
|
@@ -108,18 +108,18 @@ let SessionsPolicyBlockedOverlay = class SessionsPolicyBlockedOverlay extends Di
|
|
|
108
108
|
));
|
|
109
109
|
}
|
|
110
110
|
_renderAccountPolicyGate(card, options) {
|
|
111
|
-
this.overlay.setAttribute("aria-label", ( localize(
|
|
112
|
-
append(card, $("h2", undefined, ( localize(
|
|
111
|
+
this.overlay.setAttribute("aria-label", ( localize(4169, "Sign-in required by your administrator")));
|
|
112
|
+
append(card, $("h2", undefined, ( localize(4170, "Sign-In Required"))));
|
|
113
113
|
const description = append(card, $("p"));
|
|
114
114
|
if (options.accountName) {
|
|
115
115
|
append(description, createTextNode(( localize(
|
|
116
|
-
|
|
116
|
+
4171,
|
|
117
117
|
"The account \"{0}\" is not a member of an organization that your administrator allows for Agents.",
|
|
118
118
|
options.accountName
|
|
119
119
|
))));
|
|
120
120
|
} else {
|
|
121
121
|
append(description, createTextNode(( localize(
|
|
122
|
-
|
|
122
|
+
4172,
|
|
123
123
|
"Your administrator restricts Agents to members of the organizations below."
|
|
124
124
|
))));
|
|
125
125
|
}
|
|
@@ -129,7 +129,7 @@ let SessionsPolicyBlockedOverlay = class SessionsPolicyBlockedOverlay extends Di
|
|
|
129
129
|
const orgSection = append(card, $("div.sessions-policy-blocked-orgs"));
|
|
130
130
|
append(
|
|
131
131
|
orgSection,
|
|
132
|
-
$("p.sessions-policy-blocked-orgs-label", undefined, ( localize(
|
|
132
|
+
$("p.sessions-policy-blocked-orgs-label", undefined, ( localize(4173, "Allowed organizations:")))
|
|
133
133
|
);
|
|
134
134
|
const orgList = append(orgSection, $("ul"));
|
|
135
135
|
for (const org of approvedOrgs) {
|
|
@@ -137,10 +137,10 @@ let SessionsPolicyBlockedOverlay = class SessionsPolicyBlockedOverlay extends Di
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
const footer = append(card, $("p.sessions-policy-blocked-footer"));
|
|
140
|
-
append(footer, createTextNode(( localize(
|
|
140
|
+
append(footer, createTextNode(( localize(4174, "Contact your administrator for more information."))));
|
|
141
141
|
append(footer, createTextNode(" "));
|
|
142
142
|
const learnMore = append(footer, $("a.sessions-policy-blocked-link"));
|
|
143
|
-
learnMore.textContent = ( localize(
|
|
143
|
+
learnMore.textContent = ( localize(4175, "Learn more"));
|
|
144
144
|
learnMore.href = "https://code.visualstudio.com/docs/enterprise/overview";
|
|
145
145
|
this._register(addDisposableListener(learnMore, EventType.CLICK, e => {
|
|
146
146
|
e.preventDefault();
|
|
@@ -149,31 +149,31 @@ let SessionsPolicyBlockedOverlay = class SessionsPolicyBlockedOverlay extends Di
|
|
|
149
149
|
const signInButton = this._register(( new Button(card, {
|
|
150
150
|
...defaultButtonStyles
|
|
151
151
|
})));
|
|
152
|
-
signInButton.label = ( localize(
|
|
152
|
+
signInButton.label = ( localize(4176, "Sign In"));
|
|
153
153
|
this._register(signInButton.onDidClick(() => {
|
|
154
154
|
this.commandService.executeCommand("workbench.action.agenticSignIn");
|
|
155
155
|
}));
|
|
156
156
|
}
|
|
157
157
|
_renderManagedSettingsRefresh(card, freshness) {
|
|
158
|
-
this.overlay.setAttribute("aria-label", ( localize(
|
|
159
|
-
append(card, $("h2", undefined, ( localize(
|
|
158
|
+
this.overlay.setAttribute("aria-label", ( localize(4177, "Managed settings refresh required")));
|
|
159
|
+
append(card, $("h2", undefined, ( localize(4178, "Managed Settings Unavailable"))));
|
|
160
160
|
const message = freshness?.failure === ManagedSettingsFreshnessFailure.NoToken ? ( localize(
|
|
161
|
-
|
|
161
|
+
4179,
|
|
162
162
|
"Sign in so {0} can refresh your organization's managed settings before starting an agent.",
|
|
163
163
|
this.productService.nameShort
|
|
164
164
|
)) : freshness?.failure === ManagedSettingsFreshnessFailure.RateLimited ? ( localize(
|
|
165
|
-
|
|
165
|
+
4180,
|
|
166
166
|
"Your organization's managed settings service is rate limiting requests. Try again later."
|
|
167
167
|
)) : freshness?.failure === ManagedSettingsFreshnessFailure.NoUrl ? ( localize(
|
|
168
|
-
|
|
168
|
+
4181,
|
|
169
169
|
"{0} cannot locate your organization's managed settings service. Contact your administrator.",
|
|
170
170
|
this.productService.nameShort
|
|
171
171
|
)) : freshness?.failure === ManagedSettingsFreshnessFailure.UpdateRequired ? ( localize(
|
|
172
|
-
|
|
172
|
+
4182,
|
|
173
173
|
"Update {0} to a version that supports your organization's managed settings before starting an agent.",
|
|
174
174
|
this.productService.nameShort
|
|
175
175
|
)) : ( localize(
|
|
176
|
-
|
|
176
|
+
4183,
|
|
177
177
|
"Your organization requires {0} to refresh managed settings whenever it starts or reloads. An error prevented the required policy from being retrieved, so agents are unavailable. Retry, or contact your organization's administrator if the issue persists.",
|
|
178
178
|
this.productService.nameShort
|
|
179
179
|
));
|
|
@@ -182,7 +182,7 @@ let SessionsPolicyBlockedOverlay = class SessionsPolicyBlockedOverlay extends Di
|
|
|
182
182
|
const signInButton = this._register(( new Button(card, {
|
|
183
183
|
...defaultButtonStyles
|
|
184
184
|
})));
|
|
185
|
-
signInButton.label = ( localize(
|
|
185
|
+
signInButton.label = ( localize(4184, "Sign In"));
|
|
186
186
|
this._register(
|
|
187
187
|
signInButton.onDidClick(() => this.commandService.executeCommand("workbench.action.agenticSignIn"))
|
|
188
188
|
);
|
|
@@ -190,7 +190,7 @@ let SessionsPolicyBlockedOverlay = class SessionsPolicyBlockedOverlay extends Di
|
|
|
190
190
|
const retryButton = this._register(( new Button(card, {
|
|
191
191
|
...defaultButtonStyles
|
|
192
192
|
})));
|
|
193
|
-
retryButton.label = ( localize(
|
|
193
|
+
retryButton.label = ( localize(4185, "Retry"));
|
|
194
194
|
this._register(retryButton.onDidClick(() => this.defaultAccountService.refresh({
|
|
195
195
|
forceRefresh: true,
|
|
196
196
|
retryManagedSettings: true
|
|
@@ -200,7 +200,7 @@ let SessionsPolicyBlockedOverlay = class SessionsPolicyBlockedOverlay extends Di
|
|
|
200
200
|
...defaultButtonStyles,
|
|
201
201
|
secondary: true
|
|
202
202
|
})));
|
|
203
|
-
openVSCodeButton.label = ( localize(
|
|
203
|
+
openVSCodeButton.label = ( localize(4186, "Open VS Code"));
|
|
204
204
|
this._register(openVSCodeButton.onDidClick(() => this._openVSCode()));
|
|
205
205
|
}
|
|
206
206
|
_openVSCode() {
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
|
|
2
|
+
import { ThemeIcon } from "@codingame/monaco-vscode-api/vscode/vs/base/common/themables";
|
|
3
|
+
import { IActionListItem } from "@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionList";
|
|
4
|
+
import { IActionWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service";
|
|
5
|
+
import { ClaudeSessionConfigKey } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/claudeSessionConfigKeys";
|
|
6
|
+
import { SessionConfigPropertySchema } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/commands";
|
|
7
|
+
import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
|
|
8
|
+
import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
|
|
9
|
+
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
10
|
+
import { ISessionsProvidersService } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service";
|
|
11
|
+
import { IActiveSession } from "@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/common/sessionsManagement";
|
|
12
|
+
import { AgentHostSessionEnumPicker, IAgentHostSessionEnumPickerItem } from "./agentHostModePicker.js";
|
|
13
|
+
export declare class AgentHostClaudePermissionModePicker extends AgentHostSessionEnumPicker {
|
|
14
|
+
private readonly _openerService;
|
|
15
|
+
protected readonly _property = ClaudeSessionConfigKey.PermissionMode;
|
|
16
|
+
protected readonly _pickerId = "agentHostClaudePermissionModePicker";
|
|
17
|
+
protected readonly _telemetryId = "NewChatAgentHostClaudePermissionModePicker";
|
|
18
|
+
constructor(session: IObservable<IActiveSession | undefined>, actionWidgetService: IActionWidgetService, sessionsProvidersService: ISessionsProvidersService, telemetryService: ITelemetryService, hoverService: IHoverService, _openerService: IOpenerService);
|
|
19
|
+
protected _isWellKnownSchema(schema: SessionConfigPropertySchema): boolean;
|
|
20
|
+
protected _getTriggerIcon(value: string | undefined): ThemeIcon | undefined;
|
|
21
|
+
protected _getActionItemIcon(item: IAgentHostSessionEnumPickerItem): ThemeIcon | undefined;
|
|
22
|
+
protected _getTriggerAriaLabel(label: string): string;
|
|
23
|
+
protected _getWidgetAriaLabel(): string;
|
|
24
|
+
protected _getFooterActionItems(): readonly IActionListItem<IAgentHostSessionEnumPickerItem>[];
|
|
25
|
+
protected _handleFooterActionItem(item: IAgentHostSessionEnumPickerItem): boolean;
|
|
26
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
|
|
2
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
+
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
4
|
+
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
5
|
+
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
6
|
+
import { ActionListItemKind } from '@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionList';
|
|
7
|
+
import { IActionWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service';
|
|
8
|
+
import { ClaudeSessionConfigKey } from '@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/claudeSessionConfigKeys';
|
|
9
|
+
import { IHoverService } from '@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service';
|
|
10
|
+
import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
|
|
11
|
+
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
12
|
+
import { ISessionsProvidersService } from '@codingame/monaco-vscode-api/vscode/vs/sessions/services/sessions/browser/sessionsProvidersService.service';
|
|
13
|
+
import { AgentHostSessionEnumPicker } from './agentHostModePicker.js';
|
|
14
|
+
import { isWellKnownClaudePermissionModeSchema } from './agentHostPermissionPickerDelegate.js';
|
|
15
|
+
|
|
16
|
+
const CLAUDE_PERMISSION_MODE_LEARN_MORE_URL = "https://code.claude.com/docs/en/permission-modes#available-modes";
|
|
17
|
+
const LEARN_MORE_VALUE = "__agentHostClaudePermissionModePicker.learnMore__";
|
|
18
|
+
function getClaudePermissionModeIcon(value) {
|
|
19
|
+
switch (value) {
|
|
20
|
+
case "default":
|
|
21
|
+
return Codicon.shield;
|
|
22
|
+
case "acceptEdits":
|
|
23
|
+
return Codicon.edit;
|
|
24
|
+
case "plan":
|
|
25
|
+
return Codicon.lightbulb;
|
|
26
|
+
case "auto":
|
|
27
|
+
return Codicon.sparkle;
|
|
28
|
+
case "bypassPermissions":
|
|
29
|
+
return Codicon.warning;
|
|
30
|
+
default:
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
let AgentHostClaudePermissionModePicker = class AgentHostClaudePermissionModePicker extends AgentHostSessionEnumPicker {
|
|
35
|
+
constructor(
|
|
36
|
+
session,
|
|
37
|
+
actionWidgetService,
|
|
38
|
+
sessionsProvidersService,
|
|
39
|
+
telemetryService,
|
|
40
|
+
hoverService,
|
|
41
|
+
_openerService
|
|
42
|
+
) {
|
|
43
|
+
super(
|
|
44
|
+
session,
|
|
45
|
+
actionWidgetService,
|
|
46
|
+
sessionsProvidersService,
|
|
47
|
+
telemetryService,
|
|
48
|
+
hoverService
|
|
49
|
+
);
|
|
50
|
+
this._openerService = _openerService;
|
|
51
|
+
this._property = ClaudeSessionConfigKey.PermissionMode;
|
|
52
|
+
this._pickerId = "agentHostClaudePermissionModePicker";
|
|
53
|
+
this._telemetryId = "NewChatAgentHostClaudePermissionModePicker";
|
|
54
|
+
}
|
|
55
|
+
_isWellKnownSchema(schema) {
|
|
56
|
+
return isWellKnownClaudePermissionModeSchema(schema);
|
|
57
|
+
}
|
|
58
|
+
_getTriggerIcon(value) {
|
|
59
|
+
return getClaudePermissionModeIcon(value);
|
|
60
|
+
}
|
|
61
|
+
_getActionItemIcon(item) {
|
|
62
|
+
return getClaudePermissionModeIcon(item.value);
|
|
63
|
+
}
|
|
64
|
+
_getTriggerAriaLabel(label) {
|
|
65
|
+
return localize(4190, "Pick Approvals, {0}", label);
|
|
66
|
+
}
|
|
67
|
+
_getWidgetAriaLabel() {
|
|
68
|
+
return localize(4191, "Approvals Picker");
|
|
69
|
+
}
|
|
70
|
+
_getFooterActionItems() {
|
|
71
|
+
const learnMoreLabel = ( localize(4192, "Learn more about permissions"));
|
|
72
|
+
return [{
|
|
73
|
+
kind: ActionListItemKind.Separator,
|
|
74
|
+
label: ""
|
|
75
|
+
}, {
|
|
76
|
+
kind: ActionListItemKind.Action,
|
|
77
|
+
label: learnMoreLabel,
|
|
78
|
+
group: {
|
|
79
|
+
title: "",
|
|
80
|
+
icon: Codicon.blank
|
|
81
|
+
},
|
|
82
|
+
item: {
|
|
83
|
+
value: LEARN_MORE_VALUE,
|
|
84
|
+
label: learnMoreLabel
|
|
85
|
+
}
|
|
86
|
+
}];
|
|
87
|
+
}
|
|
88
|
+
_handleFooterActionItem(item) {
|
|
89
|
+
if (item.value !== LEARN_MORE_VALUE) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
void this._openerService.open(( URI.parse(CLAUDE_PERMISSION_MODE_LEARN_MORE_URL)));
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
AgentHostClaudePermissionModePicker = ( __decorate([( __param(1, IActionWidgetService)), ( __param(2, ISessionsProvidersService)), ( __param(3, ITelemetryService)), ( __param(4, IHoverService)), ( __param(5, IOpenerService))], AgentHostClaudePermissionModePicker));
|
|
97
|
+
|
|
98
|
+
export { AgentHostClaudePermissionModePicker };
|