Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
3df9b68
Remove all legacy files.
sebinside May 3, 2026
486343d
Add minimal plugin.
sebinside May 4, 2026
68384f7
Vibe initial new plugin UI.
sebinside May 4, 2026
ad1eb3e
Move to TS and add proper build env.
sebinside May 10, 2026
6b24473
Add UXP packaging script.
sebinside May 10, 2026
6fa01fb
Cleanup plugin structure.
sebinside May 10, 2026
81c21f3
Remove global types.
sebinside May 10, 2026
a083f25
Finish initial UI.
sebinside May 11, 2026
cfcb565
Switch to pnpm.
sebinside May 11, 2026
4c137aa
Add status presets.
sebinside May 11, 2026
4217452
Add dev container.
sebinside May 11, 2026
c3d9cbd
Add sample.
sebinside May 13, 2026
373b6e8
Update dependencies.
sebinside May 14, 2026
54a92df
Rewrite build logic, add generator stub.
sebinside May 14, 2026
afcf91b
Adjust linting and formatting.
sebinside May 14, 2026
0814154
Add initial generator impl.
sebinside May 14, 2026
a84c549
LintnFormat.
sebinside May 14, 2026
9b5d327
Adjust package preparation.
sebinside May 14, 2026
1b17e15
Generator cleanup.
sebinside May 14, 2026
1e1c0b3
Add uxp ws client.
sebinside May 14, 2026
8fa914f
Adjust messages.
sebinside May 14, 2026
8dbd281
Dirty vibe the server to see whats possible.
sebinside May 14, 2026
229aa88
Add general Dockerfile and docker compose
sebinside May 14, 2026
6c42d2f
Add more powerful function to commons to demonstrate its capabilities.
sebinside May 16, 2026
3dfdecc
Remove global pnpm lock
sebinside Jun 13, 2026
881f590
Simplify general API. Fix faulty generator type warning. Fix faulty e…
sebinside Jun 13, 2026
5a820c9
Replace types file by official type depencency.
sebinside Jun 13, 2026
374866a
Adjust checking format, types, and linting.
sebinside Jun 21, 2026
9a5f6ae
Refactor uxp plugin core.
sebinside Jun 22, 2026
1205f59
Automated code base refactoring to enable testability.
sebinside Jun 22, 2026
3a06542
Vibe initial tests.
sebinside Jun 22, 2026
848f623
Add github action.
sebinside Jun 22, 2026
55956f0
Add generate api step.
sebinside Jun 22, 2026
c88e4e3
Fix endless nodemon loop.
sebinside Jun 22, 2026
8b0ce67
Refactor buildArgs
sebinside Jun 25, 2026
17779d0
Add TODO comments to server.
sebinside Jun 25, 2026
798d27d
Move uxp plugin to client folder.
sebinside Jun 28, 2026
8e74c95
Clean up client code.
sebinside Jun 28, 2026
dc0cd29
Clean up generate-api tests.
sebinside Jun 28, 2026
3d4f000
Refactor generate-api.js
sebinside Jun 28, 2026
6573bf6
Clean up ws client tests.
sebinside Jun 28, 2026
925fd4b
Change ws and http ports.
sebinside Jun 29, 2026
0d2ca1b
Extract types into own package.
sebinside Jun 29, 2026
b0698ae
Refactor server (without tests, yolo).
sebinside Jun 29, 2026
9410663
Vibe ws and mcp server.
sebinside Jul 1, 2026
1b45384
fix docker file
Tomshiii Aug 11, 2026
b67f5fc
fix bundle build error
Tomshiii Aug 11, 2026
c7adee1
fix server crashing
Tomshiii Aug 13, 2026
a9d17d9
Vibe fix MCP server.
sebinside Sep 6, 2026
cda5322
Vibe refactor http, mcp, and ws server.
sebinside Sep 13, 2026
e29eabf
Add claude support to dev container.
sebinside Sep 13, 2026
cc62654
Also bind claude.json
sebinside Sep 16, 2026
8eab174
Unify error message handling.
sebinside Sep 16, 2026
9de0b6a
Handle web server error and exit.
sebinside Sep 16, 2026
8c1e391
Fix ws server error handling.
sebinside Sep 16, 2026
9571646
Vibe server testing.
sebinside Sep 16, 2026
0151651
Improve tests.
sebinside Sep 16, 2026
3005248
Rename client github yml
sebinside Sep 16, 2026
1384cf4
Merge pull request #52 from Tomshiii/uxp
sebinside Sep 16, 2026
cb3ac08
Add DinD-based e2e smoke test.
sebinside Sep 16, 2026
f6f4634
Add dependabot.
sebinside Sep 16, 2026
49cc31f
Human review and refactoring of index.ts
sebinside Sep 16, 2026
8098bc4
Human review and refactoring of shared config.
sebinside Sep 16, 2026
58d340c
Fix format.
sebinside Sep 16, 2026
0caec59
Human review of openapioperations.
sebinside Sep 17, 2026
8be872a
Improve logging.
sebinside Sep 17, 2026
324514c
Fix source type duplication.
sebinside Sep 17, 2026
c5e350a
Human review of logging.
sebinside Sep 18, 2026
b7f3340
Human review of http server.
sebinside Sep 18, 2026
e60c888
Extract common server structure.
sebinside Sep 18, 2026
21e8d54
Unify server files structure. Remove cors. Fix mcp server naming.
sebinside Sep 18, 2026
3228981
Human review of mcp server.
sebinside Sep 18, 2026
f9bb1cb
Human review of uxp bridge.
sebinside Sep 18, 2026
5700f0f
Human review of ws server.
sebinside Sep 18, 2026
9c013c5
Fix a potential issue with multiple Premiere instances.
sebinside Sep 18, 2026
3d02d37
Fix format.
sebinside Sep 18, 2026
63b9ab4
Extract common validation code.
sebinside Sep 18, 2026
4301d9e
Also forward other relevant ports.
sebinside Sep 18, 2026
35b5b11
Add minimal playground function.
sebinside Sep 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 0 additions & 18 deletions .debug

This file was deleted.

7 changes: 7 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM mcr.microsoft.com/devcontainers/typescript-node:24

RUN npm install -g pnpm@latest

USER node
WORKDIR /workspaces/PremiereRemote
EXPOSE 42400
9 changes: 9 additions & 0 deletions .devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:4": {
"version": "4.1.1",
"resolved": "ghcr.io/devcontainers/features/docker-in-docker@sha256:2b44bcb32e75d5a3c028479f7f957cf7d5e42d81761373025a8d501dd3748f88",
"integrity": "sha256:2b44bcb32e75d5a3c028479f7f957cf7d5e42d81761373025a8d501dd3748f88"
}
}
}
30 changes: 30 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"name": "PremiereRemote Dev Container",
"build": {
"dockerfile": "Dockerfile"
},
"postCreateCommand": ".devcontainer/post-install.sh",
"postAttachCommand": ".devcontainer/post-attach.sh",
"initializeCommand": "mkdir -p \"${localEnv:HOME}/.claude\" && touch \"${localEnv:HOME}/.claude.json\"",
"forwardPorts": [42400, 42401, 42402, 42403],
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:4": {
"moby": false
}
},
"runArgs": ["--privileged"],
"customizations": {
"vscode": {
"extensions": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"
]
}
},
"mounts": [
"source=${env:HOME}/.ssh,target=/home/node/.ssh,type=bind,readonly",
"source=${env:HOME}/.gitconfig,target=/home/node/.gitconfig,type=bind,readonly",
"source=${env:HOME}/.claude,target=/home/node/.claude,type=bind",
"source=${env:HOME}/.claude.json,target=/home/node/.claude.json,type=bind"
]
}
9 changes: 9 additions & 0 deletions .devcontainer/post-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash

# Prepare UXP plugin
cd client
pnpm install -y

# Prepare server
cd ../server
pnpm install -y
8 changes: 8 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.git/

client/node_modules/
client/build/

server/node_modules/
server/dist/

31 changes: 31 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/client"
schedule:
interval: "weekly"

- package-ecosystem: "npm"
directory: "/server"
schedule:
interval: "weekly"

- package-ecosystem: "npm"
directory: "/e2e"
schedule:
interval: "weekly"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"

- package-ecosystem: "docker"
directory: "/.devcontainer"
schedule:
interval: "weekly"
52 changes: 52 additions & 0 deletions .github/workflows/client.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: UXP Client CI

on:
push:
branches: [main]
paths:
- "client/**"
pull_request:
paths:
- "client/**"

jobs:
ci:
name: UXP Client
runs-on: ubuntu-latest
defaults:
run:
working-directory: client

steps:
- uses: actions/checkout@v7

- uses: pnpm/action-setup@v6
with:
version: 11

- uses: actions/setup-node@v6
with:
node-version: 24
cache: pnpm
cache-dependency-path: client/pnpm-lock.yaml

- name: Install dependencies
run: pnpm install

- name: Generate API
run: pnpm run generate-api

- name: Check formatting
run: pnpm run check-format

- name: Lint
run: pnpm run check-lint

- name: Type check
run: pnpm run check-types

- name: Build
run: pnpm run build

- name: Test
run: pnpm run test
47 changes: 47 additions & 0 deletions .github/workflows/docker-e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Docker E2E

on:
push:
branches: [main]
paths:
- "Dockerfile"
- "compose.yaml"
- "client/**"
- "server/**"
- "shared/**"
- "e2e/**"
pull_request:
paths:
- "Dockerfile"
- "compose.yaml"
- "client/**"
- "server/**"
- "shared/**"
- "e2e/**"

jobs:
ci:
name: Docker E2E
runs-on: ubuntu-latest
defaults:
run:
working-directory: e2e

steps:
- uses: actions/checkout@v7

- uses: pnpm/action-setup@v6
with:
version: 11

- uses: actions/setup-node@v6
with:
node-version: 24
cache: pnpm
cache-dependency-path: e2e/pnpm-lock.yaml

- name: Install dependencies
run: pnpm install

- name: Run Docker smoke test
run: pnpm run test
49 changes: 49 additions & 0 deletions .github/workflows/server.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Server CI

on:
push:
branches: [main]
paths:
- "server/**"
pull_request:
paths:
- "server/**"

jobs:
ci:
name: Server
runs-on: ubuntu-latest
defaults:
run:
working-directory: server

steps:
- uses: actions/checkout@v7

- uses: pnpm/action-setup@v6
with:
version: 11

- uses: actions/setup-node@v6
with:
node-version: 24
cache: pnpm
cache-dependency-path: server/pnpm-lock.yaml

- name: Install dependencies
run: pnpm install

- name: Check formatting
run: pnpm run check-format

- name: Lint
run: pnpm run check-lint

- name: Type check
run: pnpm run check-types

- name: Build
run: pnpm run build

- name: Test
run: pnpm run test
12 changes: 8 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
.vscode/
.pnpm-store/
node_modules/
.idea/
jquery.min.js
host/build/
plugin/

client/build/
client/src/generated/

server/openapi.json
server/dist
44 changes: 0 additions & 44 deletions CSXS/manifest.xml

This file was deleted.

55 changes: 55 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# 1. Generate openapi.json from UXP plugin
FROM node:lts-alpine AS api-gen
RUN corepack enable
WORKDIR /app

COPY client/package.json client/pnpm-lock.yaml client/pnpm-workspace.yaml ./client/
COPY shared/ ./shared/
RUN cd client && pnpm install --frozen-lockfile


COPY client/scripts/generate-api.js ./client/scripts/
COPY client/src/actions/ ./client/src/actions/
RUN cd client && node scripts/generate-api.js

# 2. Copy openapi.json to build the server image
FROM node:lts-alpine AS builder
RUN corepack enable
WORKDIR /app

COPY server/package.json server/pnpm-lock.yaml server/pnpm-workspace.yaml ./
COPY shared/ /shared/
RUN pnpm install --frozen-lockfile

COPY server/tsconfig.json server/tsconfig.build.json ./
COPY server/src/ ./src/
COPY --from=api-gen /app/server/openapi.json ./openapi.json
RUN pnpm run build

# Create a minimal runtime image
FROM node:lts-alpine

# Use tini to fixe Ctrl+Cl handling in container
RUN apk add --no-cache tini

RUN corepack enable
WORKDIR /app

COPY server/package.json server/pnpm-lock.yaml server/pnpm-workspace.yaml ./
COPY shared/ /shared/
RUN pnpm install --frozen-lockfile --prod

COPY --from=builder /app/dist ./dist/
COPY --from=api-gen /app/server/openapi.json ./openapi.json

# HTTP API
EXPOSE 42400
# WebSocket (UXP plugin)
EXPOSE 42401
# WebSocket (external clients)
EXPOSE 42402
# MCP server
EXPOSE 42403

ENTRYPOINT ["/sbin/tini", "--"]
CMD ["node", "dist/index.js"]
2 changes: 2 additions & 0 deletions client/.npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Required because the UXP packager cannot handle symlinks (lol).
node-linker=hoisted
1 change: 1 addition & 0 deletions client/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
src/generated/
3 changes: 3 additions & 0 deletions client/.prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"tabWidth": 4
}
Loading
Loading