Repository navigation
Add Antigravity CLI as a quorum slot (Gemini CLI deprecation) #220
Description
Motivation
Google is deprecating the standalone Gemini CLI in favor of the Antigravity CLI (its agentic dev tool). nForma's quorum uses the Gemini CLI as a voter via the gemini-1 slot (mainTool: "gemini", display_type: "gemini-cli"). When the Gemini CLI is retired, gemini-1 will break — the Google voter needs to move to the Antigravity CLI.
Important: host-runtime support already exists, slot support does NOT
bin/install.js already treats antigravity as a host runtime — an IDE nForma installs into (config dir ~/.antigravity, MCP prefix mcp__antigravity-1__, etc.): see install.js:155,167,183,214,327-335,405,601. That is not the same as a quorum CLI slot (a subprocess voter invoked non-interactively, the role gemini-1 plays). This issue is specifically about adding Antigravity as a quorum slot / voter.
Goal
Add an Antigravity-CLI quorum slot (e.g. gemini-1 re-pointed to the Antigravity CLI, or a new antigravity-1 slot) so the Google voter survives the Gemini CLI deprecation. Keep gemini-1 working during the transition if both CLIs coexist.
Concrete integration points
The gemini-1 slot template (installed ~/.claude/nf-bin/providers.json) shows everything a CLI slot needs — mainTool, args_template (["-m", "<model>", "-p", "{prompt}"]), health_check_args (["--version"]), auth_check, oauth_rotation (creds under ~/.gemini/...), deep_probe. An Antigravity slot needs the equivalents, plus updates to the hardcoded gemini/~/.gemini references:
- Slot template —
bin/providers.json/ the install-time default fleet (gemini-1 entry). - CLI detection & install —
install.js:41KNOWN_CLIS,install.js:76install cmd (npm i -g @google/gemini-cli),install.js:400keyword→prefix map,install.js:498detectExternalClis;bin/nForma.cjs:2555(@google/gemini-clipackage). - CLI resolution —
bin/resolve-cli.cjs(resolves bare names likegemini; needs the Antigravity binary name). - Auth / OAuth rotation —
bin/account-manager.cjs:20-22,192,196(creds default~/.gemini/accounts, active~/.gemini/oauth_creds.json) — Antigravity's credential layout. - Hardcoded slot/model lists —
update-scoreboard.cjs:70VALID_MODELS,verify-quorum-health.cjs:41,208SLOTS,generate-petri-net.cjs:20QUORUM_SLOTS,token-dashboard.cjs:18pricing, and the slot-classificationCLI_COMMANDSused by/nf:mcp-status+ statusline.
Open questions (need research / confirmation of the Antigravity CLI interface)
- Antigravity CLI binary name and install package (replacing
@google/gemini-cli)? - Non-interactive invocation — is there a
-p/--promptone-shot equivalent (the quorum needs print-mode, not an interactive agent loop)? - Model selection flag (today
-m gemini-3-flash-preview)? - Health check — does
--versionexist? - Auth model — does it reuse
~/.geminicredentials or a new~/.antigravitylayout? Does account/OAuth rotation still apply (and via which commands)? - Deprecation timeline for the Gemini CLI (drives urgency / whether to keep both slots).
Acceptance criteria
- An Antigravity-CLI voter participates in
/nf:quorum(responds to a non-interactive prompt, returns a verdict). /nf:mcp-statusshows it healthy; preflight resolves its spawn target via the shared resolver (resolve-providers.cjs/resolveSpawnTarget).- Health check + deep probe pass; OAuth rotation works (or is documented as N/A).
- No hardcoded
gemini-only assumptions block the new slot (lists above updated). - Migration path documented: what happens to existing
gemini-1installs when the Gemini CLI is removed.
Filed after the 2026-06 quorum-hardening series; the shared resolve-providers.cjs / resolveSpawnTarget plumbing from #197 should make adding the slot cleaner.
Activity