Wire Antigravity CLI as a first-class agent type
What type of PR is this?
/kind feature
What this PR does / why we need it:
Adds a new agent for Google Antigravity CLI (agy), Google's terminal coding agent that supersedes the deprecated Gemini CLI, and wires it through the documented CRD path so a manifest with type: antigravity is reachable end-to-end (not just buildable as an image).
- New
antigravity/directory withDockerfileandkelos_entrypoint.sh, mirroring the existinggemini/,opencode/, andcursor/images (ubuntu:24.04 base + Go + Node +gh+git). The Dockerfile installsagyvia the officialhttps://antigravity.google/cli/install.shscript. - The entrypoint runs
agy --print --output-format stream-jsonwith optional--model "$KELOS_MODEL", writesKELOS_AGENTS_MDto~/.config/agy/AGENTS.md, executes the optionalKELOS_SETUP_COMMAND, and streams the agent output intokelos-capture. - Wires
antigravityintoIMAGE_DIRSin the Makefile and adds the image to the kind-load step of.github/workflows/reusable-e2e.yaml. - Extends
Task.spec.typeandTaskTemplate.typekubebuilder enums withantigravityand regenerates the CRD YAMLs. - Adds
AgentTypeAntigravity,AntigravityImage,JobBuilder.AntigravityImage{,PullPolicy}fields, the--antigravity-image/--antigravity-image-pull-policycontroller flags, and a switch case inJobBuilder.Build. - Restricts
Task.spec.credentials.typetononefor the antigravity agent type (theagyCLI has no documented non-interactive credential env var, so the controller refusesapi-key/oauthrather than silently injecting Anthropic-shaped variables). Operators who need authenticated runs supply credentials viaTask.spec.podOverrides.env. - Documents the new agent type and the
credentials.type: nonerestriction indocs/agent-image-interface.md,docs/reference.md,skills/kelos/SKILL.md, and the README. Drops the unusedANTIGRAVITY_API_KEYline from the entrypoint contract header so docs match implementation.
Which issue(s) this PR is related to:
Fixes #1173
Special notes for your reviewer:
The Antigravity install script does not support pinning to a specific version; it always fetches the latest from Google's auto-updater service. This is acknowledged in the PR review feedback as a follow-up (P3) — a follow-up can pin the binary URL once Google publishes a stable per-version download pattern, matching the GEMINI_CLI_VERSION / CURSOR_CLI_VERSION pattern used by the sibling images.
Once agy documents a non-interactive credential env var, a follow-up can lift the credentials.type: none restriction by adding apiKeyEnvVar / oauthEnvVar cases for antigravity and updating the entrypoint contract.
Does this PR introduce a user-facing change?
Added a new agent for Google Antigravity CLI (`agy`). Set `type: antigravity` on a Task or TaskTemplate to use it; only `credentials.type: none` is supported, so credentials should be supplied via `podOverrides.env`.