premiere-pro-mcp 1.11.0 → 1.11.2
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 +60 -0
- package/README.md +71 -23
- package/artifacts/MCPBridgeCEP.zxp +0 -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/context/project-context-resource.d.ts +2 -0
- package/dist/context/project-context-resource.js +29 -0
- package/dist/context/project-context-store.d.ts +79 -0
- package/dist/context/project-context-store.js +304 -0
- package/dist/http-server.js +52 -9
- package/dist/index.js +1 -1
- package/dist/resources/extendscript-reference.js +1 -1
- package/dist/security/capabilities.js +8 -1
- package/dist/server.js +16 -1
- package/dist/tools/advanced.js +109 -10
- package/dist/tools/audio.js +1 -1
- package/dist/tools/clipboard.js +39 -7
- package/dist/tools/effects.d.ts +1 -0
- package/dist/tools/effects.js +33 -8
- package/dist/tools/project-context.d.ts +306 -0
- package/dist/tools/project-context.js +549 -0
- package/dist/tools/timeline.d.ts +10 -0
- package/dist/tools/timeline.js +256 -25
- package/dist/tools/track-targeting.js +2 -2
- package/dist/tools/tracks.js +65 -10
- package/dist/workflows/catalog.d.ts +7 -2
- package/dist/workflows/catalog.js +6 -0
- package/dist/workflows/tool-metadata.js +5 -3
- package/docs/project-context-engine.md +63 -0
- package/docs/supported-actions.md +16 -13
- package/package.json +3 -2
- package/uxp-plugin/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,66 @@ 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.2] - 2026-08-18
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Added a durable local project-context engine with active-sequence capture,
|
|
14
|
+
transcript/shot/audio/note enrichment, bounded retrieval, and non-mutating
|
|
15
|
+
edit-plan scaffolds. Source-media and timeline revisions are tracked
|
|
16
|
+
independently so ordinary timeline changes do not repeat expensive source
|
|
17
|
+
analysis.
|
|
18
|
+
- Added a context-aware rough-cut prompt and `config://premiere-project-context`
|
|
19
|
+
resource documenting privacy, invalidation, retrieval, and preview requirements.
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- `add_track` and QE-backed `add_tracks` now validate their inputs and return success
|
|
24
|
+
only after the active sequence reports the exact requested track-count increase. The
|
|
25
|
+
single-track call uses a bounded QE fallback only when the public DOM call made no
|
|
26
|
+
change, and never retries a partially applied call.
|
|
27
|
+
- `overwrite_clip` now rejects invalid video and audio track indices before invoking
|
|
28
|
+
Premiere and confirms the requested source item appears at the requested frame. A
|
|
29
|
+
no-op or an unverifiable repeat placement returns an error instead of false success.
|
|
30
|
+
- `trim_clip` now proves the requested source point also produced the expected visible timeline
|
|
31
|
+
edge and duration. It refuses retimed clips and, by default, trims that would strand effect
|
|
32
|
+
keyframes instead of treating source-metadata-only changes as success on Premiere Pro 26.x.
|
|
33
|
+
- `split_clip` now verifies that a clip spans the requested cut and that QE produced each expected
|
|
34
|
+
left/right segment, rather than accepting any increase in track clip count. QE keyframe
|
|
35
|
+
redistribution remains explicitly unverified.
|
|
36
|
+
- `remove_effect` and `remove_effect_by_name` now preflight `Component.remove()` support before
|
|
37
|
+
mutation. Unsupported Premiere 26.x components such as Essential Sound's Amplify return an
|
|
38
|
+
actionable capability error without crashing or partially removing matched effects.
|
|
39
|
+
|
|
40
|
+
### Security
|
|
41
|
+
|
|
42
|
+
- Native media paths are hashed before persistence, credential-like enrichment
|
|
43
|
+
metadata is discarded, stale source/timeline enrichments are rejected, and
|
|
44
|
+
context clearing remains an explicit filesystem-authorized action.
|
|
45
|
+
|
|
46
|
+
### Validation
|
|
47
|
+
|
|
48
|
+
- Added fail-closed CEP/QE contract coverage for trim, split, track creation, overwrite placement,
|
|
49
|
+
and component removal. Licensed Premiere Pro 26.x host confirmation remains a separate gate.
|
|
50
|
+
|
|
51
|
+
## [1.11.1] - 2026-08-16
|
|
52
|
+
|
|
53
|
+
### Fixed
|
|
54
|
+
|
|
55
|
+
- Extensionless landing routes such as `/changelog` now resolve to their
|
|
56
|
+
exported `index.html` file instead of attempting to stream a directory. The
|
|
57
|
+
previous behavior emitted an unhandled `EISDIR` error on Linux and restarted
|
|
58
|
+
the remote HTTP process.
|
|
59
|
+
- Static asset candidates are required to remain inside the landing directory
|
|
60
|
+
and resolve to regular files, and read-stream failures are handled without
|
|
61
|
+
terminating the server.
|
|
62
|
+
|
|
63
|
+
### Validation
|
|
64
|
+
|
|
65
|
+
- Added regression coverage for extensionless exported routes and asynchronous
|
|
66
|
+
static-file read failures. The complete release gates remain distinct from
|
|
67
|
+
validation inside a licensed Premiere host.
|
|
68
|
+
|
|
9
69
|
## [1.11.0] - 2026-08-16
|
|
10
70
|
|
|
11
71
|
### Fixed
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**Give compatible AI assistants structured control over supported Adobe Premiere Pro workflows.**
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
285 core tools across 32 modules, 4 resources, and 5 guided workflows. A connected UXP host adds 48 capability-gated tools.
|
|
10
10
|
|
|
11
11
|
[](LICENSE)
|
|
12
12
|
[](https://nodejs.org)
|
|
@@ -29,22 +29,20 @@ An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that l
|
|
|
29
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."
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
The AI handles the entire workflow through
|
|
32
|
+
The AI handles the entire workflow through 285 core tools spanning the supported ExtendScript, QE DOM, local media analysis, revisioned project-context retrieval, safe edit-planning, and connection-verification surfaces. A compatible, authenticated UXP panel adds 48 documented, capability-gated tools without replacing the production CEP bridge.
|
|
33
33
|
|
|
34
|
-
### Latest release: 1.11.
|
|
34
|
+
### Latest release: 1.11.2
|
|
35
35
|
|
|
36
|
-
- **
|
|
37
|
-
|
|
38
|
-
- **
|
|
39
|
-
|
|
40
|
-
- **
|
|
41
|
-
|
|
42
|
-
- **
|
|
43
|
-
|
|
44
|
-
- **Truthful compatibility:** CEP remains the production-compatible bridge, and automated UXP
|
|
45
|
-
contracts do not claim validation inside a real Premiere host.
|
|
36
|
+
- **Honest timeline mutations:** trim, split, track creation, and overwrite placement now verify
|
|
37
|
+
observable postconditions instead of trusting Premiere 26.x calls that can silently no-op.
|
|
38
|
+
- **Safe effect removal:** unsupported components such as Essential Sound's Amplify return an
|
|
39
|
+
actionable capability error instead of crashing or partially removing matched effects.
|
|
40
|
+
- **Durable project context:** local, revision-aware context capture and retrieval adds bounded,
|
|
41
|
+
non-mutating edit-plan scaffolds while hashing persisted native media paths.
|
|
42
|
+
- **Truthful compatibility:** the fixes have automated CEP/QE contract coverage; confirmation in
|
|
43
|
+
a licensed Premiere Pro 26.x host remains a separate validation boundary.
|
|
46
44
|
|
|
47
|
-
See the [v1.11.
|
|
45
|
+
See the [v1.11.2 release notes](https://github.com/leancoderkavy/premiere-pro-mcp/releases/tag/v1.11.2)
|
|
48
46
|
for complete details. Live installation in Premiere Pro still requires host verification.
|
|
49
47
|
|
|
50
48
|
---
|
|
@@ -53,9 +51,9 @@ for complete details. Live installation in Premiere Pro still requires host veri
|
|
|
53
51
|
|
|
54
52
|
### Easiest supported path: Claude Desktop
|
|
55
53
|
|
|
56
|
-
1. Download the current [Claude Desktop bundle (`.mcpb`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.11.
|
|
54
|
+
1. Download the current [Claude Desktop bundle (`.mcpb`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.11.2/premiere-pro-mcp-1.11.2.mcpb).
|
|
57
55
|
2. In Claude Desktop, open **Settings > Extensions > Advanced settings > Install Extension**, select the downloaded bundle, and restart Claude Desktop.
|
|
58
|
-
3. Download the separate [signed Premiere connector (`.zxp`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.11.
|
|
56
|
+
3. Download the separate [signed Premiere connector (`.zxp`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.11.2/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.
|
|
59
57
|
4. Restart Premiere, open a project, then open **Window > Extensions > MCP Bridge**.
|
|
60
58
|
5. In Claude, enter: `Safely check my Premiere connection with verify_premiere_connection. Make no changes.`
|
|
61
59
|
|
|
@@ -279,11 +277,11 @@ From a clone of this repository:
|
|
|
279
277
|
```bash
|
|
280
278
|
codex plugin marketplace add .
|
|
281
279
|
codex plugin add premiere-pro@premiere-pro-mcp
|
|
282
|
-
npx -y premiere-pro-mcp@1.11.
|
|
280
|
+
npx -y premiere-pro-mcp@1.11.2 --install-cep
|
|
283
281
|
```
|
|
284
282
|
|
|
285
283
|
Restart Premiere Pro and start a new Codex session after installation. The plugin
|
|
286
|
-
launches `premiere-pro-mcp@1.11.
|
|
284
|
+
launches `premiere-pro-mcp@1.11.2` through `npx`; the separate CEP installation is
|
|
287
285
|
required because the MCP server communicates with the running Premiere host through
|
|
288
286
|
the local bridge.
|
|
289
287
|
|
|
@@ -303,7 +301,7 @@ For Claude Code, add this repository as a marketplace and install the plugin:
|
|
|
303
301
|
Then install the Premiere bridge and start a new Claude Code session:
|
|
304
302
|
|
|
305
303
|
```bash
|
|
306
|
-
npx -y premiere-pro-mcp@1.11.
|
|
304
|
+
npx -y premiere-pro-mcp@1.11.2 --install-cep
|
|
307
305
|
```
|
|
308
306
|
|
|
309
307
|
The Claude Code package lives in
|
|
@@ -342,7 +340,7 @@ installed separately.
|
|
|
342
340
|
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.
|
|
343
341
|
|
|
344
342
|
MCP `tools/list` is filtered to the active authority profile. The default
|
|
345
|
-
`inspect,edit,export,filesystem` profile advertises
|
|
343
|
+
`inspect,edit,export,filesystem` profile advertises 283 of the 285 registered
|
|
346
344
|
tools and omits `execute_extendscript` and `evaluate_expression`, which require
|
|
347
345
|
explicit `unsafe-script` authority. `ping` and `get_capabilities` remain visible
|
|
348
346
|
under every profile so a restricted or misconfigured server can still explain
|
|
@@ -383,6 +381,23 @@ capability negotiation.
|
|
|
383
381
|
- The server never uses menu automation, private APIs, clip-name heuristics, or
|
|
384
382
|
duration changes as proof that an AI operation occurred.
|
|
385
383
|
|
|
384
|
+
### Reusable project context
|
|
385
|
+
|
|
386
|
+
For projects where repeatedly inspecting clips, transcripts, audio, and timeline
|
|
387
|
+
placements is expensive, call `manage_project_context` with `action: "capture"`.
|
|
388
|
+
The local context engine indexes a bounded active-sequence snapshot, hashes native
|
|
389
|
+
project/media paths before persistence, and returns independent source, timeline,
|
|
390
|
+
and combined context revisions. Add transcript passages, shot descriptions, audio
|
|
391
|
+
observations, or editor notes once with `action: "enrich"`; ordinary trims and moves
|
|
392
|
+
update the timeline revision without discarding unchanged source analysis.
|
|
393
|
+
|
|
394
|
+
Use `search_project_context` to retrieve only evidence relevant to the current
|
|
395
|
+
editing intent. `create_context_edit_plan` returns a non-mutating candidate scaffold
|
|
396
|
+
and stale-state guards; exact identities must still be resolved and passed through
|
|
397
|
+
`preview_edit_plan` before any application. See the [project context engine guide](docs/project-context-engine.md)
|
|
398
|
+
for storage controls, privacy boundaries, invalidation behavior, and the complete
|
|
399
|
+
workflow.
|
|
400
|
+
|
|
386
401
|
### Authenticated UXP connection
|
|
387
402
|
|
|
388
403
|
The MCP server can accept a local UXP panel connection and invoke the UXP commands that are currently implemented:
|
|
@@ -468,7 +483,7 @@ The file-based IPC bridge is simple, reliable, and works across macOS and Window
|
|
|
468
483
|
|
|
469
484
|
---
|
|
470
485
|
|
|
471
|
-
## Tools (
|
|
486
|
+
## Tools (285 core total; 283 under the default profile; 331 with a connected UXP bridge)
|
|
472
487
|
|
|
473
488
|
The [complete supported-actions catalog](docs/supported-actions.md) lists every
|
|
474
489
|
registered core tool, the two tools restricted behind explicit `unsafe-script`
|
|
@@ -514,7 +529,7 @@ the tables below are a shorter workflow-oriented overview.
|
|
|
514
529
|
| `roll_edit` / `slide_edit` / `slip_edit` | Professional trim modes (QE) |
|
|
515
530
|
| `move_clip_to_track` | Move between tracks (QE) |
|
|
516
531
|
| `set_clip_speed_qe` / `reverse_clip` | Speed/reverse (QE) |
|
|
517
|
-
| `split_clip` / `trim_clip` / `move_clip` | Basic edits |
|
|
532
|
+
| `split_clip` / `trim_clip` / `move_clip` | Basic edits; trim verifies source points and visible timeline edges |
|
|
518
533
|
| `set_clip_properties` | Opacity, scale, rotation, position |
|
|
519
534
|
| `link_selection` / `unlink_selection` | Link/unlink A/V |
|
|
520
535
|
|
|
@@ -526,6 +541,24 @@ the tables below are a shorter workflow-oriented overview.
|
|
|
526
541
|
> `qeTrack.addTransition`; overlay clips remain a workaround for transitions that do not need
|
|
527
542
|
> to blend adjacent source frames. See [issue #21](https://github.com/leancoderkavy/premiere-pro-mcp/issues/21).
|
|
528
543
|
|
|
544
|
+
> **Verified track edits:** `add_track` and `add_tracks` validate requested counts and
|
|
545
|
+
> return success only when the active sequence's track counts exactly match the request.
|
|
546
|
+
> `overwrite_clip` validates both selected track indices and confirms the requested source
|
|
547
|
+
> item appears at the requested frame on a target track. On a Premiere 26.x build that
|
|
548
|
+
> ignores any of these calls, the MCP response is an error with the observed state rather
|
|
549
|
+
> than a false success. These are automated CEP contracts, not proof of a particular
|
|
550
|
+
> licensed host configuration.
|
|
551
|
+
|
|
552
|
+
`trim_clip` accepts exactly one source-relative `new_in_seconds` or `new_out_seconds` per
|
|
553
|
+
call. It refuses retimed clips because CEP cannot prove their source-to-timeline mapping, then
|
|
554
|
+
reads both source points and visible timeline start/end/duration before reporting success. The
|
|
555
|
+
default `keyframe_policy: "reject"` stops before a trim that would leave effect keyframes beyond
|
|
556
|
+
the visible clip; `keyframe_policy: "preserve"` is an explicit opt-in and reports the remaining
|
|
557
|
+
count. `split_clip` verifies a spanning clip, the expected count increase, and the left/right
|
|
558
|
+
cut boundaries. Its QE path cannot prove effect-keyframe redistribution, so a successful result
|
|
559
|
+
labels those semantics `unverified`. These are CEP contract checks, not validation in a licensed
|
|
560
|
+
Premiere Pro 26.x host.
|
|
561
|
+
|
|
529
562
|
### Effects & Color (8)
|
|
530
563
|
|
|
531
564
|
| Tool | Description |
|
|
@@ -536,6 +569,19 @@ the tables below are a shorter workflow-oriented overview.
|
|
|
536
569
|
| `apply_lut` | Apply LUT files |
|
|
537
570
|
| `stabilize_clip` | Warp Stabilizer with configurable settings |
|
|
538
571
|
|
|
572
|
+
> **Premiere 26.x component removal:** `remove_effect` and `remove_effect_by_name`
|
|
573
|
+
> require the CEP `Component.remove()` method. Some 26.x components, including
|
|
574
|
+
> Essential Sound's **Amplify**, do not expose that method. The tools return an
|
|
575
|
+
> actionable capability error and leave the component unchanged; use Effect Controls
|
|
576
|
+
> to remove it manually. The QE DOM has no safe targeted-removal fallback.
|
|
577
|
+
|
|
578
|
+
> **Essential Sound audio automation:** Essential Sound can write ducking or level
|
|
579
|
+
> automation to an **Amplify** component rather than the clip's **Volume > Level**.
|
|
580
|
+
> `adjust_audio_levels`, `set_clip_volume`, and `get_clip_volume` operate only on
|
|
581
|
+
> Volume > Level, so they do not read, change, or verify Amplify automation. Inspect
|
|
582
|
+
> the clip's components (or Effect Controls) before treating a Volume readback as the
|
|
583
|
+
> clip's final gain.
|
|
584
|
+
|
|
539
585
|
### Keyframes (8)
|
|
540
586
|
|
|
541
587
|
| Tool | Description |
|
|
@@ -694,6 +740,8 @@ Then connect with:
|
|
|
694
740
|
| `PREMIERE_DEFAULT_SEQUENCE_PRESET` | Override the auto-discovered `.sqpreset` used by `create_sequence` | auto-discovered |
|
|
695
741
|
| `PREMIERE_MCP_CAPABILITIES` | Comma-separated authority profile; add `unsafe-script` only when raw scripting is required | `inspect,edit,export,filesystem` |
|
|
696
742
|
| `PREMIERE_MCP_DEBUG` | Set to `1` (or `true`) to emit verbose server diagnostics to stderr | unset |
|
|
743
|
+
| `PREMIERE_CONTEXT_BACKEND` | Local project-context store: `auto`, `sqlite`, `json`, or `memory` | `auto` |
|
|
744
|
+
| `PREMIERE_CONTEXT_DIR` | Override the local project-context storage directory | OS application-data directory |
|
|
697
745
|
| `PORT` | HTTP port (HTTP/SSE transport only) | `3000` |
|
|
698
746
|
| `MCP_AUTH_TOKEN` | Bearer token required by the HTTP transport | unset |
|
|
699
747
|
| `ALLOW_UNAUTHENTICATED` | Set to `1` to run HTTP without auth (unsafe; throwaway instances only) | unset |
|
|
@@ -717,7 +765,7 @@ premiere-pro-mcp/
|
|
|
717
765
|
├── src/
|
|
718
766
|
│ ├── index.ts # Entry point — stdio transport setup
|
|
719
767
|
│ ├── http-server.ts # Entry point — HTTP/SSE transport (Fly.io / remote)
|
|
720
|
-
│ ├── server.ts # MCP server — registers
|
|
768
|
+
│ ├── server.ts # MCP server — registers 285 tools, filtered by authority profile
|
|
721
769
|
│ ├── bridge/
|
|
722
770
|
│ │ ├── file-bridge.ts # File-based IPC (write .jsx, poll .json)
|
|
723
771
|
│ │ └── 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.11.
|
|
2
|
+
<ExtensionManifest Version="7.0" ExtensionBundleId="com.mcp.premiere.bridge" ExtensionBundleVersion="1.11.2" ExtensionBundleName="MCP Bridge">
|
|
3
3
|
<ExtensionList>
|
|
4
|
-
<Extension Id="com.mcp.premiere.bridge.panel" Version="1.11.
|
|
5
|
-
<Extension Id="com.mcp.premiere.bridge.headless" Version="1.11.
|
|
4
|
+
<Extension Id="com.mcp.premiere.bridge.panel" Version="1.11.2"/>
|
|
5
|
+
<Extension Id="com.mcp.premiere.bridge.headless" Version="1.11.2"/>
|
|
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.11.
|
|
84
|
+
<strong id="updateTitle">Version 1.11.2</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
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export const PROJECT_CONTEXT_RESOURCE = JSON.stringify({
|
|
2
|
+
version: 1,
|
|
3
|
+
purpose: "Reuse clip, audio, transcript, shot, and timeline context without sending the full Premiere project on every model turn.",
|
|
4
|
+
workflow: [
|
|
5
|
+
"Call manage_project_context with action=capture for the active sequence.",
|
|
6
|
+
"Add expensive analysis once with action=enrich, using source_revision and timeline_revision guards when available.",
|
|
7
|
+
"Call search_project_context with the user's edit intent and only the relevant context kinds.",
|
|
8
|
+
"Use create_context_edit_plan to produce evidence candidates and expected revision guards.",
|
|
9
|
+
"Re-capture if the sequence changed, resolve exact identities, then use preview_edit_plan before apply_edit_plan.",
|
|
10
|
+
],
|
|
11
|
+
revisionRules: {
|
|
12
|
+
sourceRevision: "Changes only when captured source-media identity changes; transcript, shot, and audio enrichments are reusable while it matches.",
|
|
13
|
+
timelineRevision: "Changes when timeline placement changes; it guards plans without invalidating unchanged source analysis.",
|
|
14
|
+
contextRevision: "Covers source state, timeline state, and enrichment content.",
|
|
15
|
+
},
|
|
16
|
+
privacy: [
|
|
17
|
+
"Context is stored locally and only after an explicit tool call.",
|
|
18
|
+
"Captured native media paths are hashed before persistence and are not returned by search.",
|
|
19
|
+
"Do not store credentials, unrelated customer data, or sensitive notes that are unnecessary for editing.",
|
|
20
|
+
"Use manage_project_context action=clear when the local context is no longer needed.",
|
|
21
|
+
],
|
|
22
|
+
boundaries: [
|
|
23
|
+
"Capture indexes active-sequence structure and source identity; it does not transcribe or visually analyze footage.",
|
|
24
|
+
"Premiere transcript import/export support does not expose a documented API for starting Speech-to-Text.",
|
|
25
|
+
"create_context_edit_plan is non-mutating and does not prove that a candidate is editorially correct.",
|
|
26
|
+
"Every mutation still requires current Premiere identities, preview, authority checks, and post-state verification.",
|
|
27
|
+
],
|
|
28
|
+
}, null, 2);
|
|
29
|
+
//# sourceMappingURL=project-context-resource.js.map
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export declare const PROJECT_CONTEXT_SCHEMA_VERSION = 1;
|
|
2
|
+
export declare const MAX_CONTEXT_RECORDS = 10000;
|
|
3
|
+
export declare const MAX_CONTEXT_TEXT_LENGTH = 20000;
|
|
4
|
+
export type ProjectContextKind = "project" | "sequence" | "source" | "timeline" | "transcript" | "shot" | "audio" | "note";
|
|
5
|
+
export interface ProjectContextRecord {
|
|
6
|
+
id: string;
|
|
7
|
+
kind: ProjectContextKind;
|
|
8
|
+
name: string;
|
|
9
|
+
text: string;
|
|
10
|
+
keywords: string[];
|
|
11
|
+
sequenceId?: string;
|
|
12
|
+
sourceId?: string;
|
|
13
|
+
timelineItemId?: string;
|
|
14
|
+
startSeconds?: number;
|
|
15
|
+
endSeconds?: number;
|
|
16
|
+
trackType?: "video" | "audio";
|
|
17
|
+
trackIndex?: number;
|
|
18
|
+
sourceRevision?: string;
|
|
19
|
+
timelineRevision?: string;
|
|
20
|
+
mediaPathHash?: string;
|
|
21
|
+
metadata?: Record<string, unknown>;
|
|
22
|
+
indexedAt: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ProjectContextDocument {
|
|
25
|
+
schemaVersion: typeof PROJECT_CONTEXT_SCHEMA_VERSION;
|
|
26
|
+
projectId: string;
|
|
27
|
+
projectName: string;
|
|
28
|
+
projectPathHash?: string;
|
|
29
|
+
revision: string;
|
|
30
|
+
sourceRevision: string;
|
|
31
|
+
timelineRevision: string;
|
|
32
|
+
updatedAt: string;
|
|
33
|
+
records: ProjectContextRecord[];
|
|
34
|
+
}
|
|
35
|
+
export interface ProjectContextSummary {
|
|
36
|
+
projectId: string;
|
|
37
|
+
projectName: string;
|
|
38
|
+
revision: string;
|
|
39
|
+
sourceRevision: string;
|
|
40
|
+
timelineRevision: string;
|
|
41
|
+
recordCount: number;
|
|
42
|
+
updatedAt: string;
|
|
43
|
+
}
|
|
44
|
+
export type ContextBackendName = "sqlite" | "json" | "memory";
|
|
45
|
+
export declare function defaultProjectContextDirectory(): string;
|
|
46
|
+
export interface ProjectContextRepositoryOptions {
|
|
47
|
+
backend?: "auto" | ContextBackendName;
|
|
48
|
+
directory?: string;
|
|
49
|
+
}
|
|
50
|
+
export declare class ProjectContextRepository {
|
|
51
|
+
private readonly options;
|
|
52
|
+
private backendPromise?;
|
|
53
|
+
constructor(options?: ProjectContextRepositoryOptions);
|
|
54
|
+
private createBackend;
|
|
55
|
+
private backend;
|
|
56
|
+
backendName(): Promise<ContextBackendName>;
|
|
57
|
+
get(projectId: string): Promise<ProjectContextDocument | undefined>;
|
|
58
|
+
put(document: ProjectContextDocument): Promise<void>;
|
|
59
|
+
delete(projectId: string): Promise<boolean>;
|
|
60
|
+
list(): Promise<ProjectContextSummary[]>;
|
|
61
|
+
close(): Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
export interface ProjectContextSearchOptions {
|
|
64
|
+
query: string;
|
|
65
|
+
sequenceId?: string;
|
|
66
|
+
kinds?: ProjectContextKind[];
|
|
67
|
+
limit?: number;
|
|
68
|
+
}
|
|
69
|
+
export interface ProjectContextSearchResult {
|
|
70
|
+
score: number;
|
|
71
|
+
record: ProjectContextRecord;
|
|
72
|
+
matchedTerms: string[];
|
|
73
|
+
}
|
|
74
|
+
export declare function searchProjectContext(document: ProjectContextDocument, options: ProjectContextSearchOptions): ProjectContextSearchResult[];
|
|
75
|
+
export declare function contextRevision(sourceRevision: string, timelineRevision: string, records: ProjectContextRecord[]): string;
|
|
76
|
+
export declare function stableContextId(...parts: unknown[]): string;
|
|
77
|
+
export declare function normalizeContextText(value: unknown): string;
|
|
78
|
+
export declare function normalizeContextKeywords(value: unknown): string[];
|
|
79
|
+
//# sourceMappingURL=project-context-store.d.ts.map
|