@synthetic-ai/premiere-mcp 2.0.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.
- package/CHANGELOG.md +73 -0
- package/LICENSE +21 -0
- package/README.md +242 -0
- package/cep-plugin/.debug +8 -0
- package/cep-plugin/CSInterface.js +70 -0
- package/cep-plugin/CSXS/manifest.xml +49 -0
- package/cep-plugin/host.jsx +7 -0
- package/cep-plugin/index.html +419 -0
- package/cep-plugin/main.js +327 -0
- package/cep-plugin/premiere.jsx +24947 -0
- package/cep-plugin/synthetic-logo.png +0 -0
- package/dist/bridge/file-bridge.d.ts +29 -0
- package/dist/bridge/file-bridge.js +145 -0
- package/dist/bridge/script-builder.d.ts +19 -0
- package/dist/bridge/script-builder.js +408 -0
- package/dist/http-server.d.ts +21 -0
- package/dist/http-server.js +140 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +70 -0
- package/dist/resources/extendscript-reference.d.ts +2 -0
- package/dist/resources/extendscript-reference.js +219 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.js +276 -0
- package/dist/tools/advanced.d.ts +530 -0
- package/dist/tools/advanced.js +923 -0
- package/dist/tools/audio-advanced.d.ts +847 -0
- package/dist/tools/audio-advanced.js +1653 -0
- package/dist/tools/audio.d.ts +84 -0
- package/dist/tools/audio.js +123 -0
- package/dist/tools/captions.d.ts +30 -0
- package/dist/tools/captions.js +73 -0
- package/dist/tools/clipboard.d.ts +153 -0
- package/dist/tools/clipboard.js +381 -0
- package/dist/tools/color-advanced.d.ts +821 -0
- package/dist/tools/color-advanced.js +772 -0
- package/dist/tools/discovery.d.ts +128 -0
- package/dist/tools/discovery.js +445 -0
- package/dist/tools/effects.d.ts +211 -0
- package/dist/tools/effects.js +554 -0
- package/dist/tools/export-presets.d.ts +333 -0
- package/dist/tools/export-presets.js +490 -0
- package/dist/tools/export.d.ts +320 -0
- package/dist/tools/export.js +618 -0
- package/dist/tools/health.d.ts +9 -0
- package/dist/tools/health.js +25 -0
- package/dist/tools/inspection.d.ts +179 -0
- package/dist/tools/inspection.js +1089 -0
- package/dist/tools/keyframes.d.ts +253 -0
- package/dist/tools/keyframes.js +611 -0
- package/dist/tools/markers.d.ts +117 -0
- package/dist/tools/markers.js +206 -0
- package/dist/tools/media.d.ts +297 -0
- package/dist/tools/media.js +493 -0
- package/dist/tools/metadata.d.ts +178 -0
- package/dist/tools/metadata.js +278 -0
- package/dist/tools/multicam.d.ts +199 -0
- package/dist/tools/multicam.js +212 -0
- package/dist/tools/playback.d.ts +34 -0
- package/dist/tools/playback.js +63 -0
- package/dist/tools/playhead.d.ts +77 -0
- package/dist/tools/playhead.js +185 -0
- package/dist/tools/project-manager.d.ts +65 -0
- package/dist/tools/project-manager.js +81 -0
- package/dist/tools/project.d.ts +390 -0
- package/dist/tools/project.js +596 -0
- package/dist/tools/scripting.d.ts +98 -0
- package/dist/tools/scripting.js +434 -0
- package/dist/tools/selection.d.ts +120 -0
- package/dist/tools/selection.js +334 -0
- package/dist/tools/sequence-advanced.d.ts +84 -0
- package/dist/tools/sequence-advanced.js +471 -0
- package/dist/tools/sequence-settings.d.ts +397 -0
- package/dist/tools/sequence-settings.js +967 -0
- package/dist/tools/sequence.d.ts +211 -0
- package/dist/tools/sequence.js +378 -0
- package/dist/tools/source-monitor.d.ts +95 -0
- package/dist/tools/source-monitor.js +180 -0
- package/dist/tools/text.d.ts +97 -0
- package/dist/tools/text.js +159 -0
- package/dist/tools/timeline.d.ts +265 -0
- package/dist/tools/timeline.js +575 -0
- package/dist/tools/track-management.d.ts +482 -0
- package/dist/tools/track-management.js +787 -0
- package/dist/tools/track-targeting.d.ts +666 -0
- package/dist/tools/track-targeting.js +1318 -0
- package/dist/tools/tracks.d.ts +90 -0
- package/dist/tools/tracks.js +183 -0
- package/dist/tools/transitions-motion.d.ts +788 -0
- package/dist/tools/transitions-motion.js +680 -0
- package/dist/tools/transitions.d.ts +124 -0
- package/dist/tools/transitions.js +267 -0
- package/dist/tools/utility.d.ts +469 -0
- package/dist/tools/utility.js +1118 -0
- package/dist/tools/workspace.d.ts +25 -0
- package/dist/tools/workspace.js +61 -0
- package/package.json +66 -0
- package/scripts/build-chat-dmg.sh +210 -0
- package/scripts/build-chat-zip.sh +291 -0
- package/scripts/install-cep-windows.ps1 +99 -0
- package/scripts/install-cep.sh +66 -0
- package/scripts/install-chat-plugin.bat +67 -0
- package/scripts/install-chat-plugin.sh +85 -0
- package/scripts/install-windows.bat +95 -0
- package/scripts/package.mjs +218 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BridgeOptions } from "../bridge/file-bridge.js";
|
|
2
|
+
export declare function getPlaybackTools(bridgeOptions: BridgeOptions): {
|
|
3
|
+
play_timeline: {
|
|
4
|
+
description: string;
|
|
5
|
+
parameters: {};
|
|
6
|
+
handler: () => Promise<import("../bridge/file-bridge.js").CommandResult>;
|
|
7
|
+
};
|
|
8
|
+
stop_playback: {
|
|
9
|
+
description: string;
|
|
10
|
+
parameters: {};
|
|
11
|
+
handler: () => Promise<import("../bridge/file-bridge.js").CommandResult>;
|
|
12
|
+
};
|
|
13
|
+
play_source_monitor: {
|
|
14
|
+
description: string;
|
|
15
|
+
parameters: {
|
|
16
|
+
type: "object";
|
|
17
|
+
properties: {
|
|
18
|
+
speed: {
|
|
19
|
+
type: string;
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
handler: (args: {
|
|
25
|
+
speed?: number;
|
|
26
|
+
}) => Promise<import("../bridge/file-bridge.js").CommandResult>;
|
|
27
|
+
};
|
|
28
|
+
get_source_monitor_position: {
|
|
29
|
+
description: string;
|
|
30
|
+
parameters: {};
|
|
31
|
+
handler: () => Promise<import("../bridge/file-bridge.js").CommandResult>;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=playback.d.ts.map
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { buildToolScript } from "../bridge/script-builder.js";
|
|
2
|
+
import { sendCommand } from "../bridge/file-bridge.js";
|
|
3
|
+
export function getPlaybackTools(bridgeOptions) {
|
|
4
|
+
return {
|
|
5
|
+
play_timeline: {
|
|
6
|
+
description: "Start playback of the active sequence timeline. Uses QE DOM.",
|
|
7
|
+
parameters: {},
|
|
8
|
+
handler: async () => {
|
|
9
|
+
const script = buildToolScript(`
|
|
10
|
+
app.enableQE();
|
|
11
|
+
qe.startPlayback();
|
|
12
|
+
return __result({ playing: true });
|
|
13
|
+
`);
|
|
14
|
+
return sendCommand(script, bridgeOptions);
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
stop_playback: {
|
|
18
|
+
description: "Stop playback of the active sequence timeline. Uses QE DOM.",
|
|
19
|
+
parameters: {},
|
|
20
|
+
handler: async () => {
|
|
21
|
+
const script = buildToolScript(`
|
|
22
|
+
app.enableQE();
|
|
23
|
+
qe.stopPlayback();
|
|
24
|
+
return __result({ stopped: true });
|
|
25
|
+
`);
|
|
26
|
+
return sendCommand(script, bridgeOptions);
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
play_source_monitor: {
|
|
30
|
+
description: "Start playback of the clip in the Source Monitor",
|
|
31
|
+
parameters: {
|
|
32
|
+
type: "object",
|
|
33
|
+
properties: {
|
|
34
|
+
speed: {
|
|
35
|
+
type: "number",
|
|
36
|
+
description: "Playback speed (1.0 = normal, 2.0 = 2x, -1.0 = reverse). Default: 1.0",
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
handler: async (args) => {
|
|
41
|
+
const speed = args.speed ?? 1.0;
|
|
42
|
+
const script = buildToolScript(`
|
|
43
|
+
app.sourceMonitor.play(${speed});
|
|
44
|
+
return __result({ playing: true, speed: ${speed} });
|
|
45
|
+
`);
|
|
46
|
+
return sendCommand(script, bridgeOptions);
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
get_source_monitor_position: {
|
|
50
|
+
description: "Get the current time indicator position in the Source Monitor",
|
|
51
|
+
parameters: {},
|
|
52
|
+
handler: async () => {
|
|
53
|
+
const script = buildToolScript(`
|
|
54
|
+
var pos = app.sourceMonitor.getPosition();
|
|
55
|
+
if (!pos) return __error("No clip open in Source Monitor");
|
|
56
|
+
return __result({ seconds: __ticksToSeconds(pos.ticks), ticks: pos.ticks });
|
|
57
|
+
`);
|
|
58
|
+
return sendCommand(script, bridgeOptions);
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=playback.js.map
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { BridgeOptions } from "../bridge/file-bridge.js";
|
|
2
|
+
export declare function getPlayheadTools(bridgeOptions: BridgeOptions): {
|
|
3
|
+
get_playhead_position: {
|
|
4
|
+
description: string;
|
|
5
|
+
parameters: {};
|
|
6
|
+
handler: () => Promise<import("../bridge/file-bridge.js").CommandResult>;
|
|
7
|
+
};
|
|
8
|
+
set_playhead_position: {
|
|
9
|
+
description: string;
|
|
10
|
+
parameters: {
|
|
11
|
+
type: "object";
|
|
12
|
+
properties: {
|
|
13
|
+
time_seconds: {
|
|
14
|
+
type: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
required: string[];
|
|
19
|
+
};
|
|
20
|
+
handler: (args: {
|
|
21
|
+
time_seconds: number;
|
|
22
|
+
}) => Promise<import("../bridge/file-bridge.js").CommandResult>;
|
|
23
|
+
};
|
|
24
|
+
set_work_area: {
|
|
25
|
+
description: string;
|
|
26
|
+
parameters: {
|
|
27
|
+
type: "object";
|
|
28
|
+
properties: {
|
|
29
|
+
in_seconds: {
|
|
30
|
+
type: string;
|
|
31
|
+
description: string;
|
|
32
|
+
};
|
|
33
|
+
out_seconds: {
|
|
34
|
+
type: string;
|
|
35
|
+
description: string;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
required: string[];
|
|
39
|
+
};
|
|
40
|
+
handler: (args: {
|
|
41
|
+
in_seconds: number;
|
|
42
|
+
out_seconds: number;
|
|
43
|
+
}) => Promise<import("../bridge/file-bridge.js").CommandResult>;
|
|
44
|
+
};
|
|
45
|
+
get_work_area: {
|
|
46
|
+
description: string;
|
|
47
|
+
parameters: {};
|
|
48
|
+
handler: () => Promise<import("../bridge/file-bridge.js").CommandResult>;
|
|
49
|
+
};
|
|
50
|
+
set_sequence_in_out_points: {
|
|
51
|
+
description: string;
|
|
52
|
+
parameters: {
|
|
53
|
+
type: "object";
|
|
54
|
+
properties: {
|
|
55
|
+
in_seconds: {
|
|
56
|
+
type: string;
|
|
57
|
+
description: string;
|
|
58
|
+
};
|
|
59
|
+
out_seconds: {
|
|
60
|
+
type: string;
|
|
61
|
+
description: string;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
required: string[];
|
|
65
|
+
};
|
|
66
|
+
handler: (args: {
|
|
67
|
+
in_seconds: number;
|
|
68
|
+
out_seconds: number;
|
|
69
|
+
}) => Promise<import("../bridge/file-bridge.js").CommandResult>;
|
|
70
|
+
};
|
|
71
|
+
get_sequence_in_out_points: {
|
|
72
|
+
description: string;
|
|
73
|
+
parameters: {};
|
|
74
|
+
handler: () => Promise<import("../bridge/file-bridge.js").CommandResult>;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=playhead.d.ts.map
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { buildToolScript } from "../bridge/script-builder.js";
|
|
2
|
+
import { sendCommand } from "../bridge/file-bridge.js";
|
|
3
|
+
export function getPlayheadTools(bridgeOptions) {
|
|
4
|
+
return {
|
|
5
|
+
get_playhead_position: {
|
|
6
|
+
description: "Get the current playhead (CTI) position in the active sequence",
|
|
7
|
+
parameters: {},
|
|
8
|
+
handler: async () => {
|
|
9
|
+
const script = buildToolScript(`
|
|
10
|
+
var seq = app.project.activeSequence;
|
|
11
|
+
if (!seq) return __error("No active sequence");
|
|
12
|
+
|
|
13
|
+
var ticks = seq.getPlayerPosition().ticks;
|
|
14
|
+
return __result({
|
|
15
|
+
seconds: __ticksToSeconds(ticks),
|
|
16
|
+
ticks: ticks
|
|
17
|
+
});
|
|
18
|
+
`);
|
|
19
|
+
return sendCommand(script, bridgeOptions);
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
set_playhead_position: {
|
|
23
|
+
description: "Set the playhead (CTI) position in the active sequence",
|
|
24
|
+
parameters: {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: {
|
|
27
|
+
time_seconds: {
|
|
28
|
+
type: "number",
|
|
29
|
+
description: "Time position in seconds to move the playhead to",
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
required: ["time_seconds"],
|
|
33
|
+
},
|
|
34
|
+
handler: async (args) => {
|
|
35
|
+
const script = buildToolScript(`
|
|
36
|
+
var seq = app.project.activeSequence;
|
|
37
|
+
if (!seq) return __error("No active sequence");
|
|
38
|
+
|
|
39
|
+
var ticks = __secondsToTicks(${args.time_seconds}).toString();
|
|
40
|
+
seq.setPlayerPosition(ticks);
|
|
41
|
+
|
|
42
|
+
return __result({ positionSeconds: ${args.time_seconds} });
|
|
43
|
+
`);
|
|
44
|
+
return sendCommand(script, bridgeOptions);
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
set_work_area: {
|
|
48
|
+
description: "Set the work area (bar) in and out points",
|
|
49
|
+
parameters: {
|
|
50
|
+
type: "object",
|
|
51
|
+
properties: {
|
|
52
|
+
in_seconds: {
|
|
53
|
+
type: "number",
|
|
54
|
+
description: "Work area in-point in seconds",
|
|
55
|
+
},
|
|
56
|
+
out_seconds: {
|
|
57
|
+
type: "number",
|
|
58
|
+
description: "Work area out-point in seconds",
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
required: ["in_seconds", "out_seconds"],
|
|
62
|
+
},
|
|
63
|
+
handler: async (args) => {
|
|
64
|
+
const script = buildToolScript(`
|
|
65
|
+
var seq = app.project.activeSequence;
|
|
66
|
+
if (!seq) return __error("No active sequence");
|
|
67
|
+
|
|
68
|
+
var inOk = false;
|
|
69
|
+
var outOk = false;
|
|
70
|
+
var errMsg = null;
|
|
71
|
+
|
|
72
|
+
var inTicks = __secondsToTicks(${args.in_seconds}).toString();
|
|
73
|
+
var outTicks = __secondsToTicks(${args.out_seconds}).toString();
|
|
74
|
+
|
|
75
|
+
try {
|
|
76
|
+
if (typeof seq.setWorkAreaInPoint === "function") {
|
|
77
|
+
seq.setWorkAreaInPoint(inTicks);
|
|
78
|
+
inOk = true;
|
|
79
|
+
}
|
|
80
|
+
} catch(e1) { errMsg = (errMsg ? errMsg + "; " : "") + "in: " + e1.toString(); }
|
|
81
|
+
|
|
82
|
+
try {
|
|
83
|
+
if (typeof seq.setWorkAreaOutPoint === "function") {
|
|
84
|
+
seq.setWorkAreaOutPoint(outTicks);
|
|
85
|
+
outOk = true;
|
|
86
|
+
}
|
|
87
|
+
} catch(e2) { errMsg = (errMsg ? errMsg + "; " : "") + "out: " + e2.toString(); }
|
|
88
|
+
|
|
89
|
+
var enabled = false;
|
|
90
|
+
try {
|
|
91
|
+
if (typeof seq.isWorkAreaBarEnabled === "function") enabled = seq.isWorkAreaBarEnabled();
|
|
92
|
+
} catch(e3) {}
|
|
93
|
+
|
|
94
|
+
return __result({
|
|
95
|
+
success: (inOk && outOk),
|
|
96
|
+
workAreaIn: ${args.in_seconds},
|
|
97
|
+
workAreaOut: ${args.out_seconds},
|
|
98
|
+
inSet: inOk,
|
|
99
|
+
outSet: outOk,
|
|
100
|
+
workAreaEnabled: enabled,
|
|
101
|
+
error: errMsg
|
|
102
|
+
});
|
|
103
|
+
`);
|
|
104
|
+
return sendCommand(script, bridgeOptions);
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
get_work_area: {
|
|
108
|
+
description: "Get the current work area in and out points",
|
|
109
|
+
parameters: {},
|
|
110
|
+
handler: async () => {
|
|
111
|
+
const script = buildToolScript(`
|
|
112
|
+
var seq = app.project.activeSequence;
|
|
113
|
+
if (!seq) return __error("No active sequence");
|
|
114
|
+
|
|
115
|
+
var inSec = 0;
|
|
116
|
+
var outSec = 0;
|
|
117
|
+
// seq.end is already a ticks STRING, not a Time object
|
|
118
|
+
try { if (seq.end != null) outSec = __ticksToSeconds(String(seq.end)); } catch(e) {}
|
|
119
|
+
// workInPoint/workOutPoint may be Time objects or ticks strings — handle both
|
|
120
|
+
try {
|
|
121
|
+
if (seq.workInPoint != null) {
|
|
122
|
+
inSec = (seq.workInPoint.ticks != null) ? __ticksToSeconds(seq.workInPoint.ticks) : __ticksToSeconds(String(seq.workInPoint));
|
|
123
|
+
}
|
|
124
|
+
if (seq.workOutPoint != null) {
|
|
125
|
+
outSec = (seq.workOutPoint.ticks != null) ? __ticksToSeconds(seq.workOutPoint.ticks) : __ticksToSeconds(String(seq.workOutPoint));
|
|
126
|
+
}
|
|
127
|
+
} catch(e) {}
|
|
128
|
+
return __result({
|
|
129
|
+
sequenceName: seq.name,
|
|
130
|
+
inSeconds: inSec,
|
|
131
|
+
outSeconds: outSec,
|
|
132
|
+
workAreaEnabled: seq.isWorkAreaBarEnabled ? seq.isWorkAreaBarEnabled() : false
|
|
133
|
+
});
|
|
134
|
+
`);
|
|
135
|
+
return sendCommand(script, bridgeOptions);
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
set_sequence_in_out_points: {
|
|
139
|
+
description: "Set the sequence in and out points (for export range, etc.)",
|
|
140
|
+
parameters: {
|
|
141
|
+
type: "object",
|
|
142
|
+
properties: {
|
|
143
|
+
in_seconds: {
|
|
144
|
+
type: "number",
|
|
145
|
+
description: "In-point in seconds",
|
|
146
|
+
},
|
|
147
|
+
out_seconds: {
|
|
148
|
+
type: "number",
|
|
149
|
+
description: "Out-point in seconds",
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
required: ["in_seconds", "out_seconds"],
|
|
153
|
+
},
|
|
154
|
+
handler: async (args) => {
|
|
155
|
+
const script = buildToolScript(`
|
|
156
|
+
var seq = app.project.activeSequence;
|
|
157
|
+
if (!seq) return __error("No active sequence");
|
|
158
|
+
|
|
159
|
+
seq.setInPoint(__secondsToTicks(${args.in_seconds}).toString());
|
|
160
|
+
seq.setOutPoint(__secondsToTicks(${args.out_seconds}).toString());
|
|
161
|
+
|
|
162
|
+
return __result({ inSeconds: ${args.in_seconds}, outSeconds: ${args.out_seconds} });
|
|
163
|
+
`);
|
|
164
|
+
return sendCommand(script, bridgeOptions);
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
get_sequence_in_out_points: {
|
|
168
|
+
description: "Get the current sequence in and out points",
|
|
169
|
+
parameters: {},
|
|
170
|
+
handler: async () => {
|
|
171
|
+
const script = buildToolScript(`
|
|
172
|
+
var seq = app.project.activeSequence;
|
|
173
|
+
if (!seq) return __error("No active sequence");
|
|
174
|
+
|
|
175
|
+
return __result({
|
|
176
|
+
inSeconds: __ticksToSeconds(seq.getInPoint()),
|
|
177
|
+
outSeconds: __ticksToSeconds(seq.getOutPoint())
|
|
178
|
+
});
|
|
179
|
+
`);
|
|
180
|
+
return sendCommand(script, bridgeOptions);
|
|
181
|
+
},
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=playhead.js.map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { BridgeOptions } from "../bridge/file-bridge.js";
|
|
2
|
+
export declare function getProjectManagerTools(bridgeOptions: BridgeOptions): {
|
|
3
|
+
consolidate_and_transfer: {
|
|
4
|
+
description: string;
|
|
5
|
+
parameters: {
|
|
6
|
+
type: "object";
|
|
7
|
+
properties: {
|
|
8
|
+
destination_path: {
|
|
9
|
+
type: string;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
include_all_sequences: {
|
|
13
|
+
type: string;
|
|
14
|
+
description: string;
|
|
15
|
+
};
|
|
16
|
+
copy_to_new_location: {
|
|
17
|
+
type: string;
|
|
18
|
+
description: string;
|
|
19
|
+
};
|
|
20
|
+
exclude_unused: {
|
|
21
|
+
type: string;
|
|
22
|
+
description: string;
|
|
23
|
+
};
|
|
24
|
+
transcode: {
|
|
25
|
+
type: string;
|
|
26
|
+
description: string;
|
|
27
|
+
};
|
|
28
|
+
include_preview_files: {
|
|
29
|
+
type: string;
|
|
30
|
+
description: string;
|
|
31
|
+
};
|
|
32
|
+
rename_media: {
|
|
33
|
+
type: string;
|
|
34
|
+
description: string;
|
|
35
|
+
};
|
|
36
|
+
convert_image_sequences: {
|
|
37
|
+
type: string;
|
|
38
|
+
description: string;
|
|
39
|
+
};
|
|
40
|
+
convert_ae_comps: {
|
|
41
|
+
type: string;
|
|
42
|
+
description: string;
|
|
43
|
+
};
|
|
44
|
+
convert_synthetic: {
|
|
45
|
+
type: string;
|
|
46
|
+
description: string;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
required: string[];
|
|
50
|
+
};
|
|
51
|
+
handler: (args: {
|
|
52
|
+
destination_path: string;
|
|
53
|
+
include_all_sequences?: boolean;
|
|
54
|
+
copy_to_new_location?: boolean;
|
|
55
|
+
exclude_unused?: boolean;
|
|
56
|
+
transcode?: boolean;
|
|
57
|
+
include_preview_files?: boolean;
|
|
58
|
+
rename_media?: boolean;
|
|
59
|
+
convert_image_sequences?: boolean;
|
|
60
|
+
convert_ae_comps?: boolean;
|
|
61
|
+
convert_synthetic?: boolean;
|
|
62
|
+
}) => Promise<import("../bridge/file-bridge.js").CommandResult>;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=project-manager.d.ts.map
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { buildToolScript, escapeForExtendScript } from "../bridge/script-builder.js";
|
|
2
|
+
import { sendCommand } from "../bridge/file-bridge.js";
|
|
3
|
+
export function getProjectManagerTools(bridgeOptions) {
|
|
4
|
+
return {
|
|
5
|
+
consolidate_and_transfer: {
|
|
6
|
+
description: "Consolidate, copy, or transcode project media using the Project Manager. Useful for archiving or transferring projects.",
|
|
7
|
+
parameters: {
|
|
8
|
+
type: "object",
|
|
9
|
+
properties: {
|
|
10
|
+
destination_path: {
|
|
11
|
+
type: "string",
|
|
12
|
+
description: "Destination folder path for the consolidated project",
|
|
13
|
+
},
|
|
14
|
+
include_all_sequences: {
|
|
15
|
+
type: "boolean",
|
|
16
|
+
description: "Include all sequences (default: true). If false, only active sequence is used.",
|
|
17
|
+
},
|
|
18
|
+
copy_to_new_location: {
|
|
19
|
+
type: "boolean",
|
|
20
|
+
description: "Copy media to a new location (default: true)",
|
|
21
|
+
},
|
|
22
|
+
exclude_unused: {
|
|
23
|
+
type: "boolean",
|
|
24
|
+
description: "Exclude unused clips (default: true)",
|
|
25
|
+
},
|
|
26
|
+
transcode: {
|
|
27
|
+
type: "boolean",
|
|
28
|
+
description: "Transcode media during copy (default: false)",
|
|
29
|
+
},
|
|
30
|
+
include_preview_files: {
|
|
31
|
+
type: "boolean",
|
|
32
|
+
description: "Include preview/render files (default: false)",
|
|
33
|
+
},
|
|
34
|
+
rename_media: {
|
|
35
|
+
type: "boolean",
|
|
36
|
+
description: "Rename media to match clip names (default: false)",
|
|
37
|
+
},
|
|
38
|
+
convert_image_sequences: {
|
|
39
|
+
type: "boolean",
|
|
40
|
+
description: "Convert image sequences to clips (default: false)",
|
|
41
|
+
},
|
|
42
|
+
convert_ae_comps: {
|
|
43
|
+
type: "boolean",
|
|
44
|
+
description: "Convert After Effects compositions (default: false)",
|
|
45
|
+
},
|
|
46
|
+
convert_synthetic: {
|
|
47
|
+
type: "boolean",
|
|
48
|
+
description: "Convert synthetic importer items (default: false)",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
required: ["destination_path"],
|
|
52
|
+
},
|
|
53
|
+
handler: async (args) => {
|
|
54
|
+
const script = buildToolScript(`
|
|
55
|
+
var pm = app.projectManager;
|
|
56
|
+
if (!pm) return __error("Project Manager not available");
|
|
57
|
+
|
|
58
|
+
pm.destinationPath = "${escapeForExtendScript(args.destination_path)}";
|
|
59
|
+
pm.includeAllSequences = ${args.include_all_sequences !== false ? 1 : 0};
|
|
60
|
+
pm.copyToNewLocation = ${args.copy_to_new_location !== false ? 1 : 0};
|
|
61
|
+
pm.excludeUnused = ${args.exclude_unused !== false ? 1 : 0};
|
|
62
|
+
pm.transcodeMedia = ${args.transcode ? 1 : 0};
|
|
63
|
+
pm.includePreviewFiles = ${args.include_preview_files ? 1 : 0};
|
|
64
|
+
pm.renameMedia = ${args.rename_media ? 1 : 0};
|
|
65
|
+
pm.convertImageSequences = ${args.convert_image_sequences ? 1 : 0};
|
|
66
|
+
pm.convertAEComps = ${args.convert_ae_comps ? 1 : 0};
|
|
67
|
+
pm.convertSyntheticMedia = ${args.convert_synthetic ? 1 : 0};
|
|
68
|
+
|
|
69
|
+
pm.process(app.project);
|
|
70
|
+
|
|
71
|
+
return __result({
|
|
72
|
+
started: true,
|
|
73
|
+
destination: "${escapeForExtendScript(args.destination_path)}"
|
|
74
|
+
});
|
|
75
|
+
`);
|
|
76
|
+
return sendCommand(script, { ...bridgeOptions, timeoutMs: 300000 }); // 5 min timeout
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=project-manager.js.map
|