From 663919a52b7c8def46ab9ab1ff4a68c3202521b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Flor=C3=AAncio?= Date: Sat, 28 Mar 2026 23:11:21 +0000 Subject: [PATCH] fix(agents): update gemini ACP flag and claude-agent-acp package org (#482) --- apps/backend/internal/agent/agents/agent.go | 2 +- apps/backend/internal/agent/agents/claude_acp.go | 6 +++--- apps/backend/internal/agent/agents/gemini.go | 4 ++-- .../internal/agentctl/server/adapter/e2e/gemini_test.go | 2 +- apps/backend/internal/agentctl/server/utility/types.go | 2 +- docs/add-agent-cli.md | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/backend/internal/agent/agents/agent.go b/apps/backend/internal/agent/agents/agent.go index 1ebee342cc..986abe5812 100644 --- a/apps/backend/internal/agent/agents/agent.go +++ b/apps/backend/internal/agent/agents/agent.go @@ -277,7 +277,7 @@ type InferenceConfig struct { // Supported indicates the agent can do one-shot inference. Supported bool // Command is the ACP command for one-shot inference. - // e.g., ["npx", "-y", "@zed-industries/claude-agent-acp"] + // e.g., ["npx", "-y", "@agentclientprotocol/claude-agent-acp"] Command Command // ModelFlag is the flag template for specifying the model (e.g., ["--model", "{model}"]). ModelFlag Param diff --git a/apps/backend/internal/agent/agents/claude_acp.go b/apps/backend/internal/agent/agents/claude_acp.go index 885946fc06..66eb42559b 100644 --- a/apps/backend/internal/agent/agents/claude_acp.go +++ b/apps/backend/internal/agent/agents/claude_acp.go @@ -14,7 +14,7 @@ var claudeACPLogoLight []byte //go:embed logos/claude_code_dark.svg var claudeACPLogoDark []byte -const claudeACPPkg = "@zed-industries/claude-agent-acp" +const claudeACPPkg = "@agentclientprotocol/claude-agent-acp" var ( _ Agent = (*ClaudeACP)(nil) @@ -22,7 +22,7 @@ var ( _ InferenceAgent = (*ClaudeACP)(nil) ) -// ClaudeACP implements Agent for the Zed Industries claude-agent-acp package. +// ClaudeACP implements Agent for the agentclientprotocol claude-agent-acp package. // It speaks the ACP protocol (JSON-RPC 2.0 over stdin/stdout) and wraps the // Claude Agent SDK. Used for A/B comparison against the stream-json Claude Code agent. type ClaudeACP struct { @@ -52,7 +52,7 @@ func (a *ClaudeACP) ID() string { return "claude-acp" } func (a *ClaudeACP) Name() string { return "Claude ACP Agent" } func (a *ClaudeACP) DisplayName() string { return "Claude" } func (a *ClaudeACP) Description() string { - return "Anthropic Claude coding agent using the ACP protocol via the Zed Industries bridge." + return "Anthropic Claude coding agent using the ACP protocol via the agentclientprotocol bridge." } func (a *ClaudeACP) Enabled() bool { return true } func (a *ClaudeACP) DisplayOrder() int { return 1 } diff --git a/apps/backend/internal/agent/agents/gemini.go b/apps/backend/internal/agent/agents/gemini.go index be3c8e0fe4..1ae01b85b0 100644 --- a/apps/backend/internal/agent/agents/gemini.go +++ b/apps/backend/internal/agent/agents/gemini.go @@ -90,7 +90,7 @@ func (a *Gemini) ListModels(ctx context.Context) (*ModelList, error) { } func (a *Gemini) BuildCommand(opts CommandOptions) Command { - return Cmd("npx", "-y", geminiPkg, "--experimental-acp"). + return Cmd("npx", "-y", geminiPkg, "--acp"). Model(NewParam("--model", "{model}"), opts.Model). Settings(geminiPermSettings, opts.PermissionValues). Build() @@ -99,7 +99,7 @@ func (a *Gemini) BuildCommand(opts CommandOptions) Command { func (a *Gemini) Runtime() *RuntimeConfig { canRecover := false return &RuntimeConfig{ - Cmd: Cmd("npx", "-y", geminiPkg, "--experimental-acp").Build(), + Cmd: Cmd("npx", "-y", geminiPkg, "--acp").Build(), WorkingDir: "{workspace}", Env: map[string]string{}, ResourceLimits: ResourceLimits{MemoryMB: 4096, CPUCores: 2.0, Timeout: time.Hour}, diff --git a/apps/backend/internal/agentctl/server/adapter/e2e/gemini_test.go b/apps/backend/internal/agentctl/server/adapter/e2e/gemini_test.go index e5fa7e12a2..a89f0d1dc5 100644 --- a/apps/backend/internal/agentctl/server/adapter/e2e/gemini_test.go +++ b/apps/backend/internal/agentctl/server/adapter/e2e/gemini_test.go @@ -12,7 +12,7 @@ import ( // geminiCommand is the CLI command for Google Gemini in ACP mode. // Derived from internal/agent/agents/gemini.go. -const geminiCommand = "npx -y @google/gemini-cli --experimental-acp" +const geminiCommand = "npx -y @google/gemini-cli --acp" func TestGemini_BasicPrompt(t *testing.T) { result := RunAgent(t, AgentSpec{ diff --git a/apps/backend/internal/agentctl/server/utility/types.go b/apps/backend/internal/agentctl/server/utility/types.go index 84a3f20acf..7154326a33 100644 --- a/apps/backend/internal/agentctl/server/utility/types.go +++ b/apps/backend/internal/agentctl/server/utility/types.go @@ -25,7 +25,7 @@ type PromptRequest struct { // InferenceConfigDTO is the inference configuration passed from backend to agentctl. type InferenceConfigDTO struct { // Command is the ACP command for one-shot inference. - // e.g., ["npx", "-y", "@zed-industries/claude-agent-acp"] + // e.g., ["npx", "-y", "@agentclientprotocol/claude-agent-acp"] Command []string `json:"command"` // ModelFlag is the flag template for specifying the model. ModelFlag []string `json:"model_flag,omitempty"` diff --git a/docs/add-agent-cli.md b/docs/add-agent-cli.md index b4a262525e..c98fe6ed7b 100644 --- a/docs/add-agent-cli.md +++ b/docs/add-agent-cli.md @@ -138,7 +138,7 @@ func NewMyAgent() *MyAgent { Key implementation notes: -- **`BuildCommand()`** returns the CLI command for structured protocol mode (the agent communicates via stdin/stdout with a protocol adapter). Include the protocol flag here (e.g. `--experimental-acp`, `--stream-json`). +- **`BuildCommand()`** returns the CLI command for structured protocol mode (the agent communicates via stdin/stdout with a protocol adapter). Include the protocol flag here (e.g. `--acp`, `--stream-json`). - **`Runtime()`** returns configuration used when running the agent in Docker or as a standalone process. Set `Protocol` to tell the adapter factory which transport to use. - **`IsInstalled()`** uses the `Detect()` helper with `WithFileExists()` to check for known installation paths. Set `SupportsMCP` and `MCPConfigPaths` on the result. - **`ListModels()`** can return a static list or dynamically query the CLI. Use `execAndParse()` from `helpers.go` for dynamic model discovery.