premiere-pro-mcp 1.8.0 → 1.9.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 CHANGED
@@ -6,6 +6,33 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.9.0] - 2026-08-02
10
+
11
+ ### Added
12
+
13
+ - Added a read-only `verify_premiere_connection` tool, human-readable `--doctor`
14
+ diagnostics, and a privacy-sanitized `--support-bundle` for guided recovery.
15
+ - Added an accessible in-panel Connection Center and native Windows/macOS CEP
16
+ installer pipelines that require trusted platform signing for production use.
17
+ - Added deterministic direct and Marketplace-channel UXP CCX packaging with
18
+ explicit Adobe identity and live-host verification gates.
19
+
20
+ ### Changed
21
+
22
+ - Reworked onboarding around the AI assistant an editor already uses, with the
23
+ Claude Desktop MCPB route first and npm/JSON configuration under Advanced.
24
+ - Upgraded the Claude Desktop bundle manifest to MCPB v0.4 and stopped emitting
25
+ an unsupported `.dxt` copy of the same bytes.
26
+ - Registered 280 core tools, exposed 278 under the default profile, and exposed
27
+ 297 tools when the 19 capability-gated UXP tools are connected.
28
+
29
+ ### Validation
30
+
31
+ - Automated checks cover distribution schemas, deterministic CCX packaging,
32
+ support-bundle privacy, installer path containment, production signing gates,
33
+ and connection evidence states. Real Premiere host verification and external
34
+ Adobe/Anthropic approvals remain separate release gates.
35
+
9
36
  ## [1.8.0] - 2026-08-01
10
37
 
11
38
  ### Added
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  **Give AI full control over Adobe Premiere Pro.**
8
8
 
9
- 279 core tools across 31 modules, 3 resources, and 4 guided workflows. A connected UXP host adds 19 capability-gated tools.
9
+ 280 core tools across 31 modules, 3 resources, and 4 guided workflows. A connected UXP host adds 19 capability-gated tools.
10
10
 
11
11
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
12
12
  [![Node.js](https://img.shields.io/badge/Node.js-20.19%2B-green.svg)](https://nodejs.org)
@@ -27,9 +27,22 @@ An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that l
27
27
  "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
28
  ```
29
29
 
30
- The AI handles the entire workflow through 279 core tools spanning the supported ExtendScript, QE DOM, local media analysis, and safe edit-planning surfaces. A compatible, authenticated UXP panel adds 19 documented, capability-gated workflows without replacing the production CEP bridge.
30
+ The AI handles the entire workflow through 280 core tools spanning the supported ExtendScript, QE DOM, local media analysis, safe edit-planning, and connection-verification surfaces. A compatible, authenticated UXP panel adds 19 documented, capability-gated workflows without replacing the production CEP bridge.
31
31
 
32
- ### What's new in 1.8.0
32
+ ### What's new in 1.9.0
33
+
34
+ - **Assistant-first setup:** Claude Desktop users start with a validated MCPB
35
+ bundle, while npm and manual JSON configuration stay under Advanced setup.
36
+ - **Safe connection help:** `verify_premiere_connection`, `--doctor`, the CEP
37
+ Connection Center, and sanitized support bundles explain exactly what is
38
+ installed, configured, connected, and live-verified.
39
+ - **Distribution foundations:** MCPB v0.4, deterministic direct/Marketplace CCX
40
+ packaging, and native Windows/macOS CEP installer pipelines make the supported
41
+ routes easier to package without overstating signing or Marketplace approval.
42
+ - **Canonical tool surface:** 280 registered tools, 278 in the default profile,
43
+ and 297 while the 19 capability-gated UXP tools are connected.
44
+
45
+ ### Previous release: 1.8.0
33
46
 
34
47
  - **Native transcript planning:** compatible UXP hosts can export and search the
35
48
  transcript Premiere generated for a clip, then preview a revision-locked set of
@@ -40,7 +53,7 @@ The AI handles the entire workflow through 279 core tools spanning the supported
40
53
  - **19 connected UXP tools:** the capability-gated UXP surface grows from 16 to 19
41
54
  without changing the 279 core-tool surface.
42
55
 
43
- ### Previous release: 1.7.0
56
+ ### Earlier release: 1.7.0
44
57
 
45
58
  - **Six documented workflows:** compatible 26.3+ hosts can expose UXP track renaming, subclip creation, stable marker IDs, Source Monitor seeking, transcript presence checks, and AAF export.
46
59
  - **Capability first:** a tool is discoverable only with the authenticated local panel; the panel's live `capabilities.get` response—not package metadata—decides whether the current host supports it.
@@ -58,7 +71,24 @@ The AI handles the entire workflow through 279 core tools spanning the supported
58
71
 
59
72
  ## Quick Start
60
73
 
61
- ### Before you begin
74
+ ### Easiest supported path: Claude Desktop
75
+
76
+ 1. Download the current [Claude Desktop bundle (`.mcpb`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.9.0/premiere-pro-mcp-1.9.0.mcpb).
77
+ 2. In Claude Desktop, open **Settings > Extensions > Advanced settings > Install Extension**, select the downloaded bundle, and restart Claude Desktop.
78
+ 3. Download the separate [signed Premiere connector (`.zxp`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.9.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.
79
+ 4. Restart Premiere, open a project, then open **Window > Extensions > MCP Bridge**.
80
+ 5. In Claude, enter: `Safely check my Premiere connection with verify_premiere_connection. Make no changes.`
81
+
82
+ The Claude bundle contains the local MCP server, so this route does not require Node.js. The Premiere connector is a separate required install. The first prompt is read-only and reports whether the server is installed, configured, connected, and live-verified.
83
+
84
+ ### Other AI assistants
85
+
86
+ Cursor, VS Code/Copilot, Windsurf, and other MCP clients do not currently have a project-provided one-click installer. Use their MCP settings with the advanced npm route below. Keep the assistant, server, connector, and Premiere on the same computer.
87
+
88
+ <details>
89
+ <summary><strong>Advanced setup: npm or source</strong></summary>
90
+
91
+ #### Before you begin
62
92
 
63
93
  - Node.js **20.19 or newer** on Windows or macOS.
64
94
  - Adobe Premiere Pro **2020–2026**. Keep Premiere, the CEP bridge, and your MCP client on the same computer for the recommended local setup.
@@ -66,9 +96,9 @@ The AI handles the entire workflow through 279 core tools spanning the supported
66
96
  (`brew install ffmpeg` on macOS or `winget install Gyan.FFmpeg` on Windows).
67
97
  The production Docker image already includes it.
68
98
 
69
- ### 1. Install
99
+ #### 1. Install
70
100
 
71
- **Option A — npm (recommended):**
101
+ **Option A — npm:**
72
102
 
73
103
  ```bash
74
104
  npm install -g premiere-pro-mcp
@@ -83,7 +113,7 @@ npm install
83
113
  npm run build
84
114
  ```
85
115
 
86
- ### 2. Install the CEP plugin
116
+ #### 2. Install the CEP plugin
87
117
 
88
118
  **If installed via npm:**
89
119
 
@@ -99,6 +129,16 @@ npm run install-cep
99
129
 
100
130
  This installs the plugin into Premiere Pro's per-user extensions folder and enables debug mode.
101
131
 
132
+ #### 3. Check the setup
133
+
134
+ ```bash
135
+ premiere-pro-mcp --doctor
136
+ ```
137
+
138
+ Then ask your MCP client to run `verify_premiere_connection`. The check is read-only.
139
+
140
+ </details>
141
+
102
142
  ---
103
143
 
104
144
  ## Publishing to npm
@@ -259,11 +299,11 @@ From a clone of this repository:
259
299
  ```bash
260
300
  codex plugin marketplace add .
261
301
  codex plugin add premiere-pro@premiere-pro-mcp
262
- npx -y premiere-pro-mcp@1.8.0 --install-cep
302
+ npx -y premiere-pro-mcp@1.9.0 --install-cep
263
303
  ```
264
304
 
265
305
  Restart Premiere Pro and start a new Codex session after installation. The plugin
266
- launches `premiere-pro-mcp@1.8.0` through `npx`; the separate CEP installation is
306
+ launches `premiere-pro-mcp@1.9.0` through `npx`; the separate CEP installation is
267
307
  required because the MCP server communicates with the running Premiere host through
268
308
  the local bridge.
269
309
 
@@ -283,15 +323,15 @@ For Claude Code, add this repository as a marketplace and install the plugin:
283
323
  Then install the Premiere bridge and start a new Claude Code session:
284
324
 
285
325
  ```bash
286
- npx -y premiere-pro-mcp@1.8.0 --install-cep
326
+ npx -y premiere-pro-mcp@1.9.0 --install-cep
287
327
  ```
288
328
 
289
329
  The Claude Code package lives in
290
330
  [`claude-plugins/premiere-pro`](claude-plugins/premiere-pro), with its marketplace
291
331
  at [`.claude-plugin/marketplace.json`](.claude-plugin/marketplace.json).
292
332
 
293
- Claude Desktop uses the self-contained MCP Bundle format, formerly called Desktop
294
- Extensions. Build both the current `.mcpb` artifact and a legacy `.dxt` copy with:
333
+ Claude Desktop uses the self-contained MCP Bundle (`.mcpb`) format. Build and
334
+ validate the current bundle with:
295
335
 
296
336
  ```bash
297
337
  npm run build:claude
@@ -322,7 +362,7 @@ installed separately.
322
362
  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.
323
363
 
324
364
  MCP `tools/list` is filtered to the active authority profile. The default
325
- `inspect,edit,export,filesystem` profile advertises 277 of the 279 registered
365
+ `inspect,edit,export,filesystem` profile advertises 278 of the 280 registered
326
366
  tools and omits `execute_extendscript` and `evaluate_expression`, which require
327
367
  explicit `unsafe-script` authority. `ping` and `get_capabilities` remain visible
328
368
  under every profile so a restricted or misconfigured server can still explain
@@ -437,7 +477,7 @@ The file-based IPC bridge is simple, reliable, and works across macOS and Window
437
477
 
438
478
  ---
439
479
 
440
- ## Tools (279 core total; 277 under the default profile; 296 with a connected UXP bridge)
480
+ ## Tools (280 core total; 278 under the default profile; 297 with a connected UXP bridge)
441
481
 
442
482
  ### Discovery & Inspection (10 + 10)
443
483
 
@@ -680,7 +720,7 @@ premiere-pro-mcp/
680
720
  ├── src/
681
721
  │ ├── index.ts # Entry point — stdio transport setup
682
722
  │ ├── http-server.ts # Entry point — HTTP/SSE transport (Fly.io / remote)
683
- │ ├── server.ts # MCP server — registers 279 core tools, filtered by authority profile
723
+ │ ├── server.ts # MCP server — registers 280 tools, filtered by authority profile
684
724
  │ ├── bridge/
685
725
  │ │ ├── file-bridge.ts # File-based IPC (write .jsx, poll .json)
686
726
  │ │ └── script-builder.ts # ExtendScript generator with ES3 helpers
Binary file
@@ -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.8.0" ExtensionBundleName="MCP Bridge">
2
+ <ExtensionManifest Version="7.0" ExtensionBundleId="com.mcp.premiere.bridge" ExtensionBundleVersion="1.9.0" ExtensionBundleName="MCP Bridge">
3
3
  <ExtensionList>
4
- <Extension Id="com.mcp.premiere.bridge.panel" Version="1.8.0"/>
5
- <Extension Id="com.mcp.premiere.bridge.headless" Version="1.8.0"/>
4
+ <Extension Id="com.mcp.premiere.bridge.panel" Version="1.9.0"/>
5
+ <Extension Id="com.mcp.premiere.bridge.headless" Version="1.9.0"/>
6
6
  </ExtensionList>
7
7
  <ExecutionEnvironment>
8
8
  <HostList>
@@ -19,12 +19,12 @@
19
19
 
20
20
  <section class="status-panel" role="status" aria-live="polite" aria-atomic="true">
21
21
  <div class="status-indicator" aria-hidden="true">
22
- <div class="status-ring"><div class="status-dot connected" id="statusDot"></div></div>
22
+ <div class="status-ring"><div class="status-dot waiting" id="statusDot"></div></div>
23
23
  </div>
24
24
  <div class="status-copy">
25
25
  <span class="section-label">Bridge status</span>
26
- <strong id="statusText">Connected</strong>
27
- <span id="statusDetail">Premiere Pro link is active</span>
26
+ <strong id="statusText">Starting connector…</strong>
27
+ <span id="statusDetail">Checking Premiere Pro</span>
28
28
  </div>
29
29
  <div class="command-stat">
30
30
  <strong id="cmdCount">0</strong>
@@ -32,6 +32,22 @@
32
32
  </div>
33
33
  </section>
34
34
 
35
+ <section class="connection-center" aria-labelledby="connectionCenterTitle">
36
+ <div class="section-heading">
37
+ <div>
38
+ <span class="section-label">Connection Center</span>
39
+ <h2 id="connectionCenterTitle">Ready-to-edit check</h2>
40
+ </div>
41
+ <button class="save-link" type="button" onclick="refreshConnectionCenter()" aria-controls="connectionChecks">Refresh</button>
42
+ </div>
43
+ <p class="connection-intro">This panel only checks Premiere. In your AI assistant, run <strong>Verify Premiere connection</strong> for the complete safe check.</p>
44
+ <ul class="connection-checks" id="connectionChecks">
45
+ <li id="checkConnector" data-state="waiting"><span class="check-dot" aria-hidden="true"></span><span><strong>Connector</strong><small>Starting…</small></span></li>
46
+ <li id="checkProject" data-state="waiting"><span class="check-dot" aria-hidden="true"></span><span><strong>Project</strong><small>Checking…</small></span></li>
47
+ <li id="checkSequence" data-state="waiting"><span class="check-dot" aria-hidden="true"></span><span><strong>Active sequence</strong><small>Checking…</small></span></li>
48
+ </ul>
49
+ </section>
50
+
35
51
  <section class="config-section">
36
52
  <div class="section-heading">
37
53
  <div>
@@ -65,7 +81,7 @@
65
81
  <section class="update-section" aria-live="polite">
66
82
  <div class="update-copy">
67
83
  <span class="section-label">Connector updates</span>
68
- <strong id="updateTitle">Version 1.8.0</strong>
84
+ <strong id="updateTitle">Version 1.9.0</strong>
69
85
  <span id="updateDetail">Checking for updates…</span>
70
86
  </div>
71
87
  <button id="btnUpdate" class="button button-update" onclick="handleUpdateClick()" type="button" disabled>
@@ -32,12 +32,47 @@ function setStatus(state, text) {
32
32
  var detail = document.getElementById("statusDetail");
33
33
  if (detail) {
34
34
  if (state === "connected") detail.textContent = "Premiere Pro link is active";
35
- else if (state === "waiting") detail.textContent = "Ready to accept commands";
35
+ else if (state === "waiting") detail.textContent = "Ready for an AI assistant connection";
36
36
  else if (state === "error") detail.textContent = "Bridge needs attention";
37
37
  else detail.textContent = "Waiting for Premiere Pro";
38
38
  }
39
39
  }
40
40
 
41
+ function setConnectionCheck(id, state, detail) {
42
+ var el = document.getElementById(id);
43
+ if (!el) return;
44
+ el.setAttribute("data-state", state);
45
+ var text = el.getElementsByTagName("small")[0];
46
+ if (text) text.textContent = detail;
47
+ }
48
+
49
+ // This reads only boolean Premiere state. Do not put project names, paths, or
50
+ // media information in the panel: the MCP safe-check uses the same boundary.
51
+ function refreshConnectionCenter() {
52
+ if (!bridgeRunning) {
53
+ setConnectionCheck("checkConnector", "waiting", "Start the connector first");
54
+ setConnectionCheck("checkProject", "waiting", "Waiting for the connector");
55
+ setConnectionCheck("checkSequence", "waiting", "Waiting for the connector");
56
+ return;
57
+ }
58
+ setConnectionCheck("checkConnector", "ready", "Running in Premiere Pro");
59
+ setConnectionCheck("checkProject", "waiting", "Checking…");
60
+ setConnectionCheck("checkSequence", "waiting", "Checking…");
61
+ cs.evalScript(
62
+ '(function(){var p=app&&app.project;return JSON.stringify({projectOpen:!!(p&&typeof p.name!=="undefined"),sequenceOpen:!!(p&&p.activeSequence)});}())',
63
+ function (raw) {
64
+ try {
65
+ var state = JSON.parse(raw || "{}");
66
+ setConnectionCheck("checkProject", state.projectOpen ? "ready" : "needs-attention", state.projectOpen ? "Project open" : "Open a project in Premiere Pro");
67
+ setConnectionCheck("checkSequence", state.sequenceOpen ? "ready" : "needs-attention", state.sequenceOpen ? "Active sequence open" : "Open a sequence in Premiere Pro");
68
+ } catch (e) {
69
+ setConnectionCheck("checkProject", "needs-attention", "Could not read Premiere state");
70
+ setConnectionCheck("checkSequence", "needs-attention", "Could not read Premiere state");
71
+ }
72
+ }
73
+ );
74
+ }
75
+
41
76
  // ---- File I/O via Node.js (CEP has access to Node) ----
42
77
  // --enable-nodejs puts `require` in the global scope on most hosts, but on some it
43
78
  // lands on cep_node instead. Try both, and fail loudly rather than letting fs come
@@ -214,20 +249,13 @@ function startBridge() {
214
249
 
215
250
  ensureDir(tempDir);
216
251
  bridgeRunning = true;
217
- setStatus("connected", "Running — polling " + tempDir);
218
- log("Bridge started. Temp dir: " + tempDir);
252
+ setStatus("waiting", "Connector running");
253
+ log("Connector started and ready for safe checks.", "ok");
219
254
 
220
255
  document.getElementById("btnStart").disabled = true;
221
256
  document.getElementById("btnStop").disabled = false;
222
257
 
223
- // Verify Premiere Pro connection
224
- cs.evalScript("app.version", function (version) {
225
- if (version && version !== "undefined") {
226
- log("Premiere Pro: " + version, "ok");
227
- } else {
228
- log("Warning: Could not detect Premiere Pro version", "err");
229
- }
230
- });
258
+ refreshConnectionCenter();
231
259
 
232
260
  pollInterval = setInterval(function () {
233
261
  if (bridgeRunning) processCommands();
@@ -240,6 +268,7 @@ function stopBridge() {
240
268
  pollInterval = null;
241
269
 
242
270
  setStatus("", "Stopped");
271
+ refreshConnectionCenter();
243
272
  log("Bridge stopped");
244
273
 
245
274
  document.getElementById("btnStart").disabled = false;
@@ -197,6 +197,27 @@ button { -webkit-appearance: none; }
197
197
  border-radius: var(--radius);
198
198
  background: var(--surface);
199
199
  }
200
+
201
+ .connection-center {
202
+ margin: 0 0 14px;
203
+ padding: 12px;
204
+ border: 1px solid var(--border);
205
+ border-radius: var(--radius);
206
+ background: var(--surface);
207
+ }
208
+ .connection-center .section-heading { margin-bottom: 8px; }
209
+ .connection-center h2 { font-size: 12px; }
210
+ .connection-intro { margin: 0 0 10px; color: var(--text-muted); font-size: 9px; line-height: 1.45; }
211
+ .connection-intro strong { color: var(--text-secondary); font-weight: 600; }
212
+ .connection-checks { display: grid; gap: 6px; padding: 0; margin: 0; list-style: none; }
213
+ .connection-checks li { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 6px 8px; border: 1px solid var(--border); border-radius: 5px; background: var(--surface-deep); }
214
+ .connection-checks li > span:last-child { min-width: 0; }
215
+ .connection-checks strong, .connection-checks small { display: block; }
216
+ .connection-checks strong { color: var(--text-secondary); font-size: 10px; font-weight: 600; }
217
+ .connection-checks small { margin-top: 2px; color: var(--text-muted); font-size: 9px; }
218
+ .check-dot { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: var(--text-muted); }
219
+ .connection-checks li[data-state="ready"] .check-dot { background: var(--green); box-shadow: 0 0 0 3px var(--green-soft); }
220
+ .connection-checks li[data-state="needs-attention"] .check-dot { background: var(--amber); }
200
221
  .update-copy { min-width: 0; flex: 1; }
201
222
  .update-copy strong, .update-copy > span:last-child { display: block; }
202
223
  .update-copy strong { font-size: 11px; font-weight: 600; }
@@ -7,7 +7,7 @@
7
7
  })(this, function () {
8
8
  "use strict";
9
9
 
10
- var CURRENT_VERSION = "1.8.0";
10
+ var CURRENT_VERSION = "1.9.0";
11
11
  var LATEST_RELEASE_API =
12
12
  "https://api.github.com/repos/leancoderkavy/premiere-pro-mcp/releases/latest";
13
13
  var RELEASES_URL =
@@ -0,0 +1,85 @@
1
+ /**
2
+ * A readiness boundary says what was actually established. It deliberately
3
+ * does not turn an installed connector into a claim that Premiere is live.
4
+ */
5
+ export type ReadinessBoundary = "installed" | "configured" | "connected" | "live_verified";
6
+ export type ReadinessState = "ready" | "needs_attention" | "not_checked";
7
+ export interface ReadinessComponent {
8
+ id: "mcp_process" | "premiere_connector" | "premiere_host" | "active_project" | "active_sequence" | "uxp_bridge";
9
+ label: string;
10
+ boundary: ReadinessBoundary;
11
+ state: ReadinessState;
12
+ message: string;
13
+ repair?: string;
14
+ }
15
+ export interface LocalDoctorReport {
16
+ schemaVersion: "premiere-pro-mcp.doctor.v1";
17
+ generatedAt: string;
18
+ runtime: {
19
+ platform: NodeJS.Platform;
20
+ nodeMajor: number | null;
21
+ };
22
+ overall: "ready" | "needs_attention";
23
+ components: ReadinessComponent[];
24
+ privacy: {
25
+ includes: string[];
26
+ excludes: string[];
27
+ };
28
+ }
29
+ export interface FirstRunReport {
30
+ schemaVersion: "premiere-pro-mcp.first-run.v1";
31
+ safeCheck: {
32
+ readOnly: true;
33
+ mutatesProject: false;
34
+ verificationScope: "mcp_process_premiere_host_active_project_active_sequence";
35
+ };
36
+ backend: "cep" | "uxp";
37
+ overall: "ready" | "needs_attention";
38
+ components: ReadinessComponent[];
39
+ nextStep: string;
40
+ repair?: string;
41
+ }
42
+ export interface SupportBundle {
43
+ schemaVersion: "premiere-pro-mcp.support-bundle.v1";
44
+ generatedAt: string;
45
+ application: {
46
+ version: string;
47
+ nodeMajor: number | null;
48
+ platform: NodeJS.Platform;
49
+ architecture: string;
50
+ };
51
+ doctor: LocalDoctorReport;
52
+ privacy: {
53
+ excludes: string[];
54
+ };
55
+ }
56
+ export interface LocalDoctorOptions {
57
+ platform?: NodeJS.Platform;
58
+ architecture?: string;
59
+ nodeVersion?: string;
60
+ environment?: NodeJS.ProcessEnv;
61
+ now?: () => Date;
62
+ exists?: (file: string) => boolean;
63
+ }
64
+ export interface SupportBundleOptions extends LocalDoctorOptions {
65
+ version: string;
66
+ }
67
+ export interface FirstRunHostState {
68
+ reachable: boolean;
69
+ projectOpen?: boolean;
70
+ sequenceOpen?: boolean;
71
+ }
72
+ /**
73
+ * Inspect local install/configuration facts only. The report intentionally
74
+ * cannot imply that Premiere is open or that an MCP client has connected.
75
+ */
76
+ export declare function collectLocalDoctor(options?: LocalDoctorOptions): LocalDoctorReport;
77
+ /** Build a first-run report from a sanitized host response. No names or paths enter this contract. */
78
+ export declare function buildFirstRunReport(backend: "cep" | "uxp", host: FirstRunHostState): FirstRunReport;
79
+ /**
80
+ * Produce a safe attachment for support. It is deliberately a status snapshot,
81
+ * not a log collector: logs commonly contain project names, local paths, or tokens.
82
+ */
83
+ export declare function createSupportBundle(options: SupportBundleOptions): SupportBundle;
84
+ export declare function renderDoctorHuman(report: LocalDoctorReport): string;
85
+ //# sourceMappingURL=diagnostics.d.ts.map