aivee 0.1.0-alpha.0 โ†’ 0.1.0-dev.59872e1

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.
Files changed (74) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/LICENSE +21 -21
  3. package/README.md +120 -118
  4. package/docs/architecture.md +401 -401
  5. package/docs/aspect-ratio-presets.md +72 -72
  6. package/docs/releasing.md +19 -19
  7. package/docs/usage.md +1193 -1193
  8. package/package.json +52 -52
  9. package/requirements-otio.txt +1 -1
  10. package/src/capabilities.mjs +307 -307
  11. package/src/cli.mjs +646 -646
  12. package/src/doctor.mjs +133 -133
  13. package/src/edits/analysis-to-edl.mjs +43 -43
  14. package/src/edits/detect-silence.mjs +51 -51
  15. package/src/edits/find-mistake-candidates.mjs +42 -42
  16. package/src/edits/plan-shot-placements.mjs +105 -105
  17. package/src/edits/plan-silence-cuts.mjs +49 -49
  18. package/src/edits/retime-transcript.mjs +105 -105
  19. package/src/files.mjs +80 -80
  20. package/src/index.mjs +44 -44
  21. package/src/interchange/otio.mjs +204 -204
  22. package/src/interchange/otio_bridge.py +521 -521
  23. package/src/media/analysis-provider.mjs +75 -75
  24. package/src/media/compatibility.mjs +45 -45
  25. package/src/media/ffmpeg-capabilities.mjs +129 -129
  26. package/src/media/frame-rate.mjs +58 -58
  27. package/src/media/frame-time.mjs +22 -22
  28. package/src/media/preview-assets.mjs +350 -350
  29. package/src/media/probe.mjs +149 -149
  30. package/src/media/render-cuts.mjs +90 -90
  31. package/src/media/scene-detection.mjs +107 -107
  32. package/src/media/scene-review.mjs +205 -205
  33. package/src/project/assets.mjs +1194 -1194
  34. package/src/project/create.mjs +100 -100
  35. package/src/project/presets.mjs +44 -44
  36. package/src/render/checkpoints.mjs +192 -192
  37. package/src/render/formats.mjs +163 -163
  38. package/src/render/hyperframes.mjs +590 -590
  39. package/src/render/process.mjs +111 -111
  40. package/src/render/progress.mjs +46 -46
  41. package/src/render/timeline-control.mjs +53 -53
  42. package/src/timeline/assemble.mjs +119 -119
  43. package/src/timeline/audio-effects.mjs +75 -75
  44. package/src/timeline/audio-mastering.mjs +236 -236
  45. package/src/timeline/audio-mix.mjs +105 -105
  46. package/src/timeline/audio-track-effects.mjs +139 -139
  47. package/src/timeline/audio-volume.mjs +63 -63
  48. package/src/timeline/background.mjs +8 -8
  49. package/src/timeline/blend-mode.mjs +34 -34
  50. package/src/timeline/caption-layouts.mjs +62 -61
  51. package/src/timeline/captions.mjs +80 -80
  52. package/src/timeline/edit.mjs +965 -965
  53. package/src/timeline/fingerprint.mjs +6 -6
  54. package/src/timeline/from-edl.mjs +31 -31
  55. package/src/timeline/history-store.mjs +281 -281
  56. package/src/timeline/history.mjs +69 -69
  57. package/src/timeline/inspect.mjs +117 -117
  58. package/src/timeline/keyframes.mjs +158 -158
  59. package/src/timeline/layers.mjs +18 -18
  60. package/src/timeline/mask.mjs +53 -53
  61. package/src/timeline/project.mjs +52 -52
  62. package/src/timeline/render.mjs +759 -759
  63. package/src/timeline/sidechain-render.mjs +209 -209
  64. package/src/timeline/source-fit.mjs +15 -15
  65. package/src/timeline/speech-bubble.mjs +26 -26
  66. package/src/timeline/speed-ramp.mjs +188 -188
  67. package/src/timeline/track-state.mjs +22 -22
  68. package/src/timeline/transition.mjs +34 -34
  69. package/src/timeline/validate.mjs +322 -322
  70. package/src/transcript/corrections.mjs +21 -21
  71. package/src/transcript/normalize.mjs +17 -17
  72. package/src/transcript/provider.mjs +42 -42
  73. package/src/transcript/subtitles.mjs +57 -57
  74. package/src/transcript/validate.mjs +39 -39
package/CHANGELOG.md ADDED
@@ -0,0 +1,34 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+
11
+ ## [0.1.0] - 2026-11-09
12
+
13
+ ### Added
14
+
15
+ - add speech bubble caption preset (#10)
16
+ - prepare AIVEE CLI and dual-registry releases (#7)
17
+ - build generic video editing engine capabilities (#1)
18
+ - add the AI video editing engine and project handoff
19
+
20
+ ### Changed
21
+
22
+ - use build flow action v1.0.2
23
+ - fix artifacts and caption preset (#14)
24
+ - publish build flow artifacts on all triggers (#13)
25
+ - use npm trusted publishing (#12)
26
+ - fix Build Flow permissions and setup
27
+ - clarify npm token setup (#9)
28
+ - use NPM_TOKEN for initial publish (#8)
29
+ - optimize README with banner and support status (#3)
30
+
31
+ ### Removed
32
+
33
+ - move character tools to Studio
34
+
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Waren Gonzaga
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Waren Gonzaga
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,118 +1,120 @@
1
- # AIVEE
2
-
3
- <p align="center">
4
- <img src="https://ghrb.waren.build/render/banner?header=AIVEE&amp;subheader=AI%20Video%20Editing%20Engine%20for%20AI%20workflows&amp;bg=0D1117-1B2B4B&amp;color=F0F6FC&amp;subheadercolor=C7D2E5&amp;headerfont=Inter&amp;subheaderfont=Inter" alt="AIVEE โ€” AI Video Editing Engine for AI workflows">
5
- </p>
6
-
7
- <p align="center">
8
- <strong>A local-first video editing CLI and API for AI workflows.</strong><br>
9
- Build timelines, review edits, compose layers, and render with Node.js.
10
- </p>
11
-
12
- ## โœจ Features
13
-
14
- - **Generic timeline:** editable video, audio, and overlay tracks with validated clips, transitions, keyframes, masks, speech-bubble captions, and other overlays.
15
- - **Media workflow:** register and verify assets, create proxies and previews, inspect scenes, and plan reviewable B-roll edits.
16
- - **Audio and transcripts:** retime word-level transcripts, mix and master audio, apply fades and ducking, and export subtitle files.
17
- - **Rendering:** render MP4, WebM, MOV, GIF, or PNG sequences with progress, cancellation, output checks, and resumable capture checkpoints.
18
- - **Interchange and animation:** optional OpenTimelineIO support, generic timed image layers, and keyframes. Avatar art and speech-driven character animation are owned by consuming studios such as [Explainer Studio](https://github.com/warengonzaga/explainer-studio).
19
- - **AI-ready interfaces:** use the same versioned timeline through the CLI or JavaScript API; proposed content cuts remain reviewable before application.
20
-
21
- ## ๐Ÿ–ฅ๏ธ Platform Support
22
-
23
- Windows and Linux are supported. Windows has a local test and render-smoke
24
- baseline. Linux passed all 137 tests, the full render smoke, and the production
25
- dependency audit in a Debian Bookworm Docker container with Node.js 22, FFmpeg,
26
- and the HyperFrames headless browser. Container rendering used software
27
- graphics.
28
-
29
- macOS is not officially supported yet. The repository has a manual macOS
30
- workflow option, but native Mac validation is still required. Follow
31
- [issue #2](https://github.com/warengonzaga/ai-video-editing-engine/issues/2) for
32
- that work.
33
-
34
- ## ๐Ÿš€ Getting Started
35
-
36
- ### Requirements
37
-
38
- - Node.js 22 or newer
39
- - FFmpeg and ffprobe
40
- - HyperFrames browser runtime for rendering
41
- - Python and OpenTimelineIO only for timeline interchange
42
-
43
- ### Install and check the local toolchain
44
-
45
- ```sh
46
- npm install
47
- npm run doctor
48
- node src/cli.mjs capabilities
49
- ```
50
-
51
- Create a project and list the supported canvas presets:
52
-
53
- ```sh
54
- npm run new-video -- vertical-video 1080x1920 30 15
55
- node src/cli.mjs presets list
56
- ```
57
-
58
- After the first release, install the CLI from npm with:
59
-
60
- ```sh
61
- npm install --global aivee
62
- aivee doctor
63
- ```
64
-
65
- The CLI command is `aivee`. The release workflow publishes the unscoped npm
66
- package `aivee` and the owner-scoped GitHub Packages package
67
- `@warengonzaga/aivee`. Neither package has been published yet. The first release
68
- requires a repository `NPM_TOKEN` with npm publish access and GitHub Actions
69
- package-write permission.
70
- See the [release guide](docs/releasing.md) for the one-time setup.
71
-
72
- ## ๐Ÿ“– Usage
73
-
74
- Start with the [Video Editing Usage Guide](docs/usage.md) for project creation,
75
- media registration, editing operations, rendering, transcripts, and
76
- OpenTimelineIO interchange.
77
-
78
- Related references:
79
-
80
- - [Aspect ratio presets](docs/aspect-ratio-presets.md)
81
- - [Architecture and API boundaries](docs/architecture.md)
82
-
83
- ## ๐Ÿงช Development and Validation
84
-
85
- Run the automated checks from the repository root:
86
-
87
- ```sh
88
- npm test
89
- npm run test:render-smoke
90
- npm audit --omit=dev
91
- ```
92
-
93
- GitHub Actions are manual-trigger only. Use the platform selector for Linux,
94
- Windows, macOS, or the full matrix. A native macOS run is still required before
95
- claiming Mac support.
96
-
97
- ## ๐Ÿค Contributing
98
-
99
- Use short-lived feature branches from `dev` and open pull requests targeting
100
- `dev`. Follow the repository's Clean Commit format and keep changes focused. Do
101
- not create a `dev`-to-`main` pull request without a release decision.
102
-
103
- ## ๐Ÿ› Issues & Support
104
-
105
- Report defects, request capabilities, or track platform validation through
106
- [GitHub Issues](https://github.com/warengonzaga/ai-video-editing-engine/issues).
107
- See [issue #2](https://github.com/warengonzaga/ai-video-editing-engine/issues/2)
108
- for native macOS support validation.
109
-
110
- ## ๐Ÿ“„ License
111
-
112
- AIVEE (AI Video Editing Engine) is licensed under the [MIT License](LICENSE). Third-party
113
- dependencies retain their respective licenses.
114
-
115
- ## ๐Ÿ‘ฅ Authors & Contributors
116
-
117
- Created and maintained by [Waren Gonzaga](https://github.com/warengonzaga) and
118
- contributors.
1
+ # AIVEE
2
+
3
+ <p align="center">
4
+ <img src="https://ghrb.waren.build/render/banner?header=AIVEE&amp;subheader=AI%20Video%20Editing%20Engine%20for%20AI%20workflows&amp;bg=0D1117-1B2B4B&amp;color=F0F6FC&amp;subheadercolor=C7D2E5&amp;headerfont=Inter&amp;subheaderfont=Inter" alt="AIVEE โ€” AI Video Editing Engine for AI workflows">
5
+ </p>
6
+
7
+ <p align="center">
8
+ <strong>A local-first video editing CLI and API for AI workflows.</strong><br>
9
+ Build timelines, review edits, compose layers, and render with Node.js.
10
+ </p>
11
+
12
+ ## โœจ Features
13
+
14
+ - **Generic timeline:** editable video, audio, and overlay tracks with validated clips, transitions, keyframes, masks, speech-bubble captions, and other overlays.
15
+ - **Media workflow:** register and verify assets, create proxies and previews, inspect scenes, and plan reviewable B-roll edits.
16
+ - **Audio and transcripts:** retime word-level transcripts, mix and master audio, apply fades and ducking, and export subtitle files.
17
+ - **Rendering:** render MP4, WebM, MOV, GIF, or PNG sequences with progress, cancellation, output checks, and resumable capture checkpoints.
18
+ - **Interchange and animation:** optional OpenTimelineIO support, generic timed image layers, and keyframes. Avatar art and speech-driven character animation are owned by consuming studios such as [Explainer Studio](https://github.com/warengonzaga/explainer-studio).
19
+ - **AI-ready interfaces:** use the same versioned timeline through the CLI or JavaScript API; proposed content cuts remain reviewable before application.
20
+
21
+ ## ๐Ÿ–ฅ๏ธ Platform Support
22
+
23
+ Windows and Linux are supported. Windows has a local test and render-smoke
24
+ baseline. Linux passed all 137 tests, the full render smoke, and the production
25
+ dependency audit in a Debian Bookworm Docker container with Node.js 22, FFmpeg,
26
+ and the HyperFrames headless browser. Container rendering used software
27
+ graphics.
28
+
29
+ macOS is not officially supported yet. The repository has a manual macOS
30
+ workflow option, but native Mac validation is still required. Follow
31
+ [issue #2](https://github.com/warengonzaga/ai-video-editing-engine/issues/2) for
32
+ that work.
33
+
34
+ ## ๐Ÿš€ Getting Started
35
+
36
+ ### Requirements
37
+
38
+ - Node.js 22 or newer
39
+ - FFmpeg and ffprobe
40
+ - HyperFrames browser runtime for rendering
41
+ - Python and OpenTimelineIO only for timeline interchange
42
+
43
+ ### Install and check the local toolchain
44
+
45
+ ```sh
46
+ npm install
47
+ npm run doctor
48
+ node src/cli.mjs capabilities
49
+ ```
50
+
51
+ Create a project and list the supported canvas presets:
52
+
53
+ ```sh
54
+ npm run new-video -- vertical-video 1080x1920 30 15
55
+ node src/cli.mjs presets list
56
+ ```
57
+
58
+ After the first release, install the CLI from npm with:
59
+
60
+ ```sh
61
+ npm install --global aivee
62
+ aivee doctor
63
+ ```
64
+
65
+ The CLI command is `aivee`. The release workflow publishes the unscoped npm
66
+ package `aivee` and the owner-scoped GitHub Packages package
67
+ `@warengonzaga/aivee`. npm publishing uses trusted publishing through GitHub
68
+ Actions OIDC, so no `NPM_TOKEN` secret is needed. Package artifacts are also
69
+ published for pull requests, `dev` pushes, and manual workflow runs. See the
70
+ [release guide](docs/releasing.md) for the one-time setup.
71
+
72
+ ## ๐Ÿ“– Usage
73
+
74
+ Start with the [Video Editing Usage Guide](docs/usage.md) for project creation,
75
+ media registration, editing operations, rendering, transcripts, and
76
+ OpenTimelineIO interchange.
77
+
78
+ Related references:
79
+
80
+ - [Aspect ratio presets](docs/aspect-ratio-presets.md)
81
+ - [Architecture and API boundaries](docs/architecture.md)
82
+
83
+ ## ๐Ÿงช Development and Validation
84
+
85
+ Run the automated checks from the repository root:
86
+
87
+ ```sh
88
+ npm test
89
+ npm run test:render-smoke
90
+ npm audit --omit=dev
91
+ ```
92
+
93
+ Build Flow runs on pull requests targeting `dev` or `main`, pushes to `dev` or
94
+ `main`, and manual dispatch. Its package artifacts publish on pull requests,
95
+ `dev` pushes, and manual runs. The separate platform-validation workflow is
96
+ manual-trigger only; use its selector for Linux, Windows, macOS, or the full
97
+ matrix. A native macOS run is still required before claiming Mac support.
98
+
99
+ ## ๐Ÿค Contributing
100
+
101
+ Use short-lived feature branches from `dev` and open pull requests targeting
102
+ `dev`. Follow the repository's Clean Commit format and keep changes focused. Do
103
+ not create a `dev`-to-`main` pull request without a release decision.
104
+
105
+ ## ๐Ÿ› Issues & Support
106
+
107
+ Report defects, request capabilities, or track platform validation through
108
+ [GitHub Issues](https://github.com/warengonzaga/ai-video-editing-engine/issues).
109
+ See [issue #2](https://github.com/warengonzaga/ai-video-editing-engine/issues/2)
110
+ for native macOS support validation.
111
+
112
+ ## ๐Ÿ“„ License
113
+
114
+ AIVEE (AI Video Editing Engine) is licensed under the [MIT License](LICENSE). Third-party
115
+ dependencies retain their respective licenses.
116
+
117
+ ## ๐Ÿ‘ฅ Authors & Contributors
118
+
119
+ Created and maintained by [Waren Gonzaga](https://github.com/warengonzaga) and
120
+ contributors.