@synthetic-ai/premiere-mcp 2.1.0 → 2.3.0-dev.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 (58) hide show
  1. package/CHANGELOG.md +135 -123
  2. package/LICENSE +21 -21
  3. package/README.md +242 -242
  4. package/cep-plugin/.debug +8 -8
  5. package/cep-plugin/CSInterface.js +92 -92
  6. package/cep-plugin/host.jsx +7 -7
  7. package/cep-plugin/index.html +472 -472
  8. package/cep-plugin/main.js +6 -0
  9. package/cep-plugin/premiere.jsx +24947 -24947
  10. package/dist/bridge/script-builder.js +378 -378
  11. package/dist/index.js +103 -4
  12. package/dist/license.js +38 -0
  13. package/dist/server.js +60 -60
  14. package/dist/tools/advanced.js +357 -357
  15. package/dist/tools/audio-advanced.js +1049 -1049
  16. package/dist/tools/audio.js +42 -42
  17. package/dist/tools/captions.js +27 -27
  18. package/dist/tools/clipboard.js +214 -214
  19. package/dist/tools/color-advanced.js +253 -253
  20. package/dist/tools/discovery.js +291 -291
  21. package/dist/tools/effects.js +285 -285
  22. package/dist/tools/export-presets.js +206 -206
  23. package/dist/tools/export.js +255 -255
  24. package/dist/tools/health.js +10 -10
  25. package/dist/tools/inspection.js +885 -885
  26. package/dist/tools/keyframes.js +369 -369
  27. package/dist/tools/markers.js +89 -89
  28. package/dist/tools/media.js +178 -178
  29. package/dist/tools/metadata.js +94 -94
  30. package/dist/tools/multicam.js +50 -50
  31. package/dist/tools/playback.js +15 -15
  32. package/dist/tools/playhead.js +95 -95
  33. package/dist/tools/project-manager.js +21 -21
  34. package/dist/tools/project.js +149 -149
  35. package/dist/tools/scripting.js +319 -319
  36. package/dist/tools/selection.js +202 -202
  37. package/dist/tools/sequence-advanced.js +379 -379
  38. package/dist/tools/sequence-settings.js +564 -564
  39. package/dist/tools/sequence.js +167 -167
  40. package/dist/tools/source-monitor.js +68 -68
  41. package/dist/tools/text.js +58 -58
  42. package/dist/tools/timeline.js +312 -312
  43. package/dist/tools/track-management.js +446 -446
  44. package/dist/tools/track-targeting.js +635 -635
  45. package/dist/tools/tracks.js +87 -87
  46. package/dist/tools/transitions-motion.js +174 -174
  47. package/dist/tools/transitions.js +111 -111
  48. package/dist/tools/utility.js +606 -606
  49. package/dist/tools/workspace.js +29 -29
  50. package/package.json +66 -66
  51. package/scripts/build-chat-dmg.sh +210 -210
  52. package/scripts/build-chat-zip.sh +291 -291
  53. package/scripts/install-cep-windows.ps1 +99 -99
  54. package/scripts/install-cep.sh +66 -66
  55. package/scripts/install-chat-plugin.bat +67 -67
  56. package/scripts/install-chat-plugin.sh +85 -85
  57. package/scripts/install-windows.bat +95 -95
  58. package/scripts/package.mjs +254 -254
package/CHANGELOG.md CHANGED
@@ -1,123 +1,135 @@
1
- # Changelog
2
-
3
- ## [v2.1.0] — CRITICAL: correct the version line, ship everything since 2.0.0
4
-
5
- `@synthetic-ai/premiere-mcp@2.0.0` (published 2026-06-10, the npm rename
6
- from unscoped `premiere-pro-mcp`) has been the only version ever actually
7
- published to the registry — `npm view` confirms `dist-tags.latest` and the
8
- full `versions` list both show only `2.0.0`, right up until this release.
9
- Six commits after the rename (v1.1.2 through v1.1.8, including v1.1.7's
10
- **server-side license enforcement**) bumped `package.json`'s version
11
- *backward* into a stale pre-rename 1.1.x line instead of continuing from
12
- 2.0.0, and were committed/tested but never `npm publish`ed under that
13
- wrong version number. Net effect: every customer running
14
- `npx @synthetic-ai/premiere-mcp` has been getting the unmodified 2.0.0
15
- tarball — with **zero license checking on any of the 437 tools** — for
16
- over three months, discovered 2026-09-23 while shipping the macOS preset
17
- fix below. This release corrects the version line (2.0.0 → 2.1.0, a real
18
- semver increase) and ships every accumulated fix at once:
19
- - License enforcement (was v1.1.7): every tool except `ping` /
20
- `get_version_info` now validates `PREMIERE_PRO_MCP_LICENSE`.
21
- - In-panel auto-update + local license storage (was v1.1.2).
22
- - ExtendScript obfuscation breaking `evalFile()` (was v1.1.4).
23
- - Bridge could wedge forever after a single failed command read (was v1.1.5).
24
- - macOS default sequence-preset paths (was v1.1.8, see below).
25
-
26
- ## [v1.1.8] — macOS default preset paths (superseded by v2.1.0, never actually reached "latest" — see above)
27
-
28
- `create_sequence`, `create_sequence_from_clip`, and `get_default_sequence_presets`
29
- only ever probed Windows install paths for the default `.sqpreset` (and, for
30
- `create_sequence`, only a single hardcoded PP 2026 path with no probing at
31
- all). All three now check both Windows and macOS locations across PP
32
- 2026/2025/2024/CC 2023, matching the pattern `export_sequence` already used
33
- for AME presets. When nothing is found, the tools return a clear error
34
- asking for an explicit `preset_path` instead of silently using a
35
- definitely-wrong fallback. Found via a site-wide macOS-compatibility audit
36
- of every Synthetic product (2026-09-23) — this was the one confirmed gap in
37
- an otherwise genuinely cross-platform architecture (no launch step to
38
- break, unlike ae-mcp). Unverified on real macOS hardware — no Mac available
39
- to test against yet.
40
-
41
- ## [v1.1.7] — License enforcement
42
-
43
- The MCP server itself (all 437 tools) never actually validated
44
- `PREMIERE_PRO_MCP_LICENSE` — the CEP panel had a license field for its own
45
- auto-update, but the server side was wide open. Added the same
46
- `checkLicense()` gate ae-mcp and photoshop-mcp already have: every tool
47
- except `ping` / `get_version_info` now requires a valid license, validated
48
- against `https://synthetic.com.ar/api/v1/license/validate` and cached for an
49
- hour.
50
-
51
- ---
52
-
53
- All notable changes to this MCP server. Every fix below was discovered via
54
- **static audit + live runtime testing against Premiere Pro 2026.2.2 on
55
- Spanish-localized Windows**.
56
-
57
- The audit started at **31/100 sellability score** (22% green tools) and
58
- finished at **~78/100** (~75% green) after the rounds below.
59
-
60
- ---
61
-
62
- ## [v1.2.0] — PP 2026 compatibility + locale resilience
63
-
64
- ### Round 6 — Live runtime validation
65
- - `6f20892` capture_frame: honest error for PP 2026 host limitation
66
- - `8152021` bridge: sanitize NaN and Infinity to null
67
- - `a74ce33` Round 5: 8 more fixes from full smoke test (137 tools tested)
68
- - `45fdaba` track-targeting: locale-resilient set_clip_position/scale/rotation
69
- - `f9589cb` premiere.jsx: locale-resilient fadeIn/fadeOut/crossFadeClips
70
- - `29e941d` graceful fallbacks for setSpeed signature + track volume
71
- - `0533162` Live-test fixes: setSpeed signature, locale prop names, audio clip volume
72
- - `084ef49` Live-test fixes: set_clip_opacity locale, color_correct Lumetri name
73
-
74
- ### Round 5 — Bridge JSON sanitization
75
- - `f3d83d7` Fix bridge JSON: ExtendScript ignores replacer; sanitize tree pre-stringify
76
-
77
- ### Round 4 — premiere.jsx loading (single highest-impact fix)
78
- - `366f325` Fix premiere.jsx SyntaxError that broke ALL JSX helpers
79
- - **1-char fix, ~30+ tools unblocked**
80
- - `premiere.jsx` (22k lines) had `package:` as bare property name at line
81
- 22006. ExtendScript is strict ES3 where `package` is reserved → entire
82
- file fails to parse → every JSX-helper-backed tool returns
83
- `ReferenceError: <fn> is not a function`. Quoting fixes everything.
84
- - `b12a0d8` Round 4: bridge JSON-parse failure + locale-resilient transition lookup
85
-
86
- ### Round 3 — Concrete code bugs from re-audit
87
- - `21bf821` Round 3 part 2: fix remaining 9 files
88
- - `e4534d5` Round 3: fix 32 concrete code bugs from re-audit
89
- - ticks/Time correctness (markers, source-monitor, scripting, clipboard, audio)
90
- - property-vs-method (media.check_offline_media)
91
- - QE-only methods routed correctly (timeline.move_clip/speed_change, transitions)
92
- - missing `app.enableQE()` guards
93
- - nested Lumetri prop lookup via `__findProp`
94
-
95
- ### Round 2 — Locale-resilient helpers
96
- - `bdaebaa` Round 2: guard QE multicam enumeration and proxy detach
97
- - `48d3648` Round 2 part 2: fix remaining 8 files
98
- - `2b718b3` Round 2 part 1: locale-resilient helpers + fix 13 tool files
99
- - Added `__findIntrinsic(clip, key)` with matchName-first lookup
100
- - Added `__findComponent`, `__findProp`, `__readMaybe`, `__findTransition`
101
-
102
- ### Round 1 — Property-vs-method bugs
103
- - `ffe6931` Fix 21 red tools: property-vs-method bugs, missing APIs, stub handlers
104
- - `35ecbfa` Fix PP 2026 compatibility: sequence creation, tracks, audio, effects, export
105
-
106
- ---
107
-
108
- ## Validated tool inventory
109
-
110
- ### ✅ 66 tools confirmed working in runtime (PP 2026.2.2 es-ES)
111
- Inspection, transform, audio/video FX, timeline editing, selection, markers,
112
- sequence ops, project/bins, captions, source monitor, track management,
113
- metadata, scripting, export. Full list in [README.md](README.md).
114
-
115
- ### ⚠️ Honest errors (PP 2026 host limitations, not bugs)
116
- - `set_track_volume`, `speed_change`, `capture_frame`, Lumetri-when-not-applied
117
- - All return clear errors with the recommended UI workaround
118
-
119
- ### Validated against
120
- - Premiere Pro 2026.2.2 on Windows
121
- - Spanish (es-ES) locale — names like "Opacidad", "Movimiento", "Escala",
122
- "Posición", "Disolvencia cruzada" all handled
123
- - 15-item test project with multi-track timeline, transitions, fades, Lumetri
1
+ # Changelog
2
+
3
+ ## [v2.2.0] — `--doctor` diagnostic command
4
+
5
+ `premiere-pro-mcp --doctor` runs a standalone setup check — no MCP client or
6
+ Premiere Pro needs to be running: Node version, Premiere Pro install
7
+ detected on disk, license key present + live-validated against
8
+ synthetic.com.ar, and the CEP bridge temp directory is writable. Prints a
9
+ pass/warn/fail summary and exits 1 if anything failed, so it's scriptable.
10
+ Fixed a real crash found while building this: forcing `process.exit()`
11
+ right after the live license check's `fetch()` call could crash with a
12
+ libuv assertion on Windows (`UV_HANDLE_CLOSING`, src/win/async.c) — now
13
+ sets `process.exitCode` and lets the event loop drain naturally instead.
14
+
15
+ ## [v2.1.0] — CRITICAL: correct the version line, ship everything since 2.0.0
16
+
17
+ `@synthetic-ai/premiere-mcp@2.0.0` (published 2026-06-10, the npm rename
18
+ from unscoped `premiere-pro-mcp`) has been the only version ever actually
19
+ published to the registry — `npm view` confirms `dist-tags.latest` and the
20
+ full `versions` list both show only `2.0.0`, right up until this release.
21
+ Six commits after the rename (v1.1.2 through v1.1.8, including v1.1.7's
22
+ **server-side license enforcement**) bumped `package.json`'s version
23
+ *backward* into a stale pre-rename 1.1.x line instead of continuing from
24
+ 2.0.0, and were committed/tested but never `npm publish`ed under that
25
+ wrong version number. Net effect: every customer running
26
+ `npx @synthetic-ai/premiere-mcp` has been getting the unmodified 2.0.0
27
+ tarball — with **zero license checking on any of the 437 tools** — for
28
+ over three months, discovered 2026-09-23 while shipping the macOS preset
29
+ fix below. This release corrects the version line (2.0.0 → 2.1.0, a real
30
+ semver increase) and ships every accumulated fix at once:
31
+ - License enforcement (was v1.1.7): every tool except `ping` /
32
+ `get_version_info` now validates `PREMIERE_PRO_MCP_LICENSE`.
33
+ - In-panel auto-update + local license storage (was v1.1.2).
34
+ - ExtendScript obfuscation breaking `evalFile()` (was v1.1.4).
35
+ - Bridge could wedge forever after a single failed command read (was v1.1.5).
36
+ - macOS default sequence-preset paths (was v1.1.8, see below).
37
+
38
+ ## [v1.1.8] — macOS default preset paths (superseded by v2.1.0, never actually reached "latest" — see above)
39
+
40
+ `create_sequence`, `create_sequence_from_clip`, and `get_default_sequence_presets`
41
+ only ever probed Windows install paths for the default `.sqpreset` (and, for
42
+ `create_sequence`, only a single hardcoded PP 2026 path with no probing at
43
+ all). All three now check both Windows and macOS locations across PP
44
+ 2026/2025/2024/CC 2023, matching the pattern `export_sequence` already used
45
+ for AME presets. When nothing is found, the tools return a clear error
46
+ asking for an explicit `preset_path` instead of silently using a
47
+ definitely-wrong fallback. Found via a site-wide macOS-compatibility audit
48
+ of every Synthetic product (2026-09-23) — this was the one confirmed gap in
49
+ an otherwise genuinely cross-platform architecture (no launch step to
50
+ break, unlike ae-mcp). Unverified on real macOS hardware — no Mac available
51
+ to test against yet.
52
+
53
+ ## [v1.1.7] — License enforcement
54
+
55
+ The MCP server itself (all 437 tools) never actually validated
56
+ `PREMIERE_PRO_MCP_LICENSE` — the CEP panel had a license field for its own
57
+ auto-update, but the server side was wide open. Added the same
58
+ `checkLicense()` gate ae-mcp and photoshop-mcp already have: every tool
59
+ except `ping` / `get_version_info` now requires a valid license, validated
60
+ against `https://synthetic.com.ar/api/v1/license/validate` and cached for an
61
+ hour.
62
+
63
+ ---
64
+
65
+ All notable changes to this MCP server. Every fix below was discovered via
66
+ **static audit + live runtime testing against Premiere Pro 2026.2.2 on
67
+ Spanish-localized Windows**.
68
+
69
+ The audit started at **31/100 sellability score** (22% green tools) and
70
+ finished at **~78/100** (~75% green) after the rounds below.
71
+
72
+ ---
73
+
74
+ ## [v1.2.0] — PP 2026 compatibility + locale resilience
75
+
76
+ ### Round 6 — Live runtime validation
77
+ - `6f20892` capture_frame: honest error for PP 2026 host limitation
78
+ - `8152021` bridge: sanitize NaN and Infinity to null
79
+ - `a74ce33` Round 5: 8 more fixes from full smoke test (137 tools tested)
80
+ - `45fdaba` track-targeting: locale-resilient set_clip_position/scale/rotation
81
+ - `f9589cb` premiere.jsx: locale-resilient fadeIn/fadeOut/crossFadeClips
82
+ - `29e941d` graceful fallbacks for setSpeed signature + track volume
83
+ - `0533162` Live-test fixes: setSpeed signature, locale prop names, audio clip volume
84
+ - `084ef49` Live-test fixes: set_clip_opacity locale, color_correct Lumetri name
85
+
86
+ ### Round 5 — Bridge JSON sanitization
87
+ - `f3d83d7` Fix bridge JSON: ExtendScript ignores replacer; sanitize tree pre-stringify
88
+
89
+ ### Round 4 — premiere.jsx loading (single highest-impact fix)
90
+ - `366f325` Fix premiere.jsx SyntaxError that broke ALL JSX helpers
91
+ - **1-char fix, ~30+ tools unblocked**
92
+ - `premiere.jsx` (22k lines) had `package:` as bare property name at line
93
+ 22006. ExtendScript is strict ES3 where `package` is reserved → entire
94
+ file fails to parse → every JSX-helper-backed tool returns
95
+ `ReferenceError: <fn> is not a function`. Quoting fixes everything.
96
+ - `b12a0d8` Round 4: bridge JSON-parse failure + locale-resilient transition lookup
97
+
98
+ ### Round 3 — Concrete code bugs from re-audit
99
+ - `21bf821` Round 3 part 2: fix remaining 9 files
100
+ - `e4534d5` Round 3: fix 32 concrete code bugs from re-audit
101
+ - ticks/Time correctness (markers, source-monitor, scripting, clipboard, audio)
102
+ - property-vs-method (media.check_offline_media)
103
+ - QE-only methods routed correctly (timeline.move_clip/speed_change, transitions)
104
+ - missing `app.enableQE()` guards
105
+ - nested Lumetri prop lookup via `__findProp`
106
+
107
+ ### Round 2 — Locale-resilient helpers
108
+ - `bdaebaa` Round 2: guard QE multicam enumeration and proxy detach
109
+ - `48d3648` Round 2 part 2: fix remaining 8 files
110
+ - `2b718b3` Round 2 part 1: locale-resilient helpers + fix 13 tool files
111
+ - Added `__findIntrinsic(clip, key)` with matchName-first lookup
112
+ - Added `__findComponent`, `__findProp`, `__readMaybe`, `__findTransition`
113
+
114
+ ### Round 1 — Property-vs-method bugs
115
+ - `ffe6931` Fix 21 red tools: property-vs-method bugs, missing APIs, stub handlers
116
+ - `35ecbfa` Fix PP 2026 compatibility: sequence creation, tracks, audio, effects, export
117
+
118
+ ---
119
+
120
+ ## Validated tool inventory
121
+
122
+ ### ✅ 66 tools confirmed working in runtime (PP 2026.2.2 es-ES)
123
+ Inspection, transform, audio/video FX, timeline editing, selection, markers,
124
+ sequence ops, project/bins, captions, source monitor, track management,
125
+ metadata, scripting, export. Full list in [README.md](README.md).
126
+
127
+ ### ⚠️ Honest errors (PP 2026 host limitations, not bugs)
128
+ - `set_track_volume`, `speed_change`, `capture_frame`, Lumetri-when-not-applied
129
+ - All return clear errors with the recommended UI workaround
130
+
131
+ ### Validated against
132
+ - Premiere Pro 2026.2.2 on Windows
133
+ - Spanish (es-ES) locale — names like "Opacidad", "Movimiento", "Escala",
134
+ "Posición", "Disolvencia cruzada" all handled
135
+ - 15-item test project with multi-track timeline, transitions, fades, Lumetri
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Premiere Pro MCP Contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Premiere Pro MCP Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.