@aura3d/engine 1.0.9 → 1.0.10

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 (289) hide show
  1. package/README.md +15 -15
  2. package/dist/animation/AnimationController.d.ts +1 -0
  3. package/dist/animation/AnimationController.d.ts.map +1 -1
  4. package/dist/animation/AnimationController.js +7 -0
  5. package/dist/animation/AnimationController.js.map +1 -1
  6. package/dist/audio/AudioFileManager.d.ts +54 -0
  7. package/dist/audio/AudioFileManager.d.ts.map +1 -0
  8. package/dist/audio/AudioFileManager.js +108 -0
  9. package/dist/audio/AudioFileManager.js.map +1 -0
  10. package/dist/audio/AudioTimelineTrack.d.ts +110 -0
  11. package/dist/audio/AudioTimelineTrack.d.ts.map +1 -0
  12. package/dist/audio/AudioTimelineTrack.js +297 -0
  13. package/dist/audio/AudioTimelineTrack.js.map +1 -0
  14. package/dist/audio/AudioWaveform.d.ts +42 -0
  15. package/dist/audio/AudioWaveform.d.ts.map +1 -0
  16. package/dist/audio/AudioWaveform.js +128 -0
  17. package/dist/audio/AudioWaveform.js.map +1 -0
  18. package/dist/audio/index.d.ts +6 -0
  19. package/dist/audio/index.d.ts.map +1 -1
  20. package/dist/audio/index.js +3 -0
  21. package/dist/audio/index.js.map +1 -1
  22. package/dist/aura3d-cli/cartoon-asset-profiles.d.ts +14 -0
  23. package/dist/aura3d-cli/cartoon-asset-profiles.d.ts.map +1 -0
  24. package/dist/aura3d-cli/cartoon-asset-profiles.js +42 -0
  25. package/dist/aura3d-cli/cartoon-asset-profiles.js.map +1 -0
  26. package/dist/aura3d-cli/cli.js +16 -6
  27. package/dist/aura3d-cli/cli.js.map +1 -1
  28. package/dist/aura3d-cli/game-asset-profiles.d.ts +13 -0
  29. package/dist/aura3d-cli/game-asset-profiles.d.ts.map +1 -0
  30. package/dist/aura3d-cli/game-asset-profiles.js +36 -0
  31. package/dist/aura3d-cli/game-asset-profiles.js.map +1 -0
  32. package/dist/aura3d-cli/game-asset-validator.d.ts +9 -0
  33. package/dist/aura3d-cli/game-asset-validator.d.ts.map +1 -0
  34. package/dist/aura3d-cli/game-asset-validator.js +5 -0
  35. package/dist/aura3d-cli/game-asset-validator.js.map +1 -0
  36. package/dist/aura3d-cli/index.d.ts +2 -0
  37. package/dist/aura3d-cli/index.d.ts.map +1 -1
  38. package/dist/aura3d-cli/index.js +1 -0
  39. package/dist/aura3d-cli/index.js.map +1 -1
  40. package/dist/aura3d-cli/pull-bridge.d.ts +3 -3
  41. package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
  42. package/dist/aura3d-cli/pull-bridge.js +52 -21
  43. package/dist/aura3d-cli/pull-bridge.js.map +1 -1
  44. package/dist/create-aura3d/index.d.ts +1 -1
  45. package/dist/create-aura3d/index.d.ts.map +1 -1
  46. package/dist/create-aura3d/index.js +4 -2
  47. package/dist/create-aura3d/index.js.map +1 -1
  48. package/dist/editor-runtime/AssetDropZone.d.ts +50 -0
  49. package/dist/editor-runtime/AssetDropZone.d.ts.map +1 -0
  50. package/dist/editor-runtime/AssetDropZone.js +101 -0
  51. package/dist/editor-runtime/AssetDropZone.js.map +1 -0
  52. package/dist/editor-runtime/CartoonSceneEditor.d.ts +87 -0
  53. package/dist/editor-runtime/CartoonSceneEditor.d.ts.map +1 -0
  54. package/dist/editor-runtime/CartoonSceneEditor.js +252 -0
  55. package/dist/editor-runtime/CartoonSceneEditor.js.map +1 -0
  56. package/dist/editor-runtime/CurveEditor.d.ts +38 -0
  57. package/dist/editor-runtime/CurveEditor.d.ts.map +1 -0
  58. package/dist/editor-runtime/CurveEditor.js +112 -0
  59. package/dist/editor-runtime/CurveEditor.js.map +1 -0
  60. package/dist/editor-runtime/KeyframeEditor.d.ts +49 -0
  61. package/dist/editor-runtime/KeyframeEditor.d.ts.map +1 -0
  62. package/dist/editor-runtime/KeyframeEditor.js +161 -0
  63. package/dist/editor-runtime/KeyframeEditor.js.map +1 -0
  64. package/dist/editor-runtime/PropertyPanel.d.ts +21 -0
  65. package/dist/editor-runtime/PropertyPanel.d.ts.map +1 -0
  66. package/dist/editor-runtime/PropertyPanel.js +72 -0
  67. package/dist/editor-runtime/PropertyPanel.js.map +1 -0
  68. package/dist/editor-runtime/SceneOutliner.d.ts +19 -0
  69. package/dist/editor-runtime/SceneOutliner.d.ts.map +1 -0
  70. package/dist/editor-runtime/SceneOutliner.js +64 -0
  71. package/dist/editor-runtime/SceneOutliner.js.map +1 -0
  72. package/dist/editor-runtime/TimelineEditorController.d.ts +92 -0
  73. package/dist/editor-runtime/TimelineEditorController.d.ts.map +1 -0
  74. package/dist/editor-runtime/TimelineEditorController.js +424 -0
  75. package/dist/editor-runtime/TimelineEditorController.js.map +1 -0
  76. package/dist/editor-runtime/TimelineTrackTypes.d.ts +25 -0
  77. package/dist/editor-runtime/TimelineTrackTypes.d.ts.map +1 -0
  78. package/dist/editor-runtime/TimelineTrackTypes.js +48 -0
  79. package/dist/editor-runtime/TimelineTrackTypes.js.map +1 -0
  80. package/dist/editor-runtime/TimelineUI.d.ts +27 -0
  81. package/dist/editor-runtime/TimelineUI.d.ts.map +1 -0
  82. package/dist/editor-runtime/TimelineUI.js +118 -0
  83. package/dist/editor-runtime/TimelineUI.js.map +1 -0
  84. package/dist/editor-runtime/index.d.ts +18 -0
  85. package/dist/editor-runtime/index.d.ts.map +1 -1
  86. package/dist/editor-runtime/index.js +9 -0
  87. package/dist/editor-runtime/index.js.map +1 -1
  88. package/dist/engine/advanced-runtime/A3DRenderer.d.ts +24 -2
  89. package/dist/engine/advanced-runtime/A3DRenderer.d.ts.map +1 -1
  90. package/dist/engine/advanced-runtime/A3DRenderer.js +70 -9
  91. package/dist/engine/advanced-runtime/A3DRenderer.js.map +1 -1
  92. package/dist/engine/agent-api/AssetLibraryBrowser.d.ts +39 -0
  93. package/dist/engine/agent-api/AssetLibraryBrowser.d.ts.map +1 -0
  94. package/dist/engine/agent-api/AssetLibraryBrowser.js +60 -0
  95. package/dist/engine/agent-api/AssetLibraryBrowser.js.map +1 -0
  96. package/dist/engine/agent-api/AudioMuxer.d.ts +68 -0
  97. package/dist/engine/agent-api/AudioMuxer.d.ts.map +1 -0
  98. package/dist/engine/agent-api/AudioMuxer.js +74 -0
  99. package/dist/engine/agent-api/AudioMuxer.js.map +1 -0
  100. package/dist/engine/agent-api/AudioVisemeAnalyzer.d.ts +43 -0
  101. package/dist/engine/agent-api/AudioVisemeAnalyzer.d.ts.map +1 -0
  102. package/dist/engine/agent-api/AudioVisemeAnalyzer.js +110 -0
  103. package/dist/engine/agent-api/AudioVisemeAnalyzer.js.map +1 -0
  104. package/dist/engine/agent-api/BodyLanguageLibrary.d.ts +4 -0
  105. package/dist/engine/agent-api/BodyLanguageLibrary.d.ts.map +1 -0
  106. package/dist/engine/agent-api/BodyLanguageLibrary.js +10 -0
  107. package/dist/engine/agent-api/BodyLanguageLibrary.js.map +1 -0
  108. package/dist/engine/agent-api/CameraChoreographer.d.ts +69 -0
  109. package/dist/engine/agent-api/CameraChoreographer.d.ts.map +1 -0
  110. package/dist/engine/agent-api/CameraChoreographer.js +165 -0
  111. package/dist/engine/agent-api/CameraChoreographer.js.map +1 -0
  112. package/dist/engine/agent-api/CameraPathEditor.d.ts +20 -0
  113. package/dist/engine/agent-api/CameraPathEditor.d.ts.map +1 -0
  114. package/dist/engine/agent-api/CameraPathEditor.js +47 -0
  115. package/dist/engine/agent-api/CameraPathEditor.js.map +1 -0
  116. package/dist/engine/agent-api/CameraPresetLibrary.d.ts +22 -0
  117. package/dist/engine/agent-api/CameraPresetLibrary.d.ts.map +1 -0
  118. package/dist/engine/agent-api/CameraPresetLibrary.js +91 -0
  119. package/dist/engine/agent-api/CameraPresetLibrary.js.map +1 -0
  120. package/dist/engine/agent-api/CaptionExporter.d.ts +19 -0
  121. package/dist/engine/agent-api/CaptionExporter.d.ts.map +1 -0
  122. package/dist/engine/agent-api/CaptionExporter.js +54 -0
  123. package/dist/engine/agent-api/CaptionExporter.js.map +1 -0
  124. package/dist/engine/agent-api/CartoonAssetManifest.d.ts +32 -0
  125. package/dist/engine/agent-api/CartoonAssetManifest.d.ts.map +1 -0
  126. package/dist/engine/agent-api/CartoonAssetManifest.js +4 -0
  127. package/dist/engine/agent-api/CartoonAssetManifest.js.map +1 -0
  128. package/dist/engine/agent-api/DialogueAlignment.d.ts +18 -0
  129. package/dist/engine/agent-api/DialogueAlignment.d.ts.map +1 -0
  130. package/dist/engine/agent-api/DialogueAlignment.js +23 -0
  131. package/dist/engine/agent-api/DialogueAlignment.js.map +1 -0
  132. package/dist/engine/agent-api/EpisodeStructure.d.ts +77 -0
  133. package/dist/engine/agent-api/EpisodeStructure.d.ts.map +1 -0
  134. package/dist/engine/agent-api/EpisodeStructure.js +123 -0
  135. package/dist/engine/agent-api/EpisodeStructure.js.map +1 -0
  136. package/dist/engine/agent-api/EpisodeTemplates.d.ts +13 -0
  137. package/dist/engine/agent-api/EpisodeTemplates.d.ts.map +1 -0
  138. package/dist/engine/agent-api/EpisodeTemplates.js +14 -0
  139. package/dist/engine/agent-api/EpisodeTemplates.js.map +1 -0
  140. package/dist/engine/agent-api/FrameEncoder.d.ts +62 -0
  141. package/dist/engine/agent-api/FrameEncoder.d.ts.map +1 -0
  142. package/dist/engine/agent-api/FrameEncoder.js +117 -0
  143. package/dist/engine/agent-api/FrameEncoder.js.map +1 -0
  144. package/dist/engine/agent-api/GameEvidence.d.ts +43 -0
  145. package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -1
  146. package/dist/engine/agent-api/GameEvidence.js +30 -1
  147. package/dist/engine/agent-api/GameEvidence.js.map +1 -1
  148. package/dist/engine/agent-api/GameInspector.d.ts +65 -0
  149. package/dist/engine/agent-api/GameInspector.d.ts.map +1 -0
  150. package/dist/engine/agent-api/GameInspector.js +53 -0
  151. package/dist/engine/agent-api/GameInspector.js.map +1 -0
  152. package/dist/engine/agent-api/GameRuntime.d.ts +67 -1
  153. package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -1
  154. package/dist/engine/agent-api/GameRuntime.js +191 -7
  155. package/dist/engine/agent-api/GameRuntime.js.map +1 -1
  156. package/dist/engine/agent-api/PerformanceBlender.d.ts +11 -0
  157. package/dist/engine/agent-api/PerformanceBlender.d.ts.map +1 -0
  158. package/dist/engine/agent-api/PerformanceBlender.js +29 -0
  159. package/dist/engine/agent-api/PerformanceBlender.js.map +1 -0
  160. package/dist/engine/agent-api/PerformancePoseEditor.d.ts +21 -0
  161. package/dist/engine/agent-api/PerformancePoseEditor.d.ts.map +1 -0
  162. package/dist/engine/agent-api/PerformancePoseEditor.js +23 -0
  163. package/dist/engine/agent-api/PerformancePoseEditor.js.map +1 -0
  164. package/dist/engine/agent-api/PerformanceScriptParser.d.ts +9 -0
  165. package/dist/engine/agent-api/PerformanceScriptParser.d.ts.map +1 -0
  166. package/dist/engine/agent-api/PerformanceScriptParser.js +16 -0
  167. package/dist/engine/agent-api/PerformanceScriptParser.js.map +1 -0
  168. package/dist/engine/agent-api/PublishingPipeline.d.ts +57 -0
  169. package/dist/engine/agent-api/PublishingPipeline.d.ts.map +1 -0
  170. package/dist/engine/agent-api/PublishingPipeline.js +67 -0
  171. package/dist/engine/agent-api/PublishingPipeline.js.map +1 -0
  172. package/dist/engine/agent-api/RenderProgressTracker.d.ts +49 -0
  173. package/dist/engine/agent-api/RenderProgressTracker.d.ts.map +1 -0
  174. package/dist/engine/agent-api/RenderProgressTracker.js +106 -0
  175. package/dist/engine/agent-api/RenderProgressTracker.js.map +1 -0
  176. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +50 -0
  177. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -1
  178. package/dist/engine/agent-api/RuntimeNodeHandle.js +48 -0
  179. package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -1
  180. package/dist/engine/agent-api/SceneSequencer.d.ts +54 -0
  181. package/dist/engine/agent-api/SceneSequencer.d.ts.map +1 -0
  182. package/dist/engine/agent-api/SceneSequencer.js +64 -0
  183. package/dist/engine/agent-api/SceneSequencer.js.map +1 -0
  184. package/dist/engine/agent-api/ShotCompositionRules.d.ts +45 -0
  185. package/dist/engine/agent-api/ShotCompositionRules.d.ts.map +1 -0
  186. package/dist/engine/agent-api/ShotCompositionRules.js +54 -0
  187. package/dist/engine/agent-api/ShotCompositionRules.js.map +1 -0
  188. package/dist/engine/agent-api/ShotTransitionEngine.d.ts +46 -0
  189. package/dist/engine/agent-api/ShotTransitionEngine.d.ts.map +1 -0
  190. package/dist/engine/agent-api/ShotTransitionEngine.js +98 -0
  191. package/dist/engine/agent-api/ShotTransitionEngine.js.map +1 -0
  192. package/dist/engine/agent-api/ThumbnailGenerator.d.ts +44 -0
  193. package/dist/engine/agent-api/ThumbnailGenerator.d.ts.map +1 -0
  194. package/dist/engine/agent-api/ThumbnailGenerator.js +82 -0
  195. package/dist/engine/agent-api/ThumbnailGenerator.js.map +1 -0
  196. package/dist/engine/agent-api/VideoExportPipeline.d.ts +66 -0
  197. package/dist/engine/agent-api/VideoExportPipeline.d.ts.map +1 -0
  198. package/dist/engine/agent-api/VideoExportPipeline.js +108 -0
  199. package/dist/engine/agent-api/VideoExportPipeline.js.map +1 -0
  200. package/dist/engine/agent-api/VisemeTimelineTrack.d.ts +29 -0
  201. package/dist/engine/agent-api/VisemeTimelineTrack.d.ts.map +1 -0
  202. package/dist/engine/agent-api/VisemeTimelineTrack.js +34 -0
  203. package/dist/engine/agent-api/VisemeTimelineTrack.js.map +1 -0
  204. package/dist/engine/agent-api/WaveformVisualizer.d.ts +61 -0
  205. package/dist/engine/agent-api/WaveformVisualizer.d.ts.map +1 -0
  206. package/dist/engine/agent-api/WaveformVisualizer.js +108 -0
  207. package/dist/engine/agent-api/WaveformVisualizer.js.map +1 -0
  208. package/dist/engine/agent-api/YouTubeMetadataGenerator.d.ts +21 -0
  209. package/dist/engine/agent-api/YouTubeMetadataGenerator.d.ts.map +1 -0
  210. package/dist/engine/agent-api/YouTubeMetadataGenerator.js +51 -0
  211. package/dist/engine/agent-api/YouTubeMetadataGenerator.js.map +1 -0
  212. package/dist/engine/agent-api/game-kits/fighting.d.ts +20 -0
  213. package/dist/engine/agent-api/game-kits/fighting.d.ts.map +1 -1
  214. package/dist/engine/agent-api/game-kits/fighting.js +20 -0
  215. package/dist/engine/agent-api/game-kits/fighting.js.map +1 -1
  216. package/dist/engine/agent-api/index.d.ts +92 -3
  217. package/dist/engine/agent-api/index.d.ts.map +1 -1
  218. package/dist/engine/agent-api/index.js +116 -2
  219. package/dist/engine/agent-api/index.js.map +1 -1
  220. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  221. package/dist/engine/game/GameAudio.d.ts +65 -0
  222. package/dist/engine/game/GameAudio.d.ts.map +1 -0
  223. package/dist/engine/game/GameAudio.js +155 -0
  224. package/dist/engine/game/GameAudio.js.map +1 -0
  225. package/dist/engine/game/index.d.ts +3 -0
  226. package/dist/engine/game/index.d.ts.map +1 -0
  227. package/dist/engine/game/index.js +2 -0
  228. package/dist/engine/game/index.js.map +1 -0
  229. package/dist/engine/index.d.ts +2 -0
  230. package/dist/engine/index.d.ts.map +1 -1
  231. package/dist/engine/index.js +2 -0
  232. package/dist/engine/index.js.map +1 -1
  233. package/dist/engine/production-runtime/GameAppRuntime.d.ts +3 -0
  234. package/dist/engine/production-runtime/GameAppRuntime.d.ts.map +1 -0
  235. package/dist/engine/production-runtime/GameAppRuntime.js +2 -0
  236. package/dist/engine/production-runtime/GameAppRuntime.js.map +1 -0
  237. package/dist/engine/production-runtime/GameRenderPreset.d.ts +55 -0
  238. package/dist/engine/production-runtime/GameRenderPreset.d.ts.map +1 -0
  239. package/dist/engine/production-runtime/GameRenderPreset.js +90 -0
  240. package/dist/engine/production-runtime/GameRenderPreset.js.map +1 -0
  241. package/dist/engine/production-runtime/index.d.ts +18 -1
  242. package/dist/engine/production-runtime/index.d.ts.map +1 -1
  243. package/dist/engine/production-runtime/index.js +35 -1
  244. package/dist/engine/production-runtime/index.js.map +1 -1
  245. package/dist/engine/runtime/AssetPreloader.d.ts +14 -0
  246. package/dist/engine/runtime/AssetPreloader.d.ts.map +1 -0
  247. package/dist/engine/runtime/AssetPreloader.js +22 -0
  248. package/dist/engine/runtime/AssetPreloader.js.map +1 -0
  249. package/dist/engine/runtime/ResourceManager.d.ts +48 -0
  250. package/dist/engine/runtime/ResourceManager.d.ts.map +1 -0
  251. package/dist/engine/runtime/ResourceManager.js +156 -0
  252. package/dist/engine/runtime/ResourceManager.js.map +1 -0
  253. package/dist/engine/runtime/index.d.ts +5 -0
  254. package/dist/engine/runtime/index.d.ts.map +1 -0
  255. package/dist/engine/runtime/index.js +3 -0
  256. package/dist/engine/runtime/index.js.map +1 -0
  257. package/dist/physics/CharacterController.d.ts +31 -0
  258. package/dist/physics/CharacterController.d.ts.map +1 -1
  259. package/dist/physics/CharacterController.js +90 -0
  260. package/dist/physics/CharacterController.js.map +1 -1
  261. package/dist/physics/CollisionVolumes.d.ts +29 -0
  262. package/dist/physics/CollisionVolumes.d.ts.map +1 -1
  263. package/dist/physics/CollisionVolumes.js +43 -0
  264. package/dist/physics/CollisionVolumes.js.map +1 -1
  265. package/dist/physics/KinematicBody.d.ts +15 -0
  266. package/dist/physics/KinematicBody.d.ts.map +1 -1
  267. package/dist/physics/KinematicBody.js +28 -0
  268. package/dist/physics/KinematicBody.js.map +1 -1
  269. package/dist/physics/KinematicWorld.js +6 -0
  270. package/dist/physics/KinematicWorld.js.map +1 -1
  271. package/dist/scripting/CartoonNodeCategories.d.ts +3 -0
  272. package/dist/scripting/CartoonNodeCategories.d.ts.map +1 -0
  273. package/dist/scripting/CartoonNodeCategories.js +9 -0
  274. package/dist/scripting/CartoonNodeCategories.js.map +1 -0
  275. package/dist/scripting/CartoonVisualNodes.d.ts +3 -0
  276. package/dist/scripting/CartoonVisualNodes.d.ts.map +1 -0
  277. package/dist/scripting/CartoonVisualNodes.js +41 -0
  278. package/dist/scripting/CartoonVisualNodes.js.map +1 -0
  279. package/dist/scripting/VisualGraphExecutor.js +46 -0
  280. package/dist/scripting/VisualGraphExecutor.js.map +1 -1
  281. package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
  282. package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
  283. package/dist/scripting/VisualNodeCatalog.js +3 -1
  284. package/dist/scripting/VisualNodeCatalog.js.map +1 -1
  285. package/dist/scripting/index.d.ts +3 -0
  286. package/dist/scripting/index.d.ts.map +1 -1
  287. package/dist/scripting/index.js +2 -0
  288. package/dist/scripting/index.js.map +1 -1
  289. package/package.json +119 -119
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CameraPathEditor.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CameraPathEditor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAoB,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAgC,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEjI,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,UAAU,GAAG,qBAAqB,CAMnF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,GAAG,UAAU,CAKxF;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,iBAAiB,EAC7B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,eAAe,GAAG,OAAO,CAAC,CAAC,GACvG,UAAU,CAaZ;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,GAAG,UAAU,CAKhG;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,SAAS,sBAAsB,EAAE,GACvC,SAAS,YAAY,EAAE,CAEzB"}
@@ -0,0 +1,47 @@
1
+ import { sampleCameraPath } from "./CameraChoreographer.js";
2
+ import { normalizePromptAnimationTime } from "./PromptAnimationContract.js";
3
+ export function createCameraPathEditorState(path) {
4
+ return {
5
+ path,
6
+ selectedKeyframeIds: [],
7
+ pathMarkers: path.keyframes.map(keyframeToMarker)
8
+ };
9
+ }
10
+ export function addCameraKeyframe(path, keyframe) {
11
+ return {
12
+ ...path,
13
+ keyframes: [...path.keyframes.filter((candidate) => candidate.id !== keyframe.id), keyframe].sort((a, b) => a.time - b.time)
14
+ };
15
+ }
16
+ export function moveCameraKeyframe(path, keyframeId, patch) {
17
+ return {
18
+ ...path,
19
+ keyframes: path.keyframes
20
+ .map((keyframe) => keyframe.id === keyframeId
21
+ ? {
22
+ ...keyframe,
23
+ ...patch,
24
+ time: patch.time === undefined ? keyframe.time : normalizePromptAnimationTime(patch.time)
25
+ }
26
+ : keyframe)
27
+ .sort((a, b) => a.time - b.time)
28
+ };
29
+ }
30
+ export function removeCameraKeyframe(path, keyframeId) {
31
+ return {
32
+ ...path,
33
+ keyframes: path.keyframes.filter((keyframe) => keyframe.id !== keyframeId)
34
+ };
35
+ }
36
+ export function sampleCameraPathEditorPreview(state, times) {
37
+ return times.map((time) => sampleCameraPath(state.path, time));
38
+ }
39
+ function keyframeToMarker(keyframe) {
40
+ return {
41
+ keyframeId: keyframe.id,
42
+ position: keyframe.position,
43
+ target: keyframe.target,
44
+ label: keyframe.id
45
+ };
46
+ }
47
+ //# sourceMappingURL=CameraPathEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CameraPathEditor.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CameraPathEditor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAA2D,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAE,4BAA4B,EAAuD,MAAM,8BAA8B,CAAC;AAejI,MAAM,UAAU,2BAA2B,CAAC,IAAgB;IAC1D,OAAO;QACL,IAAI;QACJ,mBAAmB,EAAE,EAAE;QACvB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAgB,EAAE,QAAwB;IAC1E,OAAO;QACL,GAAG,IAAI;QACP,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;KAC7H,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAgB,EAChB,UAA6B,EAC7B,KAAwG;IAExG,OAAO;QACL,GAAG,IAAI;QACP,SAAS,EAAE,IAAI,CAAC,SAAS;aACtB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,UAAU;YAC3C,CAAC,CAAC;gBACE,GAAG,QAAQ;gBACX,GAAG,KAAK;gBACR,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,KAAK,CAAC,IAAI,CAAC;aAC1F;YACH,CAAC,CAAC,QAAQ,CAAC;aACZ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAgB,EAAE,UAA6B;IAClF,OAAO;QACL,GAAG,IAAI;QACP,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,UAAU,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAA4B,EAC5B,KAAwC;IAExC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAwB;IAChD,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,QAAQ,CAAC,EAAE;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { AuraVec3 } from "./index.js";
2
+ import type { ShotCameraInstruction } from "./ShotTimeline.js";
3
+ import type { PromptAnimationId } from "./PromptAnimationContract.js";
4
+ export type CameraPresetId = "establishing" | "medium" | "close-up" | "over-shoulder" | "tracking" | "crane" | "dolly-zoom" | string;
5
+ export interface CameraPreset {
6
+ readonly id: CameraPresetId;
7
+ readonly label: string;
8
+ readonly description: string;
9
+ readonly camera: ShotCameraInstruction;
10
+ readonly subjectDistance: number;
11
+ readonly fov: number;
12
+ readonly composition: readonly string[];
13
+ }
14
+ export declare const cameraPresetLibrary: readonly CameraPreset[];
15
+ export declare function getCameraPreset(id: CameraPresetId): CameraPreset | undefined;
16
+ export declare function cameraPreset(id: CameraPresetId): CameraPreset;
17
+ export declare function applyCameraPreset(presetId: CameraPresetId, options?: {
18
+ readonly subjectPosition?: AuraVec3 | undefined;
19
+ readonly focusTargetId?: PromptAnimationId | undefined;
20
+ readonly overrides?: Partial<ShotCameraInstruction> | undefined;
21
+ }): ShotCameraInstruction;
22
+ //# sourceMappingURL=CameraPresetLibrary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CameraPresetLibrary.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CameraPresetLibrary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,QAAQ,GACR,UAAU,GACV,eAAe,GACf,UAAU,GACV,OAAO,GACP,YAAY,GACZ,MAAM,CAAC;AAEX,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAgEtD,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAE5E;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,cAAc,GAAG,YAAY,CAI7D;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE;IACP,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC;CAC5D,GACL,qBAAqB,CAYvB"}
@@ -0,0 +1,91 @@
1
+ export const cameraPresetLibrary = [
2
+ {
3
+ id: "establishing",
4
+ label: "Establishing",
5
+ description: "Wide shot that introduces the location and character staging.",
6
+ camera: { move: "static", position: [0, 3.2, 7.5], target: [0, 1.2, 0], fov: 45 },
7
+ subjectDistance: 7.5,
8
+ fov: 45,
9
+ composition: ["safe-area", "rule-of-thirds"]
10
+ },
11
+ {
12
+ id: "medium",
13
+ label: "Medium",
14
+ description: "Waist-up dialogue framing for one or two characters.",
15
+ camera: { move: "static", position: [0, 1.7, 4.2], target: [0, 1.25, 0], fov: 38 },
16
+ subjectDistance: 4.2,
17
+ fov: 38,
18
+ composition: ["headroom", "leading-room"]
19
+ },
20
+ {
21
+ id: "close-up",
22
+ label: "Close Up",
23
+ description: "Face-focused emotional beat with shallow framing.",
24
+ camera: { move: "push-in", from: [0, 1.55, 2.8], to: [0, 1.55, 2.1], target: [0, 1.45, 0], fov: 32 },
25
+ subjectDistance: 2.4,
26
+ fov: 32,
27
+ composition: ["headroom", "safe-area"]
28
+ },
29
+ {
30
+ id: "over-shoulder",
31
+ label: "Over Shoulder",
32
+ description: "Dialogue shot from behind a listening character toward the speaker.",
33
+ camera: { move: "static", position: [-1.1, 1.55, 3.2], target: [0.55, 1.35, 0], fov: 35 },
34
+ subjectDistance: 3.4,
35
+ fov: 35,
36
+ composition: ["leading-room", "shot-reverse-shot"]
37
+ },
38
+ {
39
+ id: "tracking",
40
+ label: "Tracking",
41
+ description: "Side-follow camera for walking or running blocking.",
42
+ camera: { move: "truck", from: [-2.5, 1.6, 4], to: [2.5, 1.6, 4], target: [0, 1.2, 0], fov: 40 },
43
+ subjectDistance: 4,
44
+ fov: 40,
45
+ composition: ["leading-room"]
46
+ },
47
+ {
48
+ id: "crane",
49
+ label: "Crane",
50
+ description: "Vertical move that reveals the set scale.",
51
+ camera: { move: "dolly", from: [0, 1.8, 5.5], to: [0, 5.5, 7.2], target: [0, 1, 0], fov: 48 },
52
+ subjectDistance: 6.2,
53
+ fov: 48,
54
+ composition: ["safe-area"]
55
+ },
56
+ {
57
+ id: "dolly-zoom",
58
+ label: "Dolly Zoom",
59
+ description: "Push/pull perspective move for surprise or realization beats.",
60
+ camera: { move: "dolly", from: [0, 1.6, 5], to: [0, 1.6, 2.4], target: [0, 1.35, 0], fov: 55 },
61
+ subjectDistance: 3.8,
62
+ fov: 55,
63
+ composition: ["headroom", "center-punch"]
64
+ }
65
+ ];
66
+ export function getCameraPreset(id) {
67
+ return cameraPresetLibrary.find((preset) => preset.id === id);
68
+ }
69
+ export function cameraPreset(id) {
70
+ const preset = getCameraPreset(id);
71
+ if (!preset)
72
+ throw new Error(`Unknown camera preset: ${id}`);
73
+ return preset;
74
+ }
75
+ export function applyCameraPreset(presetId, options = {}) {
76
+ const preset = cameraPreset(presetId);
77
+ const offset = options.subjectPosition ?? [0, 0, 0];
78
+ return {
79
+ ...preset.camera,
80
+ ...(preset.camera.position ? { position: addVec3(preset.camera.position, offset) } : {}),
81
+ ...(preset.camera.target ? { target: addVec3(preset.camera.target, offset) } : {}),
82
+ ...(preset.camera.from ? { from: addVec3(preset.camera.from, offset) } : {}),
83
+ ...(preset.camera.to ? { to: addVec3(preset.camera.to, offset) } : {}),
84
+ ...(options.focusTargetId ? { focusTargetId: options.focusTargetId } : {}),
85
+ ...options.overrides
86
+ };
87
+ }
88
+ function addVec3(a, b) {
89
+ return [a[0] + b[0], a[1] + b[1], a[2] + b[2]];
90
+ }
91
+ //# sourceMappingURL=CameraPresetLibrary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CameraPresetLibrary.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CameraPresetLibrary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { CaptionCue, CaptionTrackArtifact } from "./DialoguePerformance.js";
2
+ import { type PromptAnimationSeconds } from "./PromptAnimationContract.js";
3
+ export type CaptionExportFormat = "vtt" | "srt";
4
+ export interface CaptionExportArtifact {
5
+ readonly kind: "caption-export";
6
+ readonly format: CaptionExportFormat;
7
+ readonly language: string;
8
+ readonly cueCount: number;
9
+ readonly text: string;
10
+ readonly mimeType: string;
11
+ }
12
+ export declare function exportCaptionTrack(captions: CaptionTrackArtifact, format: CaptionExportFormat): CaptionExportArtifact;
13
+ export declare function exportCaptionTrackVtt(track: CaptionTrackArtifact): string;
14
+ export declare function exportCaptionTrackSrt(track: CaptionTrackArtifact): string;
15
+ export declare function captionsToVtt(cues: readonly CaptionCue[]): string;
16
+ export declare function captionsToSrt(cues: readonly CaptionCue[]): string;
17
+ export declare function formatCaptionTimestamp(time: PromptAnimationSeconds, format: CaptionExportFormat): string;
18
+ export declare function captionCueFileSafeText(cue: CaptionCue): string;
19
+ //# sourceMappingURL=CaptionExporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaptionExporter.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CaptionExporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEzG,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,CAAC;AAEhD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,mBAAmB,GAAG,qBAAqB,CASrH;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAEzE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAEzE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CASjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CASjE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,CASxG;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAE9D"}
@@ -0,0 +1,54 @@
1
+ import { normalizePromptAnimationTime } from "./PromptAnimationContract.js";
2
+ export function exportCaptionTrack(captions, format) {
3
+ return {
4
+ kind: "caption-export",
5
+ format,
6
+ language: captions.language,
7
+ cueCount: captions.cues.length,
8
+ text: format === "vtt" ? captionsToVtt(captions.cues) : captionsToSrt(captions.cues),
9
+ mimeType: format === "vtt" ? "text/vtt" : "application/x-subrip"
10
+ };
11
+ }
12
+ export function exportCaptionTrackVtt(track) {
13
+ return exportCaptionTrack(track, "vtt").text;
14
+ }
15
+ export function exportCaptionTrackSrt(track) {
16
+ return exportCaptionTrack(track, "srt").text;
17
+ }
18
+ export function captionsToVtt(cues) {
19
+ const lines = ["WEBVTT", ""];
20
+ cues.forEach((cue, index) => {
21
+ lines.push(cue.captionId || String(index + 1));
22
+ lines.push(`${formatCaptionTimestamp(cue.startTime, "vtt")} --> ${formatCaptionTimestamp(cue.endTime, "vtt")}`);
23
+ lines.push(captionCueFileSafeText(cue));
24
+ lines.push("");
25
+ });
26
+ return lines.join("\n");
27
+ }
28
+ export function captionsToSrt(cues) {
29
+ const lines = [];
30
+ cues.forEach((cue, index) => {
31
+ lines.push(String(index + 1));
32
+ lines.push(`${formatCaptionTimestamp(cue.startTime, "srt")} --> ${formatCaptionTimestamp(cue.endTime, "srt")}`);
33
+ lines.push(captionCueFileSafeText(cue));
34
+ lines.push("");
35
+ });
36
+ return lines.join("\n");
37
+ }
38
+ export function formatCaptionTimestamp(time, format) {
39
+ const normalized = normalizePromptAnimationTime(Math.max(0, time));
40
+ const totalMs = Math.round(normalized * 1000);
41
+ const hours = Math.floor(totalMs / 3_600_000);
42
+ const minutes = Math.floor(totalMs % 3_600_000 / 60_000);
43
+ const seconds = Math.floor(totalMs % 60_000 / 1000);
44
+ const ms = totalMs % 1000;
45
+ const separator = format === "srt" ? "," : ".";
46
+ return `${pad2(hours)}:${pad2(minutes)}:${pad2(seconds)}${separator}${String(ms).padStart(3, "0")}`;
47
+ }
48
+ export function captionCueFileSafeText(cue) {
49
+ return cue.text.replace(/\s+/g, " ").trim();
50
+ }
51
+ function pad2(value) {
52
+ return String(value).padStart(2, "0");
53
+ }
54
+ //# sourceMappingURL=CaptionExporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaptionExporter.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CaptionExporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { PromptAnimationId } from "./PromptAnimationContract.js";
2
+ export type CartoonAssetManifestKind = "character" | "prop" | "set" | "environment" | "audio";
3
+ export interface CartoonAssetManifestEntry {
4
+ readonly id: PromptAnimationId;
5
+ readonly kind: CartoonAssetManifestKind;
6
+ readonly assetId: string;
7
+ readonly style: string;
8
+ readonly license: string;
9
+ readonly sourcePage?: string | undefined;
10
+ readonly attribution?: string | undefined;
11
+ readonly lipSyncReady?: boolean;
12
+ readonly emotionSupport?: readonly string[];
13
+ readonly animationClips?: readonly string[];
14
+ readonly materialPreview?: {
15
+ readonly materialCount: number;
16
+ readonly swatches: readonly string[];
17
+ readonly celShadingReady?: boolean | undefined;
18
+ } | undefined;
19
+ readonly preview?: {
20
+ readonly thumbnailPath?: string | undefined;
21
+ readonly orbitPreview?: boolean | undefined;
22
+ readonly zoomPreview?: boolean | undefined;
23
+ readonly animationPreviewClips?: readonly string[] | undefined;
24
+ } | undefined;
25
+ readonly metadata?: Readonly<Record<string, string | number | boolean | readonly string[]>> | undefined;
26
+ }
27
+ export interface CartoonAssetManifest {
28
+ readonly kind: "cartoon-asset-manifest";
29
+ readonly entries: readonly CartoonAssetManifestEntry[];
30
+ }
31
+ export declare function defineCartoonAssetManifest(entries: readonly CartoonAssetManifestEntry[]): CartoonAssetManifest;
32
+ //# sourceMappingURL=CartoonAssetManifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartoonAssetManifest.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CartoonAssetManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,GAAG,OAAO,CAAC;AAE9F,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KAChD,GAAG,SAAS,CAAC;IACd,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5C,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC3C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;KAChE,GAAG,SAAS,CAAC;IACd,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;CACzG;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACxD;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,SAAS,yBAAyB,EAAE,GAAG,oBAAoB,CAE9G"}
@@ -0,0 +1,4 @@
1
+ export function defineCartoonAssetManifest(entries) {
2
+ return { kind: "cartoon-asset-manifest", entries };
3
+ }
4
+ //# sourceMappingURL=CartoonAssetManifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartoonAssetManifest.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CartoonAssetManifest.ts"],"names":[],"mappings":"AAkCA,MAAM,UAAU,0BAA0B,CAAC,OAA6C;IACtF,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC;AACrD,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { DialogueTrackArtifact } from "./DialoguePerformance.js";
2
+ export interface DialogueAlignmentCue {
3
+ readonly lineId: string;
4
+ readonly audioFile?: string | undefined;
5
+ readonly startTime: number;
6
+ readonly endTime: number;
7
+ readonly duration: number;
8
+ readonly driftSeconds: number;
9
+ }
10
+ export interface DialogueAlignmentReport {
11
+ readonly kind: "dialogue-alignment";
12
+ readonly lineCount: number;
13
+ readonly alignedLineCount: number;
14
+ readonly maxDriftSeconds: number;
15
+ readonly cues: readonly DialogueAlignmentCue[];
16
+ }
17
+ export declare function alignDialogueToAudio(dialogue: DialogueTrackArtifact, durationsByAudioFile: Readonly<Record<string, number>>): DialogueAlignmentReport;
18
+ //# sourceMappingURL=DialogueAlignment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogueAlignment.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/DialogueAlignment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEpF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAChD;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,qBAAqB,EAC/B,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACrD,uBAAuB,CASzB"}
@@ -0,0 +1,23 @@
1
+ export function alignDialogueToAudio(dialogue, durationsByAudioFile) {
2
+ const cues = dialogue.lines.map((line) => alignDialogueLine(line, durationsByAudioFile[line.audioFile ?? ""]));
3
+ return {
4
+ kind: "dialogue-alignment",
5
+ lineCount: dialogue.lines.length,
6
+ alignedLineCount: cues.filter((cue) => cue.audioFile && cue.driftSeconds <= 0.05).length,
7
+ maxDriftSeconds: Math.max(0, ...cues.map((cue) => cue.driftSeconds)),
8
+ cues
9
+ };
10
+ }
11
+ function alignDialogueLine(line, audioDuration) {
12
+ const lineDuration = Math.max(0, line.endTime - line.startTime);
13
+ const duration = audioDuration ?? lineDuration;
14
+ return {
15
+ lineId: line.lineId,
16
+ audioFile: line.audioFile,
17
+ startTime: line.startTime,
18
+ endTime: line.startTime + duration,
19
+ duration,
20
+ driftSeconds: Math.abs(duration - lineDuration)
21
+ };
22
+ }
23
+ //# sourceMappingURL=DialogueAlignment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogueAlignment.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/DialogueAlignment.ts"],"names":[],"mappings":"AAmBA,MAAM,UAAU,oBAAoB,CAClC,QAA+B,EAC/B,oBAAsD;IAEtD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrI,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;QAChC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,MAAM;QACxF,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAkB,EAAE,aAAsB;IACnE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,aAAa,IAAI,YAAY,CAAC;IAC/C,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,SAAS,GAAG,QAAQ;QAClC,QAAQ;QACR,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;KAChD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { type PromptAnimationId, type PromptAnimationSeconds, type PromptAnimationValidationIssue } from "./PromptAnimationContract.js";
2
+ export interface EpisodeShotRef {
3
+ readonly shotId: PromptAnimationId;
4
+ readonly timelineShotId?: PromptAnimationId | undefined;
5
+ readonly startTime: PromptAnimationSeconds;
6
+ readonly endTime: PromptAnimationSeconds;
7
+ readonly beat?: string | undefined;
8
+ readonly pacing?: "hold" | "normal" | "quick" | "montage" | undefined;
9
+ }
10
+ export interface EpisodeSceneStructure {
11
+ readonly sceneId: PromptAnimationId;
12
+ readonly title: string;
13
+ readonly locationId?: PromptAnimationId | undefined;
14
+ readonly startTime: PromptAnimationSeconds;
15
+ readonly endTime: PromptAnimationSeconds;
16
+ readonly characterIds: readonly PromptAnimationId[];
17
+ readonly shotRefs: readonly EpisodeShotRef[];
18
+ }
19
+ export interface EpisodeActStructure {
20
+ readonly actId: PromptAnimationId;
21
+ readonly title: string;
22
+ readonly startTime: PromptAnimationSeconds;
23
+ readonly endTime: PromptAnimationSeconds;
24
+ readonly scenes: readonly EpisodeSceneStructure[];
25
+ readonly pacingNotes?: readonly string[] | undefined;
26
+ }
27
+ export interface EpisodeStructureMetadata {
28
+ readonly title: string;
29
+ readonly description?: string | undefined;
30
+ readonly runtime: PromptAnimationSeconds;
31
+ readonly characterIds: readonly PromptAnimationId[];
32
+ readonly language?: string | undefined;
33
+ }
34
+ export interface EpisodeStructureArtifact {
35
+ readonly artifact: "episode-structure";
36
+ readonly contractId: string;
37
+ readonly episodeId: PromptAnimationId;
38
+ readonly metadata: EpisodeStructureMetadata;
39
+ readonly acts: readonly EpisodeActStructure[];
40
+ readonly generatedAt?: string | undefined;
41
+ }
42
+ export type EpisodeStructure = EpisodeStructureArtifact;
43
+ export interface LegacyEpisodeShotReference {
44
+ readonly shotId: PromptAnimationId;
45
+ readonly startTime: PromptAnimationSeconds;
46
+ readonly endTime: PromptAnimationSeconds;
47
+ }
48
+ export interface LegacyEpisodeScene {
49
+ readonly sceneId: PromptAnimationId;
50
+ readonly title: string;
51
+ readonly locationId?: PromptAnimationId | undefined;
52
+ readonly shots: readonly LegacyEpisodeShotReference[];
53
+ }
54
+ export interface LegacyEpisodeAct {
55
+ readonly actId: PromptAnimationId;
56
+ readonly title: string;
57
+ readonly scenes: readonly LegacyEpisodeScene[];
58
+ }
59
+ export interface LegacyEpisodeStructureInput {
60
+ readonly episodeId: PromptAnimationId;
61
+ readonly title: string;
62
+ readonly acts: readonly LegacyEpisodeAct[];
63
+ readonly metadata: Readonly<Record<string, string | number | boolean>>;
64
+ readonly duration?: PromptAnimationSeconds | undefined;
65
+ readonly generatedAt?: string | undefined;
66
+ }
67
+ export type CreateEpisodeStructureInput = {
68
+ readonly episodeId: PromptAnimationId;
69
+ readonly metadata: EpisodeStructureMetadata;
70
+ readonly acts: readonly EpisodeActStructure[];
71
+ readonly generatedAt?: string | undefined;
72
+ };
73
+ export declare function createEpisodeStructure(input: CreateEpisodeStructureInput | LegacyEpisodeStructureInput): EpisodeStructureArtifact;
74
+ export declare function flattenEpisodeShotRefs(episode: EpisodeStructureArtifact): readonly EpisodeShotRef[];
75
+ export declare function sceneStructureAtTime(episode: EpisodeStructureArtifact, time: PromptAnimationSeconds): EpisodeSceneStructure | undefined;
76
+ export declare function validateEpisodeStructure(episode: EpisodeStructureArtifact): readonly PromptAnimationValidationIssue[];
77
+ //# sourceMappingURL=EpisodeStructure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EpisodeStructure.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/EpisodeStructure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ import { normalizePromptAnimationTime, promptAnimationContractVersion, createPromptAnimationIssue } from "./PromptAnimationContract.js";
2
+ export function createEpisodeStructure(input) {
3
+ if ("title" in input) {
4
+ const sceneShots = (scene) => "shots" in scene ? scene.shots : scene.shotRefs;
5
+ const legacyActs = input.acts;
6
+ const runtime = input.duration ?? Math.max(0, ...legacyActs.flatMap((act) => act.scenes.flatMap((scene) => sceneShots(scene).map((shot) => shot.endTime))));
7
+ return {
8
+ artifact: "episode-structure",
9
+ contractId: promptAnimationContractVersion,
10
+ episodeId: input.episodeId,
11
+ metadata: {
12
+ title: input.title,
13
+ runtime: normalizePromptAnimationTime(runtime),
14
+ characterIds: typeof input.metadata.characterId === "string" ? [input.metadata.characterId] : []
15
+ },
16
+ acts: legacyActs.map((act) => ({
17
+ actId: act.actId,
18
+ title: act.title,
19
+ startTime: normalizePromptAnimationTime(readNumber(act, "startTime") ?? Math.min(...act.scenes.flatMap((scene) => sceneShots(scene).map((shot) => shot.startTime)), 0)),
20
+ endTime: normalizePromptAnimationTime(readNumber(act, "endTime") ?? Math.max(...act.scenes.flatMap((scene) => sceneShots(scene).map((shot) => shot.endTime)), runtime)),
21
+ scenes: act.scenes.map((scene) => ({
22
+ sceneId: scene.sceneId,
23
+ title: scene.title,
24
+ locationId: scene.locationId,
25
+ startTime: normalizePromptAnimationTime(readNumber(scene, "startTime") ?? Math.min(...sceneShots(scene).map((shot) => shot.startTime), 0)),
26
+ endTime: normalizePromptAnimationTime(readNumber(scene, "endTime") ?? Math.max(...sceneShots(scene).map((shot) => shot.endTime), runtime)),
27
+ characterIds: readStringArray(scene, "characterIds"),
28
+ shotRefs: sceneShots(scene).map((shot) => ({ ...shot }))
29
+ }))
30
+ })),
31
+ ...(input.generatedAt ? { generatedAt: input.generatedAt } : {})
32
+ };
33
+ }
34
+ return {
35
+ artifact: "episode-structure",
36
+ contractId: promptAnimationContractVersion,
37
+ episodeId: input.episodeId,
38
+ metadata: {
39
+ ...input.metadata,
40
+ runtime: normalizePromptAnimationTime(input.metadata.runtime)
41
+ },
42
+ acts: input.acts.map(normalizeActStructure),
43
+ ...(input.generatedAt ? { generatedAt: input.generatedAt } : {})
44
+ };
45
+ }
46
+ export function flattenEpisodeShotRefs(episode) {
47
+ return episode.acts.flatMap((act) => act.scenes.flatMap((scene) => scene.shotRefs));
48
+ }
49
+ export function sceneStructureAtTime(episode, time) {
50
+ const normalized = normalizePromptAnimationTime(time);
51
+ for (const act of episode.acts) {
52
+ for (const scene of act.scenes) {
53
+ if (normalized >= scene.startTime && normalized < scene.endTime)
54
+ return scene;
55
+ }
56
+ }
57
+ const lastAct = episode.acts[episode.acts.length - 1];
58
+ const lastScene = lastAct?.scenes[lastAct.scenes.length - 1];
59
+ if (lastScene && normalized === lastScene.endTime)
60
+ return lastScene;
61
+ return undefined;
62
+ }
63
+ export function validateEpisodeStructure(episode) {
64
+ const issues = [];
65
+ if (!episode.metadata.title.trim()) {
66
+ issues.push(createPromptAnimationIssue("error", "episode-structure-title-missing", "Episode structure requires a title."));
67
+ }
68
+ if (episode.acts.length === 0) {
69
+ issues.push(createPromptAnimationIssue("error", "episode-structure-acts-missing", "Episode structure requires at least one act."));
70
+ }
71
+ const sceneIds = new Set();
72
+ const shotIds = new Set();
73
+ for (const [actIndex, act] of episode.acts.entries()) {
74
+ if (act.endTime <= act.startTime) {
75
+ issues.push(createPromptAnimationIssue("error", "episode-act-duration", `Act "${act.actId}" must end after it starts.`, { path: `acts.${actIndex}` }));
76
+ }
77
+ for (const [sceneIndex, scene] of act.scenes.entries()) {
78
+ if (sceneIds.has(scene.sceneId)) {
79
+ issues.push(createPromptAnimationIssue("error", "episode-scene-id-duplicate", `Duplicate scene id "${scene.sceneId}".`, { path: `acts.${actIndex}.scenes.${sceneIndex}` }));
80
+ }
81
+ sceneIds.add(scene.sceneId);
82
+ if (scene.endTime <= scene.startTime) {
83
+ issues.push(createPromptAnimationIssue("error", "episode-scene-duration", `Scene "${scene.sceneId}" must end after it starts.`, { path: `acts.${actIndex}.scenes.${sceneIndex}` }));
84
+ }
85
+ for (const [shotIndex, shot] of scene.shotRefs.entries()) {
86
+ if (shotIds.has(shot.shotId)) {
87
+ issues.push(createPromptAnimationIssue("warning", "episode-shot-id-reused", `Shot id "${shot.shotId}" is reused in the episode structure.`, { path: `acts.${actIndex}.scenes.${sceneIndex}.shotRefs.${shotIndex}` }));
88
+ }
89
+ shotIds.add(shot.shotId);
90
+ if (shot.endTime <= shot.startTime) {
91
+ issues.push(createPromptAnimationIssue("error", "episode-shot-duration", `Shot "${shot.shotId}" must end after it starts.`, { path: `acts.${actIndex}.scenes.${sceneIndex}.shotRefs.${shotIndex}` }));
92
+ }
93
+ }
94
+ }
95
+ }
96
+ return issues;
97
+ }
98
+ function readNumber(value, key) {
99
+ const record = value;
100
+ return typeof record[key] === "number" ? record[key] : undefined;
101
+ }
102
+ function readStringArray(value, key) {
103
+ const record = value;
104
+ return Array.isArray(record[key]) && record[key].every((entry) => typeof entry === "string") ? record[key] : [];
105
+ }
106
+ function normalizeActStructure(act) {
107
+ return {
108
+ ...act,
109
+ startTime: normalizePromptAnimationTime(act.startTime),
110
+ endTime: normalizePromptAnimationTime(act.endTime),
111
+ scenes: act.scenes.map((scene) => ({
112
+ ...scene,
113
+ startTime: normalizePromptAnimationTime(scene.startTime),
114
+ endTime: normalizePromptAnimationTime(scene.endTime),
115
+ shotRefs: scene.shotRefs.map((shot) => ({
116
+ ...shot,
117
+ startTime: normalizePromptAnimationTime(shot.startTime),
118
+ endTime: normalizePromptAnimationTime(shot.endTime)
119
+ }))
120
+ }))
121
+ };
122
+ }
123
+ //# sourceMappingURL=EpisodeStructure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EpisodeStructure.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/EpisodeStructure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAA4F,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAoFlO,MAAM,UAAU,sBAAsB,CAAC,KAAgE;IACrG,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,CAAC,KAAiD,EAA6B,EAAE,CAClG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,IAA2D,CAAC;QACrF,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5J,OAAO;YACL,QAAQ,EAAE,mBAAmB;YAC7B,UAAU,EAAE,8BAA8B;YAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE;gBACR,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,4BAA4B,CAAC,OAAO,CAAC;gBAC9C,YAAY,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;aACjG;YACD,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC7B,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,SAAS,EAAE,4BAA4B,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvK,OAAO,EAAE,4BAA4B,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACvK,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACjC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,SAAS,EAAE,4BAA4B,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1I,OAAO,EAAE,4BAA4B,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC1I,YAAY,EAAE,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC;oBACpD,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;iBACzD,CAAC,CAAC;aACJ,CAAC,CAAC;YACH,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,mBAAmB;QAC7B,UAAU,EAAE,8BAA8B;QAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE;YACR,GAAG,KAAK,CAAC,QAAQ;YACjB,OAAO,EAAE,4BAA4B,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;SAC9D;QACD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAiC;IACtE,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAiC,EACjC,IAA4B;IAE5B,MAAM,UAAU,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,UAAU,IAAI,KAAK,CAAC,SAAS,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;QAChF,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,IAAI,SAAS,IAAI,UAAU,KAAK,SAAS,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACpE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAiC;IACxE,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,iCAAiC,EAAE,qCAAqC,CAAC,CAAC,CAAC;IAC7H,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,gCAAgC,EAAE,8CAA8C,CAAC,CAAC,CAAC;IACrI,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACrD,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,GAAG,CAAC,KAAK,6BAA6B,EAAE,EAAE,IAAI,EAAE,QAAQ,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QACzJ,CAAC;QACD,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,QAAQ,WAAW,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9K,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,wBAAwB,EAAE,UAAU,KAAK,CAAC,OAAO,6BAA6B,EAAE,EAAE,IAAI,EAAE,QAAQ,QAAQ,WAAW,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YACtL,CAAC;YACD,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,wBAAwB,EAAE,YAAY,IAAI,CAAC,MAAM,uCAAuC,EAAE,EAAE,IAAI,EAAE,QAAQ,QAAQ,WAAW,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;gBACxN,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,uBAAuB,EAAE,SAAS,IAAI,CAAC,MAAM,6BAA6B,EAAE,EAAE,IAAI,EAAE,QAAQ,QAAQ,WAAW,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;gBACxM,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,GAAW;IAC7C,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,GAAW;IAClD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClH,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAwB;IACrD,OAAO;QACL,GAAG,GAAG;QACN,SAAS,EAAE,4BAA4B,CAAC,GAAG,CAAC,SAAS,CAAC;QACtD,OAAO,EAAE,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC;QAClD,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjC,GAAG,KAAK;YACR,SAAS,EAAE,4BAA4B,CAAC,KAAK,CAAC,SAAS,CAAC;YACxD,OAAO,EAAE,4BAA4B,CAAC,KAAK,CAAC,OAAO,CAAC;YACpD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtC,GAAG,IAAI;gBACP,SAAS,EAAE,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC;gBACvD,OAAO,EAAE,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC;aACpD,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type EpisodeTemplateId = "short-form" | "standard" | "series-pilot" | "educational" | "music-video";
2
+ export interface EpisodeTemplate {
3
+ readonly id: EpisodeTemplateId;
4
+ readonly label: string;
5
+ readonly durationMinutes: readonly [number, number];
6
+ readonly characterRange: readonly [number, number];
7
+ readonly beatRange: readonly [number, number];
8
+ readonly cameraStyle: string;
9
+ readonly musicCue: string;
10
+ }
11
+ export declare const episodeTemplates: readonly EpisodeTemplate[];
12
+ export declare function episodeTemplate(id: EpisodeTemplateId): EpisodeTemplate;
13
+ //# sourceMappingURL=EpisodeTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EpisodeTemplates.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/EpisodeTemplates.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAE3G,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAE,SAAS,eAAe,EAMtD,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAAE,EAAE,iBAAiB,GAAG,eAAe,CAItE"}