Initial commit — Antigravity plugin v0.1.0
Plugin Claude Code miroir du plugin codex officiel d'OpenAI, mais pour Google Antigravity (agy CLI). Headless via: agy --print --dangerously-skip-permissions --print-timeout 10m Includes: - 1 forwarder agent (antigravity-rescue) - 5 slash commands (setup, rescue, status, result, cancel) - 3 internal skills (cli-runtime, result-handling, gemini-prompting) - agy-companion.mjs runtime (task / setup / status / result / cancel) - marketplace.json for `/plugin marketplace add` Tested: setup OK, foreground task OK, background workflow OK (except OAuth refresh which requires interactive TTY). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
15
commands/cancel.md
Normal file
15
commands/cancel.md
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
description: Cancel a background Antigravity (agy) job
|
||||
argument-hint: "<jobId>"
|
||||
allowed-tools: Bash(node:*)
|
||||
---
|
||||
|
||||
Run:
|
||||
|
||||
```bash
|
||||
node "${CLAUDE_PLUGIN_ROOT}/scripts/agy-companion.mjs" cancel $ARGUMENTS
|
||||
```
|
||||
|
||||
If no job id is supplied, run `/antigravity:status` first and ask the user which job they want to cancel.
|
||||
|
||||
Present the output to the user as-is.
|
||||
47
commands/rescue.md
Normal file
47
commands/rescue.md
Normal file
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: Delegate investigation, an explicit fix request, or follow-up rescue work to the Antigravity (Gemini) rescue subagent
|
||||
argument-hint: "[--background|--wait] [--resume|--fresh] [--sandbox] [--add-dir <path>] [--timeout <10m|300s>] [what Antigravity should investigate, solve, or continue]"
|
||||
allowed-tools: Bash(node:*), AskUserQuestion, Agent
|
||||
---
|
||||
|
||||
Invoke the `antigravity:antigravity-rescue` subagent via the `Agent` tool (`subagent_type: "antigravity:antigravity-rescue"`), forwarding the raw user request as the prompt.
|
||||
`antigravity:antigravity-rescue` is a subagent, not a skill — do not call `Skill(antigravity:antigravity-rescue)` (no such skill).
|
||||
The final user-visible response must be Antigravity's output verbatim.
|
||||
|
||||
Raw user request:
|
||||
$ARGUMENTS
|
||||
|
||||
Execution mode:
|
||||
|
||||
- If the request includes `--background`, run the `antigravity:antigravity-rescue` subagent in the background.
|
||||
- If the request includes `--wait`, run the `antigravity:antigravity-rescue` subagent in the foreground.
|
||||
- If neither flag is present, default to foreground.
|
||||
- `--background` and `--wait` are execution flags for Claude Code. Forward `--background` to the helper; strip `--wait` from the prompt text.
|
||||
- `--resume`, `--fresh`, `--sandbox`, `--add-dir`, `--timeout` are runtime-selection flags. Preserve them for the forwarded `task` call, but do not include them in the natural-language task text.
|
||||
- If the request includes `--resume`, do not ask whether to continue. The user already chose.
|
||||
- If the request includes `--fresh`, do not ask whether to continue. The user already chose.
|
||||
- Otherwise, before starting Antigravity, check for a resumable rescue thread from this Claude session by running:
|
||||
|
||||
```bash
|
||||
node "${CLAUDE_PLUGIN_ROOT}/scripts/agy-companion.mjs" task-resume-candidate --json
|
||||
```
|
||||
|
||||
- If that helper reports `available: true`, use `AskUserQuestion` exactly once to ask whether to continue the current Antigravity thread or start a new one.
|
||||
- The two choices must be:
|
||||
- `Continue current Antigravity thread`
|
||||
- `Start a new Antigravity thread`
|
||||
- If the user is clearly giving a follow-up instruction such as "continue", "keep going", "resume", "dig deeper", put `Continue current Antigravity thread (Recommended)` first.
|
||||
- Otherwise put `Start a new Antigravity thread (Recommended)` first.
|
||||
- If the user chooses continue, add `--resume` before routing to the subagent.
|
||||
- If the user chooses a new thread, add `--fresh` before routing to the subagent.
|
||||
- If the helper reports `available: false`, do not ask. Route normally.
|
||||
|
||||
Operating rules:
|
||||
|
||||
- The subagent is a thin forwarder only. It should use one `Bash` call to invoke `node "${CLAUDE_PLUGIN_ROOT}/scripts/agy-companion.mjs" task ...` and return that command's stdout as-is.
|
||||
- Return the Antigravity companion stdout verbatim to the user.
|
||||
- Do not paraphrase, summarize, rewrite, or add commentary before or after it.
|
||||
- Do not ask the subagent to inspect files, monitor progress, poll `/antigravity:status`, fetch `/antigravity:result`, call `/antigravity:cancel`, summarize output, or do follow-up work of its own.
|
||||
- Leave `--resume` and `--fresh` in the forwarded request. The subagent handles that routing when it builds the `task` command.
|
||||
- If the helper reports that Antigravity is missing, stop and tell the user to run `/antigravity:setup`.
|
||||
- If the user did not supply a request, ask what Antigravity should investigate or fix.
|
||||
13
commands/result.md
Normal file
13
commands/result.md
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
description: Print the full log of an Antigravity (agy) background job
|
||||
argument-hint: "[<jobId>]"
|
||||
allowed-tools: Bash(node:*)
|
||||
---
|
||||
|
||||
Run:
|
||||
|
||||
```bash
|
||||
node "${CLAUDE_PLUGIN_ROOT}/scripts/agy-companion.mjs" result $ARGUMENTS
|
||||
```
|
||||
|
||||
Present the output (raw Antigravity log) to the user verbatim. If the output is very long, just stream it as-is; do not summarize.
|
||||
39
commands/setup.md
Normal file
39
commands/setup.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
description: Check whether the local Antigravity (agy) CLI is ready
|
||||
allowed-tools: Bash(node:*), Bash(curl:*), Bash(bash:*), AskUserQuestion
|
||||
---
|
||||
|
||||
Run:
|
||||
|
||||
```bash
|
||||
node "${CLAUDE_PLUGIN_ROOT}/scripts/agy-companion.mjs" setup --json
|
||||
```
|
||||
|
||||
Parse the JSON output.
|
||||
|
||||
If `installed` is `false`:
|
||||
- Use `AskUserQuestion` exactly once to ask whether Claude should install Antigravity now.
|
||||
- Put the install option first and suffix it with `(Recommended)`.
|
||||
- Use these two options:
|
||||
- `Install Antigravity (Recommended)`
|
||||
- `Skip for now`
|
||||
- If the user chooses install, run:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://antigravity.google/cli/install.sh | bash
|
||||
```
|
||||
|
||||
- Then rerun:
|
||||
|
||||
```bash
|
||||
node "${CLAUDE_PLUGIN_ROOT}/scripts/agy-companion.mjs" setup --json
|
||||
```
|
||||
|
||||
If `installed` is already `true`:
|
||||
- Do not ask about installation.
|
||||
|
||||
Output rules:
|
||||
- Present the final setup output to the user in a human-readable summary.
|
||||
- If the install was skipped, present the original setup output.
|
||||
- Mention the headless invocation command (`headless_mode`) so the user knows what's under the hood.
|
||||
- If installation succeeded but agy is not yet authenticated, instruct the user to run `agy` once interactively in a terminal to complete Google sign-in.
|
||||
23
commands/status.md
Normal file
23
commands/status.md
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
description: Show status of background Antigravity (agy) tasks
|
||||
argument-hint: "[<jobId>] [--json]"
|
||||
allowed-tools: Bash(node:*)
|
||||
---
|
||||
|
||||
Run:
|
||||
|
||||
```bash
|
||||
node "${CLAUDE_PLUGIN_ROOT}/scripts/agy-companion.mjs" status $ARGUMENTS
|
||||
```
|
||||
|
||||
Present the output to the user as-is.
|
||||
|
||||
If no jobs are found, suggest:
|
||||
- Running a foreground task: `/antigravity:rescue <your task>`
|
||||
- Or a background task: `/antigravity:rescue --background <your task>`
|
||||
|
||||
If a job is shown as `exited`, suggest viewing the result:
|
||||
|
||||
```
|
||||
/antigravity:result <jobId>
|
||||
```
|
||||
Reference in New Issue
Block a user