@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,57 @@
1
+ import type { CartoonRenderOutputPackageMetadata } from "./CartoonRenderQueue.js";
2
+ import type { CaptionTrackArtifact } from "./DialoguePerformance.js";
3
+ import { type CaptionExportArtifact } from "./CaptionExporter.js";
4
+ import { type ThumbnailArtifact, type ThumbnailCaptureRuntime, type ThumbnailGenerationPlan } from "./ThumbnailGenerator.js";
5
+ import { type YouTubeMetadataArtifact } from "./YouTubeMetadataGenerator.js";
6
+ import { type PromptAnimationEpisodePlan, type PromptAnimationId, type PromptAnimationValidationIssue } from "./PromptAnimationContract.js";
7
+ import type { VideoExportResult } from "./VideoExportPipeline.js";
8
+ import type { MuxedVideoArtifact } from "./AudioMuxer.js";
9
+ export interface PublishingPackageArtifact {
10
+ readonly artifact: "publishing-package";
11
+ readonly contractId: string;
12
+ readonly episodeId: PromptAnimationId;
13
+ readonly videoPath: string;
14
+ readonly captions: readonly CaptionExportArtifact[];
15
+ readonly thumbnailPlan: ThumbnailGenerationPlan;
16
+ readonly thumbnail?: ThumbnailArtifact | undefined;
17
+ readonly youtubeMetadata: YouTubeMetadataArtifact;
18
+ readonly evidencePath: string;
19
+ readonly readiness: PublishingReadinessReport;
20
+ }
21
+ export interface PublishingReadinessReport {
22
+ readonly status: "pass" | "fail";
23
+ readonly checks: readonly PublishingReadinessCheck[];
24
+ readonly issues: readonly PromptAnimationValidationIssue[];
25
+ }
26
+ export interface PublishingReadinessCheck {
27
+ readonly id: string;
28
+ readonly passed: boolean;
29
+ readonly message: string;
30
+ }
31
+ export interface CreatePublishingPackageOptions {
32
+ readonly episodePlan?: PromptAnimationEpisodePlan | undefined;
33
+ readonly outputPackage: CartoonRenderOutputPackageMetadata;
34
+ readonly captions?: CaptionTrackArtifact | undefined;
35
+ readonly videoResult?: VideoExportResult | undefined;
36
+ readonly thumbnailRuntime?: ThumbnailCaptureRuntime | undefined;
37
+ }
38
+ export declare function createPublishingPackage(options: CreatePublishingPackageOptions): Promise<PublishingPackageArtifact>;
39
+ export interface PublishPackageArtifact {
40
+ readonly kind: "publish-package";
41
+ readonly ok: boolean;
42
+ readonly video: MuxedVideoArtifact;
43
+ readonly captions: readonly {
44
+ readonly kind: "vtt" | "srt";
45
+ readonly text: string;
46
+ }[];
47
+ readonly thumbnail: ThumbnailArtifact;
48
+ readonly youtube: YouTubeMetadataArtifact;
49
+ readonly issues: readonly string[];
50
+ }
51
+ export declare function createPublishPackage(input: {
52
+ readonly video: MuxedVideoArtifact;
53
+ readonly captions: CaptionTrackArtifact;
54
+ readonly outputPackage: CartoonRenderOutputPackageMetadata;
55
+ }): PublishPackageArtifact;
56
+ export declare function validatePublishingPackage(pkg: Omit<PublishingPackageArtifact, "readiness"> | PublishingPackageArtifact): PublishingReadinessReport;
57
+ //# sourceMappingURL=PublishingPipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublishingPipeline.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/PublishingPipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { exportCaptionTrack } from "./CaptionExporter.js";
2
+ import { createThumbnailArtifact, createThumbnailGenerationPlan, generateThumbnailArtifact } from "./ThumbnailGenerator.js";
3
+ import { generateYouTubeMetadata } from "./YouTubeMetadataGenerator.js";
4
+ import { createPromptAnimationIssue, promptAnimationContractVersion } from "./PromptAnimationContract.js";
5
+ export async function createPublishingPackage(options) {
6
+ const captionExports = options.captions ? [exportCaptionTrack(options.captions, "vtt"), exportCaptionTrack(options.captions, "srt")] : [];
7
+ const thumbnailPlan = createThumbnailGenerationPlan({ packageMetadata: options.outputPackage });
8
+ const thumbnail = options.thumbnailRuntime ? await generateThumbnailArtifact(thumbnailPlan, options.thumbnailRuntime) : undefined;
9
+ const youtubeMetadata = generateYouTubeMetadata({
10
+ episodePlan: options.episodePlan,
11
+ packageMetadata: options.outputPackage
12
+ });
13
+ const videoPath = options.outputPackage.outputs.mp4?.path ?? options.outputPackage.outputs.webm?.path ?? options.videoResult?.plan.outputPath ?? "";
14
+ const artifact = {
15
+ artifact: "publishing-package",
16
+ contractId: promptAnimationContractVersion,
17
+ episodeId: options.outputPackage.episodeId,
18
+ videoPath,
19
+ captions: captionExports,
20
+ thumbnailPlan,
21
+ ...(thumbnail ? { thumbnail } : {}),
22
+ youtubeMetadata,
23
+ evidencePath: options.outputPackage.outputs.evidenceJson?.path ?? ""
24
+ };
25
+ return {
26
+ ...artifact,
27
+ readiness: validatePublishingPackage(artifact)
28
+ };
29
+ }
30
+ export function createPublishPackage(input) {
31
+ const captionExports = [exportCaptionTrack(input.captions, "vtt"), exportCaptionTrack(input.captions, "srt")];
32
+ const thumbnail = createThumbnailArtifact({
33
+ path: input.outputPackage.outputs.thumbnail?.path ?? "dist/render/thumbnail.png",
34
+ viewport: input.outputPackage.viewport,
35
+ time: input.outputPackage.thumbnailCapture.time,
36
+ mimeType: "image/png"
37
+ });
38
+ const issues = input.video.byteLength <= 0 ? ["video output is empty"] : [];
39
+ return {
40
+ kind: "publish-package",
41
+ ok: issues.length === 0 && input.captions.cues.length > 0,
42
+ video: input.video,
43
+ captions: captionExports.map((caption) => ({ kind: caption.format, text: caption.text })),
44
+ thumbnail,
45
+ youtube: generateYouTubeMetadata({ packageMetadata: input.outputPackage }),
46
+ issues: input.captions.cues.length === 0 ? [...issues, "caption track has no cues"] : issues
47
+ };
48
+ }
49
+ export function validatePublishingPackage(pkg) {
50
+ const checks = [
51
+ { id: "video", passed: Boolean(pkg.videoPath), message: "Video output path is present." },
52
+ { id: "captions", passed: pkg.captions.length > 0, message: "At least one caption export is present." },
53
+ { id: "thumbnail", passed: Boolean(pkg.thumbnailPlan.outputPath), message: "Thumbnail output path is present." },
54
+ { id: "metadata-title", passed: Boolean(pkg.youtubeMetadata.title), message: "YouTube title is present." },
55
+ { id: "metadata-language", passed: Boolean(pkg.youtubeMetadata.defaultLanguage), message: "YouTube default language is present." },
56
+ { id: "evidence", passed: Boolean(pkg.evidencePath), message: "Evidence JSON output path is present." }
57
+ ];
58
+ const issues = checks
59
+ .filter((check) => !check.passed)
60
+ .map((check) => createPromptAnimationIssue("error", `publishing-${check.id}-missing`, check.message));
61
+ return {
62
+ status: issues.length === 0 ? "pass" : "fail",
63
+ checks,
64
+ issues
65
+ };
66
+ }
67
+ //# sourceMappingURL=PublishingPipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublishingPipeline.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/PublishingPipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { type PromptAnimationSeconds } from "./PromptAnimationContract.js";
2
+ export type RenderProgressStatus = "idle" | "running" | "cancelled" | "completed" | "failed";
3
+ export interface RenderProgressSnapshot {
4
+ readonly status: RenderProgressStatus;
5
+ readonly totalFrames: number;
6
+ readonly completedFrames: number;
7
+ readonly currentFrame?: number | undefined;
8
+ readonly currentTime?: PromptAnimationSeconds | undefined;
9
+ readonly progress: number;
10
+ readonly startedAtMs?: number | undefined;
11
+ readonly updatedAtMs?: number | undefined;
12
+ readonly elapsedMs: number;
13
+ readonly estimatedRemainingMs?: number | undefined;
14
+ readonly averageFrameMs?: number | undefined;
15
+ readonly cancelled: boolean;
16
+ readonly message?: string | undefined;
17
+ }
18
+ export interface RenderProgressTracker {
19
+ readonly totalFrames: number;
20
+ start(message?: string): RenderProgressSnapshot;
21
+ advance(input?: RenderProgressAdvanceInput): RenderProgressSnapshot;
22
+ complete(message?: string): RenderProgressSnapshot;
23
+ cancel(message?: string): RenderProgressSnapshot;
24
+ fail(message: string): RenderProgressSnapshot;
25
+ snapshot(): RenderProgressSnapshot;
26
+ onProgress(listener: (snapshot: RenderProgressSnapshot) => void): () => void;
27
+ }
28
+ export interface RenderProgressAdvanceInput {
29
+ readonly frame?: number | undefined;
30
+ readonly time?: PromptAnimationSeconds | undefined;
31
+ readonly completedFrames?: number | undefined;
32
+ readonly message?: string | undefined;
33
+ }
34
+ export interface CreateRenderProgressTrackerOptions {
35
+ readonly totalFrames: number;
36
+ readonly now?: (() => number) | undefined;
37
+ }
38
+ export declare function createRenderProgressTracker(options: CreateRenderProgressTrackerOptions): RenderProgressTracker;
39
+ export declare function createProgressSnapshot(input: {
40
+ readonly status: RenderProgressStatus;
41
+ readonly totalFrames: number;
42
+ readonly completedFrames: number;
43
+ readonly currentFrame?: number | undefined;
44
+ readonly currentTime?: PromptAnimationSeconds | undefined;
45
+ readonly startedAtMs?: number | undefined;
46
+ readonly updatedAtMs?: number | undefined;
47
+ readonly message?: string | undefined;
48
+ }): RenderProgressSnapshot;
49
+ //# sourceMappingURL=RenderProgressTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderProgressTracker.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/RenderProgressTracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { normalizePromptAnimationTime } from "./PromptAnimationContract.js";
2
+ export function createRenderProgressTracker(options) {
3
+ const totalFrames = Math.max(0, Math.floor(options.totalFrames));
4
+ const now = options.now ?? defaultNow;
5
+ const listeners = new Set();
6
+ let status = "idle";
7
+ let completedFrames = 0;
8
+ let currentFrame;
9
+ let currentTime;
10
+ let startedAtMs;
11
+ let updatedAtMs;
12
+ let message;
13
+ const publish = () => {
14
+ const snapshot = createProgressSnapshot({
15
+ status,
16
+ totalFrames,
17
+ completedFrames,
18
+ currentFrame,
19
+ currentTime,
20
+ startedAtMs,
21
+ updatedAtMs,
22
+ message
23
+ });
24
+ for (const listener of listeners)
25
+ listener(snapshot);
26
+ return snapshot;
27
+ };
28
+ return {
29
+ totalFrames,
30
+ start(nextMessage) {
31
+ status = "running";
32
+ completedFrames = 0;
33
+ currentFrame = undefined;
34
+ currentTime = undefined;
35
+ startedAtMs = now();
36
+ updatedAtMs = startedAtMs;
37
+ message = nextMessage;
38
+ return publish();
39
+ },
40
+ advance(input = {}) {
41
+ if (status === "idle") {
42
+ status = "running";
43
+ startedAtMs = now();
44
+ }
45
+ if (status === "cancelled" || status === "failed" || status === "completed")
46
+ return publish();
47
+ completedFrames = Math.min(totalFrames, Math.max(0, input.completedFrames ?? completedFrames + 1));
48
+ currentFrame = input.frame ?? currentFrame;
49
+ currentTime = input.time === undefined ? currentTime : normalizePromptAnimationTime(input.time);
50
+ updatedAtMs = now();
51
+ message = input.message ?? message;
52
+ return publish();
53
+ },
54
+ complete(nextMessage) {
55
+ status = "completed";
56
+ completedFrames = totalFrames;
57
+ updatedAtMs = now();
58
+ message = nextMessage ?? message;
59
+ return publish();
60
+ },
61
+ cancel(nextMessage) {
62
+ status = "cancelled";
63
+ updatedAtMs = now();
64
+ message = nextMessage ?? "Render cancelled.";
65
+ return publish();
66
+ },
67
+ fail(nextMessage) {
68
+ status = "failed";
69
+ updatedAtMs = now();
70
+ message = nextMessage;
71
+ return publish();
72
+ },
73
+ snapshot: publish,
74
+ onProgress(listener) {
75
+ listeners.add(listener);
76
+ return () => listeners.delete(listener);
77
+ }
78
+ };
79
+ }
80
+ export function createProgressSnapshot(input) {
81
+ const elapsedMs = input.startedAtMs === undefined || input.updatedAtMs === undefined ? 0 : Math.max(0, input.updatedAtMs - input.startedAtMs);
82
+ const progress = input.totalFrames === 0 ? (input.status === "completed" ? 1 : 0) : input.completedFrames / input.totalFrames;
83
+ const averageFrameMs = input.completedFrames > 0 ? elapsedMs / input.completedFrames : undefined;
84
+ const estimatedRemainingMs = averageFrameMs === undefined || input.status !== "running"
85
+ ? undefined
86
+ : Math.max(0, (input.totalFrames - input.completedFrames) * averageFrameMs);
87
+ return {
88
+ status: input.status,
89
+ totalFrames: input.totalFrames,
90
+ completedFrames: input.completedFrames,
91
+ ...(input.currentFrame !== undefined ? { currentFrame: input.currentFrame } : {}),
92
+ ...(input.currentTime !== undefined ? { currentTime: input.currentTime } : {}),
93
+ progress: Math.max(0, Math.min(1, progress)),
94
+ ...(input.startedAtMs !== undefined ? { startedAtMs: input.startedAtMs } : {}),
95
+ ...(input.updatedAtMs !== undefined ? { updatedAtMs: input.updatedAtMs } : {}),
96
+ elapsedMs,
97
+ ...(estimatedRemainingMs !== undefined ? { estimatedRemainingMs } : {}),
98
+ ...(averageFrameMs !== undefined ? { averageFrameMs } : {}),
99
+ cancelled: input.status === "cancelled",
100
+ ...(input.message ? { message: input.message } : {})
101
+ };
102
+ }
103
+ function defaultNow() {
104
+ return typeof globalThis.performance === "undefined" ? Date.now() : globalThis.performance.now();
105
+ }
106
+ //# sourceMappingURL=RenderProgressTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderProgressTracker.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/RenderProgressTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAA+B,MAAM,8BAA8B,CAAC;AA2CzG,MAAM,UAAU,2BAA2B,CAAC,OAA2C;IACrF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8C,CAAC;IACxE,IAAI,MAAM,GAAyB,MAAM,CAAC;IAC1C,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,YAAgC,CAAC;IACrC,IAAI,WAA+C,CAAC;IACpD,IAAI,WAA+B,CAAC;IACpC,IAAI,WAA+B,CAAC;IACpC,IAAI,OAA2B,CAAC;IAEhC,MAAM,OAAO,GAAG,GAA2B,EAAE;QAC3C,MAAM,QAAQ,GAAG,sBAAsB,CAAC;YACtC,MAAM;YACN,WAAW;YACX,eAAe;YACf,YAAY;YACZ,WAAW;YACX,WAAW;YACX,WAAW;YACX,OAAO;SACR,CAAC,CAAC;QACH,KAAK,MAAM,QAAQ,IAAI,SAAS;YAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,WAAW;QACX,KAAK,CAAC,WAAW;YACf,MAAM,GAAG,SAAS,CAAC;YACnB,eAAe,GAAG,CAAC,CAAC;YACpB,YAAY,GAAG,SAAS,CAAC;YACzB,WAAW,GAAG,SAAS,CAAC;YACxB,WAAW,GAAG,GAAG,EAAE,CAAC;YACpB,WAAW,GAAG,WAAW,CAAC;YAC1B,OAAO,GAAG,WAAW,CAAC;YACtB,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,KAAK,GAAG,EAAE;YAChB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,GAAG,SAAS,CAAC;gBACnB,WAAW,GAAG,GAAG,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW;gBAAE,OAAO,OAAO,EAAE,CAAC;YAC9F,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,eAAe,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;YACnG,YAAY,GAAG,KAAK,CAAC,KAAK,IAAI,YAAY,CAAC;YAC3C,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,4BAA4B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChG,WAAW,GAAG,GAAG,EAAE,CAAC;YACpB,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC;YACnC,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,QAAQ,CAAC,WAAW;YAClB,MAAM,GAAG,WAAW,CAAC;YACrB,eAAe,GAAG,WAAW,CAAC;YAC9B,WAAW,GAAG,GAAG,EAAE,CAAC;YACpB,OAAO,GAAG,WAAW,IAAI,OAAO,CAAC;YACjC,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,WAAW;YAChB,MAAM,GAAG,WAAW,CAAC;YACrB,WAAW,GAAG,GAAG,EAAE,CAAC;YACpB,OAAO,GAAG,WAAW,IAAI,mBAAmB,CAAC;YAC7C,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,WAAW;YACd,MAAM,GAAG,QAAQ,CAAC;YAClB,WAAW,GAAG,GAAG,EAAE,CAAC;YACpB,OAAO,GAAG,WAAW,CAAC;YACtB,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,QAAQ,EAAE,OAAO;QACjB,UAAU,CAAC,QAAQ;YACjB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAStC;IACC,MAAM,SAAS,GACb,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAC9H,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC;IAC9H,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,MAAM,oBAAoB,GACxB,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QACxD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,cAAc,CAAC,CAAC;IAChF,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC5C,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,SAAS;QACT,GAAG,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,SAAS,EAAE,KAAK,CAAC,MAAM,KAAK,WAAW;QACvC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,OAAO,UAAU,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AACnG,CAAC"}
@@ -63,6 +63,53 @@ export interface AuraRuntimeNodeAnimationPoseBindingMetadata {
63
63
  readonly sourceAssetName?: string;
64
64
  readonly metadata?: Record<string, unknown>;
65
65
  }
66
+ export interface AuraRuntimeNodeImportedAssetEvidence {
67
+ readonly kind: "aura-runtime-node-imported-asset-evidence";
68
+ readonly assetId: string;
69
+ readonly nodeId?: string | undefined;
70
+ readonly skeleton?: {
71
+ readonly boneCount: number;
72
+ readonly boneNames: readonly string[];
73
+ } | undefined;
74
+ readonly clips: readonly string[];
75
+ readonly activeClip?: string | undefined;
76
+ readonly skinningPalette?: {
77
+ readonly jointCount: number;
78
+ readonly matrixCount: number;
79
+ readonly updated: boolean;
80
+ } | undefined;
81
+ readonly morphTargets: readonly string[];
82
+ readonly bounds?: AuraRuntimeNodeBounds | undefined;
83
+ readonly renderItemCount: number;
84
+ readonly skinnedRenderItemCount: number;
85
+ readonly morphRenderItemCount: number;
86
+ readonly diagnostics: readonly AuraRuntimeNodeImportedAssetDiagnostic[];
87
+ }
88
+ export interface AuraRuntimeNodeImportedAssetDiagnostic {
89
+ readonly severity: "info" | "warning" | "error";
90
+ readonly code: "missing-clip" | "missing-bone" | "missing-morph" | "missing-skeleton" | "missing-skinning-palette" | "missing-render-items";
91
+ readonly message: string;
92
+ }
93
+ export interface AuraRuntimeNodeImportedAssetEvidenceInput {
94
+ readonly assetId: string;
95
+ readonly nodeId?: string | undefined;
96
+ readonly skeletonBones?: readonly string[] | undefined;
97
+ readonly clips?: readonly string[] | undefined;
98
+ readonly activeClip?: string | undefined;
99
+ readonly skinningPalette?: {
100
+ readonly jointCount: number;
101
+ readonly matrixCount?: number | undefined;
102
+ readonly updated?: boolean | undefined;
103
+ } | undefined;
104
+ readonly morphTargets?: readonly string[] | undefined;
105
+ readonly bounds?: AuraRuntimeNodeBounds | RuntimeNodeBoundsInput | undefined;
106
+ readonly renderItemCount?: number | undefined;
107
+ readonly skinnedRenderItemCount?: number | undefined;
108
+ readonly morphRenderItemCount?: number | undefined;
109
+ readonly requiredClips?: readonly string[] | undefined;
110
+ readonly requiredBones?: readonly string[] | undefined;
111
+ readonly requiredMorphTargets?: readonly string[] | undefined;
112
+ }
66
113
  export interface RuntimeNodeBoundsInput {
67
114
  readonly position?: RuntimeNodeVec3;
68
115
  readonly scale?: number | RuntimeNodeVec3;
@@ -87,11 +134,14 @@ export interface RuntimeNodeHandleLike {
87
134
  setAnimationBinding?(binding: AuraRuntimeNodeAnimationBindingMetadata | undefined): this;
88
135
  setAnimationPose?(pose: AnimationPose | undefined, metadata?: AuraRuntimeNodeAnimationPoseBindingMetadata): this;
89
136
  animationPose?(): AnimationPose | undefined;
137
+ setImportedAssetEvidence?(evidence: AuraRuntimeNodeImportedAssetEvidence | undefined): this;
138
+ importedAssetEvidence?(): AuraRuntimeNodeImportedAssetEvidence | undefined;
90
139
  setMorphTarget?(name: string, weight: number): this;
91
140
  setMorphTargets?(weights: RuntimeNodeMorphTargetWeights): this;
92
141
  morphTargets?(): RuntimeNodeMorphTargetWeights;
93
142
  snapshot(): unknown;
94
143
  }
144
+ export declare function createRuntimeNodeImportedAssetEvidence(input: AuraRuntimeNodeImportedAssetEvidenceInput): AuraRuntimeNodeImportedAssetEvidence;
95
145
  export declare function calculateRuntimeNodeBounds(input: RuntimeNodeBoundsInput): AuraRuntimeNodeBounds;
96
146
  export declare function createRuntimeNodeEffectAttachment(kind: AuraRuntimeNodeEffectKind, options?: Omit<AuraRuntimeNodeEffectAttachment, "kind">): AuraRuntimeNodeEffectAttachment;
97
147
  export declare function runtimeNodeHasTag(node: {
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeNodeHandle.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/RuntimeNodeHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RuntimeNodeHandle.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/RuntimeNodeHandle.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,48 @@
1
+ export function createRuntimeNodeImportedAssetEvidence(input) {
2
+ const clips = [...new Set(input.clips ?? [])];
3
+ const bones = [...new Set(input.skeletonBones ?? [])];
4
+ const morphTargets = [...new Set(input.morphTargets ?? [])];
5
+ const diagnostics = [];
6
+ for (const clip of input.requiredClips ?? []) {
7
+ if (!clips.includes(clip))
8
+ diagnostics.push({ severity: "error", code: "missing-clip", message: `Missing imported animation clip "${clip}".` });
9
+ }
10
+ for (const bone of input.requiredBones ?? []) {
11
+ if (!bones.includes(bone))
12
+ diagnostics.push({ severity: "error", code: "missing-bone", message: `Missing imported skeleton bone "${bone}".` });
13
+ }
14
+ for (const morph of input.requiredMorphTargets ?? []) {
15
+ if (!morphTargets.includes(morph))
16
+ diagnostics.push({ severity: "error", code: "missing-morph", message: `Missing imported morph target "${morph}".` });
17
+ }
18
+ if (bones.length === 0)
19
+ diagnostics.push({ severity: "warning", code: "missing-skeleton", message: "Imported asset evidence has no skeleton bones." });
20
+ if (!input.skinningPalette)
21
+ diagnostics.push({ severity: "warning", code: "missing-skinning-palette", message: "Imported asset evidence has no skinning palette." });
22
+ if ((input.renderItemCount ?? 0) < 1)
23
+ diagnostics.push({ severity: "warning", code: "missing-render-items", message: "Imported asset evidence has no render items." });
24
+ return {
25
+ kind: "aura-runtime-node-imported-asset-evidence",
26
+ assetId: input.assetId,
27
+ ...(input.nodeId ? { nodeId: input.nodeId } : {}),
28
+ ...(bones.length > 0 ? { skeleton: { boneCount: bones.length, boneNames: bones } } : {}),
29
+ clips,
30
+ ...(input.activeClip ? { activeClip: input.activeClip } : {}),
31
+ ...(input.skinningPalette ? {
32
+ skinningPalette: {
33
+ jointCount: input.skinningPalette.jointCount,
34
+ matrixCount: input.skinningPalette.matrixCount ?? input.skinningPalette.jointCount,
35
+ updated: input.skinningPalette.updated ?? true
36
+ }
37
+ } : {}),
38
+ morphTargets,
39
+ ...(input.bounds ? { bounds: isRuntimeNodeBounds(input.bounds) ? input.bounds : calculateRuntimeNodeBounds(input.bounds) } : {}),
40
+ renderItemCount: input.renderItemCount ?? 0,
41
+ skinnedRenderItemCount: input.skinnedRenderItemCount ?? 0,
42
+ morphRenderItemCount: input.morphRenderItemCount ?? 0,
43
+ diagnostics
44
+ };
45
+ }
1
46
  export function calculateRuntimeNodeBounds(input) {
2
47
  const center = vec3(input.position, [0, 0, 0]);
3
48
  const size = multiplyVec3(scaleToVec3(input.size, [1, 1, 1]), scaleToVec3(input.scale, [1, 1, 1])).map((value) => Math.max(0.0001, Math.abs(value)));
@@ -33,4 +78,7 @@ function scaleToVec3(value, fallback) {
33
78
  function multiplyVec3(a, b) {
34
79
  return [a[0] * b[0], a[1] * b[1], a[2] * b[2]];
35
80
  }
81
+ function isRuntimeNodeBounds(value) {
82
+ return value.kind === "aura-runtime-node-bounds";
83
+ }
36
84
  //# sourceMappingURL=RuntimeNodeHandle.js.map
@@ -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,54 @@
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 LegacySceneSequencerSnapshot {
32
+ readonly kind: "scene-sequencer";
33
+ readonly currentTime: number;
34
+ readonly currentSceneId?: string | undefined;
35
+ readonly currentShotId?: string | undefined;
36
+ readonly sceneCount: number;
37
+ readonly shotCount: number;
38
+ readonly structure: EpisodeStructureArtifact;
39
+ }
40
+ export interface LegacySceneSequencer {
41
+ readonly snapshot: LegacySceneSequencerSnapshot;
42
+ seek(time: number): LegacySceneSequencerSnapshot;
43
+ currentShot(): ShotTimelineShot | undefined;
44
+ }
45
+ export declare function createSceneSequencer(input: {
46
+ readonly episode: EpisodeStructureArtifact;
47
+ readonly timeline: ShotTimelineArtifact;
48
+ readonly scenes?: readonly SceneSequencerSceneBinding[] | undefined;
49
+ readonly transitions?: ShotTransitionPlan | undefined;
50
+ readonly generatedAt?: string | undefined;
51
+ }): SceneSequencerPlan;
52
+ export declare function createSceneSequencer(timeline: ShotTimelineArtifact, structure: EpisodeStructureArtifact): LegacySceneSequencer;
53
+ export declare function sampleSceneSequencer(plan: SceneSequencerPlan, time: PromptAnimationSeconds): SceneSequencerSample;
54
+ //# 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,64 @@
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
+ //# sourceMappingURL=SceneSequencer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneSequencer.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/SceneSequencer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAsD,MAAM,2BAA2B,CAAC;AAC/I,OAAO,EAAE,oBAAoB,EAA6D,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,aAAa,EAAoD,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAuD,MAAM,8BAA8B,CAAC;AAwDjK,MAAM,UAAU,oBAAoB,CAClC,KAMwB,EACxB,SAAoC;IAEpC,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;QAC9D,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACnH,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,GAAiC,EAAE;YAClD,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;YAC3B,OAAO;gBACL,IAAI,EAAE,iBAAiB;gBACvB,WAAW;gBACX,cAAc,EAAE,IAAI,EAAE,OAAO;gBAC7B,aAAa,EAAE,IAAI,EAAE,MAAM;gBAC3B,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM;gBAC9D,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;gBAC7B,SAAS;aACV,CAAC;QACJ,CAAC,CAAC;QACF,OAAO;YACL,IAAI,QAAQ;gBACV,OAAO,QAAQ,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,IAAI;gBACP,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC1D,OAAO,QAAQ,EAAE,CAAC;YACpB,CAAC;YACD,WAAW;SACZ,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,KAMjB,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5G,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAiC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAClH,OAAO;QACL,QAAQ,EAAE,iBAAiB;QAC3B,UAAU,EAAE,8BAA8B;QAC1C,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS;QACtC,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,MAAM;QACN,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,wBAAwB,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC;QAChG,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAwB,EAAE,IAA4B;IACzF,MAAM,UAAU,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,IAAI,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9G,MAAM,kBAAkB,GAAG,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC;IACnH,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,UAAU,EAAE,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;QAC9D,kBAAkB;KACnB,CAAC;AACJ,CAAC"}