@aura3d/engine 1.0.9 → 1.1.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.
Files changed (434) hide show
  1. package/README.md +46 -15
  2. package/dist/animation/AnimationClipRegistry.d.ts +16 -0
  3. package/dist/animation/AnimationClipRegistry.d.ts.map +1 -1
  4. package/dist/animation/AnimationClipRegistry.js +42 -0
  5. package/dist/animation/AnimationClipRegistry.js.map +1 -1
  6. package/dist/animation/AnimationController.d.ts +15 -0
  7. package/dist/animation/AnimationController.d.ts.map +1 -1
  8. package/dist/animation/AnimationController.js +28 -0
  9. package/dist/animation/AnimationController.js.map +1 -1
  10. package/dist/animation/AnimationStateGraph.d.ts +11 -1
  11. package/dist/animation/AnimationStateGraph.d.ts.map +1 -1
  12. package/dist/animation/AnimationStateGraph.js +50 -1
  13. package/dist/animation/AnimationStateGraph.js.map +1 -1
  14. package/dist/animation/HumanoidRetargeting.d.ts +13 -0
  15. package/dist/animation/HumanoidRetargeting.d.ts.map +1 -1
  16. package/dist/animation/HumanoidRetargeting.js +43 -0
  17. package/dist/animation/HumanoidRetargeting.js.map +1 -1
  18. package/dist/animation/MotionQuality.d.ts +6 -0
  19. package/dist/animation/MotionQuality.d.ts.map +1 -1
  20. package/dist/animation/MotionQuality.js +16 -0
  21. package/dist/animation/MotionQuality.js.map +1 -1
  22. package/dist/animation/browser-index.d.ts +2 -2
  23. package/dist/animation/browser-index.d.ts.map +1 -1
  24. package/dist/animation/browser-index.js +1 -1
  25. package/dist/animation/browser-index.js.map +1 -1
  26. package/dist/animation/index.d.ts +2 -2
  27. package/dist/animation/index.d.ts.map +1 -1
  28. package/dist/animation/index.js +1 -1
  29. package/dist/animation/index.js.map +1 -1
  30. package/dist/audio/AudioBus.d.ts +2 -0
  31. package/dist/audio/AudioBus.d.ts.map +1 -1
  32. package/dist/audio/AudioBus.js +6 -0
  33. package/dist/audio/AudioBus.js.map +1 -1
  34. package/dist/audio/AudioFileManager.d.ts +77 -0
  35. package/dist/audio/AudioFileManager.d.ts.map +1 -0
  36. package/dist/audio/AudioFileManager.js +168 -0
  37. package/dist/audio/AudioFileManager.js.map +1 -0
  38. package/dist/audio/AudioMixer.d.ts +43 -0
  39. package/dist/audio/AudioMixer.d.ts.map +1 -1
  40. package/dist/audio/AudioMixer.js +43 -0
  41. package/dist/audio/AudioMixer.js.map +1 -1
  42. package/dist/audio/AudioTimelineTrack.d.ts +135 -0
  43. package/dist/audio/AudioTimelineTrack.d.ts.map +1 -0
  44. package/dist/audio/AudioTimelineTrack.js +356 -0
  45. package/dist/audio/AudioTimelineTrack.js.map +1 -0
  46. package/dist/audio/AudioWaveform.d.ts +64 -0
  47. package/dist/audio/AudioWaveform.d.ts.map +1 -0
  48. package/dist/audio/AudioWaveform.js +146 -0
  49. package/dist/audio/AudioWaveform.js.map +1 -0
  50. package/dist/audio/index.d.ts +8 -1
  51. package/dist/audio/index.d.ts.map +1 -1
  52. package/dist/audio/index.js +4 -1
  53. package/dist/audio/index.js.map +1 -1
  54. package/dist/aura3d-cli/cartoon-asset-profiles.d.ts +15 -0
  55. package/dist/aura3d-cli/cartoon-asset-profiles.d.ts.map +1 -0
  56. package/dist/aura3d-cli/cartoon-asset-profiles.js +46 -0
  57. package/dist/aura3d-cli/cartoon-asset-profiles.js.map +1 -0
  58. package/dist/aura3d-cli/cli.js +63 -7
  59. package/dist/aura3d-cli/cli.js.map +1 -1
  60. package/dist/aura3d-cli/game-asset-profiles.d.ts +13 -0
  61. package/dist/aura3d-cli/game-asset-profiles.d.ts.map +1 -0
  62. package/dist/aura3d-cli/game-asset-profiles.js +36 -0
  63. package/dist/aura3d-cli/game-asset-profiles.js.map +1 -0
  64. package/dist/aura3d-cli/game-asset-validator.d.ts +9 -0
  65. package/dist/aura3d-cli/game-asset-validator.d.ts.map +1 -0
  66. package/dist/aura3d-cli/game-asset-validator.js +5 -0
  67. package/dist/aura3d-cli/game-asset-validator.js.map +1 -0
  68. package/dist/aura3d-cli/index.d.ts +50 -0
  69. package/dist/aura3d-cli/index.d.ts.map +1 -1
  70. package/dist/aura3d-cli/index.js +212 -0
  71. package/dist/aura3d-cli/index.js.map +1 -1
  72. package/dist/aura3d-cli/pull-bridge.d.ts +3 -3
  73. package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
  74. package/dist/aura3d-cli/pull-bridge.js +52 -21
  75. package/dist/aura3d-cli/pull-bridge.js.map +1 -1
  76. package/dist/create-aura3d/index.d.ts +1 -1
  77. package/dist/create-aura3d/index.d.ts.map +1 -1
  78. package/dist/create-aura3d/index.js +4 -2
  79. package/dist/create-aura3d/index.js.map +1 -1
  80. package/dist/editor-runtime/AssetDropZone.d.ts +52 -0
  81. package/dist/editor-runtime/AssetDropZone.d.ts.map +1 -0
  82. package/dist/editor-runtime/AssetDropZone.js +115 -0
  83. package/dist/editor-runtime/AssetDropZone.js.map +1 -0
  84. package/dist/editor-runtime/CameraPathEditor.d.ts +48 -0
  85. package/dist/editor-runtime/CameraPathEditor.d.ts.map +1 -0
  86. package/dist/editor-runtime/CameraPathEditor.js +181 -0
  87. package/dist/editor-runtime/CameraPathEditor.js.map +1 -0
  88. package/dist/editor-runtime/CartoonSceneEditor.d.ts +111 -0
  89. package/dist/editor-runtime/CartoonSceneEditor.d.ts.map +1 -0
  90. package/dist/editor-runtime/CartoonSceneEditor.js +285 -0
  91. package/dist/editor-runtime/CartoonSceneEditor.js.map +1 -0
  92. package/dist/editor-runtime/CurveEditor.d.ts +38 -0
  93. package/dist/editor-runtime/CurveEditor.d.ts.map +1 -0
  94. package/dist/editor-runtime/CurveEditor.js +112 -0
  95. package/dist/editor-runtime/CurveEditor.js.map +1 -0
  96. package/dist/editor-runtime/EpisodeReviewPanel.d.ts +67 -0
  97. package/dist/editor-runtime/EpisodeReviewPanel.d.ts.map +1 -0
  98. package/dist/editor-runtime/EpisodeReviewPanel.js +162 -0
  99. package/dist/editor-runtime/EpisodeReviewPanel.js.map +1 -0
  100. package/dist/editor-runtime/KeyframeEditor.d.ts +49 -0
  101. package/dist/editor-runtime/KeyframeEditor.d.ts.map +1 -0
  102. package/dist/editor-runtime/KeyframeEditor.js +161 -0
  103. package/dist/editor-runtime/KeyframeEditor.js.map +1 -0
  104. package/dist/editor-runtime/MultiUserReviewWorkflow.d.ts +77 -0
  105. package/dist/editor-runtime/MultiUserReviewWorkflow.d.ts.map +1 -0
  106. package/dist/editor-runtime/MultiUserReviewWorkflow.js +162 -0
  107. package/dist/editor-runtime/MultiUserReviewWorkflow.js.map +1 -0
  108. package/dist/editor-runtime/NonlinearAnimationEditor.d.ts +81 -0
  109. package/dist/editor-runtime/NonlinearAnimationEditor.d.ts.map +1 -0
  110. package/dist/editor-runtime/NonlinearAnimationEditor.js +180 -0
  111. package/dist/editor-runtime/NonlinearAnimationEditor.js.map +1 -0
  112. package/dist/editor-runtime/PropertyPanel.d.ts +21 -0
  113. package/dist/editor-runtime/PropertyPanel.d.ts.map +1 -0
  114. package/dist/editor-runtime/PropertyPanel.js +72 -0
  115. package/dist/editor-runtime/PropertyPanel.js.map +1 -0
  116. package/dist/editor-runtime/RenderQueuePanel.d.ts +38 -0
  117. package/dist/editor-runtime/RenderQueuePanel.d.ts.map +1 -0
  118. package/dist/editor-runtime/RenderQueuePanel.js +72 -0
  119. package/dist/editor-runtime/RenderQueuePanel.js.map +1 -0
  120. package/dist/editor-runtime/SceneOutliner.d.ts +19 -0
  121. package/dist/editor-runtime/SceneOutliner.d.ts.map +1 -0
  122. package/dist/editor-runtime/SceneOutliner.js +64 -0
  123. package/dist/editor-runtime/SceneOutliner.js.map +1 -0
  124. package/dist/editor-runtime/TimelineEditorController.d.ts +102 -0
  125. package/dist/editor-runtime/TimelineEditorController.d.ts.map +1 -0
  126. package/dist/editor-runtime/TimelineEditorController.js +449 -0
  127. package/dist/editor-runtime/TimelineEditorController.js.map +1 -0
  128. package/dist/editor-runtime/TimelineTrackTypes.d.ts +25 -0
  129. package/dist/editor-runtime/TimelineTrackTypes.d.ts.map +1 -0
  130. package/dist/editor-runtime/TimelineTrackTypes.js +48 -0
  131. package/dist/editor-runtime/TimelineTrackTypes.js.map +1 -0
  132. package/dist/editor-runtime/TimelineUI.d.ts +27 -0
  133. package/dist/editor-runtime/TimelineUI.d.ts.map +1 -0
  134. package/dist/editor-runtime/TimelineUI.js +123 -0
  135. package/dist/editor-runtime/TimelineUI.js.map +1 -0
  136. package/dist/editor-runtime/VisualReviewDashboard.d.ts +43 -0
  137. package/dist/editor-runtime/VisualReviewDashboard.d.ts.map +1 -0
  138. package/dist/editor-runtime/VisualReviewDashboard.js +47 -0
  139. package/dist/editor-runtime/VisualReviewDashboard.js.map +1 -0
  140. package/dist/editor-runtime/index.d.ts +30 -0
  141. package/dist/editor-runtime/index.d.ts.map +1 -1
  142. package/dist/editor-runtime/index.js +15 -0
  143. package/dist/editor-runtime/index.js.map +1 -1
  144. package/dist/engine/advanced-runtime/A3DRenderer.d.ts +24 -2
  145. package/dist/engine/advanced-runtime/A3DRenderer.d.ts.map +1 -1
  146. package/dist/engine/advanced-runtime/A3DRenderer.js +70 -9
  147. package/dist/engine/advanced-runtime/A3DRenderer.js.map +1 -1
  148. package/dist/engine/agent-api/AssetLibraryBrowser.d.ts +77 -0
  149. package/dist/engine/agent-api/AssetLibraryBrowser.d.ts.map +1 -0
  150. package/dist/engine/agent-api/AssetLibraryBrowser.js +112 -0
  151. package/dist/engine/agent-api/AssetLibraryBrowser.js.map +1 -0
  152. package/dist/engine/agent-api/AudioMuxer.d.ts +72 -0
  153. package/dist/engine/agent-api/AudioMuxer.d.ts.map +1 -0
  154. package/dist/engine/agent-api/AudioMuxer.js +80 -0
  155. package/dist/engine/agent-api/AudioMuxer.js.map +1 -0
  156. package/dist/engine/agent-api/AudioVisemeAnalyzer.d.ts +47 -0
  157. package/dist/engine/agent-api/AudioVisemeAnalyzer.d.ts.map +1 -0
  158. package/dist/engine/agent-api/AudioVisemeAnalyzer.js +113 -0
  159. package/dist/engine/agent-api/AudioVisemeAnalyzer.js.map +1 -0
  160. package/dist/engine/agent-api/BatchEpisodeRenderer.d.ts +31 -0
  161. package/dist/engine/agent-api/BatchEpisodeRenderer.d.ts.map +1 -0
  162. package/dist/engine/agent-api/BatchEpisodeRenderer.js +20 -0
  163. package/dist/engine/agent-api/BatchEpisodeRenderer.js.map +1 -0
  164. package/dist/engine/agent-api/BodyLanguageLibrary.d.ts +4 -0
  165. package/dist/engine/agent-api/BodyLanguageLibrary.d.ts.map +1 -0
  166. package/dist/engine/agent-api/BodyLanguageLibrary.js +10 -0
  167. package/dist/engine/agent-api/BodyLanguageLibrary.js.map +1 -0
  168. package/dist/engine/agent-api/BrowserFrameCaptureAdapter.d.ts +65 -0
  169. package/dist/engine/agent-api/BrowserFrameCaptureAdapter.d.ts.map +1 -0
  170. package/dist/engine/agent-api/BrowserFrameCaptureAdapter.js +42 -0
  171. package/dist/engine/agent-api/BrowserFrameCaptureAdapter.js.map +1 -0
  172. package/dist/engine/agent-api/CameraChoreographer.d.ts +69 -0
  173. package/dist/engine/agent-api/CameraChoreographer.d.ts.map +1 -0
  174. package/dist/engine/agent-api/CameraChoreographer.js +165 -0
  175. package/dist/engine/agent-api/CameraChoreographer.js.map +1 -0
  176. package/dist/engine/agent-api/CameraPathEditor.d.ts +20 -0
  177. package/dist/engine/agent-api/CameraPathEditor.d.ts.map +1 -0
  178. package/dist/engine/agent-api/CameraPathEditor.js +47 -0
  179. package/dist/engine/agent-api/CameraPathEditor.js.map +1 -0
  180. package/dist/engine/agent-api/CameraPresetLibrary.d.ts +22 -0
  181. package/dist/engine/agent-api/CameraPresetLibrary.d.ts.map +1 -0
  182. package/dist/engine/agent-api/CameraPresetLibrary.js +109 -0
  183. package/dist/engine/agent-api/CameraPresetLibrary.js.map +1 -0
  184. package/dist/engine/agent-api/CaptionExporter.d.ts +23 -0
  185. package/dist/engine/agent-api/CaptionExporter.d.ts.map +1 -0
  186. package/dist/engine/agent-api/CaptionExporter.js +69 -0
  187. package/dist/engine/agent-api/CaptionExporter.js.map +1 -0
  188. package/dist/engine/agent-api/CartoonAssetManifest.d.ts +50 -0
  189. package/dist/engine/agent-api/CartoonAssetManifest.d.ts.map +1 -0
  190. package/dist/engine/agent-api/CartoonAssetManifest.js +65 -0
  191. package/dist/engine/agent-api/CartoonAssetManifest.js.map +1 -0
  192. package/dist/engine/agent-api/CartoonDirector.d.ts +26 -1
  193. package/dist/engine/agent-api/CartoonDirector.d.ts.map +1 -1
  194. package/dist/engine/agent-api/CartoonDirector.js +92 -2
  195. package/dist/engine/agent-api/CartoonDirector.js.map +1 -1
  196. package/dist/engine/agent-api/CartoonEpisodePackage.d.ts +51 -0
  197. package/dist/engine/agent-api/CartoonEpisodePackage.d.ts.map +1 -0
  198. package/dist/engine/agent-api/CartoonEpisodePackage.js +79 -0
  199. package/dist/engine/agent-api/CartoonEpisodePackage.js.map +1 -0
  200. package/dist/engine/agent-api/CartoonMotionQuality.d.ts +83 -0
  201. package/dist/engine/agent-api/CartoonMotionQuality.d.ts.map +1 -0
  202. package/dist/engine/agent-api/CartoonMotionQuality.js +128 -0
  203. package/dist/engine/agent-api/CartoonMotionQuality.js.map +1 -0
  204. package/dist/engine/agent-api/CartoonPerformance.d.ts +1 -0
  205. package/dist/engine/agent-api/CartoonPerformance.d.ts.map +1 -1
  206. package/dist/engine/agent-api/CartoonPerformance.js +28 -0
  207. package/dist/engine/agent-api/CartoonPerformance.js.map +1 -1
  208. package/dist/engine/agent-api/CartoonRenderQueue.d.ts +11 -0
  209. package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +1 -1
  210. package/dist/engine/agent-api/CartoonRenderQueue.js +25 -0
  211. package/dist/engine/agent-api/CartoonRenderQueue.js.map +1 -1
  212. package/dist/engine/agent-api/CartoonRouteProof.d.ts +112 -0
  213. package/dist/engine/agent-api/CartoonRouteProof.d.ts.map +1 -0
  214. package/dist/engine/agent-api/CartoonRouteProof.js +127 -0
  215. package/dist/engine/agent-api/CartoonRouteProof.js.map +1 -0
  216. package/dist/engine/agent-api/CloudRenderAdapter.d.ts +55 -0
  217. package/dist/engine/agent-api/CloudRenderAdapter.d.ts.map +1 -0
  218. package/dist/engine/agent-api/CloudRenderAdapter.js +75 -0
  219. package/dist/engine/agent-api/CloudRenderAdapter.js.map +1 -0
  220. package/dist/engine/agent-api/DialogueAlignment.d.ts +18 -0
  221. package/dist/engine/agent-api/DialogueAlignment.d.ts.map +1 -0
  222. package/dist/engine/agent-api/DialogueAlignment.js +23 -0
  223. package/dist/engine/agent-api/DialogueAlignment.js.map +1 -0
  224. package/dist/engine/agent-api/EpisodeStructure.d.ts +77 -0
  225. package/dist/engine/agent-api/EpisodeStructure.d.ts.map +1 -0
  226. package/dist/engine/agent-api/EpisodeStructure.js +123 -0
  227. package/dist/engine/agent-api/EpisodeStructure.js.map +1 -0
  228. package/dist/engine/agent-api/EpisodeTemplates.d.ts +13 -0
  229. package/dist/engine/agent-api/EpisodeTemplates.d.ts.map +1 -0
  230. package/dist/engine/agent-api/EpisodeTemplates.js +14 -0
  231. package/dist/engine/agent-api/EpisodeTemplates.js.map +1 -0
  232. package/dist/engine/agent-api/ExternalPhonemeAnalyzer.d.ts +54 -0
  233. package/dist/engine/agent-api/ExternalPhonemeAnalyzer.d.ts.map +1 -0
  234. package/dist/engine/agent-api/ExternalPhonemeAnalyzer.js +107 -0
  235. package/dist/engine/agent-api/ExternalPhonemeAnalyzer.js.map +1 -0
  236. package/dist/engine/agent-api/FrameEncoder.d.ts +79 -0
  237. package/dist/engine/agent-api/FrameEncoder.d.ts.map +1 -0
  238. package/dist/engine/agent-api/FrameEncoder.js +131 -0
  239. package/dist/engine/agent-api/FrameEncoder.js.map +1 -0
  240. package/dist/engine/agent-api/GameEvidence.d.ts +43 -0
  241. package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -1
  242. package/dist/engine/agent-api/GameEvidence.js +30 -1
  243. package/dist/engine/agent-api/GameEvidence.js.map +1 -1
  244. package/dist/engine/agent-api/GameInspector.d.ts +65 -0
  245. package/dist/engine/agent-api/GameInspector.d.ts.map +1 -0
  246. package/dist/engine/agent-api/GameInspector.js +53 -0
  247. package/dist/engine/agent-api/GameInspector.js.map +1 -0
  248. package/dist/engine/agent-api/GameRuntime.d.ts +67 -1
  249. package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -1
  250. package/dist/engine/agent-api/GameRuntime.js +191 -7
  251. package/dist/engine/agent-api/GameRuntime.js.map +1 -1
  252. package/dist/engine/agent-api/MediaRecorderFrameEncoder.d.ts +19 -0
  253. package/dist/engine/agent-api/MediaRecorderFrameEncoder.d.ts.map +1 -0
  254. package/dist/engine/agent-api/MediaRecorderFrameEncoder.js +74 -0
  255. package/dist/engine/agent-api/MediaRecorderFrameEncoder.js.map +1 -0
  256. package/dist/engine/agent-api/PerformanceBlender.d.ts +30 -0
  257. package/dist/engine/agent-api/PerformanceBlender.d.ts.map +1 -0
  258. package/dist/engine/agent-api/PerformanceBlender.js +62 -0
  259. package/dist/engine/agent-api/PerformanceBlender.js.map +1 -0
  260. package/dist/engine/agent-api/PerformanceCaptureSession.d.ts +65 -0
  261. package/dist/engine/agent-api/PerformanceCaptureSession.d.ts.map +1 -0
  262. package/dist/engine/agent-api/PerformanceCaptureSession.js +131 -0
  263. package/dist/engine/agent-api/PerformanceCaptureSession.js.map +1 -0
  264. package/dist/engine/agent-api/PerformancePoseEditor.d.ts +21 -0
  265. package/dist/engine/agent-api/PerformancePoseEditor.d.ts.map +1 -0
  266. package/dist/engine/agent-api/PerformancePoseEditor.js +23 -0
  267. package/dist/engine/agent-api/PerformancePoseEditor.js.map +1 -0
  268. package/dist/engine/agent-api/PerformanceScriptParser.d.ts +9 -0
  269. package/dist/engine/agent-api/PerformanceScriptParser.d.ts.map +1 -0
  270. package/dist/engine/agent-api/PerformanceScriptParser.js +16 -0
  271. package/dist/engine/agent-api/PerformanceScriptParser.js.map +1 -0
  272. package/dist/engine/agent-api/PngSequenceEncoder.d.ts +34 -0
  273. package/dist/engine/agent-api/PngSequenceEncoder.d.ts.map +1 -0
  274. package/dist/engine/agent-api/PngSequenceEncoder.js +75 -0
  275. package/dist/engine/agent-api/PngSequenceEncoder.js.map +1 -0
  276. package/dist/engine/agent-api/PromptAnimationContract.d.ts +25 -0
  277. package/dist/engine/agent-api/PromptAnimationContract.d.ts.map +1 -1
  278. package/dist/engine/agent-api/PromptAnimationContract.js +60 -1
  279. package/dist/engine/agent-api/PromptAnimationContract.js.map +1 -1
  280. package/dist/engine/agent-api/PublishingPipeline.d.ts +62 -0
  281. package/dist/engine/agent-api/PublishingPipeline.d.ts.map +1 -0
  282. package/dist/engine/agent-api/PublishingPipeline.js +81 -0
  283. package/dist/engine/agent-api/PublishingPipeline.js.map +1 -0
  284. package/dist/engine/agent-api/RenderProgressTracker.d.ts +49 -0
  285. package/dist/engine/agent-api/RenderProgressTracker.d.ts.map +1 -0
  286. package/dist/engine/agent-api/RenderProgressTracker.js +106 -0
  287. package/dist/engine/agent-api/RenderProgressTracker.js.map +1 -0
  288. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +50 -0
  289. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -1
  290. package/dist/engine/agent-api/RuntimeNodeHandle.js +48 -0
  291. package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -1
  292. package/dist/engine/agent-api/SceneSequencer.d.ts +67 -0
  293. package/dist/engine/agent-api/SceneSequencer.d.ts.map +1 -0
  294. package/dist/engine/agent-api/SceneSequencer.js +104 -0
  295. package/dist/engine/agent-api/SceneSequencer.js.map +1 -0
  296. package/dist/engine/agent-api/ShotCompositionRules.d.ts +45 -0
  297. package/dist/engine/agent-api/ShotCompositionRules.d.ts.map +1 -0
  298. package/dist/engine/agent-api/ShotCompositionRules.js +54 -0
  299. package/dist/engine/agent-api/ShotCompositionRules.js.map +1 -0
  300. package/dist/engine/agent-api/ShotTransitionEngine.d.ts +46 -0
  301. package/dist/engine/agent-api/ShotTransitionEngine.d.ts.map +1 -0
  302. package/dist/engine/agent-api/ShotTransitionEngine.js +98 -0
  303. package/dist/engine/agent-api/ShotTransitionEngine.js.map +1 -0
  304. package/dist/engine/agent-api/ThumbnailGenerator.d.ts +44 -0
  305. package/dist/engine/agent-api/ThumbnailGenerator.d.ts.map +1 -0
  306. package/dist/engine/agent-api/ThumbnailGenerator.js +82 -0
  307. package/dist/engine/agent-api/ThumbnailGenerator.js.map +1 -0
  308. package/dist/engine/agent-api/VideoExportPipeline.d.ts +80 -0
  309. package/dist/engine/agent-api/VideoExportPipeline.d.ts.map +1 -0
  310. package/dist/engine/agent-api/VideoExportPipeline.js +139 -0
  311. package/dist/engine/agent-api/VideoExportPipeline.js.map +1 -0
  312. package/dist/engine/agent-api/VisemeTimelineTrack.d.ts +29 -0
  313. package/dist/engine/agent-api/VisemeTimelineTrack.d.ts.map +1 -0
  314. package/dist/engine/agent-api/VisemeTimelineTrack.js +34 -0
  315. package/dist/engine/agent-api/VisemeTimelineTrack.js.map +1 -0
  316. package/dist/engine/agent-api/WaveformVisualizer.d.ts +61 -0
  317. package/dist/engine/agent-api/WaveformVisualizer.d.ts.map +1 -0
  318. package/dist/engine/agent-api/WaveformVisualizer.js +108 -0
  319. package/dist/engine/agent-api/WaveformVisualizer.js.map +1 -0
  320. package/dist/engine/agent-api/WebCodecsFrameEncoder.d.ts +21 -0
  321. package/dist/engine/agent-api/WebCodecsFrameEncoder.d.ts.map +1 -0
  322. package/dist/engine/agent-api/WebCodecsFrameEncoder.js +94 -0
  323. package/dist/engine/agent-api/WebCodecsFrameEncoder.js.map +1 -0
  324. package/dist/engine/agent-api/YouTubeMetadataGenerator.d.ts +21 -0
  325. package/dist/engine/agent-api/YouTubeMetadataGenerator.d.ts.map +1 -0
  326. package/dist/engine/agent-api/YouTubeMetadataGenerator.js +51 -0
  327. package/dist/engine/agent-api/YouTubeMetadataGenerator.js.map +1 -0
  328. package/dist/engine/agent-api/YouTubeUploadAdapter.d.ts +48 -0
  329. package/dist/engine/agent-api/YouTubeUploadAdapter.d.ts.map +1 -0
  330. package/dist/engine/agent-api/YouTubeUploadAdapter.js +114 -0
  331. package/dist/engine/agent-api/YouTubeUploadAdapter.js.map +1 -0
  332. package/dist/engine/agent-api/game-kits/fighting.d.ts +20 -0
  333. package/dist/engine/agent-api/game-kits/fighting.d.ts.map +1 -1
  334. package/dist/engine/agent-api/game-kits/fighting.js +20 -0
  335. package/dist/engine/agent-api/game-kits/fighting.js.map +1 -1
  336. package/dist/engine/agent-api/index.d.ts +121 -3
  337. package/dist/engine/agent-api/index.d.ts.map +1 -1
  338. package/dist/engine/agent-api/index.js +138 -2
  339. package/dist/engine/agent-api/index.js.map +1 -1
  340. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  341. package/dist/engine/game/GameAudio.d.ts +65 -0
  342. package/dist/engine/game/GameAudio.d.ts.map +1 -0
  343. package/dist/engine/game/GameAudio.js +155 -0
  344. package/dist/engine/game/GameAudio.js.map +1 -0
  345. package/dist/engine/game/index.d.ts +3 -0
  346. package/dist/engine/game/index.d.ts.map +1 -0
  347. package/dist/engine/game/index.js +2 -0
  348. package/dist/engine/game/index.js.map +1 -0
  349. package/dist/engine/index.d.ts +4 -1
  350. package/dist/engine/index.d.ts.map +1 -1
  351. package/dist/engine/index.js +3 -1
  352. package/dist/engine/index.js.map +1 -1
  353. package/dist/engine/production-runtime/GameAppRuntime.d.ts +3 -0
  354. package/dist/engine/production-runtime/GameAppRuntime.d.ts.map +1 -0
  355. package/dist/engine/production-runtime/GameAppRuntime.js +2 -0
  356. package/dist/engine/production-runtime/GameAppRuntime.js.map +1 -0
  357. package/dist/engine/production-runtime/GameRenderPreset.d.ts +55 -0
  358. package/dist/engine/production-runtime/GameRenderPreset.d.ts.map +1 -0
  359. package/dist/engine/production-runtime/GameRenderPreset.js +90 -0
  360. package/dist/engine/production-runtime/GameRenderPreset.js.map +1 -0
  361. package/dist/engine/production-runtime/index.d.ts +18 -1
  362. package/dist/engine/production-runtime/index.d.ts.map +1 -1
  363. package/dist/engine/production-runtime/index.js +35 -1
  364. package/dist/engine/production-runtime/index.js.map +1 -1
  365. package/dist/engine/runtime/AssetPreloader.d.ts +14 -0
  366. package/dist/engine/runtime/AssetPreloader.d.ts.map +1 -0
  367. package/dist/engine/runtime/AssetPreloader.js +22 -0
  368. package/dist/engine/runtime/AssetPreloader.js.map +1 -0
  369. package/dist/engine/runtime/ResourceManager.d.ts +48 -0
  370. package/dist/engine/runtime/ResourceManager.d.ts.map +1 -0
  371. package/dist/engine/runtime/ResourceManager.js +156 -0
  372. package/dist/engine/runtime/ResourceManager.js.map +1 -0
  373. package/dist/engine/runtime/index.d.ts +5 -0
  374. package/dist/engine/runtime/index.d.ts.map +1 -0
  375. package/dist/engine/runtime/index.js +3 -0
  376. package/dist/engine/runtime/index.js.map +1 -0
  377. package/dist/physics/CharacterController.d.ts +31 -0
  378. package/dist/physics/CharacterController.d.ts.map +1 -1
  379. package/dist/physics/CharacterController.js +90 -0
  380. package/dist/physics/CharacterController.js.map +1 -1
  381. package/dist/physics/CollisionVolumes.d.ts +29 -0
  382. package/dist/physics/CollisionVolumes.d.ts.map +1 -1
  383. package/dist/physics/CollisionVolumes.js +43 -0
  384. package/dist/physics/CollisionVolumes.js.map +1 -1
  385. package/dist/physics/KinematicBody.d.ts +15 -0
  386. package/dist/physics/KinematicBody.d.ts.map +1 -1
  387. package/dist/physics/KinematicBody.js +28 -0
  388. package/dist/physics/KinematicBody.js.map +1 -1
  389. package/dist/physics/KinematicWorld.js +6 -0
  390. package/dist/physics/KinematicWorld.js.map +1 -1
  391. package/dist/rendering/FrameVisualMetrics.d.ts +19 -0
  392. package/dist/rendering/FrameVisualMetrics.d.ts.map +1 -1
  393. package/dist/rendering/FrameVisualMetrics.js +57 -0
  394. package/dist/rendering/FrameVisualMetrics.js.map +1 -1
  395. package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts +19 -0
  396. package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts.map +1 -0
  397. package/dist/rendering/cartoon/CartoonMaterialStyle.js +13 -0
  398. package/dist/rendering/cartoon/CartoonMaterialStyle.js.map +1 -0
  399. package/dist/rendering/cartoon/CartoonRenderPreset.d.ts +36 -0
  400. package/dist/rendering/cartoon/CartoonRenderPreset.d.ts.map +1 -0
  401. package/dist/rendering/cartoon/CartoonRenderPreset.js +23 -0
  402. package/dist/rendering/cartoon/CartoonRenderPreset.js.map +1 -0
  403. package/dist/rendering/cartoon/CartoonVisualQuality.d.ts +28 -0
  404. package/dist/rendering/cartoon/CartoonVisualQuality.d.ts.map +1 -0
  405. package/dist/rendering/cartoon/CartoonVisualQuality.js +39 -0
  406. package/dist/rendering/cartoon/CartoonVisualQuality.js.map +1 -0
  407. package/dist/rendering/cartoon/index.d.ts +4 -0
  408. package/dist/rendering/cartoon/index.d.ts.map +1 -0
  409. package/dist/rendering/cartoon/index.js +4 -0
  410. package/dist/rendering/cartoon/index.js.map +1 -0
  411. package/dist/rendering/index.d.ts +3 -2
  412. package/dist/rendering/index.d.ts.map +1 -1
  413. package/dist/rendering/index.js +2 -1
  414. package/dist/rendering/index.js.map +1 -1
  415. package/dist/scripting/CartoonNodeCategories.d.ts +3 -0
  416. package/dist/scripting/CartoonNodeCategories.d.ts.map +1 -0
  417. package/dist/scripting/CartoonNodeCategories.js +9 -0
  418. package/dist/scripting/CartoonNodeCategories.js.map +1 -0
  419. package/dist/scripting/CartoonVisualNodes.d.ts +3 -0
  420. package/dist/scripting/CartoonVisualNodes.d.ts.map +1 -0
  421. package/dist/scripting/CartoonVisualNodes.js +41 -0
  422. package/dist/scripting/CartoonVisualNodes.js.map +1 -0
  423. package/dist/scripting/VisualGraphExecutor.js +46 -0
  424. package/dist/scripting/VisualGraphExecutor.js.map +1 -1
  425. package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
  426. package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
  427. package/dist/scripting/VisualNodeCatalog.js +3 -1
  428. package/dist/scripting/VisualNodeCatalog.js.map +1 -1
  429. package/dist/scripting/index.d.ts +3 -0
  430. package/dist/scripting/index.d.ts.map +1 -1
  431. package/dist/scripting/index.js +2 -0
  432. package/dist/scripting/index.js.map +1 -1
  433. package/package.json +138 -120
  434. package/templates/product-viewer/tests/screenshot.spec.ts +8 -16
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeNodeHandle.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/RuntimeNodeHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RuntimeNodeHandle.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/RuntimeNodeHandle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { type ShotTransitionPlan, type ShotTransitionSample } from "./ShotTransitionEngine.js";
2
+ import { type EpisodeSceneStructure, type EpisodeStructureArtifact } from "./EpisodeStructure.js";
3
+ import { type ShotTimelineArtifact, type ShotTimelineShot } from "./ShotTimeline.js";
4
+ import { type PromptAnimationId, type PromptAnimationSeconds } from "./PromptAnimationContract.js";
5
+ export interface SceneSequencerSceneBinding {
6
+ readonly sceneId: PromptAnimationId;
7
+ readonly graphId?: PromptAnimationId | undefined;
8
+ readonly route?: string | undefined;
9
+ readonly thumbnailPath?: string | undefined;
10
+ readonly characterIds?: readonly PromptAnimationId[] | undefined;
11
+ }
12
+ export interface SceneSequencerPlan {
13
+ readonly artifact: "scene-sequencer";
14
+ readonly contractId: string;
15
+ readonly episodeId: PromptAnimationId;
16
+ readonly episode: EpisodeStructureArtifact;
17
+ readonly timeline: ShotTimelineArtifact;
18
+ readonly scenes: readonly SceneSequencerSceneBinding[];
19
+ readonly transitions: ShotTransitionPlan;
20
+ readonly generatedAt?: string | undefined;
21
+ }
22
+ export interface SceneSequencerSample {
23
+ readonly time: PromptAnimationSeconds;
24
+ readonly scene?: EpisodeSceneStructure | undefined;
25
+ readonly sceneBinding?: SceneSequencerSceneBinding | undefined;
26
+ readonly shot?: ShotTimelineShot | undefined;
27
+ readonly transition: ShotTransitionSample;
28
+ readonly activeCharacterIds: readonly PromptAnimationId[];
29
+ }
30
+ export type SceneSequencer = SceneSequencerPlan;
31
+ export interface SceneSequencerPlaybackSnapshot extends SceneSequencerSample {
32
+ readonly status: "playing" | "paused";
33
+ readonly duration: PromptAnimationSeconds;
34
+ }
35
+ export interface SceneSequencerPlaybackController {
36
+ snapshot(): SceneSequencerPlaybackSnapshot;
37
+ play(): SceneSequencerPlaybackSnapshot;
38
+ pause(): SceneSequencerPlaybackSnapshot;
39
+ scrub(time: PromptAnimationSeconds): SceneSequencerPlaybackSnapshot;
40
+ jumpToShot(shotId: PromptAnimationId): SceneSequencerPlaybackSnapshot;
41
+ step(dt: PromptAnimationSeconds): SceneSequencerPlaybackSnapshot;
42
+ }
43
+ export interface LegacySceneSequencerSnapshot {
44
+ readonly kind: "scene-sequencer";
45
+ readonly currentTime: number;
46
+ readonly currentSceneId?: string | undefined;
47
+ readonly currentShotId?: string | undefined;
48
+ readonly sceneCount: number;
49
+ readonly shotCount: number;
50
+ readonly structure: EpisodeStructureArtifact;
51
+ }
52
+ export interface LegacySceneSequencer {
53
+ readonly snapshot: LegacySceneSequencerSnapshot;
54
+ seek(time: number): LegacySceneSequencerSnapshot;
55
+ currentShot(): ShotTimelineShot | undefined;
56
+ }
57
+ export declare function createSceneSequencer(input: {
58
+ readonly episode: EpisodeStructureArtifact;
59
+ readonly timeline: ShotTimelineArtifact;
60
+ readonly scenes?: readonly SceneSequencerSceneBinding[] | undefined;
61
+ readonly transitions?: ShotTransitionPlan | undefined;
62
+ readonly generatedAt?: string | undefined;
63
+ }): SceneSequencerPlan;
64
+ export declare function createSceneSequencer(timeline: ShotTimelineArtifact, structure: EpisodeStructureArtifact): LegacySceneSequencer;
65
+ export declare function sampleSceneSequencer(plan: SceneSequencerPlan, time: PromptAnimationSeconds): SceneSequencerSample;
66
+ export declare function createSceneSequencerPlayback(plan: SceneSequencerPlan): SceneSequencerPlaybackController;
67
+ //# sourceMappingURL=SceneSequencer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneSequencer.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/SceneSequencer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { createShotTransitionPlan, sampleShotTransition } from "./ShotTransitionEngine.js";
2
+ import { sceneStructureAtTime } from "./EpisodeStructure.js";
3
+ import { getShotAtTime } from "./ShotTimeline.js";
4
+ import { normalizePromptAnimationTime, promptAnimationContractVersion } from "./PromptAnimationContract.js";
5
+ export function createSceneSequencer(input, structure) {
6
+ if ("artifact" in input && input.artifact === "shot-timeline") {
7
+ let currentTime = 0;
8
+ if (!structure)
9
+ throw new Error("Legacy createSceneSequencer(timeline, structure) requires an episode structure.");
10
+ const currentShot = () => getShotAtTime(input, currentTime);
11
+ const snapshot = () => {
12
+ const shot = currentShot();
13
+ return {
14
+ kind: "scene-sequencer",
15
+ currentTime,
16
+ currentSceneId: shot?.sceneId,
17
+ currentShotId: shot?.shotId,
18
+ sceneCount: structure.acts.flatMap((act) => act.scenes).length,
19
+ shotCount: input.shots.length,
20
+ structure
21
+ };
22
+ };
23
+ return {
24
+ get snapshot() {
25
+ return snapshot();
26
+ },
27
+ seek(time) {
28
+ currentTime = Math.max(0, Math.min(input.duration, time));
29
+ return snapshot();
30
+ },
31
+ currentShot
32
+ };
33
+ }
34
+ const planInput = input;
35
+ const sceneIds = new Set(planInput.episode.acts.flatMap((act) => act.scenes.map((scene) => scene.sceneId)));
36
+ const provided = new Map((planInput.scenes ?? []).map((scene) => [scene.sceneId, scene]));
37
+ const scenes = [...sceneIds].map((sceneId) => provided.get(sceneId) ?? { sceneId });
38
+ return {
39
+ artifact: "scene-sequencer",
40
+ contractId: promptAnimationContractVersion,
41
+ episodeId: planInput.episode.episodeId,
42
+ episode: planInput.episode,
43
+ timeline: planInput.timeline,
44
+ scenes,
45
+ transitions: planInput.transitions ?? createShotTransitionPlan({ timeline: planInput.timeline }),
46
+ ...(planInput.generatedAt ? { generatedAt: planInput.generatedAt } : {})
47
+ };
48
+ }
49
+ export function sampleSceneSequencer(plan, time) {
50
+ const normalized = normalizePromptAnimationTime(time);
51
+ const scene = sceneStructureAtTime(plan.episode, normalized);
52
+ const shot = getShotAtTime(plan.timeline, normalized);
53
+ const sceneBinding = plan.scenes.find((candidate) => candidate.sceneId === (shot?.sceneId ?? scene?.sceneId));
54
+ const activeCharacterIds = shot?.characters.map((character) => character.characterId) ?? scene?.characterIds ?? [];
55
+ return {
56
+ time: normalized,
57
+ ...(scene ? { scene } : {}),
58
+ ...(sceneBinding ? { sceneBinding } : {}),
59
+ ...(shot ? { shot } : {}),
60
+ transition: sampleShotTransition(plan.transitions, normalized),
61
+ activeCharacterIds
62
+ };
63
+ }
64
+ export function createSceneSequencerPlayback(plan) {
65
+ let time = 0;
66
+ let status = "paused";
67
+ const duration = plan.timeline.duration || Math.max(0, ...plan.timeline.shots.map((shot) => shot.endTime));
68
+ const snapshot = () => ({
69
+ ...sampleSceneSequencer(plan, time),
70
+ status,
71
+ duration
72
+ });
73
+ return {
74
+ snapshot,
75
+ play() {
76
+ status = "playing";
77
+ return snapshot();
78
+ },
79
+ pause() {
80
+ status = "paused";
81
+ return snapshot();
82
+ },
83
+ scrub(nextTime) {
84
+ time = clampSequencerTime(nextTime, duration);
85
+ return snapshot();
86
+ },
87
+ jumpToShot(shotId) {
88
+ const shot = plan.timeline.shots.find((candidate) => candidate.shotId === shotId || candidate.id === shotId);
89
+ if (!shot)
90
+ throw new Error(`Unknown shot "${shotId}".`);
91
+ time = clampSequencerTime(shot.startTime, duration);
92
+ return snapshot();
93
+ },
94
+ step(dt) {
95
+ if (status === "playing")
96
+ time = clampSequencerTime(time + dt, duration);
97
+ return snapshot();
98
+ }
99
+ };
100
+ }
101
+ function clampSequencerTime(time, duration) {
102
+ return normalizePromptAnimationTime(Math.max(0, Math.min(duration, time)));
103
+ }
104
+ //# sourceMappingURL=SceneSequencer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneSequencer.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/SceneSequencer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { type PromptAnimationId, type PromptAnimationValidationIssue } from "./PromptAnimationContract.js";
2
+ export type ShotCompositionRule = "rule-of-thirds" | "center-safe" | "headroom" | "leading-room";
3
+ export interface ShotCompositionGuide {
4
+ readonly rule: ShotCompositionRule;
5
+ readonly lines: readonly {
6
+ readonly axis: "x" | "y";
7
+ readonly value: number;
8
+ }[];
9
+ readonly safeArea: {
10
+ readonly x: number;
11
+ readonly y: number;
12
+ readonly width: number;
13
+ readonly height: number;
14
+ };
15
+ readonly notes: readonly string[];
16
+ }
17
+ export interface ShotSubjectFrameBox {
18
+ readonly subjectId: PromptAnimationId;
19
+ readonly x: number;
20
+ readonly y: number;
21
+ readonly width: number;
22
+ readonly height: number;
23
+ readonly facing?: "left" | "right" | "camera" | "three-quarter" | undefined;
24
+ }
25
+ export interface ShotCompositionRuleOptions {
26
+ readonly ruleOfThirdsTolerance?: number | undefined;
27
+ readonly minHeadroom?: number | undefined;
28
+ readonly maxHeadroom?: number | undefined;
29
+ readonly minLeadingRoom?: number | undefined;
30
+ readonly safeAreaMargin?: number | undefined;
31
+ }
32
+ export interface ShotCompositionReport {
33
+ readonly subjectCount: number;
34
+ readonly score: number;
35
+ readonly issues: readonly PromptAnimationValidationIssue[];
36
+ readonly overlays: readonly ShotCompositionOverlay[];
37
+ }
38
+ export interface ShotCompositionOverlay {
39
+ readonly kind: "rule-of-thirds" | "safe-area" | "headroom" | "leading-room";
40
+ readonly lines?: readonly number[] | undefined;
41
+ readonly margin?: number | undefined;
42
+ }
43
+ export declare function createShotCompositionGuide(rule: ShotCompositionRule, aspectRatio?: number): ShotCompositionGuide;
44
+ export declare function evaluateShotComposition(subjects: readonly ShotSubjectFrameBox[], options?: ShotCompositionRuleOptions): ShotCompositionReport;
45
+ //# sourceMappingURL=ShotCompositionRules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShotCompositionRules.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/ShotCompositionRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,iBAAiB,EAAE,KAAK,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAEvI,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,aAAa,GAAG,UAAU,GAAG,cAAc,CAAC;AAEjG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChF,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/G,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,CAAC;CAC7E;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,CAAC;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,SAAS,GAAG,oBAAoB,CAWhH;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,EACxC,OAAO,GAAE,0BAA+B,GACvC,qBAAqB,CAyCvB"}
@@ -0,0 +1,54 @@
1
+ import { createPromptAnimationIssue } from "./PromptAnimationContract.js";
2
+ export function createShotCompositionGuide(rule, aspectRatio = 16 / 9) {
3
+ const safeX = rule === "center-safe" ? 0.12 : 0.08;
4
+ const safeY = rule === "headroom" ? 0.06 : 0.08;
5
+ return {
6
+ rule,
7
+ lines: rule === "rule-of-thirds"
8
+ ? [{ axis: "x", value: 1 / 3 }, { axis: "x", value: 2 / 3 }, { axis: "y", value: 1 / 3 }, { axis: "y", value: 2 / 3 }]
9
+ : [{ axis: "x", value: 0.5 }, { axis: "y", value: rule === "headroom" ? 0.42 : 0.5 }],
10
+ safeArea: { x: safeX, y: safeY, width: 1 - safeX * 2, height: Math.min(1 - safeY * 2, (1 - safeX * 2) / aspectRatio) },
11
+ notes: rule === "leading-room" ? ["Leave extra room in the subject's facing direction."] : []
12
+ };
13
+ }
14
+ export function evaluateShotComposition(subjects, options = {}) {
15
+ const issues = [];
16
+ const thirds = [1 / 3, 2 / 3];
17
+ const tolerance = options.ruleOfThirdsTolerance ?? 0.08;
18
+ const safeAreaMargin = options.safeAreaMargin ?? 0.05;
19
+ const minHeadroom = options.minHeadroom ?? 0.03;
20
+ const maxHeadroom = options.maxHeadroom ?? 0.18;
21
+ const minLeadingRoom = options.minLeadingRoom ?? 0.08;
22
+ for (const subject of subjects) {
23
+ const centerX = subject.x + subject.width / 2;
24
+ const nearThird = thirds.some((third) => Math.abs(centerX - third) <= tolerance);
25
+ if (!nearThird && subjects.length <= 2) {
26
+ issues.push(createPromptAnimationIssue("warning", "shot-composition-thirds", `Subject "${subject.subjectId}" is not near a rule-of-thirds vertical.`, { path: `subjects.${subject.subjectId}` }));
27
+ }
28
+ const headroom = subject.y;
29
+ if (headroom < minHeadroom || headroom > maxHeadroom) {
30
+ issues.push(createPromptAnimationIssue("warning", "shot-composition-headroom", `Subject "${subject.subjectId}" headroom is outside the preferred range.`, { path: `subjects.${subject.subjectId}.y` }));
31
+ }
32
+ if (subject.x < safeAreaMargin || subject.y < safeAreaMargin || subject.x + subject.width > 1 - safeAreaMargin || subject.y + subject.height > 1 - safeAreaMargin) {
33
+ issues.push(createPromptAnimationIssue("error", "shot-composition-safe-area", `Subject "${subject.subjectId}" leaves the safe title area.`, { path: `subjects.${subject.subjectId}` }));
34
+ }
35
+ if (subject.facing === "left" && subject.x < minLeadingRoom) {
36
+ issues.push(createPromptAnimationIssue("warning", "shot-composition-leading-room", `Subject "${subject.subjectId}" needs more leading room to the left.`, { path: `subjects.${subject.subjectId}.x` }));
37
+ }
38
+ if (subject.facing === "right" && 1 - (subject.x + subject.width) < minLeadingRoom) {
39
+ issues.push(createPromptAnimationIssue("warning", "shot-composition-leading-room", `Subject "${subject.subjectId}" needs more leading room to the right.`, { path: `subjects.${subject.subjectId}.x` }));
40
+ }
41
+ }
42
+ return {
43
+ subjectCount: subjects.length,
44
+ score: Math.max(0, 1 - issues.length / Math.max(1, subjects.length * 4)),
45
+ issues,
46
+ overlays: [
47
+ { kind: "rule-of-thirds", lines: thirds },
48
+ { kind: "safe-area", margin: safeAreaMargin },
49
+ { kind: "headroom", lines: [minHeadroom, maxHeadroom] },
50
+ { kind: "leading-room", margin: minLeadingRoom }
51
+ ]
52
+ };
53
+ }
54
+ //# sourceMappingURL=ShotCompositionRules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShotCompositionRules.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/ShotCompositionRules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { type PromptAnimationId, type PromptAnimationSeconds } from "./PromptAnimationContract.js";
2
+ import type { ShotTimelineArtifact, ShotTimelineShot, ShotTransition } from "./ShotTimeline.js";
3
+ export type ShotTransitionKind = ShotTransition | "crossfade" | "dip-to-black";
4
+ export type WipeDirection = "left" | "right" | "up" | "down";
5
+ export interface ShotTransitionDescriptor {
6
+ readonly id: PromptAnimationId;
7
+ readonly kind: ShotTransitionKind;
8
+ readonly fromShotId?: PromptAnimationId | undefined;
9
+ readonly toShotId?: PromptAnimationId | undefined;
10
+ readonly startTime: PromptAnimationSeconds;
11
+ readonly endTime: PromptAnimationSeconds;
12
+ readonly duration: PromptAnimationSeconds;
13
+ readonly direction?: WipeDirection | undefined;
14
+ readonly color?: string | undefined;
15
+ readonly matchTargetId?: PromptAnimationId | undefined;
16
+ }
17
+ export interface ShotTransitionSample {
18
+ readonly time: PromptAnimationSeconds;
19
+ readonly transition?: ShotTransitionDescriptor | undefined;
20
+ readonly progress: number;
21
+ readonly fromOpacity: number;
22
+ readonly toOpacity: number;
23
+ readonly overlayOpacity: number;
24
+ readonly wipeProgress?: number | undefined;
25
+ }
26
+ export interface ShotTransitionPlan {
27
+ readonly kind: "shot-transition-plan";
28
+ readonly episodeId: PromptAnimationId;
29
+ readonly transitions: readonly ShotTransitionDescriptor[];
30
+ }
31
+ export interface LegacyShotTransitionSample {
32
+ readonly kind: "shot-transition-sample";
33
+ readonly transition: ShotTransition;
34
+ readonly progress: number;
35
+ readonly outgoingOpacity: number;
36
+ readonly incomingOpacity: number;
37
+ readonly wipeOffset: number;
38
+ }
39
+ export declare function createShotTransitionPlan(input: {
40
+ readonly timeline: ShotTimelineArtifact;
41
+ readonly defaultDuration?: PromptAnimationSeconds | undefined;
42
+ }): ShotTransitionPlan;
43
+ export declare function sampleShotTransition(plan: ShotTransitionPlan, time: PromptAnimationSeconds): ShotTransitionSample;
44
+ export declare function sampleShotTransition(transition: ShotTransition, progress: number): LegacyShotTransitionSample;
45
+ export declare function createShotTransitionDescriptor(fromShot: ShotTimelineShot, toShot: ShotTimelineShot, kind: ShotTransitionKind, duration: PromptAnimationSeconds): ShotTransitionDescriptor;
46
+ //# sourceMappingURL=ShotTransitionEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShotTransitionEngine.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/ShotTransitionEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACjI,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEhG,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,WAAW,GAAG,cAAc,CAAC;AAC/E,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC3D;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;CAC/D,GAAG,kBAAkB,CAgBrB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,sBAAsB,GAAG,oBAAoB,CAAC;AACnH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,0BAA0B,CAAC;AAsD/G,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,sBAAsB,GAC/B,wBAAwB,CAgB1B"}
@@ -0,0 +1,98 @@
1
+ import { normalizePromptAnimationTime } from "./PromptAnimationContract.js";
2
+ export function createShotTransitionPlan(input) {
3
+ const defaultDuration = input.defaultDuration ?? 0.35;
4
+ const transitions = [];
5
+ for (let index = 0; index < input.timeline.shots.length - 1; index += 1) {
6
+ const fromShot = input.timeline.shots[index];
7
+ const toShot = input.timeline.shots[index + 1];
8
+ if (!fromShot || !toShot)
9
+ continue;
10
+ const kind = normalizeTransitionKind(fromShot.transitionOut ?? toShot.transitionIn ?? "cut");
11
+ const duration = transitionDuration(kind, defaultDuration);
12
+ transitions.push(createShotTransitionDescriptor(fromShot, toShot, kind, duration));
13
+ }
14
+ return {
15
+ kind: "shot-transition-plan",
16
+ episodeId: input.timeline.episodeId,
17
+ transitions
18
+ };
19
+ }
20
+ export function sampleShotTransition(planOrTransition, timeOrProgress) {
21
+ if (typeof planOrTransition === "string") {
22
+ const t = Math.min(1, Math.max(0, timeOrProgress));
23
+ return {
24
+ kind: "shot-transition-sample",
25
+ transition: planOrTransition,
26
+ progress: t,
27
+ outgoingOpacity: planOrTransition === "cut" ? 0 : planOrTransition === "hold" ? 1 : 1 - t,
28
+ incomingOpacity: planOrTransition === "cut" ? 1 : planOrTransition === "hold" ? 0 : t,
29
+ wipeOffset: planOrTransition === "wipe" ? t : 0
30
+ };
31
+ }
32
+ const plan = planOrTransition;
33
+ const time = timeOrProgress;
34
+ const normalized = normalizePromptAnimationTime(time);
35
+ const transition = plan.transitions.find((candidate) => normalized > candidate.startTime && normalized < candidate.endTime);
36
+ if (!transition) {
37
+ return {
38
+ time: normalized,
39
+ progress: 1,
40
+ fromOpacity: 0,
41
+ toOpacity: 1,
42
+ overlayOpacity: 0
43
+ };
44
+ }
45
+ const progress = transition.duration <= 0 ? 1 : Math.max(0, Math.min(1, (normalized - transition.startTime) / transition.duration));
46
+ if (transition.kind === "cut" || transition.kind === "hold") {
47
+ return { time: normalized, transition, progress: 1, fromOpacity: 0, toOpacity: 1, overlayOpacity: 0 };
48
+ }
49
+ if (transition.kind === "dip-to-black" || transition.kind === "fade") {
50
+ return {
51
+ time: normalized,
52
+ transition,
53
+ progress,
54
+ fromOpacity: progress < 0.5 ? 1 - progress * 2 : 0,
55
+ toOpacity: progress < 0.5 ? 0 : (progress - 0.5) * 2,
56
+ overlayOpacity: 1 - Math.abs(progress - 0.5) * 2
57
+ };
58
+ }
59
+ return {
60
+ time: normalized,
61
+ transition,
62
+ progress,
63
+ fromOpacity: 1 - progress,
64
+ toOpacity: progress,
65
+ overlayOpacity: 0,
66
+ ...(transition.kind === "wipe" ? { wipeProgress: progress } : {})
67
+ };
68
+ }
69
+ export function createShotTransitionDescriptor(fromShot, toShot, kind, duration) {
70
+ const startTime = normalizePromptAnimationTime(toShot.startTime);
71
+ const endTime = normalizePromptAnimationTime(Math.min(toShot.endTime, toShot.startTime + duration));
72
+ const actualDuration = Math.max(0, endTime - startTime);
73
+ return {
74
+ id: `${fromShot.shotId}:to:${toShot.shotId}`,
75
+ kind,
76
+ fromShotId: fromShot.shotId,
77
+ toShotId: toShot.shotId,
78
+ startTime,
79
+ endTime,
80
+ duration: normalizePromptAnimationTime(actualDuration),
81
+ ...(kind === "wipe" ? { direction: "left" } : {}),
82
+ ...(kind === "dip-to-black" || kind === "fade" ? { color: "#000000" } : {}),
83
+ ...(kind === "match-cut" ? { matchTargetId: toShot.characters[0]?.characterId } : {})
84
+ };
85
+ }
86
+ function normalizeTransitionKind(kind) {
87
+ if (kind === "fade")
88
+ return "crossfade";
89
+ return kind;
90
+ }
91
+ function transitionDuration(kind, defaultDuration) {
92
+ if (kind === "cut")
93
+ return 0;
94
+ if (kind === "hold")
95
+ return Math.max(defaultDuration, 0.5);
96
+ return defaultDuration;
97
+ }
98
+ //# sourceMappingURL=ShotTransitionEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShotTransitionEngine.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/ShotTransitionEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { CartoonRenderOutputPackageMetadata, CartoonThumbnailSceneStateCapture, CartoonViewport } from "./CartoonRenderQueue.js";
2
+ import { type PromptAnimationId, type PromptAnimationSeconds } from "./PromptAnimationContract.js";
3
+ export interface ThumbnailGenerationPlan {
4
+ readonly kind: "thumbnail-generation-plan";
5
+ readonly episodeId: PromptAnimationId;
6
+ readonly capture: CartoonThumbnailSceneStateCapture;
7
+ readonly outputPath: string;
8
+ readonly width: number;
9
+ readonly height: number;
10
+ readonly mimeType: "image/webp" | "image/png" | "image/jpeg";
11
+ readonly time: PromptAnimationSeconds;
12
+ readonly resizeMode: "cover" | "contain";
13
+ }
14
+ export interface ThumbnailArtifact {
15
+ readonly kind: "thumbnail";
16
+ readonly plan: ThumbnailGenerationPlan;
17
+ readonly path: string;
18
+ readonly width: number;
19
+ readonly height: number;
20
+ readonly time: PromptAnimationSeconds;
21
+ readonly mimeType: "image/webp" | "image/png" | "image/jpeg";
22
+ readonly byteLength: number;
23
+ readonly checksum: string;
24
+ readonly image?: Blob | Uint8Array | string | undefined;
25
+ }
26
+ export interface ThumbnailCaptureRuntime {
27
+ captureThumbnail(plan: ThumbnailGenerationPlan): Promise<Blob | Uint8Array | string | undefined> | Blob | Uint8Array | string | undefined;
28
+ }
29
+ export declare function createThumbnailGenerationPlan(input: {
30
+ readonly packageMetadata: CartoonRenderOutputPackageMetadata;
31
+ readonly width?: number | undefined;
32
+ readonly height?: number | undefined;
33
+ readonly mimeType?: "image/webp" | "image/png" | "image/jpeg" | undefined;
34
+ readonly resizeMode?: "cover" | "contain" | undefined;
35
+ }): ThumbnailGenerationPlan;
36
+ export declare function generateThumbnailArtifact(plan: ThumbnailGenerationPlan, runtime: ThumbnailCaptureRuntime): Promise<ThumbnailArtifact>;
37
+ export declare function createThumbnailArtifact(input: {
38
+ readonly path: string;
39
+ readonly viewport: CartoonViewport;
40
+ readonly time: number;
41
+ readonly data?: Blob | Uint8Array | string | undefined;
42
+ readonly mimeType?: "image/webp" | "image/png" | "image/jpeg" | undefined;
43
+ }): ThumbnailArtifact;
44
+ //# sourceMappingURL=ThumbnailGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbnailGenerator.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/ThumbnailGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACtI,OAAO,EAAgC,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEjI,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,iCAAiC,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;IAC7D,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;CAC3I;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,QAAQ,CAAC,eAAe,EAAE,kCAAkC,CAAC;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;IAC1E,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;CACvD,GAAG,uBAAuB,CAa1B;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,uBAAuB,EAC7B,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAG5B;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;CAC3E,GAAG,iBAAiB,CAwBpB"}
@@ -0,0 +1,82 @@
1
+ import { normalizePromptAnimationTime } from "./PromptAnimationContract.js";
2
+ export function createThumbnailGenerationPlan(input) {
3
+ const viewport = youtubeThumbnailViewport(input.packageMetadata.viewport, input.width, input.height);
4
+ return {
5
+ kind: "thumbnail-generation-plan",
6
+ episodeId: input.packageMetadata.episodeId,
7
+ capture: input.packageMetadata.thumbnailCapture,
8
+ outputPath: input.packageMetadata.outputs.thumbnail?.path ?? "dist/render/thumbnail.webp",
9
+ width: viewport.width,
10
+ height: viewport.height,
11
+ mimeType: input.mimeType ?? "image/webp",
12
+ time: normalizePromptAnimationTime(input.packageMetadata.thumbnailCapture.time),
13
+ resizeMode: input.resizeMode ?? "cover"
14
+ };
15
+ }
16
+ export async function generateThumbnailArtifact(plan, runtime) {
17
+ const image = await runtime.captureThumbnail(plan);
18
+ return createThumbnailArtifactFromPlan(plan, image);
19
+ }
20
+ export function createThumbnailArtifact(input) {
21
+ const plan = {
22
+ kind: "thumbnail-generation-plan",
23
+ episodeId: "thumbnail",
24
+ capture: {
25
+ id: "thumbnail:capture",
26
+ source: "same-aura3d-scene-state",
27
+ outputId: "thumbnail",
28
+ outputPath: input.path,
29
+ route: "",
30
+ time: input.time,
31
+ auraVoiceTimestamp: input.time,
32
+ frame: 0,
33
+ sourceSceneStateId: "thumbnail:scene-state",
34
+ deterministicSeed: "thumbnail"
35
+ },
36
+ outputPath: input.path,
37
+ width: input.viewport.width,
38
+ height: input.viewport.height,
39
+ mimeType: input.mimeType ?? "image/png",
40
+ time: input.time,
41
+ resizeMode: "cover"
42
+ };
43
+ return createThumbnailArtifactFromPlan(plan, input.data);
44
+ }
45
+ function createThumbnailArtifactFromPlan(plan, image) {
46
+ const byteLength = estimateImageByteLength(image, plan);
47
+ return {
48
+ kind: "thumbnail",
49
+ plan,
50
+ path: plan.outputPath,
51
+ width: plan.width,
52
+ height: plan.height,
53
+ time: plan.time,
54
+ mimeType: plan.mimeType,
55
+ byteLength,
56
+ checksum: thumbnailChecksum(`${plan.outputPath}:${byteLength}:${plan.time}`),
57
+ ...(image !== undefined ? { image } : {})
58
+ };
59
+ }
60
+ function youtubeThumbnailViewport(source, width = 1280, height = 720) {
61
+ if (width > 0 && height > 0)
62
+ return { width, height };
63
+ if (source.width / source.height >= 16 / 9)
64
+ return { width: 1280, height: 720 };
65
+ return { width: 720, height: 1280 };
66
+ }
67
+ function estimateImageByteLength(image, plan) {
68
+ if (image instanceof Uint8Array)
69
+ return image.byteLength;
70
+ if (typeof Blob !== "undefined" && image instanceof Blob)
71
+ return image.size;
72
+ if (typeof image === "string")
73
+ return image.length;
74
+ return Math.round(plan.width * plan.height * 0.18);
75
+ }
76
+ function thumbnailChecksum(value) {
77
+ let hash = 0;
78
+ for (let index = 0; index < value.length; index += 1)
79
+ hash = (Math.imul(hash, 31) + value.charCodeAt(index)) | 0;
80
+ return `thumb-${(hash >>> 0).toString(16).padStart(8, "0")}`;
81
+ }
82
+ //# sourceMappingURL=ThumbnailGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbnailGenerator.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/ThumbnailGenerator.ts"],"names":[],"mappings":"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"}