brainferno-mcp-bridge 0.3.0 → 0.3.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/CHANGELOG.md +42 -0
- package/README.md +40 -4
- package/dist/config.d.ts +17 -0
- package/dist/config.js +16 -1
- package/dist/config.js.map +1 -1
- package/dist/install/cli.js +41 -22
- package/dist/install/cli.js.map +1 -1
- package/dist/install/lib.d.ts +35 -0
- package/dist/install/lib.js +86 -0
- package/dist/install/lib.js.map +1 -1
- package/dist/server.js +7 -4
- package/dist/server.js.map +1 -1
- package/dist/tools/after-effects.d.ts +20 -2
- package/dist/tools/after-effects.js +77 -25
- package/dist/tools/after-effects.js.map +1 -1
- package/dist/tools/jobs.d.ts +11 -1
- package/dist/tools/jobs.js +16 -3
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/media-encoder.d.ts +2 -0
- package/dist/tools/media-encoder.js +3 -3
- package/dist/tools/media-encoder.js.map +1 -1
- package/dist/tools/pipelines.d.ts +2 -0
- package/dist/tools/pipelines.js +3 -3
- package/dist/tools/pipelines.js.map +1 -1
- package/dist/tools/premiere.d.ts +2 -0
- package/dist/tools/premiere.js +3 -3
- package/dist/tools/premiere.js.map +1 -1
- package/dist/tools/result.d.ts +5 -0
- package/dist/tools/result.js +13 -7
- package/dist/tools/result.js.map +1 -1
- package/package.json +2 -2
- package/panels/panel-cep/CSXS/manifest.xml +2 -2
- package/panels/panel-cep/main.js +1 -1
- package/panels/panel-uxp/main.js +1 -1
- package/panels/panel-uxp/manifest.json +1 -1
- package/panels/panel-uxp-ppro/main.js +1 -1
- package/panels/panel-uxp-ppro/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.3.1 — 2026-09-27
|
|
4
|
+
|
|
5
|
+
- **Codex CLI and Gemini CLI are first-class clients.** The installer registers the
|
|
6
|
+
server with every MCP client CLI it finds (Claude Code, Codex CLI, Gemini CLI; filter
|
|
7
|
+
with `--clients`), each with the env defaults that suit it. Three new env vars carry
|
|
8
|
+
the differences: `BRAINFERNO_MCP_DEFAULT_WAIT` (false = long tools return a jobId at
|
|
9
|
+
once, for Codex's 60-second tool timeout — the advertised `wait` parameter now states
|
|
10
|
+
the live default), `BRAINFERNO_MCP_PREVIEW` (`path` returns previews as file paths for
|
|
11
|
+
clients that cannot show the model images; `inline`, `both`), and
|
|
12
|
+
`BRAINFERNO_MCP_JOB_WAIT_SECONDS` (the default `cc_job_wait` timeout, set to 50 for
|
|
13
|
+
Codex so each poll returns inside its limit). Claude Code keeps exactly the old
|
|
14
|
+
behavior. In shared mode the installer prints per-client connection snippets — Codex
|
|
15
|
+
reads the bearer token from an env var, Gemini from a headers block.
|
|
16
|
+
- **Panel versions can no longer drift.** `npm run panels:stamp` writes the package
|
|
17
|
+
version into the three panel manifests and each panel's `PANEL_VERSION`, and a test
|
|
18
|
+
fails when a bump forgets it. v0.3.0 shipped with its panels still reporting 0.2.0
|
|
19
|
+
(Photoshop, After Effects/Audition) and 0.1.0 (Premiere); from this release on they
|
|
20
|
+
carry the package version.
|
|
21
|
+
|
|
22
|
+
Found while building a lower-third .mogrt skill end to end (Illustrator → Photoshop →
|
|
23
|
+
After Effects → Premiere):
|
|
24
|
+
|
|
25
|
+
- After Effects `ae_apply_effect` takes an optional `name` and renames the effect once
|
|
26
|
+
applied. Essential Graphics labels a control with its effect name, so a Slider Control
|
|
27
|
+
named `Speed` now shows as "Speed" in Premiere instead of "Slider Control".
|
|
28
|
+
- After Effects `ae_import_as_comp` takes optional `duration` and `frameRate`. Without them
|
|
29
|
+
the imported comp came in at the project default (241 s) and every layer with it.
|
|
30
|
+
Giving a duration also trims the layers to it, so outPoint-anchored outros land at the end.
|
|
31
|
+
- New After Effects tool `ae_set_comp_props`: name, duration, frameRate, width, height on an
|
|
32
|
+
existing comp; a shorter duration trims layers the same way.
|
|
33
|
+
- After Effects `ae_add_layer` (text) and `ae_set_text` take `anchor: "center" | "origin"`.
|
|
34
|
+
The default keeps the anchor at the text's visual centre; `origin` leaves it at [0, 0] so
|
|
35
|
+
position is the left baseline — what a left-justified lower third wants. (Before, text
|
|
36
|
+
placed by its left edge rendered half its width too far left.)
|
|
37
|
+
- After Effects `ae_add_layer_style` retries the Layer Styles menu command up to three times
|
|
38
|
+
with a short pause, reselecting the layer each time. Seen live: the command did not take
|
|
39
|
+
when other scripts were queued behind it and the tool failed with "menu command did not
|
|
40
|
+
take".
|
|
41
|
+
- Known limit, not fixed: Premiere `pp_set_effect_param` cannot set a .mogrt text field
|
|
42
|
+
(`Graphic Parameters` → text control); the UXP API rejects strings ("Illegal Parameter
|
|
43
|
+
type") and reads the value back as null. Numbers (sliders) work.
|
|
44
|
+
|
|
3
45
|
## v0.3.0 — 2026-09-05
|
|
4
46
|
|
|
5
47
|
- After Effects `ae_import_as_comp`: import a layered Photoshop (.psd) or Illustrator (.ai)
|
package/README.md
CHANGED
|
@@ -144,7 +144,7 @@ The full tool table is in [Tool reference](#tool-reference).
|
|
|
144
144
|
a name. See `docs/spikes/13-macos-live.md`.
|
|
145
145
|
- The Adobe apps you want to control (2024 or newer; Premiere Pro 25.6+ for its panel).
|
|
146
146
|
- [Node.js](https://nodejs.org) 20 or newer.
|
|
147
|
-
- [Claude Code](https://claude.com/claude-code) (or
|
|
147
|
+
- An MCP client: [Claude Code](https://claude.com/claude-code), [Codex CLI](https://developers.openai.com/codex/cli), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or any other. The installer registers the server with all three CLIs it finds; see [Other MCP clients](#other-mcp-clients-codex-cli-gemini-cli-and-more) for what differs outside Claude Code.
|
|
148
148
|
- Optional: [ffmpeg](https://ffmpeg.org) on your PATH for the audio tools
|
|
149
149
|
(`winget install ffmpeg` / `brew install ffmpeg`). It is never bundled — the server runs the
|
|
150
150
|
copy you install; see [FFmpeg licensing](#ffmpeg).
|
|
@@ -185,7 +185,7 @@ Then it: writes `~/.brainferno-mcp-bridge/config.json`, asks for your Illustrato
|
|
|
185
185
|
chose Illustrator (paste the line Illustrator shows; it is checked on the spot), links the
|
|
186
186
|
After Effects/Audition panel, sets Media Encoder's service address, opens or closes the
|
|
187
187
|
firewall port, prints the Photoshop/Premiere panel steps, and offers to register the server
|
|
188
|
-
with Claude Code. On macOS it asks one more question when both Illustrator and Illustrator
|
|
188
|
+
with every MCP client CLI it finds — Claude Code, Codex CLI, Gemini CLI. On macOS it asks one more question when both Illustrator and Illustrator
|
|
189
189
|
(Beta) are installed — see below.
|
|
190
190
|
|
|
191
191
|
Non-interactive examples (from a source checkout, replace `brainferno-mcp-bridge-install`
|
|
@@ -199,7 +199,8 @@ brainferno-mcp-bridge-install --apps ppro,ame --mode shared --yes # Premier
|
|
|
199
199
|
|
|
200
200
|
App names: `ps ae ppro ai au ame` or `all`. Re-run the installer any time to change apps
|
|
201
201
|
or mode. Other flags: `--token`, `--port`, `--host`, `--illustrator-key`, `--illustrator-url`,
|
|
202
|
-
`--illustrator-app`, `--no-panels`, `--no-ame`, `--no-firewall`, `--no-illustrator`, `--register
|
|
202
|
+
`--illustrator-app`, `--no-panels`, `--no-ame`, `--no-firewall`, `--no-illustrator`, `--register`,
|
|
203
|
+
`--clients claude,codex,gemini`.
|
|
203
204
|
|
|
204
205
|
#### On macOS
|
|
205
206
|
|
|
@@ -241,6 +242,36 @@ Open it once per app; it connects on its own and shows a log and a kill switch.
|
|
|
241
242
|
In Claude Code: `/mcp` shows **brainferno** connected. Try: *"Which Adobe apps are
|
|
242
243
|
connected?"* (`cc_connected_apps`), then anything from the examples above.
|
|
243
244
|
|
|
245
|
+
### Other MCP clients: Codex CLI, Gemini CLI, and more
|
|
246
|
+
|
|
247
|
+
The installer registers the server with every client CLI it finds. To do it by hand
|
|
248
|
+
(replace the path with your install's `dist/index.js` — the installer prints the exact
|
|
249
|
+
line):
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
codex mcp add brainferno --env BRAINFERNO_MCP_DEFAULT_WAIT=false \
|
|
253
|
+
--env BRAINFERNO_MCP_PREVIEW=path --env BRAINFERNO_MCP_JOB_WAIT_SECONDS=50 \
|
|
254
|
+
-- node "<path>/dist/index.js"
|
|
255
|
+
gemini mcp add -s user -e BRAINFERNO_MCP_DEFAULT_WAIT=false brainferno node "<path>/dist/index.js"
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
The env vars adapt the server to each client — Claude Code runs without them:
|
|
259
|
+
|
|
260
|
+
- **Codex CLI kills any tool call at 60 seconds** (`tool_timeout_sec`).
|
|
261
|
+
`BRAINFERNO_MCP_DEFAULT_WAIT=false` makes renders, exports and pipelines return a
|
|
262
|
+
`jobId` immediately instead of blocking; the agent polls `cc_job_wait`, whose default
|
|
263
|
+
timeout `BRAINFERNO_MCP_JOB_WAIT_SECONDS=50` keeps each poll inside Codex's limit.
|
|
264
|
+
Alternatively raise `tool_timeout_sec` for this server in `~/.codex/config.toml`.
|
|
265
|
+
- **Codex cannot show the model MCP image blocks**, so `BRAINFERNO_MCP_PREVIEW=path`
|
|
266
|
+
returns previews as file paths (its own `view_image` tool reads them). Gemini CLI
|
|
267
|
+
renders images, so it keeps inline previews.
|
|
268
|
+
|
|
269
|
+
Any other MCP client works the same way: stdio `node <path>/dist/index.js`, plus whichever
|
|
270
|
+
of the three env vars its timeouts and image support call for. In *shared* mode the server
|
|
271
|
+
also speaks Streamable HTTP with a bearer token (next section); Codex takes the token from
|
|
272
|
+
an env var named by `bearer_token_env_var` in `~/.codex/config.toml`, Gemini from a
|
|
273
|
+
`headers` block in `~/.gemini/settings.json` — the installer prints both snippets.
|
|
274
|
+
|
|
244
275
|
### Using it from another computer
|
|
245
276
|
|
|
246
277
|
In *shared* mode the server also speaks MCP over HTTP on port 7898 and refuses every
|
|
@@ -349,6 +380,9 @@ override it:
|
|
|
349
380
|
| `BRAINFERNO_MCP_AME_WEBSERVICE` | *(auto-detect)* | Path to Media Encoder's `ame_webservice_console` |
|
|
350
381
|
| `BRAINFERNO_MCP_AME_PORT` / `_AME_IDLE_MS` | *(from its ini)* / `600000` | Media Encoder service port; idle time before it is stopped |
|
|
351
382
|
| `BRAINFERNO_MCP_HTTP_PORT` / `_HTTP_HOST` / `_HTTP_TOKEN` | *(off)* / `127.0.0.1` / *(none)* | Remote mode (set by the installer's *shared* choice) |
|
|
383
|
+
| `BRAINFERNO_MCP_DEFAULT_WAIT` | `true` | Whether long tools (renders, exports, pipelines) block when `wait` is not passed; `false` returns a jobId at once — for clients with short tool timeouts ([Codex](#other-mcp-clients-codex-cli-gemini-cli-and-more)) |
|
|
384
|
+
| `BRAINFERNO_MCP_PREVIEW` | `both` | Preview tools return `inline` (image only), `path` (file path only — for clients that can't show the model images), or `both` |
|
|
385
|
+
| `BRAINFERNO_MCP_JOB_WAIT_SECONDS` | `300` | Default `cc_job_wait` timeout; keep it below the client's own tool timeout |
|
|
352
386
|
| `BRAINFERNO_MCP_LOG_LEVEL` | `info` | `error` \| `warn` \| `info` \| `debug` |
|
|
353
387
|
|
|
354
388
|
## Security
|
|
@@ -424,7 +458,9 @@ docs/ build plan, protocol, live-run notes (spikes/), Audition AP
|
|
|
424
458
|
process and what npm actually does after a publish).
|
|
425
459
|
- **Not yet**: double-click panel installs (`.ccx`/`.zxp`) so the UXP Developer
|
|
426
460
|
Tool is not needed; a single signed installer; TLS for shared mode; Audition multitrack
|
|
427
|
-
writes; Media Encoder queue control.
|
|
461
|
+
writes; Media Encoder queue control. The Codex CLI / Gemini CLI lanes are built and
|
|
462
|
+
unit-tested but not yet verified against the live CLIs — that run is
|
|
463
|
+
`docs/spikes/15-multi-client-lanes.md`.
|
|
428
464
|
- Roadmap: `docs/BUILD_PLAN.md` (Phase 6).
|
|
429
465
|
|
|
430
466
|
## License
|
package/dist/config.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/** Runtime configuration, read once at startup from the environment. */
|
|
2
2
|
export declare const DEFAULT_ILLUSTRATOR_MCP_URL = "http://localhost:18412/v1/mcp";
|
|
3
3
|
export type LogLevel = "error" | "warn" | "info" | "debug";
|
|
4
|
+
/**
|
|
5
|
+
* How preview tools return images: "both" (image block + file path, the
|
|
6
|
+
* default), "inline" (image block only), or "path" (file path only — for MCP
|
|
7
|
+
* clients that cannot show the model image content, e.g. Codex CLI).
|
|
8
|
+
*/
|
|
9
|
+
export type PreviewMode = "inline" | "path" | "both";
|
|
4
10
|
/** Read BRAINFERNO_MCP_X, falling back to the pre-rename ADOBE_CC_MCP_X with a one-time warning. */
|
|
5
11
|
export declare function envValue(name: string): string | undefined;
|
|
6
12
|
/** Settings live in ~/.brainferno-mcp-bridge; copy config.json from the pre-rename ~/.adobe-cc-mcp once. */
|
|
@@ -73,6 +79,17 @@ export interface Config {
|
|
|
73
79
|
/** Which applications get their tools registered (installer choice; env BRAINFERNO_MCP_APPS overrides). */
|
|
74
80
|
enabledApps: InstallableApp[];
|
|
75
81
|
logLevel: LogLevel;
|
|
82
|
+
/**
|
|
83
|
+
* Whether long tools (renders, exports, pipelines) block until done when the
|
|
84
|
+
* caller does not pass `wait`. False suits clients with short tool timeouts
|
|
85
|
+
* (Codex CLI kills calls at 60s by default): tools return a jobId at once and
|
|
86
|
+
* the client polls cc_job_wait. Set per client in its MCP registration env.
|
|
87
|
+
*/
|
|
88
|
+
defaultWait: boolean;
|
|
89
|
+
/** How preview tools return images; see {@link PreviewMode}. */
|
|
90
|
+
preview: PreviewMode;
|
|
91
|
+
/** Default cc_job_wait timeout, seconds. Keep below the client's tool timeout. */
|
|
92
|
+
jobWaitSeconds: number;
|
|
76
93
|
}
|
|
77
94
|
/** Keys the installer may write to `~/.brainferno-mcp-bridge/config.json` (mode 600). */
|
|
78
95
|
/** Everything the installer can switch on or off. */
|
package/dist/config.js
CHANGED
|
@@ -5,6 +5,7 @@ import { join } from "node:path";
|
|
|
5
5
|
import { defaultHandshakePath } from "./bridge/handshake.js";
|
|
6
6
|
export const DEFAULT_ILLUSTRATOR_MCP_URL = "http://localhost:18412/v1/mcp";
|
|
7
7
|
const LOG_LEVELS = ["error", "warn", "info", "debug"];
|
|
8
|
+
const PREVIEW_MODES = ["inline", "path", "both"];
|
|
8
9
|
const LEGACY_ENV_PREFIX = "ADOBE_CC_MCP_";
|
|
9
10
|
const warnedLegacy = new Set();
|
|
10
11
|
/** Read BRAINFERNO_MCP_X, falling back to the pre-rename ADOBE_CC_MCP_X with a one-time warning. */
|
|
@@ -127,10 +128,21 @@ function intFromEnv(name, fallback, { allowZero = false } = {}) {
|
|
|
127
128
|
}
|
|
128
129
|
return parsed;
|
|
129
130
|
}
|
|
130
|
-
function boolFromEnv(name) {
|
|
131
|
+
function boolFromEnv(name, fallback = false) {
|
|
131
132
|
const raw = envValue(name);
|
|
133
|
+
if (raw === undefined || raw === "")
|
|
134
|
+
return fallback;
|
|
132
135
|
return raw === "1" || raw === "true";
|
|
133
136
|
}
|
|
137
|
+
function previewFromEnv() {
|
|
138
|
+
const raw = envValue("BRAINFERNO_MCP_PREVIEW");
|
|
139
|
+
if (raw === undefined || raw === "")
|
|
140
|
+
return "both";
|
|
141
|
+
if (!PREVIEW_MODES.includes(raw)) {
|
|
142
|
+
throw new Error(`BRAINFERNO_MCP_PREVIEW must be one of ${PREVIEW_MODES.join(", ")}, got ${raw}`);
|
|
143
|
+
}
|
|
144
|
+
return raw;
|
|
145
|
+
}
|
|
134
146
|
function logLevelFromEnv() {
|
|
135
147
|
const raw = envValue("BRAINFERNO_MCP_LOG_LEVEL");
|
|
136
148
|
if (raw === undefined || raw === "")
|
|
@@ -170,6 +182,9 @@ export function loadConfig() {
|
|
|
170
182
|
httpToken: envValue("BRAINFERNO_MCP_HTTP_TOKEN") ?? file.httpToken ?? "",
|
|
171
183
|
enabledApps: parseApps(envValue("BRAINFERNO_MCP_APPS"), file.enabledApps ?? INSTALLABLE_APPS),
|
|
172
184
|
logLevel: logLevelFromEnv(),
|
|
185
|
+
defaultWait: boolFromEnv("BRAINFERNO_MCP_DEFAULT_WAIT", true),
|
|
186
|
+
preview: previewFromEnv(),
|
|
187
|
+
jobWaitSeconds: intFromEnv("BRAINFERNO_MCP_JOB_WAIT_SECONDS", 300),
|
|
173
188
|
};
|
|
174
189
|
}
|
|
175
190
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,CAAC,MAAM,2BAA2B,GAAG,+BAA+B,CAAC;AAI3E,MAAM,UAAU,GAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/install/cli.js
CHANGED
|
@@ -6,11 +6,11 @@ import { basename, dirname, join, resolve } from "node:path";
|
|
|
6
6
|
import { createInterface } from "node:readline/promises";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import { DEFAULT_ILLUSTRATOR_MCP_URL, migrateLegacyUserDir, readUserConfig, userConfigPath } from "../config.js";
|
|
9
|
-
import { AME_INI_SEED, APP_CHOICES, DEFAULT_HTTP_PORT, appsNeed, checkIllustratorKey, detectInstalledApps, extractIllustratorKey, extractIllustratorUrl, finderCopyScript, findIllustratorApps, firewallCommands, lanAddresses,
|
|
9
|
+
import { AME_INI_SEED, APP_CHOICES, DEFAULT_HTTP_PORT, appsNeed, checkIllustratorKey, detectInstalledApps, extractIllustratorKey, extractIllustratorUrl, finderCopyScript, findIllustratorApps, firewallCommands, lanAddresses, mergeUserConfig, parseClients, pickApps, platformPaths, registrationPlans, rewriteAmeIni } from "./lib.js";
|
|
10
10
|
/**
|
|
11
11
|
* Interactive installer:
|
|
12
12
|
* node dist/install/cli.js [--apps ps,ae,ppro,ai,au,ame|all] [--mode local|shared] [--token T] [--port N] [--yes] [--no-panels] [--no-ame] [--no-firewall] [--register]
|
|
13
|
-
* [--illustrator-key K|"claude mcp add … line"] [--illustrator-url U] [--no-illustrator]
|
|
13
|
+
* [--clients claude,codex,gemini] [--illustrator-key K|"claude mcp add … line"] [--illustrator-url U] [--no-illustrator]
|
|
14
14
|
*
|
|
15
15
|
* Asks one question — "only this computer" or "shared on my network" — and
|
|
16
16
|
* sets every switch that depends on it: the remote MCP listener + token, the
|
|
@@ -35,7 +35,7 @@ for (let i = 2; i < process.argv.length; i++) {
|
|
|
35
35
|
const [k, v] = a.slice(2).split("=", 2);
|
|
36
36
|
if (v !== undefined)
|
|
37
37
|
args.set(k, v);
|
|
38
|
-
else if (process.argv[i + 1] && !process.argv[i + 1].startsWith("--") && ["mode", "token", "port", "host", "illustrator-key", "illustrator-url", "apps"].includes(k))
|
|
38
|
+
else if (process.argv[i + 1] && !process.argv[i + 1].startsWith("--") && ["mode", "token", "port", "host", "illustrator-key", "illustrator-url", "apps", "clients"].includes(k))
|
|
39
39
|
args.set(k, process.argv[++i]);
|
|
40
40
|
else
|
|
41
41
|
args.set(k, true);
|
|
@@ -59,8 +59,8 @@ function run(cmd, opts = {}) {
|
|
|
59
59
|
const r = spawnSync("powershell", ["-NoProfile", "-Command", `$p = Start-Process -FilePath powershell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File "${ps}"' -Verb RunAs -Wait -PassThru; exit $p.ExitCode`], { encoding: "utf8" });
|
|
60
60
|
return { code: r.status ?? 1, out: (r.stdout ?? "") + (r.stderr ?? "") };
|
|
61
61
|
}
|
|
62
|
-
//
|
|
63
|
-
const viaShell = process.platform === "win32" &&
|
|
62
|
+
// The MCP client CLIs are shell shims on Windows; run them through the shell as one string. Everything else is a real exe.
|
|
63
|
+
const viaShell = process.platform === "win32" && ["claude", "codex", "gemini"].includes(cmd[0]);
|
|
64
64
|
const r = viaShell
|
|
65
65
|
? spawnSync(cmd.map((c) => (/\s/.test(c) ? `"${c}"` : c)).join(" "), { encoding: "utf8", shell: true })
|
|
66
66
|
: spawnSync(cmd[0], cmd.slice(1), { encoding: "utf8" });
|
|
@@ -327,33 +327,52 @@ async function main() {
|
|
|
327
327
|
if (apps.includes("after_effects") || apps.includes("audition"))
|
|
328
328
|
say(` ${[apps.includes("after_effects") ? "After Effects" : "", apps.includes("audition") ? "Audition" : ""].filter(Boolean).join(" / ")}: Window → Extensions → Brainferno MCP Bridge.`);
|
|
329
329
|
}
|
|
330
|
-
// ---- 7. register with Claude Code
|
|
331
|
-
const
|
|
330
|
+
// ---- 7. register with MCP clients (Claude Code, Codex CLI, Gemini CLI) ---
|
|
331
|
+
const plans = registrationPlans({
|
|
332
|
+
mode,
|
|
333
|
+
distIndex,
|
|
334
|
+
port: next.httpPort ?? port,
|
|
335
|
+
token: next.httpToken ?? "",
|
|
336
|
+
addresses: lanAddresses(),
|
|
337
|
+
...(str("clients") !== undefined ? { clients: parseClients(str("clients")) } : {}),
|
|
338
|
+
});
|
|
332
339
|
say("");
|
|
333
|
-
say("
|
|
334
|
-
|
|
335
|
-
|
|
340
|
+
say("MCP clients on this computer:");
|
|
341
|
+
const detectedClients = [];
|
|
342
|
+
for (const p of plans) {
|
|
343
|
+
const found = run(p.probe).code === 0;
|
|
344
|
+
if (found)
|
|
345
|
+
detectedClients.push(p);
|
|
346
|
+
say(` ${p.label}${found ? "" : " (not found — run this yourself if you install it)"}:`);
|
|
347
|
+
say(` ${p.addLine}`);
|
|
348
|
+
}
|
|
349
|
+
const wantRegister = detectedClients.length > 0 && (flag("register") || (!flag("yes") && (await ask(`Register with ${detectedClients.map((p) => p.label).join(", ")} now? (y/n)`, "y")).toLowerCase().startsWith("y")));
|
|
336
350
|
if (wantRegister) {
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
351
|
+
for (const p of detectedClients) {
|
|
352
|
+
// Replace our own entry, and retire stale or pre-rename names; removal failures are fine.
|
|
353
|
+
for (const r of p.removals)
|
|
354
|
+
run(r);
|
|
355
|
+
const res = run(p.add);
|
|
356
|
+
if (res.code === 0)
|
|
357
|
+
ok(`${p.label}: registered as 'brainferno'`);
|
|
358
|
+
else
|
|
359
|
+
warn(`${p.label}: registration failed (${res.out.trim().split("\n")[0] ?? ""}) — run the line above yourself`);
|
|
341
360
|
}
|
|
342
|
-
const r2 = run(["claude", "mcp", "add", "--scope", "user", "brainferno", "--", "node", distIndex]);
|
|
343
|
-
if (r2.code === 0)
|
|
344
|
-
ok("registered as 'brainferno' (user scope)");
|
|
345
|
-
else
|
|
346
|
-
warn(`claude mcp add failed: ${r2.out.trim().split("\n")[0] ?? ""} — run the line above yourself`);
|
|
347
361
|
}
|
|
348
362
|
if (mode === "shared") {
|
|
349
363
|
say("");
|
|
350
364
|
say(`Other computers (this machine is "${hostname()}"; the token is in ${userConfigPath()}):`);
|
|
351
|
-
for (const
|
|
352
|
-
|
|
365
|
+
for (const p of plans) {
|
|
366
|
+
if (p.remoteLines.length === 0)
|
|
367
|
+
continue;
|
|
368
|
+
say(` ${p.label}:`);
|
|
369
|
+
for (const line of p.remoteLines)
|
|
370
|
+
say(` ${line}`);
|
|
371
|
+
}
|
|
353
372
|
say(" The wire is plain HTTP: use it on a trusted LAN, a VPN, or Tailscale.");
|
|
354
373
|
}
|
|
355
374
|
say("");
|
|
356
|
-
say("Done.
|
|
375
|
+
say("Done. Restart the server to apply (Claude Code: /mcp → brainferno → reconnect; Codex/Gemini: start a new session).");
|
|
357
376
|
rl.close();
|
|
358
377
|
}
|
|
359
378
|
main().catch((e) => {
|
package/dist/install/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnJ,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAqC,MAAM,UAAU,CAAC;AAE9W;;;;;;;;;;GAUG;AAEH,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAClD,+EAA+E;AAC/E,qDAAqD;AACrD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzG,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;AAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAExE,MAAM,IAAI,GAAG,IAAI,GAAG,EAA4B,CAAC;AACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,SAAS;IAClC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,SAAS;QAAE,IAAI,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC;SAChC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAE,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,CAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;;QAC/M,IAAI,CAAC,GAAG,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC;AACD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACjD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAEnG,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvC,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC1C,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAE5C,4EAA4E;AAC5E,SAAS,YAAY,CAAC,UAAkB;IACtC,MAAM,CAAC,GAAG,SAAS,CAAC,yBAAyB,EAAE,CAAC,IAAI,EAAE,2BAA2B,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACtJ,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,SAAS,GAAG,CAAC,GAAa,EAAE,OAA8B,EAAE;IAC1D,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjD,qEAAqE;QACrE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,kCAAkC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;QAC/E,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,wBAAwB,CAAC,CAAC;QAC1H,MAAM,CAAC,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,oGAAoG,EAAE,kDAAkD,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9O,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;IAC3E,CAAC;IACD,2HAA2H;IAC3H,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;IACjG,MAAM,CAAC,GAAG,QAAQ;QAChB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACvG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3D,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACzC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClE,yFAAyF;QACzF,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,6FAA6F,CAAC,CAAC;QACvH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,6BAA6B,SAAS,8BAA8B,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,KAAK,EAAE,CAAS,EAAE,GAAW,EAAmB,EAAE;QAC5D,IAAI,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,4EAA4E;IAC5E,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;IAC5C,IAAI,YAAY;QAAE,EAAE,CAAC,6BAA6B,YAAY,OAAO,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;IAClG,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,IAAI,CAAC,KAAK,CAAC;YAAE,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;aAC/B,CAAC;YACJ,GAAG,CAAC,EAAE,CAAC,CAAC;YACR,GAAG,CAAC,gDAAgD,CAAC,CAAC;YACtD,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACxK,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,+BAA+B,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAClI,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/F,4EAA4E;IAC5E,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAA4B,CAAC;IAClD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,EAAE,CAAC,CAAC;QACR,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACpC,GAAG,CAAC,mFAAmF,CAAC,CAAC;QACzF,GAAG,CAAC,4EAA4E,CAAC,CAAC;QAClF,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACxC,CAAC;IACD,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,SAAS,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAEjF,6EAA6E;IAC7E,IAAI,cAAc,GAA8B,SAAS,CAAC;IAC1D,IAAI,cAAc,GAA8B,GAAG,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC;IACpF,IAAI,cAAc,GAA8B,GAAG,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC;IACpF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACjE,IAAI,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,EAAE,CAAC,CAAC;YACR,GAAG,CAAC,+FAA+F,CAAC,CAAC;YACrG,GAAG,CAAC,yFAAyF,CAAC,CAAC;YAC/F,GAAG,CAAC,6CAA6C,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC;YACjI,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG;gBAAE,IAAI,CAAC,6CAA6C,CAAC,CAAC;iBACzD,CAAC;gBACJ,cAAc,GAAG,GAAG,CAAC;gBACrB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAI,QAAQ,IAAI,QAAQ,KAAK,2BAA2B;oBAAE,cAAc,GAAG,QAAQ,CAAC;YACtF,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC;QAC7D,MAAM,UAAU,GAAG,cAAc,IAAI,QAAQ,CAAC,cAAc,IAAI,2BAA2B,CAAC;QAC5F,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAChE,IAAI,KAAK,CAAC,EAAE;gBAAE,EAAE,CAAC,mCAAmC,KAAK,CAAC,UAAU,IAAI,YAAY,OAAO,UAAU,EAAE,CAAC,CAAC;iBACpG,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa;gBAAE,IAAI,CAAC,oCAAoC,UAAU,6DAA6D,CAAC,CAAC;iBACtJ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,gCAAgC,KAAK,CAAC,MAAM,gEAAgE,CAAC,CAAC;;gBACnJ,IAAI,CAAC,yCAAyC,KAAK,CAAC,MAAM,kBAAkB,CAAC,CAAC;QACrF,CAAC;;YAAM,EAAE,CAAC,sFAAsF,CAAC,CAAC;QAElG,6FAA6F;QAC7F,6FAA6F;QAC7F,yBAAyB;QACzB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;QACtF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzF,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjB,GAAG,CAAC,EAAE,CAAC,CAAC;gBACR,GAAG,CAAC,+FAA+F,MAAM,EAAE,CAAC,CAAC;gBAC7G,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvH,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzB,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM;oBAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;YACvF,CAAC;YACD,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,EAAE,CAAC,wBAAwB,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClE,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC5D,0FAA0F;YAC1F,cAAc,GAAG,IAAI,CAAC;YACtB,EAAE,CAAC,qDAAqD,QAAQ,CAAC,CAAC,CAAE,CAAC,KAAK,GAAG,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,IAAI,iBAAiB,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE;QAC3C,IAAI;QACJ,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI;KACL,CAAC,CAAC;IACH,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtE,IAAI,CAAC;QACH,SAAS,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;IACD,EAAE,CAAC,SAAS,cAAc,EAAE,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,QAAQ,cAAc,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAE1H,4EAA4E;IAC5E,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACjF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,+BAA+B,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YACtD,6FAA6F;YAC7F,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,+BAA+B,CAAC,EAAE,CAAC;gBAChE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBAC9E,IAAI,MAAM,GAAG,EAAE,CAAC;wBAChB,IAAI,CAAC;4BACH,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC3B,CAAC;wBAAC,MAAM,CAAC;4BACP,kEAAkE;wBACpE,CAAC;wBACD,IAAI,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;4BAC5E,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC/C,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,eAAe;gBACjB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1G,EAAE,CAAC,qBAAqB,MAAM,MAAM,QAAQ,EAAE,CAAC,CAAC;YAChD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBACxC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;oBAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,EAAE,CAAC,gEAAgE,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;QACjD,IAAI,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1C,yGAAyG;YACzG,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,GAAG;gBAAE,OAAO,GAAG,YAAY,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,GAAG,IAAI,OAAO,KAAK,IAAI;YAAE,IAAI,CAAC,2DAA2D,CAAC,CAAC;aAC3F,CAAC;YACJ,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAChH,IAAI,MAAM,KAAK,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC;gBAAE,EAAE,CAAC,qCAAqC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,wBAAwB,KAAK,KAAK,GAAG,CAAC,CAAC;iBAChK,CAAC;gBACJ,IAAI,CAAC;oBACH,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAC3B,EAAE,CAAC,6BAA6B,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,4BAA4B,EAAE,CAAC,CAAC;gBAC7G,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;wBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC;wBACxD,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;wBACpE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;4BAAE,EAAE,CAAC,6BAA6B,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,4BAA4B,UAAU,CAAC,CAAC;;4BAChI,IAAI,CAAC,mBAAmB,GAAG,wBAAwB,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;oBACrH,CAAC;yBAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;wBACzC,wHAAwH;wBACxH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;wBAC9F,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACxE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC;4BAAE,EAAE,CAAC,6BAA6B,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,4BAA4B,KAAK,KAAK,wBAAwB,CAAC,CAAC;;4BAC3K,IAAI,CAAC,mBAAmB,GAAG,mJAAmJ,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACjO,CAAC;;wBAAM,IAAI,CAAC,mBAAmB,GAAG,yBAAyB,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBACxH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,EAAE,CAAC,0CAA0C,CAAC,CAAC;aACjE,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACnF,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;gBAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,QAAQ,2BAA2B,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC;;gBAClI,IAAI,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,gBAAgB,MAAM,EAAE,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,EAAE,CAAC,CAAC;QACR,GAAG,CAAC,SAAS,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,GAAG,CAAC,sFAAsF,CAAC,CAAC;QACzJ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,GAAG,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,GAAG,CAAC,mBAAmB,YAAY,yEAAyE,CAAC,CAAC;QAC7I,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,GAAG,CAAC,yEAAyE,CAAC,CAAC;QAC5I,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAC9P,CAAC;IAED,6EAA6E;IAC7E,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAC9B,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC3B,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC3B,SAAS,EAAE,YAAY,EAAE;QACzB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpF,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,+BAA+B,CAAC,CAAC;IACrC,MAAM,eAAe,GAAiB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK;YAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oDAAoD,GAAG,CAAC,CAAC;QACzF,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,iBAAiB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxN,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAChC,0FAA0F;YAC1F,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;gBAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;gBAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,8BAA8B,CAAC,CAAC;;gBAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,0BAA0B,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAC;QACtH,CAAC;IACH,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,GAAG,CAAC,EAAE,CAAC,CAAC;QACR,GAAG,CAAC,qCAAqC,QAAQ,EAAE,sBAAsB,cAAc,EAAE,IAAI,CAAC,CAAC;QAC/F,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACzC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,WAAW;gBAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,GAAG,CAAC,yEAAyE,CAAC,CAAC;IACjF,CAAC;IACD,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,oHAAoH,CAAC,CAAC;IAC1H,EAAE,CAAC,KAAK,EAAE,CAAC;AACb,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;IAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/install/lib.d.ts
CHANGED
|
@@ -99,3 +99,38 @@ export declare function mcpAddCommands(o: {
|
|
|
99
99
|
local: string;
|
|
100
100
|
remote: string[];
|
|
101
101
|
};
|
|
102
|
+
export type McpClient = "claude" | "codex" | "gemini";
|
|
103
|
+
export declare const MCP_CLIENTS: readonly McpClient[];
|
|
104
|
+
export declare function parseClients(raw: string): McpClient[];
|
|
105
|
+
/**
|
|
106
|
+
* Env overrides each client's registration carries. Claude Code gets none
|
|
107
|
+
* (blocking waits, inline previews — today's behavior). Codex CLI kills tool
|
|
108
|
+
* calls at 60 seconds by default and cannot show the model MCP image blocks,
|
|
109
|
+
* so long tools return a jobId at once, cc_job_wait polls in 50-second slices,
|
|
110
|
+
* and previews come back as file paths (Codex's view_image reads them).
|
|
111
|
+
* Gemini CLI renders images and has a long tool timeout; only waits change.
|
|
112
|
+
*/
|
|
113
|
+
export declare const CLIENT_ENV: Record<McpClient, Record<string, string>>;
|
|
114
|
+
export interface ClientPlan {
|
|
115
|
+
client: McpClient;
|
|
116
|
+
label: string;
|
|
117
|
+
/** Probe argv: exit 0 means the CLI is installed. */
|
|
118
|
+
probe: string[];
|
|
119
|
+
/** Run before `add`; failures are ignored (stale or renamed entries). */
|
|
120
|
+
removals: string[][];
|
|
121
|
+
/** Registration argv. */
|
|
122
|
+
add: string[];
|
|
123
|
+
/** The same registration as one printable line. */
|
|
124
|
+
addLine: string;
|
|
125
|
+
/** Shared mode: how another computer connects to this server (print-only). */
|
|
126
|
+
remoteLines: string[];
|
|
127
|
+
}
|
|
128
|
+
/** One registration plan per MCP client CLI (Claude Code, Codex CLI, Gemini CLI). */
|
|
129
|
+
export declare function registrationPlans(o: {
|
|
130
|
+
mode: InstallMode;
|
|
131
|
+
distIndex: string;
|
|
132
|
+
port: number;
|
|
133
|
+
token: string;
|
|
134
|
+
addresses: string[];
|
|
135
|
+
clients?: readonly McpClient[];
|
|
136
|
+
}): ClientPlan[];
|
package/dist/install/lib.js
CHANGED
|
@@ -239,4 +239,90 @@ export function mcpAddCommands(o) {
|
|
|
239
239
|
const remote = o.mode === "shared" ? o.addresses.map((a) => `claude mcp add --scope user --transport http --header "Authorization: Bearer ${o.token}" brainferno http://${a}:${o.port}/mcp`) : [];
|
|
240
240
|
return { local, remote };
|
|
241
241
|
}
|
|
242
|
+
export const MCP_CLIENTS = ["claude", "codex", "gemini"];
|
|
243
|
+
export function parseClients(raw) {
|
|
244
|
+
const out = [];
|
|
245
|
+
for (const part of raw.split(/[,\s]+/).filter(Boolean)) {
|
|
246
|
+
const id = part.trim().toLowerCase();
|
|
247
|
+
if (!MCP_CLIENTS.includes(id))
|
|
248
|
+
throw new Error(`Unknown MCP client "${part}". Use: ${MCP_CLIENTS.join(", ")}`);
|
|
249
|
+
if (!out.includes(id))
|
|
250
|
+
out.push(id);
|
|
251
|
+
}
|
|
252
|
+
return out;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Env overrides each client's registration carries. Claude Code gets none
|
|
256
|
+
* (blocking waits, inline previews — today's behavior). Codex CLI kills tool
|
|
257
|
+
* calls at 60 seconds by default and cannot show the model MCP image blocks,
|
|
258
|
+
* so long tools return a jobId at once, cc_job_wait polls in 50-second slices,
|
|
259
|
+
* and previews come back as file paths (Codex's view_image reads them).
|
|
260
|
+
* Gemini CLI renders images and has a long tool timeout; only waits change.
|
|
261
|
+
*/
|
|
262
|
+
export const CLIENT_ENV = {
|
|
263
|
+
claude: {},
|
|
264
|
+
codex: { BRAINFERNO_MCP_DEFAULT_WAIT: "false", BRAINFERNO_MCP_PREVIEW: "path", BRAINFERNO_MCP_JOB_WAIT_SECONDS: "50" },
|
|
265
|
+
gemini: { BRAINFERNO_MCP_DEFAULT_WAIT: "false" },
|
|
266
|
+
};
|
|
267
|
+
/** One registration plan per MCP client CLI (Claude Code, Codex CLI, Gemini CLI). */
|
|
268
|
+
export function registrationPlans(o) {
|
|
269
|
+
const chosen = o.clients ?? MCP_CLIENTS;
|
|
270
|
+
const plans = [];
|
|
271
|
+
const urls = o.addresses.map((a) => `http://${a}:${o.port}/mcp`);
|
|
272
|
+
if (chosen.includes("claude")) {
|
|
273
|
+
const cmds = mcpAddCommands(o);
|
|
274
|
+
plans.push({
|
|
275
|
+
client: "claude",
|
|
276
|
+
label: "Claude Code",
|
|
277
|
+
probe: ["claude", "--version"],
|
|
278
|
+
removals: ["user", "local"].flatMap((scope) => [
|
|
279
|
+
["claude", "mcp", "remove", "--scope", scope, "brainferno"],
|
|
280
|
+
["claude", "mcp", "remove", "--scope", scope, "adobe-cc"],
|
|
281
|
+
]),
|
|
282
|
+
add: ["claude", "mcp", "add", "--scope", "user", "brainferno", "--", "node", o.distIndex],
|
|
283
|
+
addLine: cmds.local,
|
|
284
|
+
remoteLines: cmds.remote,
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
if (chosen.includes("codex")) {
|
|
288
|
+
const envArgs = Object.entries(CLIENT_ENV.codex).flatMap(([k, v]) => ["--env", `${k}=${v}`]);
|
|
289
|
+
plans.push({
|
|
290
|
+
client: "codex",
|
|
291
|
+
label: "Codex CLI",
|
|
292
|
+
probe: ["codex", "--version"],
|
|
293
|
+
removals: [["codex", "mcp", "remove", "brainferno"]],
|
|
294
|
+
add: ["codex", "mcp", "add", "brainferno", ...envArgs, "--", "node", o.distIndex],
|
|
295
|
+
addLine: `codex mcp add brainferno ${envArgs.join(" ")} -- node "${o.distIndex}"`,
|
|
296
|
+
// Codex reads the bearer token from an env var, not a header: point it at a TOML block.
|
|
297
|
+
remoteLines: o.mode === "shared"
|
|
298
|
+
? [
|
|
299
|
+
"in ~/.codex/config.toml:",
|
|
300
|
+
" [mcp_servers.brainferno]",
|
|
301
|
+
` url = "${urls[0] ?? ""}"`,
|
|
302
|
+
...urls.slice(1).map((u) => ` # or: url = "${u}"`),
|
|
303
|
+
' bearer_token_env_var = "BRAINFERNO_MCP_TOKEN"',
|
|
304
|
+
`then run Codex with BRAINFERNO_MCP_TOKEN=${o.token}`,
|
|
305
|
+
]
|
|
306
|
+
: [],
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
if (chosen.includes("gemini")) {
|
|
310
|
+
const envArgs = Object.entries(CLIENT_ENV.gemini).flatMap(([k, v]) => ["-e", `${k}=${v}`]);
|
|
311
|
+
plans.push({
|
|
312
|
+
client: "gemini",
|
|
313
|
+
label: "Gemini CLI",
|
|
314
|
+
probe: ["gemini", "--version"],
|
|
315
|
+
removals: [["gemini", "mcp", "remove", "-s", "user", "brainferno"]],
|
|
316
|
+
add: ["gemini", "mcp", "add", "-s", "user", ...envArgs, "brainferno", "node", o.distIndex],
|
|
317
|
+
addLine: `gemini mcp add -s user ${envArgs.join(" ")} brainferno node "${o.distIndex}"`,
|
|
318
|
+
remoteLines: o.mode === "shared"
|
|
319
|
+
? [
|
|
320
|
+
'in ~/.gemini/settings.json, under "mcpServers":',
|
|
321
|
+
...urls.map((u) => ` "brainferno": { "httpUrl": "${u}", "headers": { "Authorization": "Bearer ${o.token}" } }`),
|
|
322
|
+
]
|
|
323
|
+
: [],
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
return plans;
|
|
327
|
+
}
|
|
242
328
|
//# sourceMappingURL=lib.js.map
|