diff --git a/CHANGELOG.md b/CHANGELOG.md index cb093f1..ff55289 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- **Antigravity CLI sessions report to lich.** A sixth harness, and the first + whose packaging the plugin has to satisfy as well as its events: an Antigravity + plugin is a directory holding a `plugin.json`, whose `hooks.json` and `skills/` + are loaded from beside it. Both names are fixed, so those two files are the + ones in this repository that live at the root — `agy plugin validate .` passes + on the clone, and linking it into `plugins/` installs the hooks and the `theme` + skill in one step. + + It reports the session id and `busy` on `PreInvocation`, the running tool on + `PreToolUse`, the git-status refresh on `PostToolUse`, and `done` plus the + title on `Stop` — the title being the transcript's first `USER_INPUT` line, + unwrapped from its `` tags. `waiting` and `idle` are not + reported: no event has been measured for either, and `Stop` ends one execution + loop rather than the conversation. + + Two Antigravity rules the shared scripts had to learn. Its hooks are run + through `sh -c` with the working directory set to the plugin root and no + plugin-root variable of any kind, so the registration spells relative paths. + And a hook answers on stdout, where the answer is acted on — `decision` is + required before a tool call — so the registration appends the verdict each + event asks for, leaving the scripts silent for Codex, which reads their stdout + as an answer to a permission request. + + The provider id is registered in lich (omartelo/lich#370), so the fixtures + enumerate `antigravity` like every other provider and the suite holds this + client to it. + - **A waiting card says what the session is waiting for.** The `waiting` report now carries a `reason`, so the bell says *why* rather than only *that*. Each harness hands over something different to say it with: Claude Code's diff --git a/CLAUDE.md b/CLAUDE.md index a3e591c..c4a879d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,6 +1,6 @@ # lich-plugin -The agent side of the integration with **lich** — a harness that orchestrates agent CLI sessions. This companion plugin is how lich observes and acts inside a running session. It ships hooks — each following a contract documented in `docs/` — plus skills for work that targets lich itself. One plugin, packaged for **Claude Code**, **OpenAI Codex**, **opencode**, **omp** (oh-my-pi) and **Crush** from the same repository root. +The agent side of the integration with **lich** — a harness that orchestrates agent CLI sessions. This companion plugin is how lich observes and acts inside a running session. It ships hooks — each following a contract documented in `docs/` — plus skills for work that targets lich itself. One plugin, packaged for **Claude Code**, **OpenAI Codex**, **Antigravity CLI**, **opencode**, **omp** (oh-my-pi) and **Crush** from the same repository root. ## Structure @@ -9,10 +9,12 @@ The agent side of the integration with **lich** — a harness that orchestrates .claude-plugin/marketplace.json # marketplace, Claude Code .codex-plugin/plugin.json # plugin manifest, Codex .agents/plugins/marketplace.json # marketplace, Codex +plugin.json # plugin manifest, Antigravity — name and place both fixed +hooks.json # hook registration, Antigravity — likewise hooks/hooks.json # hook registration, Claude Code hooks/codex-hooks.json # hook registration, Codex hooks/crush-hooks.json # hook registration, Crush (hand-merged into crush.json) -hooks/ # hook scripts ($CLAUDE_PLUGIN_ROOT/hooks/