Files
Alex Newman b11034b6eb fix(antigravity): align hooks/adapter/transcript with agy 1.2.1 contract (#4058)
Antigravity CLI (agy) recorded zero observations because the installer,
adapter and transcript parser still spoke Gemini CLI contracts. Four contract
fixes, Antigravity-only:

- hooks are written to ~/.gemini/config/hooks.json, the file agy actually
  loads; uninstall still strips legacy settings.json entries.
- the event map registers what agy 1.2.1 fires (PreInvocation, PreToolUse,
  PostToolUse, PostInvocation, Stop); the Gemini names had zero occurrences in
  the binary. Hook commands are bare and forward-slashed, since agy splits on
  spaces and does not strip quotes.
- the adapter parses camelCase protojson stdin and emits strict protojson
  stdout instead of Claude-style {"continue":true,...}.
- the transcript parser reads PLANNER_RESPONSE / USER_INPUT nodes with
  top-level content, discriminating on type rather than source, alongside the
  existing Claude/Cursor message.content handling.

Author: @thedotmack
Refs: #3611 (plan-23 Host Integration Contracts)
Closes: #4057

The internal hooks.json group schema stays provisional; live-CLI validation is
deferred to the plan-23 contract fixture.

Verified on merge of origin/main (ed2b39b41): bun test tests -> 3732 pass,
28 skip, 2 fail (both pre-existing on main: field-deadline-wire real-network
test and plugin-distribution npm-tarball test that needs a build). tsc
--noEmit clean; lint:hook-io and lint:spawn-env OK.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015w89Sfxy7rZK9xDWixDPv7
2026-09-12 10:20:02 -07:00
..