<commit_before>
# Deployment as adobe panel - work in progress 🚧

CEP stands for [`Common Extensibility Platform`](https://www.adobe.io/apis/creativecloud/cep.html) and it's an SDK by Adobe to create panels for the Adobe suite.

It is now possible to run autoEdit as an Adobe panel. The idea is that when run inside of adobe as a CEP panel, autoEdit, will have access to same local databse as the desktop application, to allow maximum portability, and have extra acess to features to integrate with adobe premiere, such as sync play with clips in source monitor from transcriptions etc..

![Example autoEdit CEP](https://pbs.twimg.com/media/Dkg0waTW4AALCCM.jpg)

## electron vs adobe panel (vs nwjs)

It seems like adobe panel CEP and and Electron use slightly different setup of `chromium`.

> The downside is, Chromium is a very large codebase and requires very powerful machines to build. For normal laptops, that can take more than 5 hours. So this greatly impacts the number of developers that can contribute to the project, and it also makes development slower.

> In order to avoid the complexity of building all of Chromium, Electron uses libchromiumcontent to access Chromium's Content API. 

[from electron's docs](https://electronjs.org/blog/electron-internals-building-chromium-as-a-library) and [here](https://electronjs.org/docs/development/atom-shell-vs-node-webkit)

The main difference is noticeable when calling `window.process.versions` in the console for CEP and for electron.

Due to some of these differences the code base for autoEdit has been adjusted to accomodate and target for the two enviroments.

## Dev enviroment needed for CEP

- node
- npm 
- You need to have recent version of [Adobe Premiere](https://www.adobe.com/products/premiere.html) on your system
- Chrome browser to view the dev tools for the CEP panel 
- [See here fore more details on JSX language](https://jsx.github.io/doc/tutorial.html) used to interact with Adobe Premiere API and [here](https://jsx.github.io/)

## setup 

<!-- [Get setup instructions and panel explanation here](https://github.com/pickercenter/autoedit-panel) -->

The main code for the adobe panel is in [`adobe-panel-src`](./adobe-panel-src) folder.

At a mimum the files needed in that folder for the CEP panel are 

- The `.debug` file is necessary to get the chrome dev tools
- the `manifest.xml` is really the important part, its what loads the `index.html` and `jsx` file
- `index.html` entry point into the app
    -  We use autoEdit's `electron/index.html` for this
- `jsx/Premiere.jsx` contains APIs to communicate to Adobe Premiere 


However will see section below for an automated build development step to achieve this programmatically
<commit_msg>made a note premiere version<commit_after>
# Deployment as adobe panel - work in progress 🚧

CEP stands for [`Common Extensibility Platform`](https://www.adobe.io/apis/creativecloud/cep.html) and it's an SDK by Adobe to create panels for the Adobe suite.

It is now possible to run autoEdit as an Adobe panel. The idea is that when run inside of adobe as a CEP panel, autoEdit, will have access to same local databse as the desktop application, to allow maximum portability, and have extra acess to features to integrate with adobe premiere, such as sync play with clips in source monitor from transcriptions etc..

![Example autoEdit CEP](https://pbs.twimg.com/media/Dkg0waTW4AALCCM.jpg)

## electron vs adobe panel (vs nwjs)

It seems like adobe panel CEP and and Electron use slightly different setup of `chromium`.

> The downside is, Chromium is a very large codebase and requires very powerful machines to build. For normal laptops, that can take more than 5 hours. So this greatly impacts the number of developers that can contribute to the project, and it also makes development slower.

> In order to avoid the complexity of building all of Chromium, Electron uses libchromiumcontent to access Chromium's Content API. 

[from electron's docs](https://electronjs.org/blog/electron-internals-building-chromium-as-a-library) and [here](https://electronjs.org/docs/development/atom-shell-vs-node-webkit)

The main difference is noticeable when calling `window.process.versions` in the console for CEP and for electron.

Due to some of these differences the code base for autoEdit has been adjusted to accomodate and target for the two enviroments.

## Dev enviroment needed for CEP

- node
- npm 
- You need to have recent version of [Adobe Premiere](https://www.adobe.com/products/premiere.html) on your system. Version `12.11` to ensure compatibility with all features.
- Chrome browser to view the dev tools for the CEP panel 
- [See here fore more details on JSX language](https://jsx.github.io/doc/tutorial.html) used to interact with Adobe Premiere API and [here](https://jsx.github.io/)

## setup 

<!-- [Get setup instructions and panel explanation here](https://github.com/pickercenter/autoedit-panel) -->

The main code for the adobe panel is in [`adobe-panel-src`](./adobe-panel-src) folder.

At a mimum the files needed in that folder for the CEP panel are 

- The `.debug` file is necessary to get the chrome dev tools
- the `manifest.xml` is really the important part, its what loads the `index.html` and `jsx` file
- `index.html` entry point into the app
    -  We use autoEdit's `electron/index.html` for this
- `jsx/Premiere.jsx` contains APIs to communicate to Adobe Premiere 


However will see section below for an automated build development step to achieve this programmatically

{'fraction_non_alphanumeric': 0.07422792125699837, 'fraction_numerical': 0.0018060321473722233, 'mean_word_length': 4.274285714285714, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 9, 'https://': 16, 'lorem ipsum': 0, 'www.': 4, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3482644', 'n_tokens_mistral': 1594, 'n_tokens_neox': 1496, 'n_words': 740}