This commit is contained in:
Shreya Keshive
2026-03-03 14:00:54 -05:00
parent fe332bbef7
commit df256803d4
12 changed files with 44 additions and 13 deletions

View File

@@ -37,8 +37,8 @@ and parameters.
| `--sandbox` | `-s` | boolean | `false` | Run in a sandboxed environment for safer execution |
| `--approval-mode` | - | string | `default` | Approval mode for tool execution. Choices: `default`, `auto_edit`, `yolo` |
| `--yolo` | `-y` | boolean | `false` | **Deprecated.** Auto-approve all actions. Use `--approval-mode=yolo` instead. |
| `--experimental-acp` | - | boolean | - | Start in ACP (Agent Code Pilot) mode. **Experimental feature.** |
| `--experimental-zed-integration` | - | boolean | - | Run in Zed editor integration mode. **Experimental feature.** |
| `--acp` | - | boolean | - | Start in ACP (Agent Client Protocol) mode. |
| `--experimental-zed-integration` | - | boolean | - | **Deprecated.** Use `--acp` instead. Run in Zed editor integration mode. |
| `--allowed-mcp-server-names` | - | array | - | Allowed MCP server names (comma-separated or multiple flags) |
| `--allowed-tools` | - | array | - | **Deprecated.** Use the [Policy Engine](../reference/policy-engine.md) instead. Tools that are allowed to run without confirmation (comma-separated or multiple flags) |
| `--extensions` | `-e` | array | - | List of extensions to use. If not provided, all extensions are enabled (comma-separated or multiple flags) |

View File

@@ -14,7 +14,7 @@ import {
type Mock,
type Mocked,
} from 'vitest';
import { GeminiAgent, Session } from './zedIntegration.js';
import { GeminiAgent, Session } from './acp.js';
import * as acp from '@agentclientprotocol/sdk';
import {
AuthType,

View File

@@ -61,7 +61,7 @@ import { loadCliConfig } from '../config/config.js';
import { runExitCleanup } from '../utils/cleanup.js';
import { SessionSelector } from '../utils/sessionUtils.js';
export async function runZedIntegration(
export async function runAcp(
config: Config,
settings: LoadedSettings,
argv: CliArgs,

View File

@@ -13,7 +13,7 @@ import {
type Mocked,
type Mock,
} from 'vitest';
import { GeminiAgent } from './zedIntegration.js';
import { GeminiAgent } from './acp.js';
import * as acp from '@agentclientprotocol/sdk';
import {
ApprovalMode,

View File

@@ -82,6 +82,8 @@ export interface CliArgs {
allowedMcpServerNames: string[] | undefined;
allowedTools: string[] | undefined;
experimentalAcp: boolean | undefined;
experimentalZedIntegration: boolean | undefined;
acp: boolean | undefined;
extensions: string[] | undefined;
listExtensions: boolean | undefined;
resume: string | typeof RESUME_LATEST | undefined;
@@ -180,6 +182,16 @@ export async function parseArguments(
.option('experimental-acp', {
type: 'boolean',
description: 'Starts the agent in ACP mode',
hidden: true,
})
.option('experimental-zed-integration', {
type: 'boolean',
description: 'Run in Zed editor integration mode',
hidden: true,
})
.option('acp', {
type: 'boolean',
description: 'Starts the agent in ACP mode',
})
.option('allowed-mcp-server-names', {
type: 'array',
@@ -633,6 +645,8 @@ export async function loadCliConfig(
const interactive =
!!argv.promptInteractive ||
!!argv.experimentalAcp ||
!!argv.experimentalZedIntegration ||
!!argv.acp ||
(!isHeadlessMode({ prompt: argv.prompt, query: argv.query }) &&
!argv.isCommand);
@@ -821,7 +835,16 @@ export async function loadCliConfig(
bugCommand: settings.advanced?.bugCommand,
model: resolvedModel,
maxSessionTurns: settings.model?.maxSessionTurns,
experimentalZedIntegration: argv.experimentalAcp || false,
acp:
argv.acp ||
argv.experimentalAcp ||
argv.experimentalZedIntegration ||
false,
experimentalZedIntegration:
argv.experimentalAcp ||
argv.acp ||
argv.experimentalZedIntegration ||
false,
listExtensions: argv.listExtensions || false,
listSessions: argv.listSessions || false,
deleteSession: argv.deleteSession,

View File

@@ -79,7 +79,7 @@ import {
type InitializationResult,
} from './core/initializer.js';
import { validateAuthMethod } from './config/auth.js';
import { runZedIntegration } from './zed-integration/zedIntegration.js';
import { runAcp } from './acp/acp.js';
import { validateNonInteractiveAuth } from './validateNonInterActiveAuth.js';
import { checkForUpdates } from './ui/utils/updateCheck.js';
import { handleAutoUpdate } from './utils/handleAutoUpdate.js';
@@ -672,8 +672,8 @@ export async function main() {
await getOauthClient(settings.merged.security.auth.selectedType, config);
}
if (config.getExperimentalZedIntegration()) {
return runZedIntegration(config, settings, argv);
if (config.getAcp()) {
return runAcp(config, settings, argv);
}
let input = config.getQuestion();

View File

@@ -271,7 +271,7 @@ async function initOauthClient(
await triggerPostAuthCallbacks(client.credentials);
} else {
// In Zed integration, we skip the interactive consent and directly open the browser
// In ACP integration, we skip the interactive consent and directly open the browser
if (!config.getExperimentalZedIntegration()) {
const userConsent = await getConsentForOauth('');
if (!userConsent) {

View File

@@ -504,6 +504,7 @@ export interface ConfigParameters {
disableLoopDetection?: boolean;
maxSessionTurns?: number;
experimentalZedIntegration?: boolean;
acp?: boolean;
listSessions?: boolean;
deleteSession?: string;
listExtensions?: boolean;
@@ -699,6 +700,8 @@ export class Config implements McpContext {
private readonly summarizeToolOutput:
| Record<string, SummarizeToolOutputSettings>
| undefined;
private readonly acp: boolean = false;
/** @deprecated Use acp instead */
private readonly experimentalZedIntegration: boolean = false;
private readonly loadMemoryFromIncludeDirectories: boolean = false;
private readonly includeDirectoryTree: boolean = true;
@@ -894,8 +897,8 @@ export class Config implements McpContext {
DEFAULT_PROTECT_LATEST_TURN,
};
this.maxSessionTurns = params.maxSessionTurns ?? -1;
this.experimentalZedIntegration =
params.experimentalZedIntegration ?? false;
this.acp = !!(params.acp || params.experimentalZedIntegration);
this.experimentalZedIntegration = this.acp;
this.listSessions = params.listSessions ?? false;
this.deleteSession = params.deleteSession;
this.listExtensions = params.listExtensions ?? false;
@@ -2205,8 +2208,13 @@ export class Config implements McpContext {
return this.usageStatisticsEnabled;
}
getAcp(): boolean {
return this.acp;
}
/** @deprecated Use getAcp() instead */
getExperimentalZedIntegration(): boolean {
return this.experimentalZedIntegration;
return this.acp;
}
async waitForMcpInit(): Promise<void> {