brainferno-mcp-bridge 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/NOTICE +6 -0
  3. package/README.md +88 -19
  4. package/THIRD_PARTY_NOTICES.md +18 -3
  5. package/dist/bridge/handshake.d.ts +11 -2
  6. package/dist/bridge/handshake.js +35 -3
  7. package/dist/bridge/handshake.js.map +1 -1
  8. package/dist/bridge/socket.js +7 -1
  9. package/dist/bridge/socket.js.map +1 -1
  10. package/dist/config.d.ts +10 -0
  11. package/dist/config.js +3 -0
  12. package/dist/config.js.map +1 -1
  13. package/dist/drivers/ame-webservice.d.ts +24 -4
  14. package/dist/drivers/ame-webservice.js +102 -15
  15. package/dist/drivers/ame-webservice.js.map +1 -1
  16. package/dist/drivers/osscript.d.ts +14 -1
  17. package/dist/drivers/osscript.js +68 -48
  18. package/dist/drivers/osscript.js.map +1 -1
  19. package/dist/install/cli.js +55 -7
  20. package/dist/install/cli.js.map +1 -1
  21. package/dist/install/lib.d.ts +25 -0
  22. package/dist/install/lib.js +53 -7
  23. package/dist/install/lib.js.map +1 -1
  24. package/dist/server.js +1 -1
  25. package/dist/server.js.map +1 -1
  26. package/dist/tools/after-effects.d.ts +1 -0
  27. package/dist/tools/after-effects.js +9 -4
  28. package/dist/tools/after-effects.js.map +1 -1
  29. package/dist/tools/illustrator.js +140 -140
  30. package/dist/tools/result.js +1 -1
  31. package/package.json +2 -2
  32. package/panels/panel-cep/CSXS/manifest.xml +53 -53
  33. package/panels/panel-cep/bridge-client.js +204 -204
  34. package/panels/panel-cep/host.jsx +62 -62
  35. package/panels/panel-cep/main.js +173 -173
  36. package/panels/panel-uxp/README.md +36 -36
  37. package/panels/panel-uxp/bridge-client.js +204 -204
  38. package/panels/panel-uxp/commands.js +375 -375
  39. package/panels/panel-uxp/main.js +109 -109
  40. package/panels/panel-uxp/manifest.json +89 -89
  41. package/panels/panel-uxp-ppro/bridge-client.js +204 -204
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.2.0 — 2026-08-30
4
+
5
+ macOS brought up and verified live (Adobe 2026 apps). Windows behaviour is unchanged; CI now
6
+ runs the suite on macOS as well as Ubuntu and Windows. Details: `docs/spikes/13-macos-live.md`.
7
+
8
+ - **After Effects**: fixed the `aerender` path on macOS — `Folder.appPackage` is the `.app`
9
+ bundle itself there, and `aerender` sits beside it. `ae_render_comp` and the render pipelines
10
+ failed with "aerender not found" before.
11
+ - **Media Encoder** on macOS: find the console inside its nested bundle; read (and create)
12
+ `ame_webservice_config.ini` in the app bundle's `Contents/Resources`, which is the only place
13
+ the console looks — Adobe ships none, so the service used to start and never listen. The
14
+ installer writes the file through Finder, since macOS "App Management" refuses bundle writes
15
+ even under `sudo`, and `ame_server` now fails fast naming the path instead of timing out.
16
+ - **Media Encoder** on macOS: stop the hidden renderer the service starts. It runs in its own
17
+ process group, so the previous group kill missed it and every idle stop leaked one; the driver
18
+ now tracks only the renderer it caused and never touches an instance that was already running.
19
+ - **Illustrator** on macOS: pick which Illustrator the `ai_*` tools drive. The release and the
20
+ Beta both ship a bundle named `Adobe Illustrator.app`, so an AppleScript name followed whichever
21
+ was running. New `illustratorApp` config / `BRAINFERNO_MCP_ILLUSTRATOR_APP` accepts a name,
22
+ bundle id or `.app` path; the installer detects both and asks.
23
+ - **Bridge**: the handshake file is no longer deleted by a second server instance that does not
24
+ own it, and a server taking it over from a live one says so in the log. Panels reloading after
25
+ an unrelated instance exited used to find no handshake at all.
26
+
3
27
  ## v0.1.0 — 2026-08-28
4
28
 
5
29
  First public release.
@@ -16,4 +40,4 @@ First public release.
16
40
  - Installer: choose apps, local vs shared-on-network, Illustrator key, panel setup, Claude
17
41
  Code registration.
18
42
  - Verified live on Windows 11 with the Adobe 2026 applications; macOS paths written but not yet
19
- run.
43
+ run (done in the next release — see Unreleased).
package/NOTICE CHANGED
@@ -24,4 +24,10 @@ Media Encoder web service). Section 6 of the Apache License grants no trademark
24
24
  neither the Adobe marks nor the Brainferno name and logo may be used to name or promote
25
25
  derived products without permission.
26
26
 
27
+ This product does not bundle FFmpeg. The audio tools execute the ffmpeg and ffprobe programs
28
+ already installed on the user's machine as separate processes; those builds carry their own
29
+ licenses (LGPL-2.1-or-later, or GPL when built with --enable-gpl). FFmpeg is a trademark of
30
+ Fabrice Bellard, originator of the FFmpeg project; this project is not affiliated with or
31
+ endorsed by it.
32
+
27
33
  Third-party software and materials are listed in THIRD_PARTY_NOTICES.md.
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Brainferno MCP Bridge (`brainferno-mcp-bridge`)
2
2
 
3
3
  [![CI](https://github.com/Brainferno/brainferno-mcp-bridge/actions/workflows/ci.yml/badge.svg)](https://github.com/Brainferno/brainferno-mcp-bridge/actions/workflows/ci.yml)
4
+ [![npm](https://img.shields.io/npm/v/brainferno-mcp-bridge)](https://www.npmjs.com/package/brainferno-mcp-bridge)
4
5
  [![Release](https://img.shields.io/github/v/release/Brainferno/brainferno-mcp-bridge)](https://github.com/Brainferno/brainferno-mcp-bridge/releases)
5
6
  [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
6
7
 
@@ -24,8 +25,8 @@ the way. Every action is one undo step in the app, so you can always step back.
24
25
  - **Runs on your machine.** Nothing leaves your computer unless you turn on *shared* mode
25
26
  for other computers on your network (token-protected).
26
27
 
27
- > Status: v0.1 — every tool verified live on Windows (Adobe 2026 apps). macOS paths are
28
- > written but not yet run. See [Status](#status).
28
+ > Status: v0.1 — every tool verified live on Windows and macOS (Adobe 2026 apps). See
29
+ > [Status](#status).
29
30
 
30
31
  The companion panel inside each app — here in Adobe After Effects and Adobe Photoshop —
31
32
  shows the connection, a live log, and a kill switch:
@@ -111,7 +112,8 @@ idle; status, history, cancel.
111
112
 
112
113
  ### Audio (ffmpeg) — 9 tools, no Adobe app needed
113
114
  Probe, loudness measurement (EBU R128), two-pass loudness normalization, convert/extract,
114
- trim, trim silence, denoise, mix, waveform image.
115
+ trim, trim silence, denoise, mix, waveform image. These run your own installed ffmpeg as a
116
+ separate process — nothing is bundled ([licensing](#ffmpeg)).
115
117
 
116
118
  ### Pipelines and jobs — 8 tools
117
119
  `pipeline_ps_to_ae`, `pipeline_render_and_import` (After Effects → aerender → Premiere Pro),
@@ -128,12 +130,16 @@ The full tool table is in [Tool reference](#tool-reference).
128
130
 
129
131
  ### Requirements
130
132
 
131
- - Windows 10/11 (macOS support is written but not yet verified).
133
+ - Windows 10/11 or macOS 14+. Two macOS specifics the installer handles: Media Encoder needs a
134
+ one-time config file inside its app bundle, and — when both Illustrator and Illustrator (Beta)
135
+ are installed — which one the `ai_*` tools drive has to be pinned, since the two bundles share
136
+ a name. See `docs/spikes/13-macos-live.md`.
132
137
  - The Adobe apps you want to control (2024 or newer; Premiere Pro 25.6+ for its panel).
133
138
  - [Node.js](https://nodejs.org) 20 or newer.
134
139
  - [Claude Code](https://claude.com/claude-code) (or another MCP client).
135
140
  - Optional: [ffmpeg](https://ffmpeg.org) on your PATH for the audio tools
136
- (`winget install ffmpeg` / `brew install ffmpeg`).
141
+ (`winget install ffmpeg` / `brew install ffmpeg`). It is never bundled — the server runs the
142
+ copy you install; see [FFmpeg licensing](#ffmpeg).
137
143
 
138
144
  ### 1. Install the package
139
145
 
@@ -171,7 +177,8 @@ Then it: writes `~/.brainferno-mcp-bridge/config.json`, asks for your Illustrato
171
177
  chose Illustrator (paste the line Illustrator shows; it is checked on the spot), links the
172
178
  After Effects/Audition panel, sets Media Encoder's service address, opens or closes the
173
179
  firewall port, prints the Photoshop/Premiere panel steps, and offers to register the server
174
- with Claude Code.
180
+ with Claude Code. On macOS it asks one more question when both Illustrator and Illustrator
181
+ (Beta) are installed — see below.
175
182
 
176
183
  Non-interactive examples (from a source checkout, replace `brainferno-mcp-bridge-install`
177
184
  with `node packages/server/dist/install/cli.js`):
@@ -183,7 +190,26 @@ brainferno-mcp-bridge-install --apps ppro,ame --mode shared --yes # Premier
183
190
  ```
184
191
 
185
192
  App names: `ps ae ppro ai au ame` or `all`. Re-run the installer any time to change apps
186
- or mode.
193
+ or mode. Other flags: `--token`, `--port`, `--host`, `--illustrator-key`, `--illustrator-url`,
194
+ `--illustrator-app`, `--no-panels`, `--no-ame`, `--no-firewall`, `--no-illustrator`, `--register`.
195
+
196
+ #### On macOS
197
+
198
+ Two things differ from Windows, and the installer handles both:
199
+
200
+ - **Media Encoder** needs `ame_webservice_config.ini` inside
201
+ `/Applications/Adobe Media Encoder <year>/Adobe Media Encoder <year>.app/Contents/Resources/`.
202
+ Adobe ships none, and without it the headless service starts but never listens. The installer
203
+ creates it — and because macOS "App Management" blocks writes into app bundles even under
204
+ `sudo`, it asks Finder to copy the file in. If that is refused, allow *App Management* for your
205
+ terminal in **System Settings → Privacy & Security** and re-run, or create the file by hand with
206
+ the two lines `ip = 127.0.0.1` and `port = 8080`. `ame_server` tells you the exact path if it is
207
+ missing.
208
+ - **Illustrator and Illustrator (Beta)** both ship a bundle named `Adobe Illustrator.app`, so an
209
+ AppleScript name resolves to whichever one happens to be running — the `ai_*` tools would follow
210
+ it mid-session. The installer asks which one to drive and pins its bundle id
211
+ (`illustratorApp` in `config.json`; `BRAINFERNO_MCP_ILLUSTRATOR_APP` overrides,
212
+ `--illustrator-app com.adobe.illustratorBeta` sets it non-interactively).
187
213
 
188
214
  ### 3. Open the panels
189
215
 
@@ -196,8 +222,10 @@ Open it once per app; it connects on its own and shows a log and a kill switch.
196
222
  printed (`packages/panel-uxp` or `packages/panel-uxp-ppro`) → *Load*. Then Window →
197
223
  Extensions (UXP) → Brainferno MCP Bridge. Premiere needs *Settings → Plugins → Enable
198
224
  developer mode* first (restart Premiere). A double-click `.ccx` install is on the roadmap.
199
- - **Illustrator** needs no panel. For Adobe's own Illustrator tools, turn on MCP in
200
- Illustrator's preferences and give the installer the key it shows.
225
+ - **Illustrator** needs no panel: the `ai_*` tools drive it from outside (AppleScript on macOS,
226
+ COM on Windows). For Adobe's own Illustrator tools, turn on MCP in Illustrator's preferences and
227
+ give the installer the key it shows. On macOS with both the release and the Beta installed, the
228
+ installer asks which one the tools should drive.
201
229
  - **Media Encoder** needs no panel; the server starts its service when a job comes.
202
230
 
203
231
  ### 4. Talk to it
@@ -281,7 +309,7 @@ The wire protocol is documented in [`docs/protocol.md`](docs/protocol.md).
281
309
  | `ai_*` (7) | Illustrator | Documents, shapes, text, save, export artboard, preview (panel-less) |
282
310
  | `ai_beta_status` · `ai_beta_list_tools` · `ai_beta_call` | Illustrator (Adobe's MCP) | Pass-through to Adobe's 46 Illustrator tools — needs a key ([docs](docs/illustrator-beta.md), [sweep](docs/spikes/12-illustrator-beta-sweep.md)) |
283
311
  | `au_*` (12) | Audition | App/document state, 600+ menu commands, Favorites, markers, transport, open/save/export, API dump — [live run](docs/spikes/08-audition-tools-live.md) |
284
- | `ame_*` (6) | Media Encoder (headless) | Encode media / `.prproj` sequence / FCP XML with an `.epr` preset; status, history, cancel, service start/stop — [live run](docs/spikes/10-media-encoder-live.md) |
312
+ | `ame_*` (6) | Media Encoder (headless) | Encode media / `.prproj` sequence / FCP XML with an `.epr` preset; status, history, cancel, service start/stop — [live run](docs/spikes/10-media-encoder-live.md), [macOS](docs/spikes/13-macos-live.md) |
285
313
  | `audio_*` (9) | ffmpeg | Probe, R128 measure + two-pass normalize, convert/extract, trim, trim silence, denoise, mix, waveform image |
286
314
  | `pipeline_*` (4) | cross-app | `ps_to_ae`, `render_and_import`, `audio_roundtrip`, `ai_to_ps` — one call, one job, failure names the step + recovery tool — [live run](docs/spikes/09-pipelines-live.md) |
287
315
  | `cc_eval_script` | After Effects, Illustrator, Audition | Raw ExtendScript escape hatch — **opt-in** (`BRAINFERNO_MCP_ALLOW_RAW_SCRIPTS=1`) |
@@ -294,7 +322,8 @@ app returns an actionable "not connected" error rather than vanishing mid-sessio
294
322
  ## Configuration
295
323
 
296
324
  The installer writes `~/.brainferno-mcp-bridge/config.json` (`enabledApps`, `illustratorKey`,
297
- `illustratorUrl`, `httpPort`, `httpHost`, `httpToken`). Environment variables override it:
325
+ `illustratorUrl`, `illustratorApp`, `httpPort`, `httpHost`, `httpToken`). Environment variables
326
+ override it:
298
327
 
299
328
  | Variable | Default | Purpose |
300
329
  | --- | --- | --- |
@@ -307,6 +336,7 @@ The installer writes `~/.brainferno-mcp-bridge/config.json` (`enabledApps`, `ill
307
336
  | `BRAINFERNO_MCP_HEARTBEAT_MS` | `15000` | Ping cadence for detecting a dead panel |
308
337
  | `BRAINFERNO_MCP_ALLOW_RAW_SCRIPTS` | *(off)* | `1` registers the `cc_eval_script` escape hatch |
309
338
  | `BRAINFERNO_MCP_ILLUSTRATOR_KEY` / `_URL` | *(config.json)* / `http://localhost:18412/v1/mcp` | Adobe's Illustrator MCP key and endpoint |
339
+ | `BRAINFERNO_MCP_ILLUSTRATOR_APP` | *(config.json, else the app's name)* | Which Illustrator the `ai_*` tools drive — AppleScript name, bundle id (`com.adobe.illustrator`, `com.adobe.illustratorBeta`) or `.app` path on macOS; COM ProgID on Windows |
310
340
  | `BRAINFERNO_MCP_FFMPEG` / `_FFPROBE` | `ffmpeg` / `ffprobe` | Executables for the `audio_*` lane |
311
341
  | `BRAINFERNO_MCP_AME_WEBSERVICE` | *(auto-detect)* | Path to Media Encoder's `ame_webservice_console` |
312
342
  | `BRAINFERNO_MCP_AME_PORT` / `_AME_IDLE_MS` | *(from its ini)* / `600000` | Media Encoder service port; idle time before it is stopped |
@@ -324,8 +354,10 @@ The installer writes `~/.brainferno-mcp-bridge/config.json` (`enabledApps`, `ill
324
354
  there is no anonymous path. The wire is plain HTTP — keep it to a trusted network, VPN or
325
355
  tunnel.
326
356
  - Media Encoder's built-in service has no password of its own and listens on a LAN address
327
- unless pinned to loopback; the installer's *local* choice pins it (one admin prompt), and
328
- the server only runs it while a job is active plus a short idle window.
357
+ unless pinned to loopback; the installer's *local* choice pins it (one admin prompt on
358
+ Windows; on macOS it writes the config file the service needs, via Finder), and the server
359
+ only runs it while a job is active plus a short idle window. On macOS the server also ends
360
+ the hidden renderer it started — never one that was already running.
329
361
  - Keys and tokens are stored in `~/.brainferno-mcp-bridge/config.json`, never logged, never put in
330
362
  error messages.
331
363
  - `cc_eval_script` (raw script) is opt-in and off by default.
@@ -337,7 +369,7 @@ The installer writes `~/.brainferno-mcp-bridge/config.json` (`enabledApps`, `ill
337
369
  ```bash
338
370
  npm run dev # watch mode
339
371
  npm run typecheck # tsc --noEmit
340
- npm test # vitest (141 tests; the audio lane test runs a real ffmpeg if present)
372
+ npm test # vitest (172 tests; the audio lane test runs a real ffmpeg if present)
341
373
  npm run panels:sync # copy the shared bridge client into each panel folder
342
374
  ```
343
375
 
@@ -377,10 +409,11 @@ docs/ build plan, protocol, live-run notes (spikes/), Audition AP
377
409
 
378
410
  ## Status
379
411
 
380
- - **Working, verified live on Windows (Adobe 2026 apps)**: all six application lanes and
381
- their v1 tool sets, the ffmpeg lane, the job registry, the four pipelines, remote mode, and
382
- the installer. Write-ups with the quirks found: `docs/spikes/05`–`12`.
383
- - **Not yet**: a macOS run; double-click panel installs (`.ccx`/`.zxp`) so the UXP Developer
412
+ - **Working, verified live on Windows and macOS (Adobe 2026 apps)**: all six application
413
+ lanes and their v1 tool sets, the ffmpeg lane, the job registry, the four pipelines, remote
414
+ mode, and the installer. Write-ups with the quirks found: `docs/spikes/05`–`13` (`13` is the
415
+ macOS run: aerender path, Media Encoder's config file and renderer).
416
+ - **Not yet**: double-click panel installs (`.ccx`/`.zxp`) so the UXP Developer
384
417
  Tool is not needed; a single signed installer; TLS for shared mode; Audition multitrack
385
418
  writes; Media Encoder queue control.
386
419
  - Roadmap: `docs/BUILD_PLAN.md` (Phase 6).
@@ -395,11 +428,47 @@ Adobe materials this project relies on are listed in
395
428
  [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). Contributions are accepted under the
396
429
  same license.
397
430
 
431
+ ### FFmpeg
432
+
433
+ The `audio_*` tools shell out to **FFmpeg**. No FFmpeg binary or source is included in this
434
+ repository or in the published npm packages, and there is no FFmpeg npm dependency: the server
435
+ runs the `ffmpeg` and `ffprobe` already installed on your machine (found on `PATH`, or at
436
+ `BRAINFERNO_MCP_FFMPEG` / `_FFPROBE`) as separate processes, passing command-line arguments and
437
+ file paths. Nothing from FFmpeg is linked into this software, so this project stays Apache-2.0 —
438
+ and if you simply install FFmpeg alongside it, so does yours.
439
+
440
+ **Each FFmpeg build carries its own license, and builds differ.** FFmpeg is LGPL-2.1-or-later by
441
+ default; a build configured with `--enable-gpl` — most packaged builds, since they include x264
442
+ and x265 — is GPL-2.0-or-later, and `--enable-version3` moves either to v3. A build configured
443
+ `--enable-nonfree` (e.g. with libfdk_aac) may not be redistributed at all. Check the one you
444
+ have rather than assuming:
445
+
446
+ ```bash
447
+ ffmpeg -hide_banner -L # the license this build is under
448
+ ffmpeg -version # the configure flags it was built with
449
+ ```
450
+
451
+ Homebrew's ffmpeg 9.0.1, used to verify the audio tools on macOS, reports GPL-3.0-or-later
452
+ (`--enable-gpl --enable-version3`).
453
+
454
+ If you **redistribute** FFmpeg — bundling it into your own installer, application or container
455
+ image alongside this bridge — that build's obligations become yours: shipping its license text
456
+ and corresponding source (or a written offer for it), and, under the LGPL, keeping relinking
457
+ possible. Pointing users at `brew install ffmpeg` or `winget install ffmpeg`, as this project
458
+ does, carries no such obligation.
459
+
460
+ Codec **patents** are separate from copyright: encoding or decoding H.264, HEVC or AAC can
461
+ require a patent license from the relevant pool for some commercial uses in some countries, and
462
+ no software license grants those rights. See FFmpeg's own [legal page](https://ffmpeg.org/legal.html).
463
+
464
+ None of the above is legal advice.
465
+
398
466
  ## Trademarks
399
467
 
400
468
  Adobe, After Effects, Audition, Creative Cloud, Illustrator, Media Encoder, Photoshop, and
401
469
  Premiere Pro are either registered trademarks or trademarks of Adobe in the United States
402
- and/or other countries.
470
+ and/or other countries. FFmpeg is a trademark of Fabrice Bellard, originator of the FFmpeg
471
+ project; this project is not affiliated with or endorsed by the FFmpeg project.
403
472
 
404
473
  Brainferno MCP Bridge is an independent project. **It is not authorized, endorsed, or
405
474
  sponsored by Adobe.** Adobe product names are used only to say which products this software
@@ -41,12 +41,27 @@ Apache-2.0 licensed and are not distributed with the product.
41
41
 
42
42
  ## Optional external programs (not distributed here)
43
43
 
44
- - **ffmpeg / ffprobe** (https://ffmpeg.org; LGPL-2.1+ or GPL depending on the build) power
45
- the `audio_*` tools. The user installs ffmpeg separately; this software only runs it.
44
+ - **ffmpeg / ffprobe** (https://ffmpeg.org) power the `audio_*` tools. No FFmpeg binary or
45
+ source is included here or in the published npm packages, and there is no FFmpeg npm
46
+ dependency: the server executes the user's own `ffmpeg`/`ffprobe` (from `PATH`, or
47
+ `BRAINFERNO_MCP_FFMPEG` / `_FFPROBE`) as a separate process, passing command-line arguments
48
+ and file paths. Nothing from FFmpeg is linked into this software.
49
+
50
+ FFmpeg is LGPL-2.1-or-later by default; a build configured `--enable-gpl` (most packaged
51
+ builds, which include x264/x265) is GPL-2.0-or-later, `--enable-version3` moves either to v3,
52
+ and an `--enable-nonfree` build may not be redistributed at all. `ffmpeg -hide_banner -L`
53
+ prints the license of the installed build and `ffmpeg -version` its configure flags. Anyone
54
+ redistributing FFmpeg alongside this software (in an installer, application or container
55
+ image) takes on that build's obligations — license text and corresponding source, or a
56
+ written offer, and relinking under the LGPL. Codec patents (H.264, HEVC, AAC) are a separate
57
+ matter from copyright and are not granted by any software license; see
58
+ https://ffmpeg.org/legal.html.
46
59
  - **Node.js** (MIT-style license, https://github.com/nodejs/node/blob/main/LICENSE).
47
60
 
48
61
  ## Trademarks
49
62
 
50
63
  Adobe, After Effects, Audition, Creative Cloud, Illustrator, Media Encoder, Photoshop, and
51
64
  Premiere Pro are either registered trademarks or trademarks of Adobe in the United States
52
- and/or other countries. Other names may be trademarks of their respective owners.
65
+ and/or other countries. FFmpeg is a trademark of Fabrice Bellard, originator of the FFmpeg
66
+ project; this project is not affiliated with or endorsed by the FFmpeg project. Other names
67
+ may be trademarks of their respective owners.
@@ -30,5 +30,14 @@ export declare function defaultHandshakePath(): string;
30
30
  * follow an existing symlink) so the secret always lands in a fresh 600 file.
31
31
  */
32
32
  export declare function writeHandshake(path: string, handshake: Handshake): void;
33
- /** Removes the handshake file, ignoring the case where it is already gone. */
34
- export declare function removeHandshake(path: string): void;
33
+ /** The handshake currently on disk, or null when it is missing or unreadable. */
34
+ export declare function readHandshake(path: string): Handshake | null;
35
+ /** Whether a process id is running. `signal 0` only checks; EPERM means it exists but is not ours. */
36
+ export declare function pidAlive(pid: number, kill?: (pid: number, signal: number) => void): boolean;
37
+ /**
38
+ * Removes the handshake file — but only when it is still ours. A second server
39
+ * instance (another editor session, a stray `npm start`) overwrites the file with
40
+ * its own port and token; when that one exits it must not delete the entry the
41
+ * still-running first server put there, or every panel reload would find nothing.
42
+ */
43
+ export declare function removeHandshake(path: string, ownPid?: number): void;
@@ -8,7 +8,7 @@
8
8
  * It is written mode-600 under the user's home directory. It carries a live
9
9
  * secret, so it must never be world-readable and is removed on clean shutdown.
10
10
  */
11
- import { mkdirSync, rmSync, writeFileSync } from "node:fs";
11
+ import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
12
12
  import { homedir } from "node:os";
13
13
  import { dirname, join } from "node:path";
14
14
  /** Default location of the handshake file. */
@@ -29,8 +29,40 @@ export function writeHandshake(path, handshake) {
29
29
  rmSync(path, { force: true });
30
30
  writeFileSync(path, JSON.stringify(handshake, null, 2), { mode: 0o600, flag: "wx" });
31
31
  }
32
- /** Removes the handshake file, ignoring the case where it is already gone. */
33
- export function removeHandshake(path) {
32
+ /** The handshake currently on disk, or null when it is missing or unreadable. */
33
+ export function readHandshake(path) {
34
+ try {
35
+ const p = JSON.parse(readFileSync(path, "utf8"));
36
+ if (typeof p.port !== "number" || typeof p.pid !== "number" || typeof p.token !== "string" || typeof p.protocolVersion !== "number")
37
+ return null;
38
+ return { protocolVersion: p.protocolVersion, port: p.port, token: p.token, pid: p.pid };
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ }
44
+ /** Whether a process id is running. `signal 0` only checks; EPERM means it exists but is not ours. */
45
+ export function pidAlive(pid, kill = process.kill) {
46
+ if (!Number.isInteger(pid) || pid <= 0 || pid === process.pid)
47
+ return false;
48
+ try {
49
+ kill(pid, 0);
50
+ return true;
51
+ }
52
+ catch (e) {
53
+ return e.code === "EPERM";
54
+ }
55
+ }
56
+ /**
57
+ * Removes the handshake file — but only when it is still ours. A second server
58
+ * instance (another editor session, a stray `npm start`) overwrites the file with
59
+ * its own port and token; when that one exits it must not delete the entry the
60
+ * still-running first server put there, or every panel reload would find nothing.
61
+ */
62
+ export function removeHandshake(path, ownPid = process.pid) {
63
+ const current = readHandshake(path);
64
+ if (current !== null && current.pid !== ownPid)
65
+ return;
34
66
  rmSync(path, { force: true });
35
67
  }
36
68
  //# sourceMappingURL=handshake.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../src/bridge/handshake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAa1C,8CAA8C;AAC9C,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,wBAAwB,EAAE,aAAa,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,SAAoB;IAC/D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../src/bridge/handshake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAa1C,8CAA8C;AAC9C,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,wBAAwB,EAAE,aAAa,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,SAAoB;IAC/D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAuB,CAAC;QACvE,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjJ,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,OAA8C,OAAO,CAAC,IAAI;IAC9F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC;QACH,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAQ,CAA2B,CAAC,IAAI,KAAK,OAAO,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,SAAiB,OAAO,CAAC,GAAG;IACxE,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,MAAM;QAAE,OAAO;IACvD,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC"}
@@ -2,7 +2,7 @@ import { randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
2
2
  import { WebSocketServer } from "ws";
3
3
  import { APPS } from "@brainferno/mcp-bridge-protocol";
4
4
  import { log } from "../logging.js";
5
- import { removeHandshake, writeHandshake } from "./handshake.js";
5
+ import { pidAlive, readHandshake, removeHandshake, writeHandshake } from "./handshake.js";
6
6
  import { PROTOCOL_VERSION, parsePanelFrame, } from "@brainferno/mcp-bridge-protocol";
7
7
  import { AppDisconnectedError, AppNotConnectedError, EvalTimeoutError, ScriptError, } from "./types.js";
8
8
  const SERVER_VERSION = "0.1.0";
@@ -132,6 +132,12 @@ export class BridgeServer {
132
132
  }
133
133
  if (this.options.handshakeFilePath !== undefined) {
134
134
  try {
135
+ // Panels follow whatever the file says, so taking it over from a live server steals them on their next reload.
136
+ const previous = readHandshake(this.options.handshakeFilePath);
137
+ if (previous !== null && pidAlive(previous.pid)) {
138
+ log.warn(`another bridge (pid ${previous.pid}, port ${previous.port}) already owns ${this.options.handshakeFilePath}; ` +
139
+ "panels will connect here after they are reloaded, and that server keeps the ones it has");
140
+ }
135
141
  writeHandshake(this.options.handshakeFilePath, {
136
142
  protocolVersion: PROTOCOL_VERSION,
137
143
  port: this.port(),
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/bridge/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/bridge/socket.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -44,6 +44,14 @@ export interface Config {
44
44
  * it or put it in an error message.
45
45
  */
46
46
  illustratorMcpKey: string;
47
+ /**
48
+ * Which Illustrator the os-script lane drives: an AppleScript name, a bundle id
49
+ * (`com.adobe.illustrator`, `com.adobe.illustratorBeta`) or an absolute `.app` path on macOS;
50
+ * a COM ProgID on Windows. "" = the app default. Pin it when the release and the Beta are both
51
+ * installed: their bundles share the name `Adobe Illustrator.app`, so a bare name resolves to
52
+ * whichever one LaunchServices picks.
53
+ */
54
+ illustratorApp: string;
47
55
  /** ffmpeg / ffprobe executables for the audio process lane (name on PATH or absolute path). */
48
56
  ffmpegPath: string;
49
57
  ffprobePath: string;
@@ -75,6 +83,8 @@ export interface UserConfigFile {
75
83
  /** Apps whose tools are registered; missing = all. */
76
84
  enabledApps?: InstallableApp[];
77
85
  illustratorKey?: string;
86
+ /** Which Illustrator the os-script lane drives (name, bundle id, or .app path); see Config.illustratorApp. */
87
+ illustratorApp?: string;
78
88
  /** Adobe's Illustrator MCP endpoint; override when the shipping release moves it. */
79
89
  illustratorUrl?: string;
80
90
  httpPort?: number;
package/dist/config.js CHANGED
@@ -92,6 +92,8 @@ export function readUserConfig() {
92
92
  out.illustratorKey = parsed["illustratorKey"];
93
93
  if (typeof parsed["illustratorUrl"] === "string")
94
94
  out.illustratorUrl = parsed["illustratorUrl"];
95
+ if (typeof parsed["illustratorApp"] === "string")
96
+ out.illustratorApp = parsed["illustratorApp"];
95
97
  if (typeof parsed["httpPort"] === "number")
96
98
  out.httpPort = parsed["httpPort"];
97
99
  if (typeof parsed["httpHost"] === "string")
@@ -157,6 +159,7 @@ export function loadConfig() {
157
159
  .filter((o) => o !== ""),
158
160
  illustratorMcpUrl: envValue("BRAINFERNO_MCP_ILLUSTRATOR_URL") ?? file.illustratorUrl ?? DEFAULT_ILLUSTRATOR_MCP_URL,
159
161
  illustratorMcpKey: illustratorKeyFromEnvOrFile(file),
162
+ illustratorApp: envValue("BRAINFERNO_MCP_ILLUSTRATOR_APP") ?? file.illustratorApp ?? "",
160
163
  ffmpegPath: envValue("BRAINFERNO_MCP_FFMPEG") ?? "ffmpeg",
161
164
  ffprobePath: envValue("BRAINFERNO_MCP_FFPROBE") ?? "ffprobe",
162
165
  ameWebServicePath: envValue("BRAINFERNO_MCP_AME_WEBSERVICE") ?? "",
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,8 @@ export interface AmeWebServiceOptions {
27
27
  idleMs: number;
28
28
  /** For tests: fixed base URL of an already-running service; skips spawning. */
29
29
  baseUrl?: string;
30
+ /** For tests: overrides how running renderer pids are listed (macOS). */
31
+ listRenderers?: () => Promise<Set<number>>;
30
32
  }
31
33
  export interface AmeServerInfo {
32
34
  serverStatus: string;
@@ -63,10 +65,26 @@ export declare function parseJob(xml: string): AmeJobInfo;
63
65
  /** History payload: the current job fields plus <CompletedJobs><Job>…</Job></CompletedJobs>. */
64
66
  export declare function parseHistory(xml: string): AmeJobInfo[];
65
67
  export declare function buildManifest(r: AmeSubmitRequest): string;
66
- /** Newest "Adobe Media Encoder <year>" console beside the other Adobe apps. */
67
- export declare function detectConsoleExe(platform?: NodeJS.Platform): Promise<string | null>;
68
- /** `port = 8080` from the ini beside the exe; 8080 when unreadable. */
69
- export declare function portFromIni(exePath: string): Promise<number>;
68
+ /** Newest "Adobe Media Encoder <year>" console beside the other Adobe apps. `roots` overrides the search folders (tests). */
69
+ export declare function detectConsoleExe(platform?: NodeJS.Platform, roots?: string[]): Promise<string | null>;
70
+ /**
71
+ * Where the console reads `ame_webservice_config.ini`. Windows: beside the exe.
72
+ * macOS: `Contents/Resources` of the outer Media Encoder bundle (traced with fs_usage on
73
+ * AME 26.3: the console sits in a nested bundle, ignores the cwd and every flag, and
74
+ * Adobe ships no ini at all — without one it prints "can not open config file" and never
75
+ * listens). The installer creates it.
76
+ */
77
+ export declare function iniPathFor(exePath: string, platform?: NodeJS.Platform): string;
78
+ /** `port = 8080` from the console's ini; 8080 when unreadable. */
79
+ export declare function portFromIni(exePath: string, platform?: NodeJS.Platform): Promise<number>;
80
+ /**
81
+ * macOS: pids of the hidden renderers the console launches (`…/Adobe Media Encoder <year>.app/Contents/MacOS/Adobe Media Encoder <year>`).
82
+ * The renderer is re-parented to launchd in its own process group, so killing the console's
83
+ * group does not reach it (verified on 26.3); the driver tracks the ones it caused instead.
84
+ */
85
+ export declare function macRendererPids(): Promise<Set<number>>;
86
+ /** Pids in `after` that were not in `before`: the processes a spawn caused. */
87
+ export declare function newPids(before: Set<number>, after: Set<number>): number[];
70
88
  export declare function httpRequest(baseUrl: string, method: "GET" | "POST" | "DELETE", path: string, body?: string, timeoutMs?: number): Promise<{
71
89
  status: number;
72
90
  text: string;
@@ -80,6 +98,8 @@ export declare class AmeWebService {
80
98
  private idleTimer;
81
99
  private starting;
82
100
  private exe;
101
+ /** macOS: renderer pids our console spawned (see macRendererPids). */
102
+ private rendererPids;
83
103
  constructor(options: AmeWebServiceOptions);
84
104
  get address(): string | null;
85
105
  get isRunning(): boolean;