@brutalist/mcp 1.12.0 → 1.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +57 -31
  2. package/dist/brutalist-server.js +9 -9
  3. package/dist/brutalist-server.js.map +1 -1
  4. package/dist/cli-adapters/agy-adapter.d.ts +30 -0
  5. package/dist/cli-adapters/agy-adapter.d.ts.map +1 -0
  6. package/dist/cli-adapters/agy-adapter.js +280 -0
  7. package/dist/cli-adapters/agy-adapter.js.map +1 -0
  8. package/dist/cli-adapters/claude-adapter.d.ts +12 -2
  9. package/dist/cli-adapters/claude-adapter.d.ts.map +1 -1
  10. package/dist/cli-adapters/claude-adapter.js +102 -18
  11. package/dist/cli-adapters/claude-adapter.js.map +1 -1
  12. package/dist/cli-adapters/codex-adapter.d.ts +18 -1
  13. package/dist/cli-adapters/codex-adapter.d.ts.map +1 -1
  14. package/dist/cli-adapters/codex-adapter.js +86 -3
  15. package/dist/cli-adapters/codex-adapter.js.map +1 -1
  16. package/dist/cli-adapters/index.d.ts +55 -13
  17. package/dist/cli-adapters/index.d.ts.map +1 -1
  18. package/dist/cli-adapters/index.js +2 -2
  19. package/dist/cli-adapters/index.js.map +1 -1
  20. package/dist/cli-agents.d.ts +6 -29
  21. package/dist/cli-agents.d.ts.map +1 -1
  22. package/dist/cli-agents.js +74 -181
  23. package/dist/cli-agents.js.map +1 -1
  24. package/dist/debate/debate-orchestrator.d.ts +2 -4
  25. package/dist/debate/debate-orchestrator.d.ts.map +1 -1
  26. package/dist/debate/debate-orchestrator.js.map +1 -1
  27. package/dist/domains/argument-space.d.ts +8 -8
  28. package/dist/domains/argument-space.js +3 -3
  29. package/dist/domains/argument-space.js.map +1 -1
  30. package/dist/domains/critic-persona.d.ts +2 -1
  31. package/dist/domains/critic-persona.d.ts.map +1 -1
  32. package/dist/domains/critic-persona.js.map +1 -1
  33. package/dist/handlers/tool-handler.js.map +1 -1
  34. package/dist/mcp-registry.d.ts +0 -6
  35. package/dist/mcp-registry.d.ts.map +1 -1
  36. package/dist/mcp-registry.js +0 -35
  37. package/dist/mcp-registry.js.map +1 -1
  38. package/dist/metrics/registry.d.ts +2 -2
  39. package/dist/metrics/registry.js +2 -2
  40. package/dist/metrics/types.d.ts +1 -1
  41. package/dist/metrics/types.js +1 -1
  42. package/dist/model-resolver.d.ts +1 -13
  43. package/dist/model-resolver.d.ts.map +1 -1
  44. package/dist/model-resolver.js +12 -7
  45. package/dist/model-resolver.js.map +1 -1
  46. package/dist/streaming/output-parser.d.ts +1 -1
  47. package/dist/streaming/output-parser.d.ts.map +1 -1
  48. package/dist/streaming/output-parser.js +0 -17
  49. package/dist/streaming/output-parser.js.map +1 -1
  50. package/dist/streaming/streaming-orchestrator.js +1 -1
  51. package/dist/streaming/streaming-orchestrator.js.map +1 -1
  52. package/dist/types/brutalist.d.ts +3 -3
  53. package/dist/types/brutalist.d.ts.map +1 -1
  54. package/dist/types/tool-config.d.ts +4 -4
  55. package/dist/types/tool-config.d.ts.map +1 -1
  56. package/dist/types/tool-config.js +7 -6
  57. package/dist/types/tool-config.js.map +1 -1
  58. package/package.json +4 -3
  59. package/dist/cli-adapters/gemini-adapter.d.ts +0 -63
  60. package/dist/cli-adapters/gemini-adapter.d.ts.map +0 -1
  61. package/dist/cli-adapters/gemini-adapter.js +0 -208
  62. package/dist/cli-adapters/gemini-adapter.js.map +0 -1
package/README.md CHANGED
@@ -1,12 +1,14 @@
1
1
  # Brutalist MCP
2
2
 
3
- Multi-perspective code analysis using Claude Code, Codex, and Gemini CLI agents.
3
+ Multi-perspective code analysis using Claude Code, Codex, and Antigravity (`agy`) CLI agents.
4
+
5
+ > **Gemini → Antigravity transition (May 2026).** Google sunsets `gemini-cli` for Pro/Ultra/free users on **2026-06-18**. The successor `agy` (Antigravity v1.0.2) is now wired in as the third critic; it's slower per call (~30-60s vs 5-25s for claude/codex) and hard-pinned to `Gemini 3.5 Flash (Medium)` until Google ships [agy #35](https://github.com/google-antigravity/antigravity-cli/issues/35) (per-call `--model`), but auth + subprocess capture both work today.
4
6
 
5
7
  Get direct, honest technical feedback on your code, architecture, and ideas before they reach production.
6
8
 
7
9
  ## What It Does
8
10
 
9
- The Brutalist MCP connects your AI coding assistant to three different CLI agents (Claude, Codex, Gemini), each providing independent analysis. This gives you multiple perspectives on:
11
+ The Brutalist MCP connects your AI coding assistant to three different CLI agents (Claude, Codex, Antigravity), each providing independent analysis. This gives you multiple perspectives on:
10
12
 
11
13
  - Code quality and security vulnerabilities
12
14
  - Architecture decisions and scalability
@@ -28,8 +30,13 @@ npm install -g claude
28
30
  # Option 2: Codex
29
31
  # Install from https://github.com/openai/codex-cli
30
32
 
31
- # Option 3: Gemini
32
- npm install -g @google/gemini-cli
33
+ # Option 3: Antigravity (agy) — the gemini-cli successor
34
+ curl -fsSL https://antigravity.google/cli/install.sh | bash
35
+ # Then ONE-TIME interactive auth (browser OAuth flow):
36
+ agy "hi"
37
+ # On macOS, the agent binary lives at ~/.local/bin/agy; the desktop IDE
38
+ # at ~/.antigravity/antigravity/bin/agy can shadow it on PATH. If both
39
+ # are installed, set AGY_BIN=$HOME/.local/bin/agy in your environment.
33
40
  ```
34
41
 
35
42
  ### Step 2: Install the MCP Server
@@ -161,9 +168,9 @@ roast_cli_debate "Microservices vs Monolith for our e-commerce platform"
161
168
  This MCP server coordinates analysis from locally installed CLI agents:
162
169
  - **Claude Code CLI** - Code review and architectural analysis
163
170
  - **Codex CLI** - Security and technical implementation review
164
- - **Gemini CLI** - System design and scalability analysis
171
+ - **Antigravity (`agy`) CLI** - Gemini 3.5 Flash-tier rapid pattern-scan critique
165
172
 
166
- Each agent runs locally with direct file-system access, providing independent perspectives on your code and design decisions.
173
+ Each agent runs locally with direct file-system access, providing independent perspectives on your code and design decisions. Agy is structurally an agent (not a completion API) — it's slower per call and produces side effects under `~/.gemini/antigravity-cli/scratch/` (the adapter passes `--sandbox` to keep those out of the user's workspace).
167
174
 
168
175
  **Analysis time:** Up to 25 minutes for complex projects. Thorough analysis requires time to examine code patterns, dependencies, and architectural decisions.
169
176
 
@@ -236,48 +243,67 @@ See [docs/pagination.md](docs/pagination.md) for detailed pagination documentati
236
243
  roast(domain="codebase", target="/src")
237
244
 
238
245
  # Restrict to a subset only when the user explicitly names which critics
239
- roast(domain="codebase", target="/src", clis=["codex", "gemini"])
246
+ roast(domain="codebase", target="/src", clis=["codex", "agy"])
240
247
  ```
241
248
 
242
249
  ### Agent Strengths
243
250
 
244
251
  Different agents have different strengths:
245
- - **Code review**: Claude, Codex, Gemini
246
- - **Architecture**: Gemini, Claude, Codex
247
- - **Security**: Codex, Claude, Gemini
248
- - **Research**: Claude, Gemini, Codex
252
+ - **Code review**: Claude, Codex, Agy
253
+ - **Architecture**: Claude, Codex, Agy
254
+ - **Security**: Codex, Claude, Agy
255
+ - **Research**: Claude, Codex, Agy
249
256
 
250
- ### Verification-Heavy Domains
257
+ When auto-selecting (no `clis` parameter), `agy` is always tried LAST since it's the slowest per call. Explicit `clis=["agy"]` honors the request regardless.
251
258
 
252
- `legal`, `research`, and `security` ship with a mandatory verification protocol. Before citing any external authority (case, statute, study, CVE, advisory), agents must invoke their native web tools, lift a verbatim quote from the source, and tag the citation with one of:
259
+ ### Antigravity (Agy) Auth Setup
253
260
 
254
- - `[VERIFIED: <url> | "<verbatim quote supporting the attribution>"]`
255
- - `[SUPPLIED: <location> | "<verbatim quote from supplied materials>"]`
256
- - `[UNVERIFIED: <reason>]` verification failed; no quote
261
+ Local dev (one-time):
262
+ ```bash
263
+ agy "hi" # browser OAuth flow seeds the macOS keychain (or Linux file)
264
+ ```
257
265
 
258
- Untagged citations are a protocol violation. The "state doctrine without a cite" fallback is conditional on a failed web lookup, not a parallel option. Consumers of the critique can spot-check citations by fetching the URL and grepping for the quoted string.
266
+ CI / GitHub Actions: capture the token from your local macOS keychain and store as a GH secret named `AGY_OAUTH_TOKEN`:
267
+ ```bash
268
+ security find-generic-password -s gemini -a antigravity -w \
269
+ | sed 's/^go-keyring-base64://' | base64 -d \
270
+ | gh secret set AGY_OAUTH_TOKEN
271
+ ```
272
+ The Brutalist GitHub Action writes the secret to `~/.gemini/antigravity-cli/antigravity-oauth-token` (mode 0600) before invoking the orchestrator; agy auto-detects the container environment and reads tokens from there. Agy issue [#78](https://github.com/google-antigravity/antigravity-cli/issues/78) (env-var auth) is still open — until it closes, the file-provisioning path is the only way agy authenticates in CI.
273
+
274
+ If you have BOTH the Antigravity desktop IDE and the CLI agent installed on macOS, the IDE wrapper at `~/.antigravity/antigravity/bin/agy` may shadow the CLI agent at `~/.local/bin/agy` on PATH. Brutalist auto-prefers `~/.local/bin/agy` when it exists, so no manual override is usually needed. If your install is in a non-standard location, set `AGY_BIN=$HOME/.local/bin/agy` (or wherever) to override.
259
275
 
260
- ### Gemini Frontier Model Rotation
276
+ ### Per-Call Model Pinning (Agy)
261
277
 
262
- For Gemini, the server pins `gemini-3.1-pro-preview` as the default to prevent the CLI's Auto router from downselecting to `gemini-2.5-flash-lite` under verification load. The orchestrator automatically rotates through the frontier chain when the current tier is unavailable:
278
+ agy `--print` has no `--model` flag, but its `settings.json` accepts a human-readable label. Brutalist exploits this transparently: pass `models.agy` and brutalist writes the requested label under `flock(2)` for the duration of the call, then restores.
263
279
 
264
- 1. `gemini-3.1-pro-preview` (newest pro frontier, preview-tier access)
265
- 2. `gemini-3-pro-preview` (previous pro frontier, preview-tier access)
266
- 3. `gemini-3-flash-preview` (3-series flash — Pro-grade reasoning at Flash-level speed and cost; the floor of the rotation chain)
280
+ ```python
281
+ roast(
282
+ domain="codebase",
283
+ target="/src",
284
+ clis=["agy"],
285
+ models={"agy": "Gemini 3.1 Pro (High)"}
286
+ )
287
+ ```
267
288
 
268
- **Rotation fires on both capacity and access failures.** Users without preview-tier access to the pro variants fall through to `gemini-3-flash-preview` — which is materially better than the Auto router's `gemini-2.5-flash-lite` downselect because Gemini 3 Flash carries Pro-grade reasoning. Users *with* preview access get the newest pro model when capacity is available, with graceful fallback when it isn't.
289
+ Supported labels (Pro / Claude / GPT-OSS tiers require Antigravity entitlement; Flash is always available):
290
+ - `Gemini 3.5 Flash (High)` / `Gemini 3.5 Flash (Medium)`
291
+ - `Gemini 3.1 Pro (High)` / `Gemini 3.1 Pro (Low)`
292
+ - `Claude Sonnet 4.6 (Thinking)`
293
+ - `Claude Opus 4.6 (Thinking)`
294
+ - `GPT-OSS 120B (Medium)`
269
295
 
270
- If you need the last-generation pro model as your pin (e.g. your account has no 3.x preview access at all), use the env override below — `gemini-2.5-pro` is no longer in the rotation chain by default.
296
+ Invalid labels silently downselect to Flash Medium (agy's behavior, not ours).
297
+
298
+ ### Verification-Heavy Domains
271
299
 
272
- Rotatable failure patterns:
273
- - Capacity: `429`, `"No capacity available"`, `quota`, `rate limit`, `too many requests`
274
- - Access: `ModelNotFoundError`, `"Requested entity was not found"`, `403`, `permission denied`
300
+ `legal`, `research`, and `security` ship with a mandatory verification protocol. Before citing any external authority (case, statute, study, CVE, advisory), agents must invoke their native web tools, lift a verbatim quote from the source, and tag the citation with one of:
275
301
 
276
- Rotation aborts immediately on unrelated failures (auth, subprocess crash, prompt rejection) — a different model won't fix those.
302
+ - `[VERIFIED: <url> | "<verbatim quote supporting the attribution>"]`
303
+ - `[SUPPLIED: <location> | "<verbatim quote from supplied materials>"]`
304
+ - `[UNVERIFIED: <reason>]` — verification failed; no quote
277
305
 
278
- Overrides:
279
- - Per-call: `roast(..., models={gemini: "gemini-2.5-flash"})` — caller chooses, no rotation.
280
- - Per-environment: `BRUTALIST_GEMINI_MODEL=<model>` — operator chooses, no rotation. Common picks: `gemini-3-flash-preview` to skip the pro-preview probe cost; `gemini-2.5-pro` if you want the previous-generation pro pin (no longer in the rotation default).
306
+ Untagged citations are a protocol violation. The "state doctrine without a cite" fallback is conditional on a failed web lookup, not a parallel option. Consumers of the critique can spot-check citations by fetching the URL and grepping for the quoted string.
281
307
 
282
308
  ### Codex Model Selection
283
309
 
@@ -13,7 +13,7 @@ import { getDomain, generateToolConfig } from './registry/domains.js';
13
13
  import { filterToolsByIntent, getMatchingDomainIds } from './tool-router.js';
14
14
  import { DebateOrchestrator } from './debate/index.js';
15
15
  // Use environment variable or fallback to manual version
16
- const PACKAGE_VERSION = process.env.npm_package_version || "1.12.0";
16
+ const PACKAGE_VERSION = process.env.npm_package_version || "1.14.1";
17
17
  /**
18
18
  * BrutalistServer - Composition root for the Brutalist MCP Server
19
19
  *
@@ -372,13 +372,13 @@ export class BrutalistServer {
372
372
  target: z.string().describe("Filesystem path to analyze (e.g., '/path/to/project' or '.'). Directs agents to the relevant part of the codebase."),
373
373
  // Common optional fields
374
374
  context: z.string().optional().describe("Essential context for the critique. For abstract domains (idea, architecture, security, etc.), this is the primary input describing what to evaluate. For filesystem domains, provides supplementary background (e.g., goals, constraints, team context)."),
375
- clis: z.array(z.enum(["codex", "gemini", "claude"])).min(1).max(3).optional().describe("Subset of critics to run."),
375
+ clis: z.array(z.enum(["codex", "claude", "agy"])).min(1).max(3).optional().describe("Subset of critics to run."),
376
376
  verbose: z.boolean().optional().describe("Detailed output"),
377
377
  models: z.object({
378
378
  claude: z.string().optional(),
379
379
  codex: z.string().optional(),
380
- gemini: z.string().optional()
381
- }).optional().describe("Per-CLI model override. Claude/Gemini honor overrides. Codex uses the Codex CLI configured/default model by default; set BRUTALIST_CODEX_ALLOW_MODEL_OVERRIDE=true to allow a codex override. Omit to use each CLI's configured default."),
380
+ agy: z.string().optional()
381
+ }).optional().describe("Per-CLI model override. Claude honors overrides. Codex uses the Codex CLI configured/default model by default; set BRUTALIST_CODEX_ALLOW_MODEL_OVERRIDE=true to allow a codex override. Agy accepts a human-readable label (\"Gemini 3.1 Pro (High)\", \"Claude Sonnet 4.6 (Thinking)\", etc.) via settings.json swap under flock(2); Pro/Claude/GPT-OSS tiers require Antigravity entitlement. Omit to use each CLI's configured default."),
382
382
  // Pagination
383
383
  offset: z.number().min(0).optional().describe("Pagination offset"),
384
384
  limit: z.number().min(1000).max(100000).optional().describe("Max chars/chunk"),
@@ -422,7 +422,7 @@ export class BrutalistServer {
422
422
  proPosition: z.string().describe("The PRO thesis to defend (extracted by calling agent)"),
423
423
  conPosition: z.string().describe("The CON thesis to defend (extracted by calling agent)"),
424
424
  target: z.string().optional().describe("Filesystem path to analyze (e.g., '/path/to/project' or '.'). Directs agents to the relevant part of the codebase."),
425
- agents: z.array(z.enum(["codex", "gemini", "claude"])).length(2).optional()
425
+ agents: z.array(z.enum(["codex", "claude", "agy"])).length(2).optional()
426
426
  .describe("Two specific debaters to use."),
427
427
  rounds: z.number().min(1).max(3).default(3).optional()
428
428
  .describe("Number of debate rounds (default: 3)"),
@@ -430,8 +430,8 @@ export class BrutalistServer {
430
430
  models: z.object({
431
431
  claude: z.string().optional(),
432
432
  codex: z.string().optional(),
433
- gemini: z.string().optional()
434
- }).optional().describe("Model overrides for specific agents. Codex uses the Codex CLI configured/default model by default unless BRUTALIST_CODEX_ALLOW_MODEL_OVERRIDE=true."),
433
+ agy: z.string().optional()
434
+ }).optional().describe("Model overrides for specific agents. Codex uses the Codex CLI configured/default model by default unless BRUTALIST_CODEX_ALLOW_MODEL_OVERRIDE=true. Agy is Flash-pinned (no --model flag); field ignored."),
435
435
  // Pagination and conversation continuation
436
436
  context_id: z.string().optional().describe("Context ID for cached pagination or debate continuation"),
437
437
  resume: z.boolean().optional().describe("Continue debate with a new prompt; omit for pagination/page reads"),
@@ -482,7 +482,7 @@ export class BrutalistServer {
482
482
  };
483
483
  });
484
484
  // CLI_AGENT_ROSTER: Show available brutalist critics
485
- this.server.tool("cli_agent_roster", "Know your weapons. Display the available CLI agent critics (Claude Code, Codex, Gemini CLI) ready to demolish your work, their capabilities, and how to deploy them for systematic destruction.", {}, async (args) => {
485
+ this.server.tool("cli_agent_roster", "Know your weapons. Display the available CLI agent critics (Claude Code, Codex, Antigravity/Agy) ready to demolish your work, their capabilities, and how to deploy them for systematic destruction.", {}, async (args) => {
486
486
  try {
487
487
  let roster = "# Brutalist CLI Agent Arsenal\n\n";
488
488
  roster += "## Available Tools (4 Gateway Tools)\n\n";
@@ -512,7 +512,7 @@ export class BrutalistServer {
512
512
  roster += "## CLI Agent Capabilities\n";
513
513
  roster += "**Claude Code** - Advanced analysis with direct system prompt injection\n";
514
514
  roster += "**Codex** - Secure execution with embedded brutal prompts\n";
515
- roster += "**Gemini CLI** - Workspace context with environment variable system prompts\n\n";
515
+ roster += "**Antigravity (agy)** - Gemini 3.5 Flash-tier critic via Google's gemini-cli successor (one-time interactive `agy \"hi\"` auth required locally; AGY_OAUTH_TOKEN GH secret in CI). Slower per call (~30-60s); use as the rapid-pattern-scan voice alongside claude+codex.\n\n";
516
516
  // Add CLI context information
517
517
  const cliContext = await this.cliOrchestrator.detectCLIContext();
518
518
  await this.cliOrchestrator.modelResolver.refreshIfStale();
@@ -1 +1 @@
1
- {"version":3,"file":"brutalist-server.js","sourceRoot":"","sources":["../src/brutalist-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brutalist-server.js","sourceRoot":"","sources":["../src/brutalist-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { StructuredLogger } from '../logger.js';
2
+ import type { CLIAgentOptions } from '../cli-agents.js';
3
+ import type { ModelResolver } from '../model-resolver.js';
4
+ import type { CLIProvider, CLIBuilderConfig, CLIName, DecodeResult } from './index.js';
5
+ export declare const AGY_BINARY: string;
6
+ export declare class AgyAdapter implements CLIProvider {
7
+ readonly name: CLIName;
8
+ getConfig(): CLIBuilderConfig;
9
+ buildCommand(userPrompt: string, systemPrompt: string, options: CLIAgentOptions, _modelResolver: ModelResolver, secureEnv: Record<string, string>): Promise<{
10
+ command: string;
11
+ args: string[];
12
+ input: string;
13
+ env: Record<string, string>;
14
+ tempMcpConfigPath?: string;
15
+ model?: string;
16
+ }>;
17
+ /**
18
+ * Decode raw agy stdout into a structured outcome.
19
+ *
20
+ * agy stdout in --print mode is clean text/Markdown with 0 ANSI
21
+ * escape bytes (verified empirically). Refusals are baked into the
22
+ * stdout stream with anchored prefixes — we match those without
23
+ * grepping the full text for loose patterns (which would re-introduce
24
+ * the prose-as-signal antipattern that commit 086a38f explicitly
25
+ * removed for claude/codex).
26
+ */
27
+ decode(stdout: string, _stderr: string, _args: string[], log?: StructuredLogger): DecodeResult;
28
+ decodeOutput(rawOutput: string, args: string[], log?: StructuredLogger): string;
29
+ }
30
+ //# sourceMappingURL=agy-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agy-adapter.d.ts","sourceRoot":"","sources":["../../src/cli-adapters/agy-adapter.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA8BvF,eAAO,MAAM,UAAU,QAAkB,CAAC;AAmH1C,qBAAa,UAAW,YAAW,WAAW;IAC5C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAS;IAE/B,SAAS,IAAI,gBAAgB;IAIvB,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,aAAa,EAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAmEF;;;;;;;;;OASG;IACH,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EAAE,EACf,GAAG,CAAC,EAAE,gBAAgB,GACrB,YAAY;IAqBf,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,CAAC,EAAE,gBAAgB,GACrB,MAAM;CAIV"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Agy (Google Antigravity) CLI Adapter
3
+ *
4
+ * Encapsulates Antigravity-specific CLI invocation. agy is the gemini-cli
5
+ * successor for the Pro/Ultra/free Google AI tier. See
6
+ * [[reference-agy-affordances-full]] for the full surface map; the key
7
+ * constraints we engineer around here:
8
+ *
9
+ * - agy --print does NOT accept stdin; prompt goes via argv (~128KB
10
+ * ARG_MAX cap). Brutalist's actual prompts are well under that.
11
+ * - No --model flag exists at runtime ("--model" is a dead string in
12
+ * the binary, rejected by the Go flag parser). agy --print is hard-
13
+ * pinned to whatever is in `~/.gemini/antigravity-cli/settings.json`
14
+ * under the `model` key — and only the HUMAN-READABLE label form
15
+ * ("Gemini 3.1 Pro (High)", not "gemini-3-pro-preview"). When the
16
+ * caller passes `options.models.agy`, the Python wrapper swaps that
17
+ * value into settings.json under flock(2), runs agy, restores the
18
+ * original. Race-safe across processes that share $HOME. Default
19
+ * (no override) leaves settings.json untouched and agy uses whatever
20
+ * model the user picked via the TUI's /model command, falling back
21
+ * to "Gemini 3.5 Flash (Medium)" if unset.
22
+ * - No --system flag either. The adversarial prompt is composed into
23
+ * the user-prompt slot via the promptWrapper-style folding below.
24
+ * - --print-timeout is internally broken (e.g. `=3s` runs until
25
+ * external kill). The orchestrator's spawnAsync timeout is the real
26
+ * wall-clock enforcement; we still pass --print-timeout 15m as an
27
+ * internal hint so agy's own polling loop doesn't accidentally
28
+ * short-circuit.
29
+ * - --sandbox redirects writes to ~/.gemini/antigravity-cli/scratch/
30
+ * instead of writing into the caller's cwd, so agy's agentic loop
31
+ * can call tools (creating implementation_plan.md, etc.) without
32
+ * polluting the user's repo.
33
+ * - --dangerously-skip-permissions auto-approves tool permission
34
+ * prompts — there's no human in --print mode to answer them, so
35
+ * skipping is the only path forward.
36
+ *
37
+ * Auth (not adapter-side): on macOS the user authenticates once with
38
+ * `agy "hi"` interactively (keychain seeded). In CI runners, the
39
+ * GitHub Action provisions ~/.gemini/antigravity-cli/antigravity-oauth-token
40
+ * from a repo secret before brutalist invokes us. Container detection in
41
+ * agy auto-fires (cgroup-based, see affordance map) and switches to the
42
+ * file-token-storage path on its own — no env var needed on our side.
43
+ */
44
+ import { existsSync } from 'node:fs';
45
+ import { homedir } from 'node:os';
46
+ import path from 'node:path';
47
+ import { logger as rootLogger } from '../logger.js';
48
+ /**
49
+ * Resolve which binary to invoke as `agy`. Three-step priority:
50
+ *
51
+ * 1. `AGY_BIN` env var (explicit user override). Wins unconditionally.
52
+ * 2. `~/.local/bin/agy` (canonical CLI-agent install path per
53
+ * `curl ... antigravity.google/cli/install.sh | bash`). Preferred
54
+ * because on macOS the Antigravity desktop IDE installs a wrapper
55
+ * at `~/.antigravity/antigravity/bin/agy` that is a SYMLINK into
56
+ * the .app bundle (an Electron/VS Code fork — NOT the Go CLI
57
+ * agent). That wrapper resolves first on PATH for many users
58
+ * because the IDE's installer prepends its bin dir. Bypassing
59
+ * PATH for the canonical location avoids invoking the IDE binary
60
+ * with the agent CLI's flags (`--print`, etc.) — which the IDE
61
+ * politely passes through to Electron with warnings rather than
62
+ * running as the agent.
63
+ * 3. Bare `'agy'` (PATH lookup). Last-resort for non-standard
64
+ * installs.
65
+ *
66
+ * Resolved at module load — the user's environment shouldn't change
67
+ * mid-process, and the MCP server is restarted when paths change.
68
+ */
69
+ function resolveAgyBin() {
70
+ if (process.env.AGY_BIN)
71
+ return process.env.AGY_BIN;
72
+ const homeLocal = path.join(homedir(), '.local', 'bin', 'agy');
73
+ if (existsSync(homeLocal))
74
+ return homeLocal;
75
+ return 'agy';
76
+ }
77
+ export const AGY_BINARY = resolveAgyBin();
78
+ /**
79
+ * Inline Python wrapper. Handles two concerns:
80
+ *
81
+ * (a) PTY allocation. agy issue #76 (stdout silently dropped when
82
+ * stdout is not a TTY) hits macOS and Windows but NOT Linux.
83
+ * The wrapper creates a pty pair, forks, child sees the slave TTY
84
+ * (bypassing agy's isatty check), parent reads from the master and
85
+ * writes to its own stdout (which can be a pipe — that part works
86
+ * regardless of #76).
87
+ *
88
+ * (b) Per-invocation model pinning via settings.json. agy has no
89
+ * --model flag at runtime, but `settings.json.model` accepts the
90
+ * human-readable label form ("Gemini 3.1 Pro (High)", etc.) and
91
+ * agy's `model_config_manager.go:157` log confirms it propagates
92
+ * the label to the backend. The wrapper reads BRUTALIST_AGY_MODEL_PIN
93
+ * from env; if set, it acquires an fcntl.flock(LOCK_EX) on a
94
+ * sibling lockfile, reads + backs up the existing settings.json,
95
+ * writes the merged version with the model override, spawns agy,
96
+ * and restores the original settings.json on exit (in a finally
97
+ * block so SIGTERM/exception paths still clean up). Race-safe
98
+ * across processes that share $HOME.
99
+ *
100
+ * Why Python and not node-pty:
101
+ * - node-pty is a native module: prebuilt binaries per platform,
102
+ * `spawn-helper` chmod gotchas during npm install, install-time
103
+ * failure modes on unusual setups (Apple Silicon Node 24 had
104
+ * intermittent issues this session). Adds 140KB of native code
105
+ * to the dep tree.
106
+ * - Python 3 is preinstalled on macOS (12+ ships /usr/bin/python3
107
+ * stub that triggers Xcode CLT install on first run; users
108
+ * running agy locally already have CLT for `agy` itself to
109
+ * install). And on Linux runners (Ubuntu LTS) by default.
110
+ * - `pty.spawn` and `fcntl.flock` are stdlib. Zero install cost.
111
+ *
112
+ * Supported `BRUTALIST_AGY_MODEL_PIN` label values (per Antigravity
113
+ * docs + binary strings; per-account entitlement gates Pro/Claude):
114
+ * - "Gemini 3.5 Flash (High|Medium)" — always available
115
+ * - "Gemini 3.1 Pro (High|Low)" — Pro tier
116
+ * - "Claude Sonnet 4.6 (Thinking)" — Antigravity Claude tier
117
+ * - "Claude Opus 4.6 (Thinking)" — Antigravity Claude tier
118
+ * - "GPT-OSS 120B (Medium)" — Antigravity tier
119
+ * Invalid labels are silently downselected by agy to Flash Medium.
120
+ */
121
+ const AGY_PYTHON_WRAPPER = `
122
+ import pty, sys, os, json, fcntl
123
+ agy_bin, agy_args = sys.argv[1], sys.argv[2:]
124
+ model = os.environ.get('BRUTALIST_AGY_MODEL_PIN', '').strip()
125
+ home = os.path.expanduser('~')
126
+ settings = os.path.join(home, '.gemini', 'antigravity-cli', 'settings.json')
127
+ lock_path = settings + '.brutalist-lock'
128
+ original = None
129
+ lock_fd = None
130
+ if model:
131
+ os.makedirs(os.path.dirname(settings), exist_ok=True)
132
+ lock_fd = os.open(lock_path, os.O_CREAT | os.O_RDWR, 0o600)
133
+ fcntl.flock(lock_fd, fcntl.LOCK_EX)
134
+ try:
135
+ with open(settings, 'r') as f:
136
+ original = f.read()
137
+ cfg = json.loads(original) if original.strip() else {}
138
+ except FileNotFoundError:
139
+ cfg = {}
140
+ cfg['model'] = model
141
+ with open(settings, 'w') as f:
142
+ json.dump(cfg, f)
143
+ try:
144
+ status = pty.spawn([agy_bin] + agy_args)
145
+ finally:
146
+ if model:
147
+ try:
148
+ if original is None:
149
+ try: os.unlink(settings)
150
+ except FileNotFoundError: pass
151
+ else:
152
+ with open(settings, 'w') as f:
153
+ f.write(original)
154
+ finally:
155
+ if lock_fd is not None:
156
+ fcntl.flock(lock_fd, fcntl.LOCK_UN)
157
+ os.close(lock_fd)
158
+ sys.exit(os.waitstatus_to_exitcode(status))
159
+ `.trim();
160
+ const PTY_WRAP_NEEDED = process.platform === 'darwin' || process.platform === 'win32';
161
+ const AGY_CONFIG = {
162
+ // Routing is decided per-invocation in buildCommand() based on
163
+ // (a) platform needing PTY and (b) whether a model pin is requested.
164
+ // This static config slot is just the default for the spawn entrypoint.
165
+ command: AGY_BINARY,
166
+ defaultArgs: ['--print'],
167
+ // No --model flag exists; this slot is unused for agy. Kept for
168
+ // CLIBuilderConfig conformance.
169
+ modelArgName: '',
170
+ };
171
+ // Default model when nothing's pinned. agy reads settings.json at
172
+ // startup; if the user previously chose a model via TUI's /model
173
+ // command, that value is what runs. Without any settings.json model
174
+ // key, the runtime default is Flash Medium.
175
+ const AGY_DEFAULT_MODEL = 'Gemini 3.5 Flash (Medium)';
176
+ // Refusal signals. agy bakes auth and quota outcomes into stdout (not
177
+ // stderr), exit code 0, with anchored prefixes we can match without
178
+ // pulling in prose-as-signal antipatterns. See affordance map § Output
179
+ // channels and § Known broken / quirky for the empirical confirmation.
180
+ //
181
+ // "Authentication required. Please visit the URL to log in: <url>"
182
+ // "⚠ Individual quota reached. Contact your administrator to enable
183
+ // overages. Resets in <Nh><Nm><Ns>."
184
+ const AUTH_REFUSAL_RE = /^Authentication required\./m;
185
+ const QUOTA_REFUSAL_RE = /^\s*⚠\s*Individual quota reached/m;
186
+ export class AgyAdapter {
187
+ name = 'agy';
188
+ getConfig() {
189
+ return AGY_CONFIG;
190
+ }
191
+ async buildCommand(userPrompt, systemPrompt, options, _modelResolver, secureEnv) {
192
+ const log = options.log ?? rootLogger;
193
+ // Fold the adversarial system prompt into the user prompt slot.
194
+ // agy has no --system / --append-system-prompt equivalent
195
+ // (verified — rejected by the Go flag parser). Strong-position
196
+ // composition: directives first, then a separator, then the user
197
+ // content. The model treats this as the user's instructions.
198
+ const combinedPrompt = systemPrompt
199
+ ? `${systemPrompt}\n\n---\n\n${userPrompt}`
200
+ : userPrompt;
201
+ // Soft-warn at 100KB; hard ARG_MAX is ~128KB on Linux. Brutalist's
202
+ // own prompts (system + code excerpt) typically run 5-30KB.
203
+ if (combinedPrompt.length > 100_000) {
204
+ log.warn('Agy prompt approaching argv ARG_MAX', {
205
+ promptBytes: combinedPrompt.length,
206
+ });
207
+ }
208
+ const agyArgs = [
209
+ '--print',
210
+ combinedPrompt,
211
+ // Internal polling hint; orchestrator's spawnAsync timeout
212
+ // (CLIAgentOptions.timeout) is what actually bounds wall-clock.
213
+ // 15m is comfortably above brutalist's per-CLI default but well
214
+ // below pathological-stall protection.
215
+ '--print-timeout', '15m',
216
+ // Containment: writes go to ~/.gemini/antigravity-cli/scratch/
217
+ // instead of cwd. Reads from cwd still work, so agy can inspect
218
+ // the user's codebase for the critique.
219
+ '--sandbox',
220
+ // No-prompts-allowed mode: auto-approve any permission requests
221
+ // since --print has no human to answer them. Required for
222
+ // autonomous critic execution.
223
+ '--dangerously-skip-permissions',
224
+ ];
225
+ const modelPin = options.models?.agy?.trim();
226
+ // The Python wrapper handles two distinct concerns: PTY allocation
227
+ // for #76 on macOS/Windows, and settings.json swap+restore under
228
+ // flock(2) when a model pin is requested. We invoke it when EITHER
229
+ // is needed. On Linux without a model pin, agy runs directly.
230
+ const useWrapper = PTY_WRAP_NEEDED || !!modelPin;
231
+ const command = useWrapper ? 'python3' : AGY_BINARY;
232
+ const args = useWrapper
233
+ ? ['-c', AGY_PYTHON_WRAPPER, AGY_BINARY, ...agyArgs]
234
+ : agyArgs;
235
+ const env = { ...secureEnv };
236
+ if (modelPin) {
237
+ env.BRUTALIST_AGY_MODEL_PIN = modelPin;
238
+ log.info('Agy model pin requested', { model: modelPin });
239
+ }
240
+ return {
241
+ command,
242
+ args,
243
+ // --print does not consume stdin; prompt is in argv.
244
+ input: '',
245
+ env,
246
+ model: modelPin || AGY_DEFAULT_MODEL,
247
+ };
248
+ }
249
+ /**
250
+ * Decode raw agy stdout into a structured outcome.
251
+ *
252
+ * agy stdout in --print mode is clean text/Markdown with 0 ANSI
253
+ * escape bytes (verified empirically). Refusals are baked into the
254
+ * stdout stream with anchored prefixes — we match those without
255
+ * grepping the full text for loose patterns (which would re-introduce
256
+ * the prose-as-signal antipattern that commit 086a38f explicitly
257
+ * removed for claude/codex).
258
+ */
259
+ decode(stdout, _stderr, _args, log) {
260
+ const decodeLog = log ?? rootLogger;
261
+ if (!stdout || !stdout.trim()) {
262
+ decodeLog.debug('agy: empty stdout');
263
+ return { kind: 'error', reason: 'empty' };
264
+ }
265
+ if (AUTH_REFUSAL_RE.test(stdout)) {
266
+ decodeLog.warn('agy: auth refusal detected in stdout');
267
+ return { kind: 'refused', reason: 'auth' };
268
+ }
269
+ if (QUOTA_REFUSAL_RE.test(stdout)) {
270
+ decodeLog.warn('agy: quota refusal detected in stdout');
271
+ return { kind: 'refused', reason: 'quota' };
272
+ }
273
+ return { kind: 'ok', text: stdout };
274
+ }
275
+ decodeOutput(rawOutput, args, log) {
276
+ const result = this.decode(rawOutput, '', args, log);
277
+ return result.kind === 'ok' ? result.text : '';
278
+ }
279
+ }
280
+ //# sourceMappingURL=agy-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agy-adapter.js","sourceRoot":"","sources":["../../src/cli-adapters/agy-adapter.ts"],"names":[],"mappings":"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"}