@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.
- package/README.md +57 -31
- package/dist/brutalist-server.js +9 -9
- package/dist/brutalist-server.js.map +1 -1
- package/dist/cli-adapters/agy-adapter.d.ts +30 -0
- package/dist/cli-adapters/agy-adapter.d.ts.map +1 -0
- package/dist/cli-adapters/agy-adapter.js +280 -0
- package/dist/cli-adapters/agy-adapter.js.map +1 -0
- package/dist/cli-adapters/claude-adapter.d.ts +12 -2
- package/dist/cli-adapters/claude-adapter.d.ts.map +1 -1
- package/dist/cli-adapters/claude-adapter.js +102 -18
- package/dist/cli-adapters/claude-adapter.js.map +1 -1
- package/dist/cli-adapters/codex-adapter.d.ts +18 -1
- package/dist/cli-adapters/codex-adapter.d.ts.map +1 -1
- package/dist/cli-adapters/codex-adapter.js +86 -3
- package/dist/cli-adapters/codex-adapter.js.map +1 -1
- package/dist/cli-adapters/index.d.ts +55 -13
- package/dist/cli-adapters/index.d.ts.map +1 -1
- package/dist/cli-adapters/index.js +2 -2
- package/dist/cli-adapters/index.js.map +1 -1
- package/dist/cli-agents.d.ts +6 -29
- package/dist/cli-agents.d.ts.map +1 -1
- package/dist/cli-agents.js +74 -181
- package/dist/cli-agents.js.map +1 -1
- package/dist/debate/debate-orchestrator.d.ts +2 -4
- package/dist/debate/debate-orchestrator.d.ts.map +1 -1
- package/dist/debate/debate-orchestrator.js.map +1 -1
- package/dist/domains/argument-space.d.ts +8 -8
- package/dist/domains/argument-space.js +3 -3
- package/dist/domains/argument-space.js.map +1 -1
- package/dist/domains/critic-persona.d.ts +2 -1
- package/dist/domains/critic-persona.d.ts.map +1 -1
- package/dist/domains/critic-persona.js.map +1 -1
- package/dist/handlers/tool-handler.js.map +1 -1
- package/dist/mcp-registry.d.ts +0 -6
- package/dist/mcp-registry.d.ts.map +1 -1
- package/dist/mcp-registry.js +0 -35
- package/dist/mcp-registry.js.map +1 -1
- package/dist/metrics/registry.d.ts +2 -2
- package/dist/metrics/registry.js +2 -2
- package/dist/metrics/types.d.ts +1 -1
- package/dist/metrics/types.js +1 -1
- package/dist/model-resolver.d.ts +1 -13
- package/dist/model-resolver.d.ts.map +1 -1
- package/dist/model-resolver.js +12 -7
- package/dist/model-resolver.js.map +1 -1
- package/dist/streaming/output-parser.d.ts +1 -1
- package/dist/streaming/output-parser.d.ts.map +1 -1
- package/dist/streaming/output-parser.js +0 -17
- package/dist/streaming/output-parser.js.map +1 -1
- package/dist/streaming/streaming-orchestrator.js +1 -1
- package/dist/streaming/streaming-orchestrator.js.map +1 -1
- package/dist/types/brutalist.d.ts +3 -3
- package/dist/types/brutalist.d.ts.map +1 -1
- package/dist/types/tool-config.d.ts +4 -4
- package/dist/types/tool-config.d.ts.map +1 -1
- package/dist/types/tool-config.js +7 -6
- package/dist/types/tool-config.js.map +1 -1
- package/package.json +4 -3
- package/dist/cli-adapters/gemini-adapter.d.ts +0 -63
- package/dist/cli-adapters/gemini-adapter.d.ts.map +0 -1
- package/dist/cli-adapters/gemini-adapter.js +0 -208
- 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
|
|
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,
|
|
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:
|
|
32
|
-
|
|
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
|
-
- **
|
|
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", "
|
|
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,
|
|
246
|
-
- **Architecture**:
|
|
247
|
-
- **Security**: Codex, Claude,
|
|
248
|
-
- **Research**: Claude,
|
|
252
|
+
- **Code review**: Claude, Codex, Agy
|
|
253
|
+
- **Architecture**: Claude, Codex, Agy
|
|
254
|
+
- **Security**: Codex, Claude, Agy
|
|
255
|
+
- **Research**: Claude, Codex, Agy
|
|
249
256
|
|
|
250
|
-
|
|
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
|
-
|
|
259
|
+
### Antigravity (Agy) Auth Setup
|
|
253
260
|
|
|
254
|
-
-
|
|
255
|
-
|
|
256
|
-
|
|
261
|
+
Local dev (one-time):
|
|
262
|
+
```bash
|
|
263
|
+
agy "hi" # browser OAuth flow seeds the macOS keychain (or Linux file)
|
|
264
|
+
```
|
|
257
265
|
|
|
258
|
-
|
|
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
|
-
###
|
|
276
|
+
### Per-Call Model Pinning (Agy)
|
|
261
277
|
|
|
262
|
-
|
|
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
|
-
|
|
265
|
-
|
|
266
|
-
|
|
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
|
-
|
|
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
|
-
|
|
296
|
+
Invalid labels silently downselect to Flash Medium (agy's behavior, not ours).
|
|
297
|
+
|
|
298
|
+
### Verification-Heavy Domains
|
|
271
299
|
|
|
272
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
package/dist/brutalist-server.js
CHANGED
|
@@ -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.
|
|
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", "
|
|
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
|
-
|
|
381
|
-
}).optional().describe("Per-CLI model override. Claude
|
|
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", "
|
|
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
|
-
|
|
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,
|
|
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 += "**
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAkB,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EACL,qBAAqB,EACrB,UAAU,GAEX,MAAM,oBAAoB,CAAC;AAc5B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,yDAAyD;AACzD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,QAAQ,CAAC;AAEpE;;;;;;;;;GASG;AACH,MAAM,OAAO,eAAe;IACnB,MAAM,CAAY;IAClB,MAAM,CAAwB;IAErC,yEAAyE;IACzE,4DAA4D;IAC5D,wDAAwD;IAChD,gBAAgB,CAAwB;IACxC,aAAa,CAAgB;IAErC,oBAAoB;IACZ,SAAS,CAAoB;IAC7B,WAAW,CAAc;IACzB,kBAAkB,CAAsB;IACxC,aAAa,CAAiB;IAEtC;;;;;;OAMG;IACgB,OAAO,GAAoB,qBAAqB,EAAE,CAAC;IAEtE;;;;;;;;OAQG;IACc,MAAM,CAAe;IACrB,YAAY,CAAe;IAE5C,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IACD,IAAY,eAAe,CAAC,KAA2B;QACrD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,eAAe,GAAG,KAAK,CAAC;QAClD,CAAC;IACH,CAAC;IAED,gCAAgC;IACxB,cAAc,GAAG,IAAI,GAAG,EAI5B,CAAC;IAEL,gCAAgC;IACf,YAAY,GAAG,KAAK,CAAC;IACrB,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;IAC1D,mBAAmB,CAAkB;IAE7C,YAAY,SAAgC,EAAE;QAC5C,IAAI,CAAC,MAAM,GAAG;YACZ,gBAAgB,EAAE,OAAO,CAAC,GAAG,EAAE;YAC/B,cAAc,EAAE,OAAO,EAAE,2CAA2C;YACpE,SAAS,EAAE,OAAO,EAAE,8CAA8C;YAClE,QAAQ,EAAE,IAAI;YACd,GAAG,MAAM;SACV,CAAC;QAEF,kEAAkE;QAClE,qEAAqE;QACrE,wDAAwD;QACxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAE/E,oEAAoE;QACpE,wCAAwC;QACxC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,CAAC;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,MAAM;SACjB,CAAC,CAAC;QAEH,kDAAkD;QAClD,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,QAAQ,EAAE,aAAa;YACvB,UAAU,EAAE,EAAE;YACd,cAAc,EAAE,GAAG;YACnB,cAAc,EAAE,EAAE;YAClB,sBAAsB,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,sCAAsC,aAAa,WAAW,CAAC,CAAC;QAE5E,sCAAsC;QACtC,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1F,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,2BAA2B;QAC7D,MAAM,CAAC,IAAI,CAAC,kDAAkD,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAEpF,+BAA+B;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAChC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,oBAAoB,EACzB,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,8BAA8B;SAClE,CAAC;QAEF,qEAAqE;QACrE,iEAAiE;QACjE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YAC/C,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,gBAAgB,EAAE,IAAI,CAAC,oBAAoB;YAC3C,gBAAgB,EAAE,IAAI,CAAC,oBAAoB;YAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;SAChE,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CACzB;YACE,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,eAAe;SACzB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,EAAE;gBACX,sFAAsF;aACvF;SACF,CACF,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAE7D,uEAAuE;QACvE,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAE7D,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,kCAAkC;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CACpC,IAAI,CAAC,MAAM,EACX,CAAC,SAAS,EAAE,EAAE;YACZ,uCAAuC;YACvC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC,CACF,CAAC;QAEF,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC;IAED,sDAAsD;IAC/C,aAAa;QAClB,OAAO,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;IAC7C,CAAC;IAED,kCAAkC;IAC3B,KAAK,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAChD,IAAI,GAAG,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACrD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC/B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,cAAc,OAAO,qBAAqB,IAAI,CAAC,cAAc,GAAG,OAAO,SAAS,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,qBAAqB;QAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrD,6CAA6C;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC1D,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,yEAAyE;IAClE,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,qCAAqC;YACvC,CAAC;QACH,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,oBAAoB,GAAG,CAAC,KAAqB,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;gBACxF,OAAO;YACT,CAAC;YAED,gEAAgE;YAChE,iEAAiE;YACjE,gEAAgE;YAChE,0DAA0D;YAC1D,+DAA+D;YAC/D,8DAA8D;YAC9D,2DAA2D;YAC3D,MAAM,SAAS,GAAqB,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxF,MAAM,eAAe,GAA4D;gBAC/E,SAAS;gBACT,UAAU,EAAE,KAAK,CAAC,IAAI;aACvB,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,0BAA0B,EAAE,GAAG,EAAE;gBAC7D,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,gCAAgC,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,KAAK,eAAe,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAE3I,+EAA+E;YAC/E,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC;YACjE,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,4DAA4D;oBAC5D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;wBAC9B,MAAM,EAAE,uBAAuB;wBAC/B,MAAM,EAAE;4BACN,KAAK,EAAE,MAAM;4BACb,IAAI,EAAE;gCACJ,IAAI,EAAE,iBAAiB;gCACvB,SAAS,EAAE,KAAK,CAAC,SAAS;gCAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,SAAS,EAAE,KAAK,CAAC,IAAI;gCACrB,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,sBAAsB;gCAClE,SAAS,EAAE,KAAK,CAAC,SAAS;6BAC3B;4BACD,MAAM,EAAE,yBAAyB;yBAClC;qBACF,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,iBAAiB,EAAE,CAAC;oBAC3B,+DAA+D;oBAC/D,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;gBACpG,CAAC;YACH,CAAC;YACD,wDAAwD;iBACnD,CAAC;gBACJ,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;wBAC7B,KAAK,EAAE,MAAM;wBACb,IAAI,EAAE;4BACJ,SAAS,EAAE,KAAK,CAAC,SAAS;4BAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,6BAA6B;yBACxE;wBACD,MAAM,EAAE,yBAAyB;qBAClC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,YAAY,EAAE,CAAC;oBACtB,iDAAiD;oBACjD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;YAED,0BAA0B;YAC1B,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAE,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACtE,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,kDAAkD,EAAE;gBAC1E,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7D,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF;;OAEG;IACK,oBAAoB,GAAG,CAC7B,aAA8B,EAC9B,QAAgB,EAChB,KAAyB,EACzB,OAAe,EACf,SAAkB,EAClB,EAAE;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;gBAClF,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,QAAQ,EAAE,CAAC;YAC9F,WAAW,CAAC,KAAK,CAAC,wBAAwB,aAAa,gBAAgB,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAEvG,wEAAwE;YACxE,kFAAkF;YAClF,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC9B,MAAM,EAAE,wBAAwB;oBAChC,MAAM,EAAE;wBACN,aAAa;wBACb,QAAQ;wBACR,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzC,OAAO,EAAE,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,EAAE;wBACpD,SAAS;qBACV;iBACF,CAAC,CAAC;gBACH,WAAW,CAAC,KAAK,CAAC,gDAAgD,aAAa,EAAE,CAAC,CAAC;YACrF,CAAC;YAAC,OAAO,iBAAiB,EAAE,CAAC;gBAC3B,gEAAgE;gBAChE,WAAW,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,yCAAyC,EAAE;gBAC3D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7D,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;aACtC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF;;;;;;OAMG;IACK,aAAa;QACnB,2FAA2F;QAC3F,8DAA8D;QAC9D,4FAA4F;QAE5F,kCAAkC;QAClC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,iEAAiE;QACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,OAAO,EACP,wcAAwc,EACxc;YACE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;gBACb,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe;gBAC5E,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO;aAC/F,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oHAAoH,CAAC;YACjJ,yBAAyB;YACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2PAA2P,CAAC;YACpS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACnH,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC3D,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC9B,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0OAA0O,CAAC;YAClQ,aAAa;YACb,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC9E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;YAC3G,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;YAClH,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC9D,8DAA8D;YAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACrE,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACpF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC3E,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC9E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC/D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC7D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACzE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC3D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC7D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACzD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACxE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACrE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC1D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC9D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACnE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;YACvG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC7E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;YACtG,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8NAA8N,CAAC;YACnQ,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qLAAqL,CAAC;YAC/N,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2HAA2H,CAAC;YACzK,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2JAA2J,CAAC;YACpM,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gIAAgI,qBAAqB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC;SAC5P,EACD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAC5D,CAAC;QAEF,sEAAsE;QACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kBAAkB,EAClB,sVAAsV,EACtV;YACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACzF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACzF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oHAAoH,CAAC;YAC5J,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;iBACxE,QAAQ,CAAC,+BAA+B,CAAC;YAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;iBACnD,QAAQ,CAAC,sCAAsC,CAAC;YACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kHAAkH,CAAC;YAC3J,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC9B,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qJAAqJ,CAAC;YAC7K,2CAA2C;YAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YACrG,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;YAC5G,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;YAClD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACrC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC/B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8EAA8E,qBAAqB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACzK,EACD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACpB,8BAA8B;YAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,GAAG,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;gBACvE,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,gHAAgH;yBACvH,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC,CACF,CAAC;QAEF,kDAAkD;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oBAAoB,EACpB,yGAAyG,EACzG;YACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4FAA4F,CAAC;SAC1H,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEjD,IAAI,QAAQ,GAAG,qCAAqC,CAAC;YACrD,QAAQ,IAAI,0BAA0B,IAAI,CAAC,MAAM,OAAO,CAAC;YAEzD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,QAAQ,IAAI,4EAA4E,CAAC;gBACzF,QAAQ,IAAI,0EAA0E,CAAC;gBACvF,QAAQ,IAAI,wFAAwF,CAAC;YACvG,CAAC;iBAAM,CAAC;gBACN,QAAQ,IAAI,SAAS,eAAe,CAAC,MAAM,0BAA0B,CAAC;gBACtE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,6DAA6D;oBAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACjD,QAAQ,IAAI,OAAO,MAAM,IAAI,CAAC;oBAC9B,QAAQ,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC;oBACtC,QAAQ,IAAI,oBAAoB,MAAM,yBAAyB,CAAC;gBAClE,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;aACrD,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,qDAAqD;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kBAAkB,EAClB,iMAAiM,EACjM,EAAE,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,IAAI,CAAC;gBACH,IAAI,MAAM,GAAG,mCAAmC,CAAC;gBAEjD,MAAM,IAAI,0CAA0C,CAAC;gBAErD,MAAM,IAAI,uCAAuC,CAAC;gBAClD,MAAM,IAAI,4FAA4F,CAAC;gBACvG,MAAM,IAAI,2BAA2B,CAAC;gBACtC,MAAM,IAAI,iFAAiF,CAAC;gBAC5F,MAAM,IAAI,uDAAuD,CAAC;gBAClE,MAAM,IAAI,oEAAoE,CAAC;gBAC/E,MAAM,IAAI,sDAAsD,CAAC;gBACjE,MAAM,IAAI,mDAAmD,CAAC;gBAC9D,MAAM,IAAI,yBAAyB,CAAC;gBACpC,MAAM,IAAI,kDAAkD,CAAC;gBAC7D,MAAM,IAAI,8CAA8C,CAAC;gBACzD,MAAM,IAAI,2CAA2C,CAAC;gBACtD,MAAM,IAAI,8CAA8C,CAAC;gBACzD,MAAM,IAAI,wCAAwC,CAAC;gBACnD,MAAM,IAAI,iDAAiD,CAAC;gBAC5D,MAAM,IAAI,uFAAuF,CAAC;gBAClG,MAAM,IAAI,6KAA6K,CAAC;gBAExL,MAAM,IAAI,2DAA2D,CAAC;gBACtE,MAAM,IAAI,qDAAqD,CAAC;gBAEhE,MAAM,IAAI,qDAAqD,CAAC;gBAChE,MAAM,IAAI,oEAAoE,CAAC;gBAE/E,MAAM,IAAI,sCAAsC,CAAC;gBACjD,MAAM,IAAI,4CAA4C,CAAC;gBAEvD,MAAM,IAAI,6BAA6B,CAAC;gBACxC,MAAM,IAAI,2EAA2E,CAAC;gBACtF,MAAM,IAAI,6DAA6D,CAAC;gBACxE,MAAM,IAAI,iFAAiF,CAAC;gBAE5F,8BAA8B;gBAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;gBACjE,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;gBAC1D,MAAM,IAAI,0BAA0B,CAAC;gBACrC,MAAM,IAAI,uBAAuB,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,MAAM,CAAC;gBAE9F,iCAAiC;gBACjC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC;gBAClE,MAAM,IAAI,IAAI,CAAC;gBAEf,MAAM,IAAI,uBAAuB,CAAC;gBAClC,MAAM,IAAI,uEAAuE,CAAC;gBAClF,MAAM,IAAI,gFAAgF,CAAC;gBAC3F,MAAM,IAAI,4EAA4E,CAAC;gBAEvF,MAAM,IAAI,6CAA6C,CAAC;gBACxD,MAAM,IAAI,kDAAkD,CAAC;gBAC7D,MAAM,IAAI,gDAAgD,CAAC;gBAC3D,MAAM,IAAI,qEAAqE,CAAC;gBAChF,MAAM,IAAI,8FAA8F,CAAC;gBACzG,MAAM,IAAI,oEAAoE,CAAC;gBAC/E,MAAM,IAAI,+FAA+F,CAAC;gBAC1G,MAAM,IAAI,2DAA2D,CAAC;gBACtE,MAAM,IAAI,oEAAoE,CAAC;gBAC/E,MAAM,IAAI,8HAA8H,CAAC;gBACzI,MAAM,IAAI,4BAA4B,CAAC;gBAEvC,sBAAsB;gBACtB,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;gBAC/C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,6BAA6B,CAAC;oBACxC,MAAM,IAAI,uEAAuE,CAAC;oBAClF,MAAM,IAAI,0BAA0B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBAClE,MAAM,IAAI,oFAAoF,CAAC;oBAC/F,MAAM,IAAI,gGAAgG,CAAC;gBAC7G,CAAC;gBAED,MAAM,IAAI,2BAA2B,CAAC;gBACtC,MAAM,IAAI,8FAA8F,CAAC;gBAEzG,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iBACnD,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,IAgBC,EACD,KAAU;QAEV,8BAA8B;QAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;YACpE,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,gHAAgH;qBACvH,CAAC;aACH,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,0BAA0B,IAAI,CAAC,MAAM,sKAAsK;qBAClN,CAAC;aACH,CAAC;QACJ,CAAC;QAED,yEAAyE;QACzE,iEAAiE;QACjE,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAa,CAAC,CAAC,CAAC,EAAc,CAAC;YACxG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACvC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAChC,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE9C,oDAAoD;QACpD,MAAM,UAAU,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;QACxD,OAAO,UAAU,CAAC,MAAM,CAAC;QACzB,OAAO,UAAU,CAAC,MAAM,CAAC;QAEzB,wDAAwD;QACxD,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,MAAM,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACtC,6DAA6D;YAC7D,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED,kCAAkC;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAE5E;;;;OAIG;IACK,KAAK,CAAC,yBAAyB,CAAC,IAAS,EAAE,KAAW;QAC5D,OAAO,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAAC,IAAS;QACtC,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;CACF"}
|
|
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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"}
|