Skip to content

Align terminal-auth validation and docs with the current ACP RFD #498

Description

@hetaoBackend

The registry currently has two terminal-auth compatibility mismatches with the current ACP RFD:

  1. .github/workflows/client.py advertises clientCapabilities.terminal: true plus _meta["terminal-auth"], but not the current v1 capability clientCapabilities.auth.terminal: true. A conforming agent that only checks the current capability returns no terminal auth method, so verify_agents.py --auth-check fails with No authMethods in response.
  2. AUTHENTICATION.md says terminal-auth args replace the default launch args. The current RFD specifies that clients reconstruct the configured base launch and append the descriptor args. Zed already implements the append behavior.

Current RFD: https://agentclientprotocol.com/rfds/auth-methods
Validator:

proc = None
t0 = time.monotonic()
try:
# Make binary executable if needed
exe_path = Path(cmd[0])
if exe_path.exists() and not os.access(exe_path, os.X_OK):
exe_path.chmod(exe_path.stat().st_mode | 0o755)
# Start agent process
proc = subprocess.Popen(
cmd,
cwd=cwd,
env=full_env,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
bufsize=0,
**subprocess_group_kwargs(),

Docs:
"type": "terminal",
"args": ["--setup"],
"env": {
"VAR1": "value1"
}
}
```
**Key points:**
- The `args` array specifies additional command-line arguments (e.g., `--setup`, `--login`)
- The `env` object defines environment variables to pass to the process
- These **replace** the default args/env for the agent during the setup flow
- The agent should handle its interactive login flow separately from standard ACP operation

Suggested compatibility-safe change:

  • Have the auth validator advertise auth: { terminal: true } while retaining the legacy hints during the preview transition.
  • Update AUTHENTICATION.md to describe base launch + appended args and env overlay semantics.
  • Add a validator test for an agent that gates terminal auth on clientCapabilities.auth.terminal.

I found this while preparing a registry entry for MiniMax Code; its current ACP implementation follows the RFD capability shape and reproduces the auth-check failure.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions