@synthetic-ai/premiere-mcp 2.0.0 → 2.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 (60) hide show
  1. package/CHANGELOG.md +135 -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 +117 -18
  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
@@ -33,33 +33,33 @@ export function getTextTools(bridgeOptions) {
33
33
  handler: async (args) => {
34
34
  const startSeconds = args.start_seconds ?? 0;
35
35
  const durationSeconds = args.duration_seconds ?? 5;
36
- const script = buildToolScript(`
37
- var seq = app.project.activeSequence;
38
- if (!seq) return __error("No active sequence");
39
-
40
- var trackIndex = ${args.track_index !== undefined ? args.track_index : "seq.videoTracks.numTracks - 1"};
41
-
42
- // Create a graphics clip using the captions API approach
43
- var project = app.project;
44
-
45
- // Use QE DOM to insert text
46
- app.enableQE();
47
- var qeSeq = qe.project.getActiveSequence();
48
-
49
- // Add a caption track if needed, then add text
50
- // Note: Direct text creation requires MOGRT or Graphics workspace
51
- // For basic text, we use the Graphics approach
52
- var startTicks = __secondsToTicks(${startSeconds}).toString();
53
- var endTicks = __secondsToTicks(${startSeconds + durationSeconds}).toString();
54
-
55
- var textContent = "${escapeForExtendScript(args.text)}";
56
- // Add caption track via QE DOM
57
- try {
58
- qeSeq.addCaptionTrack("Subtitle", 0);
59
- } catch(e) {}
60
- // Get caption track count
61
- var captionTrackCount = seq.captionTracks ? seq.captionTracks.numTracks : 0;
62
- return __result({ added: true, text: textContent, note: "Caption track added. Use create_caption_track with an SRT file for full subtitle workflow.", captionTracks: captionTrackCount });
36
+ const script = buildToolScript(`
37
+ var seq = app.project.activeSequence;
38
+ if (!seq) return __error("No active sequence");
39
+
40
+ var trackIndex = ${args.track_index !== undefined ? args.track_index : "seq.videoTracks.numTracks - 1"};
41
+
42
+ // Create a graphics clip using the captions API approach
43
+ var project = app.project;
44
+
45
+ // Use QE DOM to insert text
46
+ app.enableQE();
47
+ var qeSeq = qe.project.getActiveSequence();
48
+
49
+ // Add a caption track if needed, then add text
50
+ // Note: Direct text creation requires MOGRT or Graphics workspace
51
+ // For basic text, we use the Graphics approach
52
+ var startTicks = __secondsToTicks(${startSeconds}).toString();
53
+ var endTicks = __secondsToTicks(${startSeconds + durationSeconds}).toString();
54
+
55
+ var textContent = "${escapeForExtendScript(args.text)}";
56
+ // Add caption track via QE DOM
57
+ try {
58
+ qeSeq.addCaptionTrack("Subtitle", 0);
59
+ } catch(e) {}
60
+ // Get caption track count
61
+ var captionTrackCount = seq.captionTracks ? seq.captionTracks.numTracks : 0;
62
+ return __result({ added: true, text: textContent, note: "Caption track added. Use create_caption_track with an SRT file for full subtitle workflow.", captionTracks: captionTrackCount });
63
63
  `);
64
64
  return sendCommand(script, bridgeOptions);
65
65
  },
@@ -92,30 +92,30 @@ export function getTextTools(bridgeOptions) {
92
92
  const trackIndex = args.track_index ?? 0;
93
93
  const startSeconds = args.start_seconds ?? 0;
94
94
  const durationSeconds = args.duration_seconds ?? 5;
95
- const script = buildToolScript(`
96
- var seq = app.project.activeSequence;
97
- if (!seq) return __error("No active sequence");
98
-
99
- var mogrtPath = "${escapeForExtendScript(args.mogrt_path)}";
100
- var startTicks = __secondsToTicks(${startSeconds}).toString();
101
- var durationTicks = __secondsToTicks(${durationSeconds}).toString();
102
-
103
- var success = seq.importMGT(
104
- mogrtPath,
105
- startTicks,
106
- ${trackIndex},
107
- ${trackIndex} // audio track index
108
- );
109
-
110
- if (!success) return __error("Failed to import MOGRT");
111
-
112
- return __result({
113
- imported: true,
114
- mogrtPath: mogrtPath,
115
- trackIndex: ${trackIndex},
116
- startSeconds: ${startSeconds},
117
- durationSeconds: ${durationSeconds}
118
- });
95
+ const script = buildToolScript(`
96
+ var seq = app.project.activeSequence;
97
+ if (!seq) return __error("No active sequence");
98
+
99
+ var mogrtPath = "${escapeForExtendScript(args.mogrt_path)}";
100
+ var startTicks = __secondsToTicks(${startSeconds}).toString();
101
+ var durationTicks = __secondsToTicks(${durationSeconds}).toString();
102
+
103
+ var success = seq.importMGT(
104
+ mogrtPath,
105
+ startTicks,
106
+ ${trackIndex},
107
+ ${trackIndex} // audio track index
108
+ );
109
+
110
+ if (!success) return __error("Failed to import MOGRT");
111
+
112
+ return __result({
113
+ imported: true,
114
+ mogrtPath: mogrtPath,
115
+ trackIndex: ${trackIndex},
116
+ startSeconds: ${startSeconds},
117
+ durationSeconds: ${durationSeconds}
118
+ });
119
119
  `);
120
120
  return sendCommand(script, bridgeOptions);
121
121
  },
@@ -143,13 +143,13 @@ export function getTextTools(bridgeOptions) {
143
143
  handler: async (args) => {
144
144
  const trackIndex = args.track_index ?? 0;
145
145
  const startSeconds = args.start_seconds ?? 0;
146
- const script = buildToolScript(`
147
- var seq = app.project.activeSequence;
148
- if (!seq) return __error("No active sequence");
149
-
150
- var seq = app.project.activeSequence;
151
- if (!seq) return __error("No active sequence");
152
- return __error("import_mogrt_from_library is not supported via ExtendScript. Adobe Libraries cannot be accessed programmatically. Use import_mogrt with a local file path instead: download the MOGRT from your library first, then use import_mogrt({ mogrt_path: '/path/to/template.mogrt' }).");
146
+ const script = buildToolScript(`
147
+ var seq = app.project.activeSequence;
148
+ if (!seq) return __error("No active sequence");
149
+
150
+ var seq = app.project.activeSequence;
151
+ if (!seq) return __error("No active sequence");
152
+ return __error("import_mogrt_from_library is not supported via ExtendScript. Adobe Libraries cannot be accessed programmatically. Use import_mogrt with a local file path instead: download the MOGRT from your library first, then use import_mogrt({ mogrt_path: '/path/to/template.mogrt' }).");
153
153
  `);
154
154
  return sendCommand(script, bridgeOptions);
155
155
  },