diff --git a/extensions/copilot/package.json b/extensions/copilot/package.json index 9d8a29d0ca4..7c2e1f7e617 100644 --- a/extensions/copilot/package.json +++ b/extensions/copilot/package.json @@ -5100,7 +5100,7 @@ "group": "navigation@0" } ], - "chat/input/editing/sessionApplyActions": [ + "agents/changes/actions/primary": [ { "command": "github.copilot.sessions.initializeRepository", "when": "chatSessionType == copilotcli && isSessionsWindow && sessions.isolationMode == workspace && !sessions.hasGitRepository && !sessions.isAgentHostSession", diff --git a/extensions/github/package.json b/extensions/github/package.json index a122a856488..1101a01f92f 100644 --- a/extensions/github/package.json +++ b/extensions/github/package.json @@ -183,7 +183,7 @@ "when": "github.hasGitHubRepo && timelineItem =~ /git:file:commit\\b/" } ], - "chat/input/editing/sessionApplyActions": [] + "agents/changes/actions/primary": [] }, "configuration": [ { diff --git a/src/vs/platform/actions/common/actions.ts b/src/vs/platform/actions/common/actions.ts index 48ae5a04754..ea2cb13e62d 100644 --- a/src/vs/platform/actions/common/actions.ts +++ b/src/vs/platform/actions/common/actions.ts @@ -265,7 +265,6 @@ export class MenuId { static readonly ChatModePicker = new MenuId('ChatModePicker'); static readonly ChatEditingWidgetToolbar = new MenuId('ChatEditingWidgetToolbar'); static readonly ChatEditingSessionChangesToolbar = new MenuId('ChatEditingSessionChangesToolbar'); - static readonly ChatEditingSessionApplySubmenu = new MenuId('ChatEditingSessionApplySubmenu'); static readonly ChatEditingSessionTitleToolbar = new MenuId('ChatEditingSessionTitleToolbar'); static readonly ChatEditingSessionChangeToolbar = new MenuId('ChatEditingSessionChangeToolbar'); static readonly ChatEditingSessionChangesVersionsSubmenu = new MenuId('ChatEditingSessionChangesVersionsSubmenu'); @@ -313,6 +312,8 @@ export class MenuId { static readonly AgentSessionItemToolbar = new MenuId('AgentSessionItemToolbar'); static readonly AgentSessionSectionToolbar = new MenuId('AgentSessionSectionToolbar'); static readonly AgentsTitleBarControlMenu = new MenuId('AgentsTitleBarControlMenu'); + static readonly AgentsChangesToolbar = new MenuId('AgentsChangesToolbar'); + static readonly AgentsChangesPrimaryActionSubMenu = new MenuId('AgentsChangesPrimaryActionSubMenu'); static readonly ChatViewSessionTitleNavigationToolbar = new MenuId('ChatViewSessionTitleNavigationToolbar'); static readonly ChatViewSessionTitleToolbar = new MenuId('ChatViewSessionTitleToolbar'); static readonly ChatContextUsageActions = new MenuId('ChatContextUsageActions'); diff --git a/src/vs/sessions/contrib/agentFeedback/browser/agentFeedback.contribution.ts b/src/vs/sessions/contrib/agentFeedback/browser/agentFeedback.contribution.ts index f493b0c0e5c..ec4c3a6b405 100644 --- a/src/vs/sessions/contrib/agentFeedback/browser/agentFeedback.contribution.ts +++ b/src/vs/sessions/contrib/agentFeedback/browser/agentFeedback.contribution.ts @@ -62,7 +62,7 @@ class ActiveSessionFeedbackContextContribution extends Disposable implements IWo contextKey.set(count > 0); if (count > 0) { - menuRegistration.value = MenuRegistry.appendMenuItem(MenuId.ChatEditingSessionApplySubmenu, { + menuRegistration.value = MenuRegistry.appendMenuItem(MenuId.AgentsChangesPrimaryActionSubMenu, { command: { id: submitActiveSessionFeedbackActionId, icon: Codicon.comment, diff --git a/src/vs/sessions/contrib/agentHost/browser/agentHostSkillButtons.ts b/src/vs/sessions/contrib/agentHost/browser/agentHostSkillButtons.ts index 077d8d3957a..2193788036f 100644 --- a/src/vs/sessions/contrib/agentHost/browser/agentHostSkillButtons.ts +++ b/src/vs/sessions/contrib/agentHost/browser/agentHostSkillButtons.ts @@ -171,7 +171,7 @@ function registerAgentHostSkillButton(spec: IAgentHostSkillButtonSpec): void { icon: spec.icon, f1: false, menu: { - id: MenuId.ChatEditingSessionApplySubmenu, + id: MenuId.AgentsChangesPrimaryActionSubMenu, group: spec.group, order: spec.order, when: ContextKeyExpr.and( diff --git a/src/vs/sessions/contrib/agentHost/test/browser/agentHostSkillButtons.test.ts b/src/vs/sessions/contrib/agentHost/test/browser/agentHostSkillButtons.test.ts index 262afad7d3d..1bb5f0511c6 100644 --- a/src/vs/sessions/contrib/agentHost/test/browser/agentHostSkillButtons.test.ts +++ b/src/vs/sessions/contrib/agentHost/test/browser/agentHostSkillButtons.test.ts @@ -165,7 +165,7 @@ suite('agentHostSkillButtons - menu registration', () => { ensureNoDisposablesAreLeakedInTestSuite(); function skillButtonItems() { - const all = MenuRegistry.getMenuItems(MenuId.ChatEditingSessionApplySubmenu); + const all = MenuRegistry.getMenuItems(MenuId.AgentsChangesPrimaryActionSubMenu); const menuItems: { command: { id: string }; when?: ContextKeyExpression }[] = []; for (const item of all) { if (!isIMenuItem(item)) { @@ -209,9 +209,9 @@ suite('agentHostSkillButtons - menu registration', () => { }); test('the apply submenu is contributed to the changes toolbar in the navigation group', () => { - const toolbarItems = MenuRegistry.getMenuItems(MenuId.ChatEditingSessionChangesToolbar); - const submenuEntry = toolbarItems.find(item => isISubmenuItem(item) && item.submenu === MenuId.ChatEditingSessionApplySubmenu); - assert.ok(submenuEntry, 'expected ChatEditingSessionApplySubmenu to be registered on ChatEditingSessionChangesToolbar'); + const toolbarItems = MenuRegistry.getMenuItems(MenuId.AgentsChangesToolbar); + const submenuEntry = toolbarItems.find(item => isISubmenuItem(item) && item.submenu === MenuId.AgentsChangesPrimaryActionSubMenu); + assert.ok(submenuEntry, 'expected AgentsChangesPrimaryActionSubMenu to be registered on AgentsChangesToolbar'); assert.strictEqual((submenuEntry as { group?: string }).group, 'navigation'); }); diff --git a/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.ts b/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.ts index 264f5934f90..01fd14e724f 100644 --- a/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.ts +++ b/src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.ts @@ -65,7 +65,7 @@ class ApplyChangesToParentRepoAction extends Action2 { ), menu: [ { - id: MenuId.ChatEditingSessionApplySubmenu, + id: MenuId.AgentsChangesPrimaryActionSubMenu, group: 'navigation', order: 2, when: ContextKeyExpr.and( @@ -165,8 +165,8 @@ registerAction2(ApplyChangesToParentRepoAction); registerWorkbenchContribution2(ApplyChangesToParentRepoContribution.ID, ApplyChangesToParentRepoContribution, WorkbenchPhase.AfterRestored); // Register the apply submenu in the session changes toolbar -MenuRegistry.appendMenuItem(MenuId.ChatEditingSessionChangesToolbar, { - submenu: MenuId.ChatEditingSessionApplySubmenu, +MenuRegistry.appendMenuItem(MenuId.AgentsChangesToolbar, { + submenu: MenuId.AgentsChangesPrimaryActionSubMenu, title: localize2('applyActions', 'Apply Actions'), group: 'navigation', order: 1, diff --git a/src/vs/sessions/contrib/changes/browser/changesView.ts b/src/vs/sessions/contrib/changes/browser/changesView.ts index 560d4920956..0bb3ba11d8e 100644 --- a/src/vs/sessions/contrib/changes/browser/changesView.ts +++ b/src/vs/sessions/contrib/changes/browser/changesView.ts @@ -158,7 +158,7 @@ class ChangesButtonBarWidget extends Disposable { reader.store.add(new MenuWorkbenchButtonBar( container, - MenuId.ChatEditingSessionChangesToolbar, + MenuId.AgentsChangesToolbar, { telemetrySource: 'changesView', menuOptions: sessionResource diff --git a/src/vs/sessions/contrib/changes/browser/changesViewActions.ts b/src/vs/sessions/contrib/changes/browser/changesViewActions.ts index a216b266cf1..b505adfd04a 100644 --- a/src/vs/sessions/contrib/changes/browser/changesViewActions.ts +++ b/src/vs/sessions/contrib/changes/browser/changesViewActions.ts @@ -78,7 +78,7 @@ class OpenPullRequestAction extends Action2 { icon: Codicon.gitPullRequest, f1: false, menu: { - id: MenuId.ChatEditingSessionChangesToolbar, + id: MenuId.AgentsChangesToolbar, group: 'navigation', order: 9, when: ContextKeyExpr.and( diff --git a/src/vs/sessions/contrib/changes/browser/checksActions.ts b/src/vs/sessions/contrib/changes/browser/checksActions.ts index b1972914adc..301e27f88e3 100644 --- a/src/vs/sessions/contrib/changes/browser/checksActions.ts +++ b/src/vs/sessions/contrib/changes/browser/checksActions.ts @@ -129,7 +129,7 @@ class FixCIChecksAction extends Action2 { category: CHAT_CATEGORY, precondition: ContextKeyExpr.and(ChatContextKeys.enabled, hasActiveSessionFailedCIChecks), menu: [{ - id: MenuId.ChatEditingSessionApplySubmenu, + id: MenuId.AgentsChangesPrimaryActionSubMenu, group: 'navigation', order: 4, when: ContextKeyExpr.and(IsSessionsWindowContext, hasActiveSessionFailedCIChecks), diff --git a/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.ts b/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.ts index 6653b98cd8c..75e160e891b 100644 --- a/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.ts +++ b/src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.ts @@ -47,7 +47,7 @@ function registerSessionCodeReviewAction(tooltip: string, icon: ThemeIcon): Disp canRunSessionCodeReviewContextKey), menu: [ { - id: MenuId.ChatEditingSessionChangesToolbar, + id: MenuId.AgentsChangesToolbar, group: 'navigation', order: 7, when: ContextKeyExpr.and( diff --git a/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.ts b/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.ts index 0a0a80da878..6869a239f92 100644 --- a/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.ts +++ b/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.ts @@ -791,7 +791,7 @@ registerAction2(class MarkSessionAsDoneAction extends Action2 { icon: Codicon.check, precondition: ChatContextKeys.requestInProgress.negate(), menu: [{ - id: MenuId.ChatEditingSessionChangesToolbar, + id: MenuId.AgentsChangesToolbar, group: 'navigation', order: 1, when: ContextKeyExpr.and( @@ -824,7 +824,7 @@ registerAction2(class RestoreSessionAction extends Action2 { title: localize2('restore', "Restore"), icon: Codicon.discard, menu: [{ - id: MenuId.ChatEditingSessionChangesToolbar, + id: MenuId.AgentsChangesToolbar, group: 'navigation', order: 1, when: ContextKeyExpr.and( diff --git a/src/vs/sessions/test/e2e/extensions/sessions-e2e-mock/package.json b/src/vs/sessions/test/e2e/extensions/sessions-e2e-mock/package.json index fa02ea6068b..e7ded55ecad 100644 --- a/src/vs/sessions/test/e2e/extensions/sessions-e2e-mock/package.json +++ b/src/vs/sessions/test/e2e/extensions/sessions-e2e-mock/package.json @@ -83,7 +83,7 @@ "group": "navigation@1" } ], - "chat/input/editing/sessionApplyActions": [ + "agents/changes/actions/primary": [ { "command": "github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge", "when": "chatSessionType == copilotcli && isSessionsWindow && !sessions.isMergeBaseBranchProtected", diff --git a/src/vs/workbench/services/actions/common/menusExtensionPoint.ts b/src/vs/workbench/services/actions/common/menusExtensionPoint.ts index 67c86483f14..f7d24736bb1 100644 --- a/src/vs/workbench/services/actions/common/menusExtensionPoint.ts +++ b/src/vs/workbench/services/actions/common/menusExtensionPoint.ts @@ -484,12 +484,6 @@ const apiMenus: IAPIMenu[] = [ description: localize('menus.chatEditingSessionChangesToolbar', "The Chat Editing widget toolbar menu for session changes."), proposed: 'chatSessionsProvider' }, - { - key: 'chat/input/editing/sessionApplyActions', - id: MenuId.ChatEditingSessionApplySubmenu, - description: localize('menus.chatEditingSessionApplySubmenu', "Submenu for apply actions in the Chat Editing session changes toolbar."), - proposed: 'chatSessionsProvider' - }, { key: 'chat/input/editing/sessionTitleToolbar', id: MenuId.ChatEditingSessionTitleToolbar, @@ -557,6 +551,18 @@ const apiMenus: IAPIMenu[] = [ description: localize('menus.chatNewSession', "The Chat new session menu."), proposed: 'chatSessionsProvider' }, + { + key: 'agents/changes/actions', + id: MenuId.AgentsChangesToolbar, + description: localize('menus.agentsChangesToolbar', "The Changes view toolbar of the agents window."), + proposed: 'chatSessionsProvider' + }, + { + key: 'agents/changes/actions/primary', + id: MenuId.AgentsChangesPrimaryActionSubMenu, + description: localize('menus.agentsChangesPrimaryActionSubMenu', "The Changes view toolbar primary action submenu in the agents window."), + proposed: 'chatSessionsProvider' + }, ]; namespace schema {