Summary
The public ACP Registry build of antigravity-acp currently advertises only Gemini models under oauth-personal, even when the same signed-in Antigravity account can list and execute Claude 4.6 and GPT-OSS 120B through the official Antigravity IDE/CLI.
This reproduces by driving the Registry binary directly over NDJSON; no Paseo proxy or model-catalog transformation is involved.
Affected Registry entry:
- Registry version:
antigravity-acp 1.0.0
- Agent build:
agy_acp_server_20260818_01_RC01
- Tested platform: Linux x86_64
- Tested binary SHA-256:
46b5925100903a23e0ec7da8b8a218c224494dfffeb3fd30fcd84e91acbc8b07
- Verified: 2026-08-28
Reproduction
- Start the binary distributed by
antigravity-acp/agent.json.
- Send
initialize with protocolVersion: 1.
- Authenticate with
methodId: "oauth-personal".
- Send
session/new with a valid cwd and mcpServers: [].
- Inspect the model config option returned by
session/new.
- Send
session/set_config_option with configId: "model" and value: "claude-sonnet-4-6".
Observed model catalog: 11 Gemini model IDs only.
Observed model-selection error:
-32602 Model 'claude-sonnet-4-6' is not available for the current authentication method.
gpt-oss-120b-medium is rejected in the same way. The legacy session/set_model method reaches the same result.
Control result using the same account:
returns 14 entries, including:
claude-sonnet-4-6
claude-opus-4-6-thinking
gpt-oss-120b-medium
The CLI can execute these models successfully.
Source-level finding in the distributed binary
The distributed PAR contains its Python source. In
acp_server/model_selection.py, the CCPA fetchAvailableModels parser explicitly drops every non-Gemini model:
# Only include models that start with "gemini".
if not ccpa_id.startswith("gemini"):
continue
server.py::_apply_session_model then validates model IDs against that filtered catalog and raises -32602 before constructing the agent or forwarding the model ID to the CCPA inference path. This makes the error message look like an authentication/backend rejection even though the immediate rejection is local to the ACP server.
The result was unchanged across four initialize variants, including standard clientCapabilities, a full capability set, and Zed-like clientInfo. AGY_ACP_DEFAULT_MODEL, session/set_model, and session/set_config_option do not bypass the filtered catalog.
Registry coverage gap
The Registry protocol matrix currently reaches session/new: Authentication required for this agent and therefore never inspects the authenticated model catalog. Manifest validation and unauthenticated handshake tests can pass while this behavior remains undetected.
Expected outcome / questions
Could the Google publisher please confirm whether Gemini-only ACP exposure is intentional?
- If it is a defect, please publish an updated official agent build without the unconditional non-Gemini filter and update
antigravity-acp/agent.json.
- If it is intentional, please document that the ACP surface does not have model parity with the Antigravity IDE/CLI and clarify the misleading
current authentication method error.
- If practical, please add provider-owned authenticated coverage for the model catalog and model selection path.
Full protocol observations, evidence grading, ruled-out client parameters, and remaining unknowns:
https://github.com/tiezbro/paseo-agy-acp/blob/main/docs/research/google-antigravity-acp-model-catalog-investigation.md
cc @cynthialong0-0, author of the original Registry submission in #542.
Summary
The public ACP Registry build of
antigravity-acpcurrently advertises only Gemini models underoauth-personal, even when the same signed-in Antigravity account can list and execute Claude 4.6 and GPT-OSS 120B through the official Antigravity IDE/CLI.This reproduces by driving the Registry binary directly over NDJSON; no Paseo proxy or model-catalog transformation is involved.
Affected Registry entry:
antigravity-acp1.0.0agy_acp_server_20260818_01_RC0146b5925100903a23e0ec7da8b8a218c224494dfffeb3fd30fcd84e91acbc8b07Reproduction
antigravity-acp/agent.json.initializewithprotocolVersion: 1.methodId: "oauth-personal".session/newwith a validcwdandmcpServers: [].session/new.session/set_config_optionwithconfigId: "model"andvalue: "claude-sonnet-4-6".Observed model catalog: 11 Gemini model IDs only.
Observed model-selection error:
gpt-oss-120b-mediumis rejected in the same way. The legacysession/set_modelmethod reaches the same result.Control result using the same account:
returns 14 entries, including:
The CLI can execute these models successfully.
Source-level finding in the distributed binary
The distributed PAR contains its Python source. In
acp_server/model_selection.py, the CCPAfetchAvailableModelsparser explicitly drops every non-Gemini model:server.py::_apply_session_modelthen validates model IDs against that filtered catalog and raises-32602before constructing the agent or forwarding the model ID to the CCPA inference path. This makes the error message look like an authentication/backend rejection even though the immediate rejection is local to the ACP server.The result was unchanged across four
initializevariants, including standardclientCapabilities, a full capability set, and Zed-likeclientInfo.AGY_ACP_DEFAULT_MODEL,session/set_model, andsession/set_config_optiondo not bypass the filtered catalog.Registry coverage gap
The Registry protocol matrix currently reaches
session/new: Authentication requiredfor this agent and therefore never inspects the authenticated model catalog. Manifest validation and unauthenticated handshake tests can pass while this behavior remains undetected.Expected outcome / questions
Could the Google publisher please confirm whether Gemini-only ACP exposure is intentional?
antigravity-acp/agent.json.current authentication methoderror.Full protocol observations, evidence grading, ruled-out client parameters, and remaining unknowns:
https://github.com/tiezbro/paseo-agy-acp/blob/main/docs/research/google-antigravity-acp-model-catalog-investigation.md
cc @cynthialong0-0, author of the original Registry submission in #542.