premiere-pro-mcp 1.9.3 → 1.11.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 +85 -0
- package/README.md +46 -20
- package/artifacts/MCPBridgeCEP.zxp +0 -0
- package/benchmarks/uxp-hybrid/evidence.schema.json +67 -0
- package/benchmarks/uxp-hybrid/evidence.template.json +13 -0
- package/cep-plugin/CSXS/manifest.xml +3 -3
- package/cep-plugin/index.html +1 -1
- package/cep-plugin/updater.cjs +1 -1
- package/dist/bridge/uxp-websocket-bridge.d.ts +5 -1
- package/dist/bridge/uxp-websocket-bridge.js +7 -2
- package/dist/platform-capabilities.js +69 -0
- package/dist/resources/adobe-uxp-coverage.json +810 -0
- package/dist/security/capabilities.d.ts +2 -0
- package/dist/security/capabilities.js +144 -3
- package/dist/tools/track-targeting.d.ts +58 -0
- package/dist/tools/track-targeting.js +128 -2
- package/dist/tools/uxp-advanced-workflows.d.ts +807 -0
- package/dist/tools/uxp-advanced-workflows.js +450 -0
- package/dist/tools/uxp-next-workflows.d.ts +587 -0
- package/dist/tools/uxp-next-workflows.js +404 -0
- package/dist/tools/uxp-workflows.d.ts +691 -0
- package/dist/tools/uxp-workflows.js +420 -0
- package/dist/tools/uxp.d.ts +2597 -0
- package/dist/tools/uxp.js +6 -0
- package/docs/supported-actions.md +379 -0
- package/package.json +11 -4
- package/scripts/generate-supported-actions.mjs +187 -0
- package/scripts/validate-distribution.mjs +2 -2
- package/scripts/verify-uxp-hybrid-benchmark.mjs +153 -0
- package/uxp-plugin/README.md +37 -0
- package/uxp-plugin/advanced-workflows.cjs +1069 -0
- package/uxp-plugin/commands.cjs +101 -20
- package/uxp-plugin/events.cjs +358 -0
- package/uxp-plugin/hybrid-benchmark.cjs +176 -0
- package/uxp-plugin/index.cjs +183 -28
- package/uxp-plugin/index.html +8 -4
- package/uxp-plugin/manifest.json +2 -2
- package/uxp-plugin/next-workflows.cjs +1501 -0
- package/uxp-plugin/protocol.cjs +46 -2
- package/uxp-plugin/styles.css +48 -0
- package/uxp-plugin/workflows.cjs +1310 -0
- package/uxp-plugin/workspace.cjs +220 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,91 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [1.11.0] - 2026-08-16
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- `set_clip_volume` passed decibels straight into Premiere's `Volume > Level`
|
|
14
|
+
property, which is a normalised 0..1 value where 1.0 is +15 dB, not a dB
|
|
15
|
+
value. Every negative dB clamped to 0 (silence) and every positive dB clamped
|
|
16
|
+
to 1.0 (+15 dB), and Premiere reports no error either way, so the failure was
|
|
17
|
+
silent - a whole timeline could be muted with the tool reporting success.
|
|
18
|
+
Levels are now converted with `10^((dB-15)/20)`.
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- `get_clip_volume` reads a clip's level back in dB, so a level change can be
|
|
23
|
+
verified rather than assumed.
|
|
24
|
+
- `set_clips_volume` applies a level to every clip on an audio track (or a
|
|
25
|
+
chosen subset) in one call. Setting levels across an 80-clip sequence
|
|
26
|
+
previously meant 80 round trips.
|
|
27
|
+
- Added eight capability-gated third-wave UXP tools for bounded host events, AME
|
|
28
|
+
terminal receipts, host readiness, safe multi-project sessions, growing-media
|
|
29
|
+
leases, transactional checkpoints, media health, caption-aware track state,
|
|
30
|
+
source-clip trim and framing, and hybrid-acceleration evidence.
|
|
31
|
+
- Added a generated supported-actions catalog covering all 282 core tools, the
|
|
32
|
+
default profile, resources, prompts, and connected UXP actions with explicit
|
|
33
|
+
backend and verification boundaries.
|
|
34
|
+
- Added a schema-backed hybrid benchmark evidence template and a fail-closed
|
|
35
|
+
verifier so accelerated paths cannot be advertised without matching host,
|
|
36
|
+
dataset, correctness, latency, and provenance evidence.
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
|
|
40
|
+
- Expanded the authenticated UXP surface from 40 to 48 capability-gated tools,
|
|
41
|
+
bringing the connected default profile from 318 to 328 tools while keeping
|
|
42
|
+
CEP as the production-compatible bridge.
|
|
43
|
+
- Bounded event and readiness history, reported eviction and pending states,
|
|
44
|
+
and preserved host timeout budgets with a response-delivery buffer.
|
|
45
|
+
- Required explicit confirmation and readback for external project writes,
|
|
46
|
+
destructive track or source mutations, and pause leases; failed UXP commands
|
|
47
|
+
are never replayed automatically through CEP.
|
|
48
|
+
|
|
49
|
+
### Validation
|
|
50
|
+
|
|
51
|
+
- The merged release tree passes 1,490 automated tests across 53 files with
|
|
52
|
+
91.26% branch coverage, generated-document checks, landing lint/build, and
|
|
53
|
+
package-content validation.
|
|
54
|
+
- Real Premiere host validation remains not run; mock and contract evidence does
|
|
55
|
+
not establish behavior inside a licensed Premiere installation.
|
|
56
|
+
|
|
57
|
+
## [1.10.0] - 2026-08-16
|
|
58
|
+
|
|
59
|
+
### Added
|
|
60
|
+
|
|
61
|
+
- Added 21 consolidated, capability-gated UXP tools across two stable workflow
|
|
62
|
+
groups, expanding the connected surface from 297 to 318 tools while retaining
|
|
63
|
+
CEP as the production-compatible bridge.
|
|
64
|
+
- Added native effects, selection batches, deterministic timeline selection,
|
|
65
|
+
scene detection, proxy and ingest control, offline relinking, transactional
|
|
66
|
+
metadata, color conformance, Source Monitor audition, Productions storage
|
|
67
|
+
preflight, and an operator-selected workspace broker.
|
|
68
|
+
- Added project-panel selection, marker CRUD, bin organization, sequence settings,
|
|
69
|
+
workspace-gated imports, typed parameter and keyframe automation, track-item
|
|
70
|
+
transforms, SequenceEditor operations, sequence lifecycle controls, and Adobe
|
|
71
|
+
Media Encoder submission.
|
|
72
|
+
|
|
73
|
+
### Changed
|
|
74
|
+
|
|
75
|
+
- Bounded selection, project, marker, sequence, bin, and keyframe inspection so a
|
|
76
|
+
request cannot accidentally traverse or serialize an unbounded production project.
|
|
77
|
+
- Grouped compatible mutations into Adobe action transactions with stale-state
|
|
78
|
+
guards, replay protection, and post-commit readback. A failed UXP mutation is
|
|
79
|
+
returned to the caller and is never silently retried through CEP.
|
|
80
|
+
- Replaced UXP filesystem full access with operator-selected folder access and kept
|
|
81
|
+
native paths and persistent tokens inside the panel.
|
|
82
|
+
|
|
83
|
+
### Security
|
|
84
|
+
|
|
85
|
+
- Updated vulnerable transitive dependencies and refreshed the validated package
|
|
86
|
+
lockfiles used by the server and landing build.
|
|
87
|
+
|
|
88
|
+
### Validation
|
|
89
|
+
|
|
90
|
+
- Automated unit, contract, distribution, and coverage gates exercise the expanded
|
|
91
|
+
UXP surface. Real Premiere host verification and latency benchmarking remain
|
|
92
|
+
pending and are not implied by this release.
|
|
93
|
+
|
|
9
94
|
## [1.9.3] - 2026-08-12
|
|
10
95
|
|
|
11
96
|
### Added
|
package/README.md
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://mcptoplist.com/server/glama%2Fleancoderkavy%2Fpremiere-pro-mcp)
|
|
6
6
|
|
|
7
|
-
**Give AI
|
|
7
|
+
**Give compatible AI assistants structured control over supported Adobe Premiere Pro workflows.**
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
282 core tools across 31 modules, 3 resources, and 4 guided workflows. A connected UXP host adds 48 capability-gated tools.
|
|
10
10
|
|
|
11
11
|
[](LICENSE)
|
|
12
12
|
[](https://nodejs.org)
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
+

|
|
23
|
+
|
|
22
24
|
## What is this?
|
|
23
25
|
|
|
24
26
|
An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that lets AI assistants like **Claude**, **Windsurf**, **Cursor**, **GitHub Copilot**, or any MCP-compatible client directly control Adobe Premiere Pro — importing media, editing timelines, applying effects, managing keyframes, exporting, and more.
|
|
@@ -27,19 +29,22 @@ An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that l
|
|
|
27
29
|
"Add the B-roll clips to V2, apply a cross dissolve between each, color correct them to match the A-roll, and export a 1080p ProRes."
|
|
28
30
|
```
|
|
29
31
|
|
|
30
|
-
The AI handles the entire workflow through
|
|
32
|
+
The AI handles the entire workflow through 282 core tools spanning the supported ExtendScript, QE DOM, local media analysis, safe edit-planning, and connection-verification surfaces. A compatible, authenticated UXP panel adds 48 documented, capability-gated tools without replacing the production CEP bridge.
|
|
31
33
|
|
|
32
|
-
### Latest release: 1.
|
|
34
|
+
### Latest release: 1.11.0
|
|
33
35
|
|
|
34
|
-
- **
|
|
35
|
-
|
|
36
|
-
- **
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
|
|
36
|
+
- **Host evidence and readiness:** a bounded UXP event journal, AME terminal receipts, and
|
|
37
|
+
explicit readiness gates distinguish verified completion, pending work, and lost history.
|
|
38
|
+
- **Guarded production workflows:** GUID-targeted project sessions, growing-media pause leases,
|
|
39
|
+
transactional checkpoints, and bounded media-health inspection fail closed on stale state.
|
|
40
|
+
- **Timeline precision:** caption-aware track controls and source-clip trim and framing add
|
|
41
|
+
readback-verified mutations; clip-volume writes now convert dB correctly and support batches.
|
|
42
|
+
- **Performance and support evidence:** a hybrid-acceleration benchmark gate and the generated
|
|
43
|
+
[supported-actions catalog](docs/supported-actions.md) document every current action and boundary.
|
|
44
|
+
- **Truthful compatibility:** CEP remains the production-compatible bridge, and automated UXP
|
|
45
|
+
contracts do not claim validation inside a real Premiere host.
|
|
41
46
|
|
|
42
|
-
See the [v1.
|
|
47
|
+
See the [v1.11.0 release notes](https://github.com/leancoderkavy/premiere-pro-mcp/releases/tag/v1.11.0)
|
|
43
48
|
for complete details. Live installation in Premiere Pro still requires host verification.
|
|
44
49
|
|
|
45
50
|
---
|
|
@@ -48,9 +53,9 @@ for complete details. Live installation in Premiere Pro still requires host veri
|
|
|
48
53
|
|
|
49
54
|
### Easiest supported path: Claude Desktop
|
|
50
55
|
|
|
51
|
-
1. Download the current [Claude Desktop bundle (`.mcpb`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.
|
|
56
|
+
1. Download the current [Claude Desktop bundle (`.mcpb`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.11.0/premiere-pro-mcp-1.11.0.mcpb).
|
|
52
57
|
2. In Claude Desktop, open **Settings > Extensions > Advanced settings > Install Extension**, select the downloaded bundle, and restart Claude Desktop.
|
|
53
|
-
3. Download the separate [signed Premiere connector (`.zxp`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.
|
|
58
|
+
3. Download the separate [signed Premiere connector (`.zxp`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.11.0/MCPBridgeCEP.zxp). Open it with your trusted ZXP installer. If your computer has no ZXP installer, use the npm connector installer in **Advanced setup** below.
|
|
54
59
|
4. Restart Premiere, open a project, then open **Window > Extensions > MCP Bridge**.
|
|
55
60
|
5. In Claude, enter: `Safely check my Premiere connection with verify_premiere_connection. Make no changes.`
|
|
56
61
|
|
|
@@ -274,11 +279,11 @@ From a clone of this repository:
|
|
|
274
279
|
```bash
|
|
275
280
|
codex plugin marketplace add .
|
|
276
281
|
codex plugin add premiere-pro@premiere-pro-mcp
|
|
277
|
-
npx -y premiere-pro-mcp@1.
|
|
282
|
+
npx -y premiere-pro-mcp@1.11.0 --install-cep
|
|
278
283
|
```
|
|
279
284
|
|
|
280
285
|
Restart Premiere Pro and start a new Codex session after installation. The plugin
|
|
281
|
-
launches `premiere-pro-mcp@1.
|
|
286
|
+
launches `premiere-pro-mcp@1.11.0` through `npx`; the separate CEP installation is
|
|
282
287
|
required because the MCP server communicates with the running Premiere host through
|
|
283
288
|
the local bridge.
|
|
284
289
|
|
|
@@ -298,7 +303,7 @@ For Claude Code, add this repository as a marketplace and install the plugin:
|
|
|
298
303
|
Then install the Premiere bridge and start a new Claude Code session:
|
|
299
304
|
|
|
300
305
|
```bash
|
|
301
|
-
npx -y premiere-pro-mcp@1.
|
|
306
|
+
npx -y premiere-pro-mcp@1.11.0 --install-cep
|
|
302
307
|
```
|
|
303
308
|
|
|
304
309
|
The Claude Code package lives in
|
|
@@ -337,7 +342,7 @@ installed separately.
|
|
|
337
342
|
QE-backed tools are reported as `experimental` because QE is undocumented and can vary between Premiere builds. Authority availability is reported separately from implementation support, so disabling `edit`, for example, does not incorrectly label editing tools as unsupported. Static metadata never claims that a Premiere operation succeeded; use `ping` and inspect each tool result for runtime evidence.
|
|
338
343
|
|
|
339
344
|
MCP `tools/list` is filtered to the active authority profile. The default
|
|
340
|
-
`inspect,edit,export,filesystem` profile advertises
|
|
345
|
+
`inspect,edit,export,filesystem` profile advertises 280 of the 282 registered
|
|
341
346
|
tools and omits `execute_extendscript` and `evaluate_expression`, which require
|
|
342
347
|
explicit `unsafe-script` authority. `ping` and `get_capabilities` remain visible
|
|
343
348
|
under every profile so a restricted or misconfigured server can still explain
|
|
@@ -388,7 +393,9 @@ PREMIERE_UXP_TOKEN="replace-with-a-long-random-secret" premiere-pro-mcp
|
|
|
388
393
|
|
|
389
394
|
Enter the same token in the UXP panel. The listener binds only to `127.0.0.1:7777`, authenticates the WebSocket upgrade, requires a versioned capability handshake, correlates concurrent requests, and fails pending work on timeout or disconnect. Set `PREMIERE_UXP_PORT` to use another loopback port.
|
|
390
395
|
|
|
391
|
-
When enabled, MCP discovery includes
|
|
396
|
+
When enabled, MCP discovery includes the original 19 UXP tools, 21 consolidated stable workflows, and eight third-wave tools. The first expansion covers effects, deterministic timeline selection, selection batches, scene detection, proxy/ingest, relink, metadata, color conformance, Source Monitor audition, storage, and least-privilege workspace access. The second adds Project-panel selection, marker CRUD, bin organization, sequence settings, imports, typed effect parameters/keyframes, track-item transforms, SequenceEditor timeline edits, sequence lifecycle, and AME encoding. The third wave begins with a redacted event journal, conservative AME terminal receipts, explicit host-readiness gates, safe multi-project sessions, lease-based growing-media control, namespaced workflow checkpoints, bounded media-health maintenance, caption-aware track mute state, and transactional source trim/framing documented in [the third-wave workflow matrix](docs/third-wave-uxp-workflows.md). A separate [hybrid benchmark gate](docs/uxp-hybrid-benchmark.md) keeps native acceleration disabled until reproducible cross-platform evidence exists. See also [the first stable workflow matrix](docs/uxp-stable-workflows.md) and [the next-ten workflow matrix](docs/uxp-next-ten-workflows.md). Commands are advertised only while the authenticated local UXP bridge is connected; the host capability handshake remains the authority for support in the running Premiere build. A failed UXP command is never silently retried through CEP because the first operation may have partially succeeded.
|
|
397
|
+
|
|
398
|
+
The panel now requests access to one operator-selected workspace instead of declaring full filesystem access. Choose the folder in the panel before invoking a path-based UXP workflow. Media, relink, preset, export, and Source Monitor file paths must remain inside it; the persistent capability token and native root path are never returned over MCP. Lexical containment alone cannot exclude symlink, junction, or reparse-point escapes, and Adobe's request-scoped UXP filesystem API does not document canonical-path resolution. Builds without a host-supplied canonical resolver therefore advertise path-based UXP commands as unsupported and fail closed at invocation; use the existing CEP fallback for those operations.
|
|
392
399
|
|
|
393
400
|
Native transcript editing starts with a read-only, revision-locked planning flow. Use
|
|
394
401
|
`get_clip_transcript_uxp` to export the transcript Premiere generated for a source
|
|
@@ -410,10 +417,19 @@ coverage matrix](docs/adobe-uxp-26.3-coverage.md) and [the UXP capability
|
|
|
410
417
|
foundation](docs/uxp-capability-foundation.md) for the command matrix and live-host
|
|
411
418
|
validation boundary.
|
|
412
419
|
|
|
420
|
+
The stable workflow expansion adds native component-chain effects, deterministic
|
|
421
|
+
timeline selection, compound selection batches, scene-edit detection, proxy/ingest control, guarded offline
|
|
422
|
+
relink, transactional project/XMP metadata, color and footage-conformance
|
|
423
|
+
preflight, full Source Monitor audition, and project/Production storage checks.
|
|
424
|
+
See [the stable UXP workflow matrix](docs/uxp-stable-workflows.md) for exact
|
|
425
|
+
argument, undo, confirmation, and live-host boundaries.
|
|
426
|
+
|
|
413
427
|
---
|
|
414
428
|
|
|
415
429
|
## Architecture
|
|
416
430
|
|
|
431
|
+

|
|
432
|
+
|
|
417
433
|
**Local (stdio):**
|
|
418
434
|
|
|
419
435
|
```text
|
|
@@ -452,7 +468,13 @@ The file-based IPC bridge is simple, reliable, and works across macOS and Window
|
|
|
452
468
|
|
|
453
469
|
---
|
|
454
470
|
|
|
455
|
-
## Tools (
|
|
471
|
+
## Tools (282 core total; 280 under the default profile; 328 with a connected UXP bridge)
|
|
472
|
+
|
|
473
|
+
The [complete supported-actions catalog](docs/supported-actions.md) lists every
|
|
474
|
+
registered core tool, the two tools restricted behind explicit `unsafe-script`
|
|
475
|
+
authority, and all 48 authenticated UXP additions with their current action or mode
|
|
476
|
+
values. It is generated from the same MCP registration surface returned to clients;
|
|
477
|
+
the tables below are a shorter workflow-oriented overview.
|
|
456
478
|
|
|
457
479
|
### Discovery & Inspection (10 + 10)
|
|
458
480
|
|
|
@@ -850,6 +872,10 @@ npm version, fully quit every Premiere process, run `premiere-pro-mcp --install-
|
|
|
850
872
|
|
|
851
873
|
Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
852
874
|
|
|
875
|
+
The evidence-backed [next improvement pull-request roadmap](docs/next-improvement-pr-roadmap.md)
|
|
876
|
+
breaks the proposed feature, protocol, reliability, and performance work into ten
|
|
877
|
+
reviewable changes with explicit dependencies and live-host acceptance gates.
|
|
878
|
+
|
|
853
879
|
---
|
|
854
880
|
|
|
855
881
|
## License
|
|
Binary file
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://premiere-pro-mcp.com/schemas/uxp-hybrid-benchmark-evidence-v1.json",
|
|
4
|
+
"title": "Premiere Pro MCP UXP hybrid benchmark evidence",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "workloadId", "configuration", "memoryMeasurement", "runs"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": 1 },
|
|
10
|
+
"workloadId": { "const": "weighted-energy-v1" },
|
|
11
|
+
"configuration": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": ["sampleCount", "warmupCount", "iterations", "inputLength", "seed"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"sampleCount": { "const": 30 },
|
|
17
|
+
"warmupCount": { "const": 3 },
|
|
18
|
+
"iterations": { "const": 4 },
|
|
19
|
+
"inputLength": { "const": 131072 },
|
|
20
|
+
"seed": { "const": 1337 }
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"memoryMeasurement": { "type": "string", "minLength": 1, "maxLength": 256 },
|
|
24
|
+
"runs": {
|
|
25
|
+
"type": "array",
|
|
26
|
+
"minItems": 3,
|
|
27
|
+
"maxItems": 3,
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"required": [
|
|
32
|
+
"platform", "arch", "hostVersion", "sdkVersion", "buildMode",
|
|
33
|
+
"addonLoaded", "addonSha256", "sourceCommit", "checksumMatch",
|
|
34
|
+
"codeSigned", "notarized", "javascript", "native"
|
|
35
|
+
],
|
|
36
|
+
"properties": {
|
|
37
|
+
"platform": { "enum": ["win", "mac"] },
|
|
38
|
+
"arch": { "enum": ["x64", "arm64"] },
|
|
39
|
+
"hostVersion": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" },
|
|
40
|
+
"sdkVersion": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
41
|
+
"buildMode": { "const": "Release" },
|
|
42
|
+
"addonLoaded": { "const": true },
|
|
43
|
+
"addonSha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
44
|
+
"sourceCommit": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
|
|
45
|
+
"checksumMatch": { "const": true },
|
|
46
|
+
"codeSigned": { "type": "boolean" },
|
|
47
|
+
"notarized": { "type": "boolean" },
|
|
48
|
+
"javascript": { "$ref": "#/$defs/metrics" },
|
|
49
|
+
"native": { "$ref": "#/$defs/metrics" }
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"$defs": {
|
|
55
|
+
"metrics": {
|
|
56
|
+
"type": "object",
|
|
57
|
+
"additionalProperties": false,
|
|
58
|
+
"required": ["sampleCount", "p50Ms", "p95Ms", "peakWorkingSetBytes"],
|
|
59
|
+
"properties": {
|
|
60
|
+
"sampleCount": { "type": "integer", "minimum": 20 },
|
|
61
|
+
"p50Ms": { "type": "number", "exclusiveMinimum": 0 },
|
|
62
|
+
"p95Ms": { "type": "number", "exclusiveMinimum": 0 },
|
|
63
|
+
"peakWorkingSetBytes": { "type": "integer", "exclusiveMinimum": 0 }
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"workloadId": "weighted-energy-v1",
|
|
4
|
+
"configuration": {
|
|
5
|
+
"sampleCount": 30,
|
|
6
|
+
"warmupCount": 3,
|
|
7
|
+
"iterations": 4,
|
|
8
|
+
"inputLength": 131072,
|
|
9
|
+
"seed": 1337
|
|
10
|
+
},
|
|
11
|
+
"memoryMeasurement": "Replace with the identical process peak-working-set collection method used on every target",
|
|
12
|
+
"runs": []
|
|
13
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<ExtensionManifest Version="7.0" ExtensionBundleId="com.mcp.premiere.bridge" ExtensionBundleVersion="1.
|
|
2
|
+
<ExtensionManifest Version="7.0" ExtensionBundleId="com.mcp.premiere.bridge" ExtensionBundleVersion="1.11.0" ExtensionBundleName="MCP Bridge">
|
|
3
3
|
<ExtensionList>
|
|
4
|
-
<Extension Id="com.mcp.premiere.bridge.panel" Version="1.
|
|
5
|
-
<Extension Id="com.mcp.premiere.bridge.headless" Version="1.
|
|
4
|
+
<Extension Id="com.mcp.premiere.bridge.panel" Version="1.11.0"/>
|
|
5
|
+
<Extension Id="com.mcp.premiere.bridge.headless" Version="1.11.0"/>
|
|
6
6
|
</ExtensionList>
|
|
7
7
|
<ExecutionEnvironment>
|
|
8
8
|
<HostList>
|
package/cep-plugin/index.html
CHANGED
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
<section class="update-section" aria-live="polite">
|
|
82
82
|
<div class="update-copy">
|
|
83
83
|
<span class="section-label">Connector updates</span>
|
|
84
|
-
<strong id="updateTitle">Version 1.
|
|
84
|
+
<strong id="updateTitle">Version 1.11.0</strong>
|
|
85
85
|
<span id="updateDetail">Checking for updates…</span>
|
|
86
86
|
</div>
|
|
87
87
|
<button id="btnUpdate" class="button button-update" onclick="handleUpdateClick()" type="button" disabled>
|
package/cep-plugin/updater.cjs
CHANGED
|
@@ -10,6 +10,10 @@ export interface UxpCapability {
|
|
|
10
10
|
supported: boolean;
|
|
11
11
|
[key: string]: unknown;
|
|
12
12
|
}
|
|
13
|
+
export interface UxpRequestOptions {
|
|
14
|
+
/** Do not let the bridge timeout before a bounded host-side wait can settle. */
|
|
15
|
+
minimumTimeoutMs?: number;
|
|
16
|
+
}
|
|
13
17
|
export interface UxpHello {
|
|
14
18
|
backend: "uxp";
|
|
15
19
|
protocolVersion: number;
|
|
@@ -52,7 +56,7 @@ export declare class UxpWebSocketBridge extends EventEmitter {
|
|
|
52
56
|
path: string;
|
|
53
57
|
};
|
|
54
58
|
getState(): UxpConnectionState;
|
|
55
|
-
request(command: string, args?: Record<string, unknown
|
|
59
|
+
request(command: string, args?: Record<string, unknown>, requestOptions?: UxpRequestOptions): Promise<unknown>;
|
|
56
60
|
stop(): Promise<void>;
|
|
57
61
|
private acceptConnection;
|
|
58
62
|
private handleMessage;
|
|
@@ -109,7 +109,7 @@ export class UxpWebSocketBridge extends EventEmitter {
|
|
|
109
109
|
connected: false,
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
-
async request(command, args = {}) {
|
|
112
|
+
async request(command, args = {}, requestOptions = {}) {
|
|
113
113
|
const socket = this.socket;
|
|
114
114
|
const hello = this.hello;
|
|
115
115
|
if (!socket || socket.readyState !== WebSocket.OPEN || !hello) {
|
|
@@ -118,12 +118,17 @@ export class UxpWebSocketBridge extends EventEmitter {
|
|
|
118
118
|
if (hello.commands[command]?.supported !== true) {
|
|
119
119
|
throw new UxpBridgeError("UXP_COMMAND_UNSUPPORTED", `Connected Premiere host does not support UXP command '${command}'`);
|
|
120
120
|
}
|
|
121
|
+
const minimumTimeoutMs = requestOptions.minimumTimeoutMs ?? 0;
|
|
122
|
+
if (!Number.isInteger(minimumTimeoutMs) || minimumTimeoutMs < 0) {
|
|
123
|
+
throw new Error("UXP minimum request timeout must be a non-negative integer");
|
|
124
|
+
}
|
|
125
|
+
const requestTimeoutMs = Math.max(this.options.requestTimeoutMs, minimumTimeoutMs);
|
|
121
126
|
const requestId = randomUUID();
|
|
122
127
|
return new Promise((resolve, reject) => {
|
|
123
128
|
const timer = setTimeout(() => {
|
|
124
129
|
this.pending.delete(requestId);
|
|
125
130
|
reject(new UxpBridgeError("UXP_TIMEOUT", `UXP command '${command}' timed out`));
|
|
126
|
-
},
|
|
131
|
+
}, requestTimeoutMs);
|
|
127
132
|
this.pending.set(requestId, { command, resolve, reject, timer });
|
|
128
133
|
socket.send(JSON.stringify({
|
|
129
134
|
protocolVersion: hello.protocolVersion,
|
|
@@ -205,6 +205,75 @@ export function buildPlatformCapabilityReport(capabilities, platform = process.p
|
|
|
205
205
|
"transcript.has",
|
|
206
206
|
"transcript.import",
|
|
207
207
|
"captions.inspect",
|
|
208
|
+
"effects.catalog",
|
|
209
|
+
"effects.chain.get",
|
|
210
|
+
"effects.chain.add",
|
|
211
|
+
"effects.chain.remove",
|
|
212
|
+
"selection.inspect",
|
|
213
|
+
"selection.fingerprints.inspect",
|
|
214
|
+
"selection.targets.inspect",
|
|
215
|
+
"selection.update",
|
|
216
|
+
"effects.selection.add",
|
|
217
|
+
"effects.selection.remove",
|
|
218
|
+
"sceneEdit.detect",
|
|
219
|
+
"proxy.inspect",
|
|
220
|
+
"proxy.attach",
|
|
221
|
+
"ingest.get",
|
|
222
|
+
"ingest.configure",
|
|
223
|
+
"media.relink",
|
|
224
|
+
"metadata.get",
|
|
225
|
+
"metadata.update",
|
|
226
|
+
"color.preflight",
|
|
227
|
+
"footage.conform",
|
|
228
|
+
"sourceMonitor.state",
|
|
229
|
+
"sourceMonitor.open",
|
|
230
|
+
"sourceMonitor.play",
|
|
231
|
+
"sourceMonitor.close",
|
|
232
|
+
"storage.preflight",
|
|
233
|
+
"scratch.configure",
|
|
234
|
+
"workspace.status",
|
|
235
|
+
"projectSelection.views",
|
|
236
|
+
"projectSelection.inspect",
|
|
237
|
+
"markers.inspect",
|
|
238
|
+
"markers.add",
|
|
239
|
+
"markers.update",
|
|
240
|
+
"markers.remove",
|
|
241
|
+
"bins.inspect",
|
|
242
|
+
"bins.create",
|
|
243
|
+
"bins.createSmart",
|
|
244
|
+
"bins.rename",
|
|
245
|
+
"bins.move",
|
|
246
|
+
"bins.color",
|
|
247
|
+
"bins.remove",
|
|
248
|
+
"sequenceSettings.get",
|
|
249
|
+
"sequenceSettings.update",
|
|
250
|
+
"project.import",
|
|
251
|
+
"parameters.inspect",
|
|
252
|
+
"parameters.set",
|
|
253
|
+
"parameters.keyframeAdd",
|
|
254
|
+
"parameters.keyframeRemove",
|
|
255
|
+
"parameters.keyframeRemoveRange",
|
|
256
|
+
"parameters.keyframeInterpolation",
|
|
257
|
+
"trackItem.inspect",
|
|
258
|
+
"trackItem.update",
|
|
259
|
+
"timeline.insert",
|
|
260
|
+
"timeline.overwrite",
|
|
261
|
+
"timeline.cloneSelection",
|
|
262
|
+
"timeline.removeSelection",
|
|
263
|
+
"timeline.mogrtPath",
|
|
264
|
+
"timeline.mogrtLibrary",
|
|
265
|
+
"sequences.inspect",
|
|
266
|
+
"sequences.createFromMedia",
|
|
267
|
+
"sequences.clone",
|
|
268
|
+
"sequences.subsequence",
|
|
269
|
+
"sequences.activate",
|
|
270
|
+
"sequences.open",
|
|
271
|
+
"sequences.close",
|
|
272
|
+
"sequences.delete",
|
|
273
|
+
"encoder.preflight",
|
|
274
|
+
"encoder.sequence",
|
|
275
|
+
"encoder.projectItem",
|
|
276
|
+
"encoder.file",
|
|
208
277
|
],
|
|
209
278
|
unsupportedCommands: {
|
|
210
279
|
"captions.create": "No documented Premiere UXP caption creation API.",
|