@synthetic-ai/premiere-mcp 2.0.0 → 2.1.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 (60) hide show
  1. package/CHANGELOG.md +123 -73
  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 -70
  6. package/cep-plugin/CSXS/manifest.xml +49 -49
  7. package/cep-plugin/host.jsx +7 -7
  8. package/cep-plugin/index.html +472 -419
  9. package/cep-plugin/main.js +683 -327
  10. package/cep-plugin/premiere.jsx +24947 -24947
  11. package/dist/bridge/script-builder.js +378 -378
  12. package/dist/index.js +14 -14
  13. package/dist/license.d.ts +22 -0
  14. package/dist/license.js +89 -0
  15. package/dist/server.js +67 -61
  16. package/dist/tools/advanced.js +357 -357
  17. package/dist/tools/audio-advanced.js +1049 -1049
  18. package/dist/tools/audio.js +42 -42
  19. package/dist/tools/captions.js +27 -27
  20. package/dist/tools/clipboard.js +214 -214
  21. package/dist/tools/color-advanced.js +253 -253
  22. package/dist/tools/discovery.js +291 -291
  23. package/dist/tools/effects.js +285 -285
  24. package/dist/tools/export-presets.js +206 -206
  25. package/dist/tools/export.js +255 -255
  26. package/dist/tools/health.js +10 -10
  27. package/dist/tools/inspection.js +885 -885
  28. package/dist/tools/keyframes.js +369 -369
  29. package/dist/tools/markers.js +89 -89
  30. package/dist/tools/media.js +178 -178
  31. package/dist/tools/metadata.js +94 -94
  32. package/dist/tools/multicam.js +50 -50
  33. package/dist/tools/playback.js +15 -15
  34. package/dist/tools/playhead.js +95 -95
  35. package/dist/tools/project-manager.js +21 -21
  36. package/dist/tools/project.js +149 -149
  37. package/dist/tools/scripting.js +319 -319
  38. package/dist/tools/selection.js +202 -202
  39. package/dist/tools/sequence-advanced.js +379 -374
  40. package/dist/tools/sequence-settings.js +564 -556
  41. package/dist/tools/sequence.js +169 -150
  42. package/dist/tools/source-monitor.js +68 -68
  43. package/dist/tools/text.js +58 -58
  44. package/dist/tools/timeline.js +312 -312
  45. package/dist/tools/track-management.js +446 -446
  46. package/dist/tools/track-targeting.js +635 -635
  47. package/dist/tools/tracks.js +87 -87
  48. package/dist/tools/transitions-motion.js +174 -174
  49. package/dist/tools/transitions.js +111 -111
  50. package/dist/tools/utility.js +606 -606
  51. package/dist/tools/workspace.js +29 -29
  52. package/package.json +1 -1
  53. package/scripts/build-chat-dmg.sh +210 -210
  54. package/scripts/build-chat-zip.sh +291 -291
  55. package/scripts/install-cep-windows.ps1 +99 -99
  56. package/scripts/install-cep.sh +66 -66
  57. package/scripts/install-chat-plugin.bat +67 -67
  58. package/scripts/install-chat-plugin.sh +85 -85
  59. package/scripts/install-windows.bat +95 -95
  60. package/scripts/package.mjs +254 -218
package/CHANGELOG.md CHANGED
@@ -1,73 +1,123 @@
1
- # Changelog
2
-
3
- All notable changes to this MCP server. Every fix below was discovered via
4
- **static audit + live runtime testing against Premiere Pro 2026.2.2 on
5
- Spanish-localized Windows**.
6
-
7
- The audit started at **31/100 sellability score** (22% green tools) and
8
- finished at **~78/100** (~75% green) after the rounds below.
9
-
10
- ---
11
-
12
- ## [v1.2.0] — PP 2026 compatibility + locale resilience
13
-
14
- ### Round 6 — Live runtime validation
15
- - `6f20892` capture_frame: honest error for PP 2026 host limitation
16
- - `8152021` bridge: sanitize NaN and Infinity to null
17
- - `a74ce33` Round 5: 8 more fixes from full smoke test (137 tools tested)
18
- - `45fdaba` track-targeting: locale-resilient set_clip_position/scale/rotation
19
- - `f9589cb` premiere.jsx: locale-resilient fadeIn/fadeOut/crossFadeClips
20
- - `29e941d` graceful fallbacks for setSpeed signature + track volume
21
- - `0533162` Live-test fixes: setSpeed signature, locale prop names, audio clip volume
22
- - `084ef49` Live-test fixes: set_clip_opacity locale, color_correct Lumetri name
23
-
24
- ### Round 5 — Bridge JSON sanitization
25
- - `f3d83d7` Fix bridge JSON: ExtendScript ignores replacer; sanitize tree pre-stringify
26
-
27
- ### Round 4 — premiere.jsx loading (single highest-impact fix)
28
- - `366f325` Fix premiere.jsx SyntaxError that broke ALL JSX helpers
29
- - **1-char fix, ~30+ tools unblocked**
30
- - `premiere.jsx` (22k lines) had `package:` as bare property name at line
31
- 22006. ExtendScript is strict ES3 where `package` is reserved → entire
32
- file fails to parse → every JSX-helper-backed tool returns
33
- `ReferenceError: <fn> is not a function`. Quoting fixes everything.
34
- - `b12a0d8` Round 4: bridge JSON-parse failure + locale-resilient transition lookup
35
-
36
- ### Round 3 — Concrete code bugs from re-audit
37
- - `21bf821` Round 3 part 2: fix remaining 9 files
38
- - `e4534d5` Round 3: fix 32 concrete code bugs from re-audit
39
- - ticks/Time correctness (markers, source-monitor, scripting, clipboard, audio)
40
- - property-vs-method (media.check_offline_media)
41
- - QE-only methods routed correctly (timeline.move_clip/speed_change, transitions)
42
- - missing `app.enableQE()` guards
43
- - nested Lumetri prop lookup via `__findProp`
44
-
45
- ### Round 2 — Locale-resilient helpers
46
- - `bdaebaa` Round 2: guard QE multicam enumeration and proxy detach
47
- - `48d3648` Round 2 part 2: fix remaining 8 files
48
- - `2b718b3` Round 2 part 1: locale-resilient helpers + fix 13 tool files
49
- - Added `__findIntrinsic(clip, key)` with matchName-first lookup
50
- - Added `__findComponent`, `__findProp`, `__readMaybe`, `__findTransition`
51
-
52
- ### Round 1 — Property-vs-method bugs
53
- - `ffe6931` Fix 21 red tools: property-vs-method bugs, missing APIs, stub handlers
54
- - `35ecbfa` Fix PP 2026 compatibility: sequence creation, tracks, audio, effects, export
55
-
56
- ---
57
-
58
- ## Validated tool inventory
59
-
60
- ### ✅ 66 tools confirmed working in runtime (PP 2026.2.2 es-ES)
61
- Inspection, transform, audio/video FX, timeline editing, selection, markers,
62
- sequence ops, project/bins, captions, source monitor, track management,
63
- metadata, scripting, export. Full list in [README.md](README.md).
64
-
65
- ### ⚠️ Honest errors (PP 2026 host limitations, not bugs)
66
- - `set_track_volume`, `speed_change`, `capture_frame`, Lumetri-when-not-applied
67
- - All return clear errors with the recommended UI workaround
68
-
69
- ### Validated against
70
- - Premiere Pro 2026.2.2 on Windows
71
- - Spanish (es-ES) locale — names like "Opacidad", "Movimiento", "Escala",
72
- "Posición", "Disolvencia cruzada" all handled
73
- - 15-item test project with multi-track timeline, transitions, fades, Lumetri
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
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.