@aura3d/engine 1.0.2 → 1.0.5

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 (296) hide show
  1. package/README.md +331 -16
  2. package/dist/animation/AnimationClipEvents.d.ts +57 -0
  3. package/dist/animation/AnimationClipEvents.d.ts.map +1 -0
  4. package/dist/animation/AnimationClipEvents.js +171 -0
  5. package/dist/animation/AnimationClipEvents.js.map +1 -0
  6. package/dist/animation/AnimationClipRegistry.d.ts +76 -0
  7. package/dist/animation/AnimationClipRegistry.d.ts.map +1 -0
  8. package/dist/animation/AnimationClipRegistry.js +130 -0
  9. package/dist/animation/AnimationClipRegistry.js.map +1 -0
  10. package/dist/animation/AnimationController.d.ts +168 -0
  11. package/dist/animation/AnimationController.d.ts.map +1 -0
  12. package/dist/animation/AnimationController.js +619 -0
  13. package/dist/animation/AnimationController.js.map +1 -0
  14. package/dist/animation/HumanoidRetargeting.d.ts +76 -0
  15. package/dist/animation/HumanoidRetargeting.d.ts.map +1 -0
  16. package/dist/animation/HumanoidRetargeting.js +331 -0
  17. package/dist/animation/HumanoidRetargeting.js.map +1 -0
  18. package/dist/animation/browser-index.d.ts +18 -0
  19. package/dist/animation/browser-index.d.ts.map +1 -1
  20. package/dist/animation/browser-index.js +13 -0
  21. package/dist/animation/browser-index.js.map +1 -1
  22. package/dist/animation/index.d.ts +16 -1
  23. package/dist/animation/index.d.ts.map +1 -1
  24. package/dist/animation/index.js +11 -1
  25. package/dist/animation/index.js.map +1 -1
  26. package/dist/animation/threejs-compatibility/AnimationDiagnostics.d.ts.map +1 -1
  27. package/dist/animation/threejs-compatibility/AnimationDiagnostics.js +3 -5
  28. package/dist/animation/threejs-compatibility/AnimationDiagnostics.js.map +1 -1
  29. package/dist/assets/GLTFAnimationRuntime.js +1 -1
  30. package/dist/assets/GLTFLoader.js +1 -1
  31. package/dist/aura3d-cli/cli.js +194 -8
  32. package/dist/aura3d-cli/cli.js.map +1 -1
  33. package/dist/aura3d-cli/index.d.ts +280 -3
  34. package/dist/aura3d-cli/index.d.ts.map +1 -1
  35. package/dist/aura3d-cli/index.js +886 -4
  36. package/dist/aura3d-cli/index.js.map +1 -1
  37. package/dist/aura3d-cli/pull-bridge.d.ts +95 -0
  38. package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -0
  39. package/dist/aura3d-cli/pull-bridge.js +247 -0
  40. package/dist/aura3d-cli/pull-bridge.js.map +1 -0
  41. package/dist/create-aura3d/index.d.ts +1 -1
  42. package/dist/create-aura3d/index.d.ts.map +1 -1
  43. package/dist/create-aura3d/index.js +9 -2
  44. package/dist/create-aura3d/index.js.map +1 -1
  45. package/dist/editor-runtime/ProjectSerializer.d.ts +74 -1
  46. package/dist/editor-runtime/ProjectSerializer.d.ts.map +1 -1
  47. package/dist/editor-runtime/ProjectSerializer.js +123 -6
  48. package/dist/editor-runtime/ProjectSerializer.js.map +1 -1
  49. package/dist/editor-runtime/TimelineModel.d.ts +18 -0
  50. package/dist/editor-runtime/TimelineModel.d.ts.map +1 -1
  51. package/dist/editor-runtime/TimelineModel.js +67 -3
  52. package/dist/editor-runtime/TimelineModel.js.map +1 -1
  53. package/dist/editor-runtime/TimelineRuntimeBridge.d.ts +98 -0
  54. package/dist/editor-runtime/TimelineRuntimeBridge.d.ts.map +1 -0
  55. package/dist/editor-runtime/TimelineRuntimeBridge.js +186 -0
  56. package/dist/editor-runtime/TimelineRuntimeBridge.js.map +1 -0
  57. package/dist/editor-runtime/index.d.ts +3 -1
  58. package/dist/editor-runtime/index.d.ts.map +1 -1
  59. package/dist/editor-runtime/index.js +1 -0
  60. package/dist/editor-runtime/index.js.map +1 -1
  61. package/dist/engine/agent-api/AnimationController.d.ts +607 -0
  62. package/dist/engine/agent-api/AnimationController.d.ts.map +1 -0
  63. package/dist/engine/agent-api/AnimationController.js +2192 -0
  64. package/dist/engine/agent-api/AnimationController.js.map +1 -0
  65. package/dist/engine/agent-api/AssetEvidence.d.ts +88 -0
  66. package/dist/engine/agent-api/AssetEvidence.d.ts.map +1 -0
  67. package/dist/engine/agent-api/AssetEvidence.js +157 -0
  68. package/dist/engine/agent-api/AssetEvidence.js.map +1 -0
  69. package/dist/engine/agent-api/AuraAppHandle.d.ts +55 -0
  70. package/dist/engine/agent-api/AuraAppHandle.d.ts.map +1 -0
  71. package/dist/engine/agent-api/AuraAppHandle.js +15 -0
  72. package/dist/engine/agent-api/AuraAppHandle.js.map +1 -0
  73. package/dist/engine/agent-api/AuraVoiceBridge.d.ts +96 -0
  74. package/dist/engine/agent-api/AuraVoiceBridge.d.ts.map +1 -0
  75. package/dist/engine/agent-api/AuraVoiceBridge.js +370 -0
  76. package/dist/engine/agent-api/AuraVoiceBridge.js.map +1 -0
  77. package/dist/engine/agent-api/CartoonDirector.d.ts +95 -0
  78. package/dist/engine/agent-api/CartoonDirector.d.ts.map +1 -0
  79. package/dist/engine/agent-api/CartoonDirector.js +342 -0
  80. package/dist/engine/agent-api/CartoonDirector.js.map +1 -0
  81. package/dist/engine/agent-api/CartoonPerformance.d.ts +149 -0
  82. package/dist/engine/agent-api/CartoonPerformance.d.ts.map +1 -0
  83. package/dist/engine/agent-api/CartoonPerformance.js +317 -0
  84. package/dist/engine/agent-api/CartoonPerformance.js.map +1 -0
  85. package/dist/engine/agent-api/CartoonRenderQueue.d.ts +132 -0
  86. package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +1 -0
  87. package/dist/engine/agent-api/CartoonRenderQueue.js +385 -0
  88. package/dist/engine/agent-api/CartoonRenderQueue.js.map +1 -0
  89. package/dist/engine/agent-api/CharacterAssembly.d.ts +126 -0
  90. package/dist/engine/agent-api/CharacterAssembly.d.ts.map +1 -0
  91. package/dist/engine/agent-api/CharacterAssembly.js +280 -0
  92. package/dist/engine/agent-api/CharacterAssembly.js.map +1 -0
  93. package/dist/engine/agent-api/DialoguePerformance.d.ts +150 -0
  94. package/dist/engine/agent-api/DialoguePerformance.d.ts.map +1 -0
  95. package/dist/engine/agent-api/DialoguePerformance.js +335 -0
  96. package/dist/engine/agent-api/DialoguePerformance.js.map +1 -0
  97. package/dist/engine/agent-api/FrameLoop.d.ts +70 -0
  98. package/dist/engine/agent-api/FrameLoop.d.ts.map +1 -0
  99. package/dist/engine/agent-api/FrameLoop.js +165 -0
  100. package/dist/engine/agent-api/FrameLoop.js.map +1 -0
  101. package/dist/engine/agent-api/GameAssetValidation.d.ts +279 -0
  102. package/dist/engine/agent-api/GameAssetValidation.d.ts.map +1 -0
  103. package/dist/engine/agent-api/GameAssetValidation.js +719 -0
  104. package/dist/engine/agent-api/GameAssetValidation.js.map +1 -0
  105. package/dist/engine/agent-api/GameEvidence.d.ts +148 -0
  106. package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -0
  107. package/dist/engine/agent-api/GameEvidence.js +269 -0
  108. package/dist/engine/agent-api/GameEvidence.js.map +1 -0
  109. package/dist/engine/agent-api/GameRuntime.d.ts +931 -0
  110. package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -0
  111. package/dist/engine/agent-api/GameRuntime.js +2229 -0
  112. package/dist/engine/agent-api/GameRuntime.js.map +1 -0
  113. package/dist/engine/agent-api/GameSceneBridge.d.ts +54 -0
  114. package/dist/engine/agent-api/GameSceneBridge.d.ts.map +1 -0
  115. package/dist/engine/agent-api/GameSceneBridge.js +110 -0
  116. package/dist/engine/agent-api/GameSceneBridge.js.map +1 -0
  117. package/dist/engine/agent-api/PromptAnimationContract.d.ts +278 -0
  118. package/dist/engine/agent-api/PromptAnimationContract.d.ts.map +1 -0
  119. package/dist/engine/agent-api/PromptAnimationContract.js +238 -0
  120. package/dist/engine/agent-api/PromptAnimationContract.js.map +1 -0
  121. package/dist/engine/agent-api/PromptAnimationEvidence.d.ts +183 -0
  122. package/dist/engine/agent-api/PromptAnimationEvidence.d.ts.map +1 -0
  123. package/dist/engine/agent-api/PromptAnimationEvidence.js +454 -0
  124. package/dist/engine/agent-api/PromptAnimationEvidence.js.map +1 -0
  125. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +100 -0
  126. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -0
  127. package/dist/engine/agent-api/RuntimeNodeHandle.js +36 -0
  128. package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -0
  129. package/dist/engine/agent-api/ShotTimeline.d.ts +179 -0
  130. package/dist/engine/agent-api/ShotTimeline.d.ts.map +1 -0
  131. package/dist/engine/agent-api/ShotTimeline.js +264 -0
  132. package/dist/engine/agent-api/ShotTimeline.js.map +1 -0
  133. package/dist/engine/agent-api/VisemeController.d.ts +89 -0
  134. package/dist/engine/agent-api/VisemeController.d.ts.map +1 -0
  135. package/dist/engine/agent-api/VisemeController.js +207 -0
  136. package/dist/engine/agent-api/VisemeController.js.map +1 -0
  137. package/dist/engine/agent-api/game-kits/fighting.d.ts +123 -0
  138. package/dist/engine/agent-api/game-kits/fighting.d.ts.map +1 -0
  139. package/dist/engine/agent-api/game-kits/fighting.js +483 -0
  140. package/dist/engine/agent-api/game-kits/fighting.js.map +1 -0
  141. package/dist/engine/agent-api/game-kits/index.d.ts +15 -0
  142. package/dist/engine/agent-api/game-kits/index.d.ts.map +1 -0
  143. package/dist/engine/agent-api/game-kits/index.js +6 -0
  144. package/dist/engine/agent-api/game-kits/index.js.map +1 -0
  145. package/dist/engine/agent-api/humanoid-walk-runtime.d.ts +18 -81
  146. package/dist/engine/agent-api/humanoid-walk-runtime.d.ts.map +1 -1
  147. package/dist/engine/agent-api/humanoid-walk-runtime.js +4 -279
  148. package/dist/engine/agent-api/humanoid-walk-runtime.js.map +1 -1
  149. package/dist/engine/agent-api/index.d.ts +490 -4
  150. package/dist/engine/agent-api/index.d.ts.map +1 -1
  151. package/dist/engine/agent-api/index.js +759 -1802
  152. package/dist/engine/agent-api/index.js.map +1 -1
  153. package/dist/engine/agent-api/particle-fountain-runtime.d.ts +5 -80
  154. package/dist/engine/agent-api/particle-fountain-runtime.d.ts.map +1 -1
  155. package/dist/engine/agent-api/particle-fountain-runtime.js +7 -291
  156. package/dist/engine/agent-api/particle-fountain-runtime.js.map +1 -1
  157. package/dist/engine/agent-api/product-viewer-runtime.d.ts +17 -107
  158. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  159. package/dist/engine/agent-api/product-viewer-runtime.js +4 -330
  160. package/dist/engine/agent-api/product-viewer-runtime.js.map +1 -1
  161. package/dist/index.d.ts +1 -0
  162. package/dist/index.js +1 -0
  163. package/dist/physics/CollisionVolumes.d.ts +57 -0
  164. package/dist/physics/CollisionVolumes.d.ts.map +1 -0
  165. package/dist/physics/CollisionVolumes.js +159 -0
  166. package/dist/physics/CollisionVolumes.js.map +1 -0
  167. package/dist/physics/HitboxWorld.d.ts +229 -0
  168. package/dist/physics/HitboxWorld.d.ts.map +1 -0
  169. package/dist/physics/HitboxWorld.js +640 -0
  170. package/dist/physics/HitboxWorld.js.map +1 -0
  171. package/dist/physics/KinematicBody.d.ts +157 -0
  172. package/dist/physics/KinematicBody.d.ts.map +1 -0
  173. package/dist/physics/KinematicBody.js +405 -0
  174. package/dist/physics/KinematicBody.js.map +1 -0
  175. package/dist/physics/KinematicWorld.d.ts +58 -0
  176. package/dist/physics/KinematicWorld.d.ts.map +1 -0
  177. package/dist/physics/KinematicWorld.js +246 -0
  178. package/dist/physics/KinematicWorld.js.map +1 -0
  179. package/dist/physics/index.d.ts +4 -0
  180. package/dist/physics/index.d.ts.map +1 -1
  181. package/dist/physics/index.js +4 -0
  182. package/dist/physics/index.js.map +1 -1
  183. package/dist/rendering/ForwardPass.js +2 -2
  184. package/dist/rendering/ShaderLibrary.js +2 -2
  185. package/dist/rendering/SkinnedLitMaterial.js +3 -3
  186. package/dist/rendering/SkinnedUnlitMaterial.js +3 -3
  187. package/dist/scene/Renderable.js +2 -2
  188. package/dist/scripting/VisualGraph.d.ts +2 -1
  189. package/dist/scripting/VisualGraph.d.ts.map +1 -1
  190. package/dist/scripting/VisualGraph.js +118 -1
  191. package/dist/scripting/VisualGraph.js.map +1 -1
  192. package/dist/scripting/VisualGraphContext.d.ts +123 -0
  193. package/dist/scripting/VisualGraphContext.d.ts.map +1 -0
  194. package/dist/scripting/VisualGraphContext.js +2 -0
  195. package/dist/scripting/VisualGraphContext.js.map +1 -0
  196. package/dist/scripting/VisualGraphExecutor.d.ts +6 -1
  197. package/dist/scripting/VisualGraphExecutor.d.ts.map +1 -1
  198. package/dist/scripting/VisualGraphExecutor.js +364 -7
  199. package/dist/scripting/VisualGraphExecutor.js.map +1 -1
  200. package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
  201. package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
  202. package/dist/scripting/VisualNodeCatalog.js +61 -1
  203. package/dist/scripting/VisualNodeCatalog.js.map +1 -1
  204. package/dist/scripting/index.d.ts +1 -0
  205. package/dist/scripting/index.d.ts.map +1 -1
  206. package/dist/scripting/index.js.map +1 -1
  207. package/package.json +193 -121
  208. package/templates/product-viewer/src/main.ts +1 -0
  209. package/dist/three-compat/ThreeApiInventory.d.ts +0 -18
  210. package/dist/three-compat/ThreeApiInventory.d.ts.map +0 -1
  211. package/dist/three-compat/ThreeApiInventory.js +0 -99
  212. package/dist/three-compat/ThreeApiInventory.js.map +0 -1
  213. package/dist/three-compat/ThreeCompatibilityMatrix.d.ts +0 -30
  214. package/dist/three-compat/ThreeCompatibilityMatrix.d.ts.map +0 -1
  215. package/dist/three-compat/ThreeCompatibilityMatrix.js +0 -69
  216. package/dist/three-compat/ThreeCompatibilityMatrix.js.map +0 -1
  217. package/dist/three-compat/animation/index.d.ts +0 -3
  218. package/dist/three-compat/animation/index.d.ts.map +0 -1
  219. package/dist/three-compat/animation/index.js +0 -2
  220. package/dist/three-compat/animation/index.js.map +0 -1
  221. package/dist/three-compat/cameras/index.d.ts +0 -24
  222. package/dist/three-compat/cameras/index.d.ts.map +0 -1
  223. package/dist/three-compat/cameras/index.js +0 -44
  224. package/dist/three-compat/cameras/index.js.map +0 -1
  225. package/dist/three-compat/controls/index.d.ts +0 -3
  226. package/dist/three-compat/controls/index.d.ts.map +0 -1
  227. package/dist/three-compat/controls/index.js +0 -2
  228. package/dist/three-compat/controls/index.js.map +0 -1
  229. package/dist/three-compat/core/Object3DCompat.d.ts +0 -62
  230. package/dist/three-compat/core/Object3DCompat.d.ts.map +0 -1
  231. package/dist/three-compat/core/Object3DCompat.js +0 -112
  232. package/dist/three-compat/core/Object3DCompat.js.map +0 -1
  233. package/dist/three-compat/core/RaycasterCompat.d.ts +0 -18
  234. package/dist/three-compat/core/RaycasterCompat.d.ts.map +0 -1
  235. package/dist/three-compat/core/RaycasterCompat.js +0 -28
  236. package/dist/three-compat/core/RaycasterCompat.js.map +0 -1
  237. package/dist/three-compat/core/SceneCompat.d.ts +0 -8
  238. package/dist/three-compat/core/SceneCompat.d.ts.map +0 -1
  239. package/dist/three-compat/core/SceneCompat.js +0 -8
  240. package/dist/three-compat/core/SceneCompat.js.map +0 -1
  241. package/dist/three-compat/geometries/index.d.ts +0 -67
  242. package/dist/three-compat/geometries/index.d.ts.map +0 -1
  243. package/dist/three-compat/geometries/index.js +0 -114
  244. package/dist/three-compat/geometries/index.js.map +0 -1
  245. package/dist/three-compat/helpers/index.d.ts +0 -40
  246. package/dist/three-compat/helpers/index.d.ts.map +0 -1
  247. package/dist/three-compat/helpers/index.js +0 -129
  248. package/dist/three-compat/helpers/index.js.map +0 -1
  249. package/dist/three-compat/index.d.ts +0 -32
  250. package/dist/three-compat/index.d.ts.map +0 -1
  251. package/dist/three-compat/index.js +0 -22
  252. package/dist/three-compat/index.js.map +0 -1
  253. package/dist/three-compat/lights/index.d.ts +0 -35
  254. package/dist/three-compat/lights/index.d.ts.map +0 -1
  255. package/dist/three-compat/lights/index.js +0 -39
  256. package/dist/three-compat/lights/index.js.map +0 -1
  257. package/dist/three-compat/loaders/index.d.ts +0 -54
  258. package/dist/three-compat/loaders/index.d.ts.map +0 -1
  259. package/dist/three-compat/loaders/index.js +0 -79
  260. package/dist/three-compat/loaders/index.js.map +0 -1
  261. package/dist/three-compat/materials/index.d.ts +0 -70
  262. package/dist/three-compat/materials/index.d.ts.map +0 -1
  263. package/dist/three-compat/materials/index.js +0 -85
  264. package/dist/three-compat/materials/index.js.map +0 -1
  265. package/dist/three-compat/math/index.d.ts +0 -34
  266. package/dist/three-compat/math/index.d.ts.map +0 -1
  267. package/dist/three-compat/math/index.js +0 -90
  268. package/dist/three-compat/math/index.js.map +0 -1
  269. package/dist/three-compat/migration/CompatibilityWarnings.d.ts +0 -6
  270. package/dist/three-compat/migration/CompatibilityWarnings.d.ts.map +0 -1
  271. package/dist/three-compat/migration/CompatibilityWarnings.js +0 -8
  272. package/dist/three-compat/migration/CompatibilityWarnings.js.map +0 -1
  273. package/dist/three-compat/migration/ImportMap.d.ts +0 -2
  274. package/dist/three-compat/migration/ImportMap.d.ts.map +0 -1
  275. package/dist/three-compat/migration/ImportMap.js +0 -10
  276. package/dist/three-compat/migration/ImportMap.js.map +0 -1
  277. package/dist/three-compat/migration/ThreeToA3DAdapter.d.ts +0 -8
  278. package/dist/three-compat/migration/ThreeToA3DAdapter.d.ts.map +0 -1
  279. package/dist/three-compat/migration/ThreeToA3DAdapter.js +0 -20
  280. package/dist/three-compat/migration/ThreeToA3DAdapter.js.map +0 -1
  281. package/dist/three-compat/postprocessing/index.d.ts +0 -2
  282. package/dist/three-compat/postprocessing/index.d.ts.map +0 -1
  283. package/dist/three-compat/postprocessing/index.js +0 -2
  284. package/dist/three-compat/postprocessing/index.js.map +0 -1
  285. package/dist/three-compat/render-targets/index.d.ts +0 -17
  286. package/dist/three-compat/render-targets/index.d.ts.map +0 -1
  287. package/dist/three-compat/render-targets/index.js +0 -29
  288. package/dist/three-compat/render-targets/index.js.map +0 -1
  289. package/dist/three-compat/shaders/index.d.ts +0 -3
  290. package/dist/three-compat/shaders/index.d.ts.map +0 -1
  291. package/dist/three-compat/shaders/index.js +0 -3
  292. package/dist/three-compat/shaders/index.js.map +0 -1
  293. package/dist/three-compat/textures/index.d.ts +0 -19
  294. package/dist/three-compat/textures/index.d.ts.map +0 -1
  295. package/dist/three-compat/textures/index.js +0 -24
  296. package/dist/three-compat/textures/index.js.map +0 -1
@@ -0,0 +1,96 @@
1
+ import { type PromptAnimationEpisodePlan, type PromptAnimationFrameRate, type PromptAnimationId, type PromptAnimationSeconds, type PromptAnimationStoryboard, type PromptAnimationValidationIssue, type PromptAnimationYouTubeDraftMetadata } from "./PromptAnimationContract.js";
2
+ import { type AudioStemManifestArtifact, type CaptionTrackArtifact, type DialogueLine, type DialogueTrackArtifact, type DubMapArtifact } from "./DialoguePerformance.js";
3
+ import { type CartoonRenderOutput, type CartoonRenderOutputPackageMetadata, type CartoonRenderQueueArtifact, type CartoonViewport } from "./CartoonRenderQueue.js";
4
+ import { type ShotTimelineArtifact, type ShotTimelineShot } from "./ShotTimeline.js";
5
+ import { type AuraVoiceVisemeTrack, type VisemeSample } from "./VisemeController.js";
6
+ export interface AuraVoiceBridgeArtifacts {
7
+ readonly episodePlan: PromptAnimationEpisodePlan;
8
+ readonly storyboard?: PromptAnimationStoryboard | undefined;
9
+ readonly shotTimeline: ShotTimelineArtifact;
10
+ readonly dialogueTrack: DialogueTrackArtifact;
11
+ readonly captionTrack?: CaptionTrackArtifact | undefined;
12
+ readonly visemes?: AuraVoiceVisemeTrack | undefined;
13
+ readonly audioStems?: AudioStemManifestArtifact | undefined;
14
+ readonly dubMap?: DubMapArtifact | undefined;
15
+ readonly renderQueue?: CartoonRenderQueueArtifact | undefined;
16
+ readonly renderOutputPackage?: CartoonRenderOutputPackageMetadata | undefined;
17
+ }
18
+ export interface AuraVoiceBridgeOptions {
19
+ readonly frameRate?: PromptAnimationFrameRate | undefined;
20
+ readonly maxTimingDriftFrames?: number | undefined;
21
+ readonly route?: string | undefined;
22
+ readonly viewport?: CartoonViewport | undefined;
23
+ readonly outputs?: readonly CartoonRenderOutput[] | undefined;
24
+ readonly youtube?: PromptAnimationYouTubeDraftMetadata | undefined;
25
+ readonly renderPackageId?: PromptAnimationId | undefined;
26
+ }
27
+ export interface AuraVoiceMasterClock {
28
+ readonly source: "dialogue-track" | "audio-stems" | "shot-timeline";
29
+ readonly frameRate: PromptAnimationFrameRate;
30
+ readonly frameDuration: PromptAnimationSeconds;
31
+ readonly duration: PromptAnimationSeconds;
32
+ readonly maxTimingDriftFrames: number;
33
+ }
34
+ export interface AuraVoiceBridgePackage {
35
+ readonly kind: "auravoice-bridge-package";
36
+ readonly episodeId: PromptAnimationId;
37
+ readonly masterClock: AuraVoiceMasterClock;
38
+ readonly artifacts: AuraVoiceBridgeArtifacts;
39
+ readonly renderQueue: CartoonRenderQueueArtifact;
40
+ readonly renderOutputPackage: CartoonRenderOutputPackageMetadata;
41
+ readonly issues: readonly PromptAnimationValidationIssue[];
42
+ readonly publishReady: boolean;
43
+ }
44
+ export interface AuraVoicePlaybackSample {
45
+ readonly time: PromptAnimationSeconds;
46
+ readonly frame: number;
47
+ readonly shot?: ShotTimelineShot | undefined;
48
+ readonly dialogue?: DialogueLine | undefined;
49
+ readonly viseme?: VisemeSample | undefined;
50
+ }
51
+ export interface AuraVoiceRerenderPlan {
52
+ readonly kind: "auravoice-rerender-plan";
53
+ readonly episodeId: PromptAnimationId;
54
+ readonly reason: string;
55
+ readonly changedLineIds: readonly PromptAnimationId[];
56
+ readonly changedAudioStemIds: readonly PromptAnimationId[];
57
+ readonly affectedShotIds: readonly PromptAnimationId[];
58
+ readonly affectedCaptionIds: readonly PromptAnimationId[];
59
+ readonly affectedVisemeCueIds: readonly PromptAnimationId[];
60
+ readonly affectedRenderQueueItemIds: readonly PromptAnimationId[];
61
+ readonly fullEpisodeRebuildRequired: boolean;
62
+ readonly issues: readonly PromptAnimationValidationIssue[];
63
+ }
64
+ export interface AuraVoiceDubRerenderProof {
65
+ readonly kind: "auravoice-dub-rerender-proof";
66
+ readonly episodeId: PromptAnimationId;
67
+ readonly sourceLanguage?: string | undefined;
68
+ readonly targetLanguage?: string | undefined;
69
+ readonly stableShotIds: boolean;
70
+ readonly stableStoryboardIds: boolean;
71
+ readonly stableCaptionIds: boolean;
72
+ readonly stableCharacterIds: boolean;
73
+ readonly affectedShotIds: readonly PromptAnimationId[];
74
+ readonly rerenderQueueItemIds: readonly PromptAnimationId[];
75
+ readonly issues: readonly PromptAnimationValidationIssue[];
76
+ readonly publishReady: boolean;
77
+ }
78
+ export declare function createAuraVoiceBridgePackage(artifacts: AuraVoiceBridgeArtifacts, options?: AuraVoiceBridgeOptions): AuraVoiceBridgePackage;
79
+ export declare function createAuraVoiceMasterClock(artifacts: AuraVoiceBridgeArtifacts, options?: {
80
+ readonly frameRate?: PromptAnimationFrameRate | undefined;
81
+ readonly maxTimingDriftFrames?: number | undefined;
82
+ }): AuraVoiceMasterClock;
83
+ export declare function validateAuraVoiceBridgePackage(bridgePackage: AuraVoiceBridgePackage): readonly PromptAnimationValidationIssue[];
84
+ export declare function validateAuraVoiceBridgeContractIds(artifacts: AuraVoiceBridgeArtifacts): readonly PromptAnimationValidationIssue[];
85
+ export declare function validateAuraVoiceTimingDrift(bridgePackage: AuraVoiceBridgePackage): readonly PromptAnimationValidationIssue[];
86
+ export declare function validateAuraVoiceAssetCoverage(episodePlan: PromptAnimationEpisodePlan): readonly PromptAnimationValidationIssue[];
87
+ export declare function validateAuraVoiceAudioCoverage(bridgePackage: AuraVoiceBridgePackage): readonly PromptAnimationValidationIssue[];
88
+ export declare function validateAuraVoiceVisemeCoverage(bridgePackage: AuraVoiceBridgePackage): readonly PromptAnimationValidationIssue[];
89
+ export declare function validateAuraVoiceDubMap(dubMap: DubMapArtifact): readonly PromptAnimationValidationIssue[];
90
+ export declare function createAuraVoiceRerenderPlan(previousPackage: AuraVoiceBridgePackage, nextPackage: AuraVoiceBridgePackage, options?: {
91
+ readonly reason?: string | undefined;
92
+ readonly changedLineIds?: readonly PromptAnimationId[] | undefined;
93
+ }): AuraVoiceRerenderPlan;
94
+ export declare function createAuraVoiceDubRerenderProof(bridgePackage: AuraVoiceBridgePackage): AuraVoiceDubRerenderProof;
95
+ export declare function sampleAuraVoiceBridgeAtTime(bridgePackage: AuraVoiceBridgePackage, time: PromptAnimationSeconds, characterId?: PromptAnimationId): AuraVoicePlaybackSample;
96
+ //# sourceMappingURL=AuraVoiceBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuraVoiceBridge.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/AuraVoiceBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,370 @@
1
+ import { createPromptAnimationIssue, promptAnimationDriftFrames, promptAnimationFrameAtTime, validatePromptAnimationArtifactContract, validatePromptAnimationStableIds } from "./PromptAnimationContract.js";
2
+ import { createDialogueTimingReport, dialogueLineAtTime, validateAudioStemManifest } from "./DialoguePerformance.js";
3
+ import { createCartoonRenderQueue, createCartoonRenderOutputPackageMetadata, validateCartoonRenderQueue, validateCartoonRenderOutputPackageMetadata } from "./CartoonRenderQueue.js";
4
+ import { getShotAtTime, validateShotTimeline } from "./ShotTimeline.js";
5
+ import { sampleVisemeTrack, validateVisemeTrack } from "./VisemeController.js";
6
+ export function createAuraVoiceBridgePackage(artifacts, options = {}) {
7
+ const frameRate = options.frameRate ?? artifacts.shotTimeline.frameRate ?? artifacts.episodePlan.runtime.frameRate;
8
+ const masterClock = createAuraVoiceMasterClock(artifacts, {
9
+ frameRate,
10
+ maxTimingDriftFrames: options.maxTimingDriftFrames
11
+ });
12
+ const renderQueue = artifacts.renderQueue ??
13
+ createCartoonRenderQueue({
14
+ episodePlan: artifacts.episodePlan,
15
+ shotTimeline: artifacts.shotTimeline,
16
+ route: options.route ?? "/prompt-animation",
17
+ viewport: options.viewport,
18
+ outputs: options.outputs
19
+ });
20
+ const renderOutputPackage = artifacts.renderOutputPackage ??
21
+ createCartoonRenderOutputPackageMetadata({
22
+ episodePlan: artifacts.episodePlan,
23
+ shotTimeline: artifacts.shotTimeline,
24
+ renderQueue,
25
+ packageId: options.renderPackageId,
26
+ youtube: options.youtube,
27
+ generatedAt: artifacts.episodePlan.generatedAt
28
+ });
29
+ const packageValue = {
30
+ kind: "auravoice-bridge-package",
31
+ episodeId: artifacts.episodePlan.episodeId,
32
+ masterClock,
33
+ artifacts: {
34
+ ...artifacts,
35
+ renderQueue,
36
+ renderOutputPackage
37
+ },
38
+ renderQueue,
39
+ renderOutputPackage,
40
+ issues: [],
41
+ publishReady: false
42
+ };
43
+ const issues = validateAuraVoiceBridgePackage(packageValue);
44
+ return {
45
+ ...packageValue,
46
+ issues,
47
+ publishReady: !issues.some((issue) => issue.severity === "error")
48
+ };
49
+ }
50
+ export function createAuraVoiceMasterClock(artifacts, options = {}) {
51
+ const frameRate = options.frameRate ?? artifacts.shotTimeline.frameRate ?? artifacts.episodePlan.runtime.frameRate;
52
+ const audioDuration = artifacts.audioStems?.duration ?? 0;
53
+ const dialogueDuration = artifacts.dialogueTrack.duration;
54
+ const timelineDuration = artifacts.shotTimeline.duration;
55
+ const source = artifacts.audioStems ? "audio-stems" : artifacts.dialogueTrack.lines.length > 0 ? "dialogue-track" : "shot-timeline";
56
+ const duration = Math.max(audioDuration, dialogueDuration, timelineDuration, artifacts.episodePlan.runtime.duration);
57
+ return {
58
+ source,
59
+ frameRate,
60
+ frameDuration: frameRate > 0 ? 1 / frameRate : 0,
61
+ duration,
62
+ maxTimingDriftFrames: options.maxTimingDriftFrames ?? artifacts.episodePlan.runtime.maxTimingDriftFrames ?? 1
63
+ };
64
+ }
65
+ export function validateAuraVoiceBridgePackage(bridgePackage) {
66
+ const issues = [
67
+ ...validateAuraVoiceBridgeContractIds(bridgePackage.artifacts),
68
+ ...validatePromptAnimationStableIds(bridgePackage.artifacts.episodePlan, bridgePackage.artifacts.storyboard),
69
+ ...validateShotTimeline(bridgePackage.artifacts.shotTimeline),
70
+ ...createDialogueTimingReport(bridgePackage.artifacts.dialogueTrack, bridgePackage.artifacts.captionTrack, bridgePackage.masterClock.frameRate, bridgePackage.masterClock.maxTimingDriftFrames).issues,
71
+ ...validateCartoonRenderQueue(bridgePackage.renderQueue),
72
+ ...validateCartoonRenderOutputPackageMetadata(bridgePackage.renderOutputPackage),
73
+ ...validateAuraVoiceAssetCoverage(bridgePackage.artifacts.episodePlan)
74
+ ];
75
+ if (!bridgePackage.artifacts.captionTrack) {
76
+ issues.push(createPromptAnimationIssue("error", "auravoice-caption-track-missing", "Caption track is required for publish readiness."));
77
+ }
78
+ if (!bridgePackage.artifacts.visemes) {
79
+ issues.push(createPromptAnimationIssue("error", "auravoice-visemes-missing", "AuraVoice v2 visemes are required for publish readiness."));
80
+ }
81
+ else {
82
+ issues.push(...validateVisemeTrack(bridgePackage.artifacts.visemes));
83
+ }
84
+ if (!bridgePackage.artifacts.audioStems) {
85
+ issues.push(createPromptAnimationIssue("error", "auravoice-audio-stems-missing", "Audio stem manifest is required for publish readiness."));
86
+ }
87
+ else {
88
+ issues.push(...validateAudioStemManifest(bridgePackage.artifacts.audioStems));
89
+ }
90
+ const driftIssues = validateAuraVoiceTimingDrift(bridgePackage);
91
+ issues.push(...driftIssues);
92
+ issues.push(...validateAuraVoiceAudioCoverage(bridgePackage));
93
+ issues.push(...validateAuraVoiceVisemeCoverage(bridgePackage));
94
+ if (bridgePackage.artifacts.dubMap) {
95
+ issues.push(...validateAuraVoiceDubMap(bridgePackage.artifacts.dubMap));
96
+ }
97
+ return issues;
98
+ }
99
+ export function validateAuraVoiceBridgeContractIds(artifacts) {
100
+ const entries = [
101
+ ["episodePlan", artifacts.episodePlan],
102
+ ["storyboard", artifacts.storyboard],
103
+ ["shotTimeline", artifacts.shotTimeline],
104
+ ["dialogueTrack", artifacts.dialogueTrack],
105
+ ["captionTrack", artifacts.captionTrack],
106
+ ["visemes", artifacts.visemes],
107
+ ["audioStems", artifacts.audioStems],
108
+ ["dubMap", artifacts.dubMap],
109
+ ["renderQueue", artifacts.renderQueue],
110
+ ["renderOutputPackage", artifacts.renderOutputPackage]
111
+ ];
112
+ return entries.flatMap(([path, artifact]) => artifact ? validatePromptAnimationArtifactContract(artifact, path) : []);
113
+ }
114
+ export function validateAuraVoiceTimingDrift(bridgePackage) {
115
+ const issues = [];
116
+ const maxAllowedFrames = bridgePackage.masterClock.maxTimingDriftFrames;
117
+ const frameRate = bridgePackage.masterClock.frameRate;
118
+ for (const line of bridgePackage.artifacts.dialogueTrack.lines) {
119
+ const startShot = getShotAtTime(bridgePackage.artifacts.shotTimeline, line.startTime);
120
+ const endShot = getShotAtTime(bridgePackage.artifacts.shotTimeline, Math.max(line.startTime, line.endTime - 0.000001));
121
+ if (!startShot || !endShot) {
122
+ issues.push(createPromptAnimationIssue("error", "auravoice-dialogue-outside-shot", `Dialogue line "${line.lineId}" is outside the shot timeline.`, { path: `dialogue.${line.lineId}`, time: line.startTime }));
123
+ continue;
124
+ }
125
+ const startDriftSeconds = Math.max(0, startShot.startTime - line.startTime);
126
+ const endDriftSeconds = Math.max(0, line.endTime - endShot.endTime);
127
+ const driftFrames = Math.max(promptAnimationDriftFrames(startDriftSeconds, frameRate), promptAnimationDriftFrames(endDriftSeconds, frameRate));
128
+ if (driftFrames > maxAllowedFrames) {
129
+ issues.push(createPromptAnimationIssue("error", "auravoice-dialogue-shot-drift", `Dialogue line "${line.lineId}" drifts ${driftFrames} frames from shot timing.`, { path: `dialogue.${line.lineId}`, frame: driftFrames, time: line.startTime }));
130
+ }
131
+ }
132
+ return issues;
133
+ }
134
+ export function validateAuraVoiceAssetCoverage(episodePlan) {
135
+ const issues = [];
136
+ episodePlan.characters.forEach((character, index) => {
137
+ if (!character.rig.asset) {
138
+ issues.push(createPromptAnimationIssue("error", "auravoice-character-asset-missing", `Character "${character.id}" is missing a typed model asset for publish readiness.`, { path: `characters.${index}.rig.asset` }));
139
+ }
140
+ });
141
+ return issues;
142
+ }
143
+ export function validateAuraVoiceAudioCoverage(bridgePackage) {
144
+ const issues = [];
145
+ const audioStems = bridgePackage.artifacts.audioStems;
146
+ if (!audioStems)
147
+ return issues;
148
+ const stemsByPath = new Map(audioStems.stems.map((stem) => [stem.path, stem]));
149
+ const stemsById = new Map(audioStems.stems.map((stem) => [stem.id, stem]));
150
+ for (const line of bridgePackage.artifacts.dialogueTrack.lines) {
151
+ if (!line.audioFile)
152
+ continue;
153
+ const stem = stemsByPath.get(line.audioFile) ?? stemsById.get(line.audioFile);
154
+ if (!stem) {
155
+ issues.push(createPromptAnimationIssue("error", "auravoice-line-audio-stem-missing", `Dialogue line "${line.lineId}" has no matching audio stem "${line.audioFile}".`, { path: `audioStems.${line.lineId}`, time: line.startTime }));
156
+ continue;
157
+ }
158
+ const driftSeconds = Math.max(Math.abs(stem.startTime - line.startTime), Math.abs(stem.startTime + stem.duration - line.endTime));
159
+ const driftFrames = promptAnimationDriftFrames(driftSeconds, bridgePackage.masterClock.frameRate);
160
+ if (driftFrames > bridgePackage.masterClock.maxTimingDriftFrames) {
161
+ issues.push(createPromptAnimationIssue("error", "auravoice-audio-dialogue-drift", `Audio stem "${stem.id}" drifts ${driftFrames} frames from dialogue line "${line.lineId}".`, { path: `audioStems.${stem.id}`, frame: driftFrames, time: stem.startTime }));
162
+ }
163
+ }
164
+ return issues;
165
+ }
166
+ export function validateAuraVoiceVisemeCoverage(bridgePackage) {
167
+ const issues = [];
168
+ const visemes = bridgePackage.artifacts.visemes;
169
+ if (!visemes)
170
+ return issues;
171
+ const dialogueByLineId = new Map(bridgePackage.artifacts.dialogueTrack.lines.map((line) => [line.lineId, line]));
172
+ const cuesByLineId = new Map();
173
+ visemes.cues.forEach((cue, index) => {
174
+ if (!cue.lineId) {
175
+ issues.push(createPromptAnimationIssue("error", "auravoice-viseme-line-id-missing", `Viseme cue "${cue.id}" must reference a dialogue line id.`, { path: `visemes.cues.${index}.lineId`, time: cue.startTime }));
176
+ return;
177
+ }
178
+ const line = dialogueByLineId.get(cue.lineId);
179
+ if (line && cue.characterId !== line.speakerId && cue.speakerId !== line.speakerId) {
180
+ issues.push(createPromptAnimationIssue("error", "auravoice-viseme-character-mismatch", `Viseme cue "${cue.id}" must preserve dialogue character id "${line.speakerId}".`, { path: `visemes.cues.${index}.characterId`, time: cue.startTime }));
181
+ }
182
+ const cues = cuesByLineId.get(cue.lineId) ?? [];
183
+ cues.push(cue);
184
+ cuesByLineId.set(cue.lineId, cues);
185
+ });
186
+ for (const line of bridgePackage.artifacts.dialogueTrack.lines) {
187
+ const cues = (cuesByLineId.get(line.lineId) ?? []).filter((cue) => cue.characterId === line.speakerId || cue.speakerId === line.speakerId);
188
+ if (cues.length === 0) {
189
+ issues.push(createPromptAnimationIssue("error", "auravoice-viseme-line-missing", `Dialogue line "${line.lineId}" has no AuraVoice viseme cues.`, { path: `visemes.${line.lineId}`, time: line.startTime }));
190
+ continue;
191
+ }
192
+ const firstCueStart = Math.min(...cues.map((cue) => cue.startTime));
193
+ const lastCueEnd = Math.max(...cues.map((cue) => cue.endTime));
194
+ const driftSeconds = Math.max(Math.abs(firstCueStart - line.startTime), Math.abs(lastCueEnd - line.endTime));
195
+ const driftFrames = promptAnimationDriftFrames(driftSeconds, bridgePackage.masterClock.frameRate);
196
+ if (driftFrames > bridgePackage.masterClock.maxTimingDriftFrames) {
197
+ issues.push(createPromptAnimationIssue("error", "auravoice-viseme-dialogue-drift", `Visemes for dialogue line "${line.lineId}" drift ${driftFrames} frames from dialogue timing.`, { path: `visemes.${line.lineId}`, frame: driftFrames, time: firstCueStart }));
198
+ }
199
+ }
200
+ return issues;
201
+ }
202
+ export function validateAuraVoiceDubMap(dubMap) {
203
+ const issues = [];
204
+ for (const [index, entry] of dubMap.entries.entries()) {
205
+ validateDubIdPair(issues, entry, "dialogue", entry.originalLineId, entry.dubbedLineId, `dubMap.entries.${index}.dubbedLineId`);
206
+ validateDubIdPair(issues, entry, "character", entry.originalCharacterId ?? entry.originalSpeakerId, entry.dubbedCharacterId ?? entry.dubbedSpeakerId, `dubMap.entries.${index}.dubbedCharacterId`);
207
+ validateDubIdPair(issues, entry, "shot", entry.originalShotId, entry.dubbedShotId, `dubMap.entries.${index}.dubbedShotId`);
208
+ validateDubIdPair(issues, entry, "storyboard", entry.originalStoryboardId ?? entry.originalStoryboardSceneId ?? entry.originalSceneId, entry.dubbedStoryboardId ?? entry.dubbedStoryboardSceneId ?? entry.dubbedSceneId, `dubMap.entries.${index}.dubbedStoryboardId`);
209
+ validateDubIdPair(issues, entry, "caption", entry.originalCaptionId, entry.dubbedCaptionId, `dubMap.entries.${index}.dubbedCaptionId`);
210
+ }
211
+ return issues;
212
+ }
213
+ function validateDubIdPair(issues, entry, kind, originalId, dubbedId, path) {
214
+ if (!originalId || !dubbedId) {
215
+ issues.push(createPromptAnimationIssue("error", `auravoice-dub-${kind}-id-missing`, `Dubbed line "${entry.dubbedLineId}" must include stable ${kind} ids for source and dubbed renders.`, { path }));
216
+ return;
217
+ }
218
+ if (originalId !== dubbedId) {
219
+ issues.push(createPromptAnimationIssue("error", `auravoice-dub-${kind}-id-changed`, `Dubbed line "${entry.dubbedLineId}" must preserve ${kind} id "${originalId}".`, { path }));
220
+ }
221
+ }
222
+ export function createAuraVoiceRerenderPlan(previousPackage, nextPackage, options = {}) {
223
+ const issues = [];
224
+ const changedLineIds = new Set(options.changedLineIds ?? []);
225
+ const previousLines = new Map(previousPackage.artifacts.dialogueTrack.lines.map((line) => [line.lineId, line]));
226
+ const nextLines = new Map(nextPackage.artifacts.dialogueTrack.lines.map((line) => [line.lineId, line]));
227
+ for (const [lineId, nextLine] of nextLines) {
228
+ const previousLine = previousLines.get(lineId);
229
+ if (!previousLine) {
230
+ changedLineIds.add(lineId);
231
+ continue;
232
+ }
233
+ if (previousLine.text !== nextLine.text ||
234
+ previousLine.audioFile !== nextLine.audioFile ||
235
+ previousLine.startTime !== nextLine.startTime ||
236
+ previousLine.endTime !== nextLine.endTime ||
237
+ previousLine.language !== nextLine.language ||
238
+ previousLine.speakerId !== nextLine.speakerId) {
239
+ changedLineIds.add(lineId);
240
+ }
241
+ }
242
+ for (const lineId of previousLines.keys()) {
243
+ if (!nextLines.has(lineId))
244
+ changedLineIds.add(lineId);
245
+ }
246
+ const changedAudioStemIds = changedAudioStems(previousPackage, nextPackage);
247
+ for (const stemId of changedAudioStemIds) {
248
+ const lineId = stemId.startsWith("audio:") ? stemId.slice("audio:".length) : stemId;
249
+ if (nextLines.has(lineId) || previousLines.has(lineId))
250
+ changedLineIds.add(lineId);
251
+ }
252
+ const affectedShotIds = new Set();
253
+ const affectedCaptionIds = new Set();
254
+ const affectedVisemeCueIds = new Set();
255
+ for (const lineId of changedLineIds) {
256
+ const line = nextLines.get(lineId) ?? previousLines.get(lineId);
257
+ if (!line) {
258
+ issues.push(createPromptAnimationIssue("warning", "auravoice-rerender-line-missing", `Changed line "${lineId}" is not present in either bridge package.`, {
259
+ path: `dialogue.${lineId}`
260
+ }));
261
+ continue;
262
+ }
263
+ const shot = shotForDialogueLine(nextPackage, line) ?? shotForDialogueLine(previousPackage, line);
264
+ if (shot?.shotId)
265
+ affectedShotIds.add(shot.shotId);
266
+ for (const cue of nextPackage.artifacts.captionTrack?.cues ?? []) {
267
+ if (cue.lineId === lineId)
268
+ affectedCaptionIds.add(cue.captionId);
269
+ }
270
+ for (const cue of nextPackage.artifacts.visemes?.cues ?? []) {
271
+ if (cue.lineId === lineId)
272
+ affectedVisemeCueIds.add(cue.id);
273
+ }
274
+ }
275
+ const affectedRenderQueueItemIds = nextPackage.renderQueue.items
276
+ .filter((item) => item.shotId && affectedShotIds.has(item.shotId))
277
+ .map((item) => item.id);
278
+ const previousShotIds = previousPackage.artifacts.shotTimeline.shots.map((shot) => shot.shotId).join("\n");
279
+ const nextShotIds = nextPackage.artifacts.shotTimeline.shots.map((shot) => shot.shotId).join("\n");
280
+ const fullEpisodeRebuildRequired = previousPackage.episodeId !== nextPackage.episodeId || previousShotIds !== nextShotIds;
281
+ if (fullEpisodeRebuildRequired) {
282
+ issues.push(createPromptAnimationIssue("error", "auravoice-rerender-stable-shot-ids-changed", "Voice-track regeneration must preserve episode id and shot ids to rerender affected shots without rebuilding the whole episode."));
283
+ }
284
+ return {
285
+ kind: "auravoice-rerender-plan",
286
+ episodeId: nextPackage.episodeId,
287
+ reason: options.reason ?? "AuraVoice regenerated one or more voice, caption, viseme, or audio-stem timing artifacts.",
288
+ changedLineIds: [...changedLineIds],
289
+ changedAudioStemIds,
290
+ affectedShotIds: [...affectedShotIds],
291
+ affectedCaptionIds: [...affectedCaptionIds],
292
+ affectedVisemeCueIds: [...affectedVisemeCueIds],
293
+ affectedRenderQueueItemIds,
294
+ fullEpisodeRebuildRequired,
295
+ issues
296
+ };
297
+ }
298
+ export function createAuraVoiceDubRerenderProof(bridgePackage) {
299
+ const dubMap = bridgePackage.artifacts.dubMap;
300
+ const issues = dubMap
301
+ ? [...validateAuraVoiceDubMap(dubMap)]
302
+ : [
303
+ createPromptAnimationIssue("error", "auravoice-dub-map-missing", "Dub rerender proof requires a dub-map artifact with stable dialogue, caption, character, storyboard, and shot ids.")
304
+ ];
305
+ const entries = dubMap?.entries ?? [];
306
+ const stableShotIds = entries.length > 0 && entries.every((entry) => entry.originalShotId === entry.dubbedShotId);
307
+ const stableStoryboardIds = entries.length > 0 &&
308
+ entries.every((entry) => (entry.originalStoryboardId ?? entry.originalStoryboardSceneId ?? entry.originalSceneId) ===
309
+ (entry.dubbedStoryboardId ?? entry.dubbedStoryboardSceneId ?? entry.dubbedSceneId));
310
+ const stableCaptionIds = entries.length > 0 && entries.every((entry) => entry.originalCaptionId === entry.dubbedCaptionId);
311
+ const stableCharacterIds = entries.length > 0 &&
312
+ entries.every((entry) => (entry.originalCharacterId ?? entry.originalSpeakerId) === (entry.dubbedCharacterId ?? entry.dubbedSpeakerId));
313
+ const affectedShotIds = [...new Set(entries.flatMap((entry) => (entry.dubbedShotId ? [entry.dubbedShotId] : [])))];
314
+ const rerenderQueueItemIds = bridgePackage.renderQueue.items
315
+ .filter((item) => item.shotId && affectedShotIds.includes(item.shotId))
316
+ .map((item) => item.id);
317
+ if (!stableShotIds) {
318
+ issues.push(createPromptAnimationIssue("error", "auravoice-dub-shot-id-unstable", "Dubbed render proof must preserve shot ids so Aura3D can rerender the same storyboard shots."));
319
+ }
320
+ return {
321
+ kind: "auravoice-dub-rerender-proof",
322
+ episodeId: bridgePackage.episodeId,
323
+ ...(dubMap ? { sourceLanguage: dubMap.sourceLanguage, targetLanguage: dubMap.targetLanguage } : {}),
324
+ stableShotIds,
325
+ stableStoryboardIds,
326
+ stableCaptionIds,
327
+ stableCharacterIds,
328
+ affectedShotIds,
329
+ rerenderQueueItemIds,
330
+ issues,
331
+ publishReady: !issues.some((issue) => issue.severity === "error")
332
+ };
333
+ }
334
+ function changedAudioStems(previousPackage, nextPackage) {
335
+ const changed = new Set();
336
+ const previousStems = new Map((previousPackage.artifacts.audioStems?.stems ?? []).map((stem) => [stem.id, stem]));
337
+ const nextStems = new Map((nextPackage.artifacts.audioStems?.stems ?? []).map((stem) => [stem.id, stem]));
338
+ for (const [stemId, nextStem] of nextStems) {
339
+ const previousStem = previousStems.get(stemId);
340
+ if (!previousStem ||
341
+ previousStem.path !== nextStem.path ||
342
+ previousStem.startTime !== nextStem.startTime ||
343
+ previousStem.duration !== nextStem.duration ||
344
+ previousStem.gainDb !== nextStem.gainDb ||
345
+ previousStem.language !== nextStem.language) {
346
+ changed.add(stemId);
347
+ }
348
+ }
349
+ for (const stemId of previousStems.keys()) {
350
+ if (!nextStems.has(stemId))
351
+ changed.add(stemId);
352
+ }
353
+ return [...changed];
354
+ }
355
+ function shotForDialogueLine(bridgePackage, line) {
356
+ return (bridgePackage.artifacts.shotTimeline.shots.find((shot) => line.startTime >= shot.startTime && line.endTime <= shot.endTime + 0.000001) ??
357
+ bridgePackage.artifacts.shotTimeline.shots.find((shot) => line.lineId.startsWith(`${shot.shotId}:line-`)));
358
+ }
359
+ export function sampleAuraVoiceBridgeAtTime(bridgePackage, time, characterId) {
360
+ const frame = promptAnimationFrameAtTime(time, bridgePackage.masterClock.frameRate);
361
+ const dialogue = dialogueLineAtTime(bridgePackage.artifacts.dialogueTrack, time, characterId);
362
+ return {
363
+ time,
364
+ frame,
365
+ shot: getShotAtTime(bridgePackage.artifacts.shotTimeline, time),
366
+ ...(dialogue ? { dialogue } : {}),
367
+ ...(bridgePackage.artifacts.visemes ? { viseme: sampleVisemeTrack(bridgePackage.artifacts.visemes, time, characterId) } : {})
368
+ };
369
+ }
370
+ //# sourceMappingURL=AuraVoiceBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuraVoiceBridge.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/AuraVoiceBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,uCAAuC,EACvC,gCAAgC,EAUjC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,EAM1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,EACxB,wCAAwC,EACxC,0BAA0B,EAC1B,0CAA0C,EAK3C,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAoD,MAAM,mBAAmB,CAAC;AAC1H,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EAGpB,MAAM,uBAAuB,CAAC;AAiF/B,MAAM,UAAU,4BAA4B,CAC1C,SAAmC,EACnC,UAAkC,EAAE;IAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;IACnH,MAAM,WAAW,GAAG,0BAA0B,CAAC,SAAS,EAAE;QACxD,SAAS;QACT,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;KACnD,CAAC,CAAC;IACH,MAAM,WAAW,GACf,SAAS,CAAC,WAAW;QACrB,wBAAwB,CAAC;YACvB,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,mBAAmB;YAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,MAAM,mBAAmB,GACvB,SAAS,CAAC,mBAAmB;QAC7B,wCAAwC,CAAC;YACvC,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,WAAW;YACX,SAAS,EAAE,OAAO,CAAC,eAAe;YAClC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,WAAW;SAC/C,CAAC,CAAC;IACL,MAAM,YAAY,GAA2B;QAC3C,IAAI,EAAE,0BAA0B;QAChC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,SAAS;QAC1C,WAAW;QACX,SAAS,EAAE;YACT,GAAG,SAAS;YACZ,WAAW;YACX,mBAAmB;SACpB;QACD,WAAW;QACX,mBAAmB;QACnB,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,KAAK;KACpB,CAAC;IACF,MAAM,MAAM,GAAG,8BAA8B,CAAC,YAAY,CAAC,CAAC;IAC5D,OAAO;QACL,GAAG,YAAY;QACf,MAAM;QACN,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,SAAmC,EACnC,UAGI,EAAE;IAEN,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;IACnH,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC;IAC1D,MAAM,gBAAgB,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC;IACzD,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC;IACpI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrH,OAAO;QACL,MAAM;QACN,SAAS;QACT,aAAa,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAChD,QAAQ;QACR,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC;KAC9G,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,aAAqC;IAErC,MAAM,MAAM,GAAqC;QAC/C,GAAG,kCAAkC,CAAC,aAAa,CAAC,SAAS,CAAC;QAC9D,GAAG,gCAAgC,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC;QAC5G,GAAG,oBAAoB,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC;QAC7D,GAAG,0BAA0B,CAC3B,aAAa,CAAC,SAAS,CAAC,aAAa,EACrC,aAAa,CAAC,SAAS,CAAC,YAAY,EACpC,aAAa,CAAC,WAAW,CAAC,SAAS,EACnC,aAAa,CAAC,WAAW,CAAC,oBAAoB,CAC/C,CAAC,MAAM;QACR,GAAG,0BAA0B,CAAC,aAAa,CAAC,WAAW,CAAC;QACxD,GAAG,0CAA0C,CAAC,aAAa,CAAC,mBAAmB,CAAC;QAChF,GAAG,8BAA8B,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC;KACvE,CAAC;IAEF,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,iCAAiC,EAAE,kDAAkD,CAAC,CAAC,CAAC;IAC1I,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,2BAA2B,EAAE,0DAA0D,CAAC,CAAC,CAAC;IAC5I,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,+BAA+B,EAAE,wDAAwD,CAAC,CAAC,CAAC;IAC9I,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,WAAW,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,+BAA+B,CAAC,aAAa,CAAC,CAAC,CAAC;IAE/D,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,SAAmC;IAEnC,MAAM,OAAO,GAAG;QACd,CAAC,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC;QACtC,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC;QACpC,CAAC,cAAc,EAAE,SAAS,CAAC,YAAY,CAAC;QACxC,CAAC,eAAe,EAAE,SAAS,CAAC,aAAa,CAAC;QAC1C,CAAC,cAAc,EAAE,SAAS,CAAC,YAAY,CAAC;QACxC,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC;QAC9B,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC;QACpC,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC;QAC5B,CAAC,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC;QACtC,CAAC,qBAAqB,EAAE,SAAS,CAAC,mBAAmB,CAAC;KAC9C,CAAC;IACX,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAC1C,QAAQ,CAAC,CAAC,CAAC,uCAAuC,CAAC,QAAoE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CACpI,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,aAAqC;IAErC,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,MAAM,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,oBAAoB,CAAC;IACxE,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;QACvH,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,iCAAiC,EACjC,kBAAkB,IAAI,CAAC,MAAM,iCAAiC,EAC9D,EAAE,IAAI,EAAE,YAAY,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAC1D,CACF,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,0BAA0B,CAAC,iBAAiB,EAAE,SAAS,CAAC,EACxD,0BAA0B,CAAC,eAAe,EAAE,SAAS,CAAC,CACvD,CAAC;QACF,IAAI,WAAW,GAAG,gBAAgB,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,+BAA+B,EAC/B,kBAAkB,IAAI,CAAC,MAAM,YAAY,WAAW,2BAA2B,EAC/E,EAAE,IAAI,EAAE,YAAY,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAC9E,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,WAAuC;IAEvC,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QAClD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,mCAAmC,EACnC,cAAc,SAAS,CAAC,EAAE,yDAAyD,EACnF,EAAE,IAAI,EAAE,cAAc,KAAK,YAAY,EAAE,CAC1C,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,aAAqC;IAErC,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC;IACtD,IAAI,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IAE/B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,SAAS;QAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,mCAAmC,EACnC,kBAAkB,IAAI,CAAC,MAAM,iCAAiC,IAAI,CAAC,SAAS,IAAI,EAChF,EAAE,IAAI,EAAE,cAAc,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAC5D,CACF,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CACxD,CAAC;QACF,MAAM,WAAW,GAAG,0BAA0B,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAClG,IAAI,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,gCAAgC,EAChC,eAAe,IAAI,CAAC,EAAE,YAAY,WAAW,+BAA+B,IAAI,CAAC,MAAM,IAAI,EAC3F,EAAE,IAAI,EAAE,cAAc,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAC5E,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,aAAqC;IAErC,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAE5B,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkD,CAAC;IAC/E,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAClC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,kCAAkC,EAClC,eAAe,GAAG,CAAC,EAAE,sCAAsC,EAC3D,EAAE,IAAI,EAAE,gBAAgB,KAAK,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,CAC9D,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACnF,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,qCAAqC,EACrC,eAAe,GAAG,CAAC,EAAE,0CAA0C,IAAI,CAAC,SAAS,IAAI,EACjF,EAAE,IAAI,EAAE,gBAAgB,KAAK,cAAc,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,CACnE,CACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CACvD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAChF,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,+BAA+B,EAC/B,kBAAkB,IAAI,CAAC,MAAM,iCAAiC,EAC9D,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CACzD,CACF,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7G,MAAM,WAAW,GAAG,0BAA0B,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAClG,IAAI,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,iCAAiC,EACjC,8BAA8B,IAAI,CAAC,MAAM,WAAW,WAAW,+BAA+B,EAC9F,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,CAC5E,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAsB;IAC5D,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,EAAE,kBAAkB,KAAK,eAAe,CAAC,CAAC;QAC/H,iBAAiB,CACf,MAAM,EACN,KAAK,EACL,WAAW,EACX,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,iBAAiB,EACpD,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,eAAe,EAChD,kBAAkB,KAAK,oBAAoB,CAC5C,CAAC;QACF,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,EAAE,kBAAkB,KAAK,eAAe,CAAC,CAAC;QAC3H,iBAAiB,CACf,MAAM,EACN,KAAK,EACL,YAAY,EACZ,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,yBAAyB,IAAI,KAAK,CAAC,eAAe,EACtF,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,uBAAuB,IAAI,KAAK,CAAC,aAAa,EAChF,kBAAkB,KAAK,qBAAqB,CAC7C,CAAC;QACF,iBAAiB,CACf,MAAM,EACN,KAAK,EACL,SAAS,EACT,KAAK,CAAC,iBAAiB,EACvB,KAAK,CAAC,eAAe,EACrB,kBAAkB,KAAK,kBAAkB,CAC1C,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAwC,EACxC,KAAwC,EACxC,IAAkE,EAClE,UAAyC,EACzC,QAAuC,EACvC,IAAY;IAEZ,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,iBAAiB,IAAI,aAAa,EAClC,gBAAgB,KAAK,CAAC,YAAY,yBAAyB,IAAI,qCAAqC,EACpG,EAAE,IAAI,EAAE,CACT,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,iBAAiB,IAAI,aAAa,EAClC,gBAAgB,KAAK,CAAC,YAAY,mBAAmB,IAAI,QAAQ,UAAU,IAAI,EAC/E,EAAE,IAAI,EAAE,CACT,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,eAAuC,EACvC,WAAmC,EACnC,UAGI,EAAE;IAEN,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAoB,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IAChF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAExG,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,IACE,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;YACnC,YAAY,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;YAC7C,YAAY,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;YAC7C,YAAY,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO;YACzC,YAAY,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;YAC3C,YAAY,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,EAC7C,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC5E,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,GAAG,EAAqB,CAAC;IACrD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAqB,CAAC;IACxD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE1D,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CACT,0BAA0B,CAAC,SAAS,EAAE,iCAAiC,EAAE,iBAAiB,MAAM,4CAA4C,EAAE;gBAC5I,IAAI,EAAE,YAAY,MAAM,EAAE;aAC3B,CAAC,CACH,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAClG,IAAI,IAAI,EAAE,MAAM;YAAE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;YACjE,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;gBAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;YAC5D,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;gBAAE,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,MAAM,0BAA0B,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK;SAC7D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACjE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1B,MAAM,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3G,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnG,MAAM,0BAA0B,GAAG,eAAe,CAAC,SAAS,KAAK,WAAW,CAAC,SAAS,IAAI,eAAe,KAAK,WAAW,CAAC;IAE1H,IAAI,0BAA0B,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,4CAA4C,EAC5C,iIAAiI,CAClI,CACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,2FAA2F;QACrH,cAAc,EAAE,CAAC,GAAG,cAAc,CAAC;QACnC,mBAAmB;QACnB,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;QACrC,kBAAkB,EAAE,CAAC,GAAG,kBAAkB,CAAC;QAC3C,oBAAoB,EAAE,CAAC,GAAG,oBAAoB,CAAC;QAC/C,0BAA0B;QAC1B,0BAA0B;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,aAAqC;IACnF,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;IAC9C,MAAM,MAAM,GAAqC,MAAM;QACrD,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC;YACE,0BAA0B,CACxB,OAAO,EACP,2BAA2B,EAC3B,oHAAoH,CACrH;SACF,CAAC;IACN,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC;IAClH,MAAM,mBAAmB,GACvB,OAAO,CAAC,MAAM,GAAG,CAAC;QAClB,OAAO,CAAC,KAAK,CACX,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,yBAAyB,IAAI,KAAK,CAAC,eAAe,CAAC;YACxF,CAAC,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,uBAAuB,IAAI,KAAK,CAAC,aAAa,CAAC,CACrF,CAAC;IACJ,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,eAAe,CAAC,CAAC;IAC3H,MAAM,kBAAkB,GACtB,OAAO,CAAC,MAAM,GAAG,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAC1I,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnH,MAAM,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK;SACzD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CACT,0BAA0B,CACxB,OAAO,EACP,gCAAgC,EAChC,8FAA8F,CAC/F,CACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,8BAA8B;QACpC,SAAS,EAAE,aAAa,CAAC,SAAS;QAClC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnG,aAAa;QACb,mBAAmB;QACnB,gBAAgB;QAChB,kBAAkB;QAClB,eAAe;QACf,oBAAoB;QACpB,MAAM;QACN,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,eAAuC,EACvC,WAAmC;IAEnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1G,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IACE,CAAC,YAAY;YACb,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;YACnC,YAAY,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;YAC7C,YAAY,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;YAC3C,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;YACvC,YAAY,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAC3C,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,mBAAmB,CAC1B,aAAqC,EACrC,IAAkB;IAElB,OAAO,CACL,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACvD,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,QAAQ,CAC5E;QACD,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC,CAC1G,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,aAAqC,EACrC,IAA4B,EAC5B,WAA+B;IAE/B,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9F,OAAO;QACL,IAAI;QACJ,KAAK;QACL,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC;QAC/D,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9H,CAAC;AACJ,CAAC"}
@@ -0,0 +1,95 @@
1
+ import type { AuraAssetRef } from "./index.js";
2
+ import { type PromptAnimationAccessibilityProofMetadata, type PromptAnimationCharacter, type PromptAnimationEpisodePlan, type PromptAnimationId, type PromptAnimationLanguageCode, type PromptAnimationProp, type PromptAnimationRuntimeSpec, type PromptAnimationSafetyMetadata, type PromptAnimationSeconds, type PromptAnimationStoryboard, type PromptAnimationStoryBible, type PromptAnimationStyleGuide } from "./PromptAnimationContract.js";
3
+ import { type CartoonPerformanceArtifact } from "./CartoonPerformance.js";
4
+ import { type CaptionTrackArtifact, type DialogueTrackArtifact } from "./DialoguePerformance.js";
5
+ import { type CartoonRenderQueueArtifact, type CartoonViewport } from "./CartoonRenderQueue.js";
6
+ import { type ShotTimelineArtifact } from "./ShotTimeline.js";
7
+ export interface CartoonDirectorCharacterInput {
8
+ readonly id: PromptAnimationId;
9
+ readonly name: string;
10
+ readonly role?: PromptAnimationCharacter["role"] | undefined;
11
+ readonly voiceId?: string | undefined;
12
+ readonly asset?: AuraAssetRef<"model"> | undefined;
13
+ readonly style?: string | undefined;
14
+ }
15
+ export interface CartoonDirectorLocationInput {
16
+ readonly id: PromptAnimationId;
17
+ readonly name: string;
18
+ readonly description?: string | undefined;
19
+ readonly mood?: string | undefined;
20
+ }
21
+ export interface CartoonDirectorPropInput {
22
+ readonly id: PromptAnimationId;
23
+ readonly name: string;
24
+ readonly role?: PromptAnimationProp["role"] | undefined;
25
+ readonly description?: string | undefined;
26
+ readonly ownerCharacterId?: PromptAnimationId | undefined;
27
+ readonly locationId?: PromptAnimationId | undefined;
28
+ readonly asset?: AuraAssetRef<"model"> | undefined;
29
+ readonly primitiveFallback?: string | undefined;
30
+ readonly styleNotes?: readonly string[] | undefined;
31
+ readonly safetyNotes?: readonly string[] | undefined;
32
+ }
33
+ export interface CartoonDirectorDialogueInput {
34
+ readonly speakerId: PromptAnimationId;
35
+ readonly text: string;
36
+ readonly emotion?: string | undefined;
37
+ readonly delivery?: string | undefined;
38
+ readonly audioFile?: string | undefined;
39
+ }
40
+ export interface CartoonDirectorBeatInput {
41
+ readonly id: PromptAnimationId;
42
+ readonly sceneId?: PromptAnimationId | undefined;
43
+ readonly shotId?: PromptAnimationId | undefined;
44
+ readonly locationId: PromptAnimationId;
45
+ readonly summary: string;
46
+ readonly visualIntent: string;
47
+ readonly duration?: PromptAnimationSeconds | undefined;
48
+ readonly characters: readonly PromptAnimationId[];
49
+ readonly props?: readonly PromptAnimationId[] | undefined;
50
+ readonly dialogue?: readonly CartoonDirectorDialogueInput[] | undefined;
51
+ readonly mood?: string | undefined;
52
+ readonly gestureByCharacterId?: Record<string, PromptAnimationId> | undefined;
53
+ readonly blockingByCharacterId?: Record<string, {
54
+ readonly position?: readonly [number, number, number] | undefined;
55
+ readonly layer?: string | undefined;
56
+ }> | undefined;
57
+ }
58
+ export interface CartoonDirectorInput {
59
+ readonly episodeId: PromptAnimationId;
60
+ readonly title: string;
61
+ readonly prompt: string;
62
+ readonly language: PromptAnimationLanguageCode;
63
+ readonly runtime: PromptAnimationRuntimeSpec;
64
+ readonly characters: readonly CartoonDirectorCharacterInput[];
65
+ readonly locations: readonly CartoonDirectorLocationInput[];
66
+ readonly props?: readonly CartoonDirectorPropInput[] | undefined;
67
+ readonly styleGuide?: Partial<PromptAnimationStyleGuide> | undefined;
68
+ readonly continuityRules?: readonly string[] | undefined;
69
+ readonly beats: readonly CartoonDirectorBeatInput[];
70
+ readonly safety?: Partial<PromptAnimationSafetyMetadata> | undefined;
71
+ readonly accessibilityProof?: PromptAnimationAccessibilityProofMetadata | undefined;
72
+ readonly route?: string | undefined;
73
+ readonly viewport?: CartoonViewport | undefined;
74
+ readonly generatedAt?: string | undefined;
75
+ }
76
+ export interface CartoonDirectorPlan {
77
+ readonly kind: "cartoon-director-plan";
78
+ readonly episodePlan: PromptAnimationEpisodePlan;
79
+ readonly storyBible: PromptAnimationStoryBible;
80
+ readonly storyboard: PromptAnimationStoryboard;
81
+ readonly shotTimeline: ShotTimelineArtifact;
82
+ readonly dialogueTrack: DialogueTrackArtifact;
83
+ readonly captionTrack: CaptionTrackArtifact;
84
+ readonly performance: CartoonPerformanceArtifact;
85
+ readonly renderQueue: CartoonRenderQueueArtifact;
86
+ }
87
+ export declare function defineCartoonDirectorPlan<const TPlan extends CartoonDirectorPlan>(plan: TPlan): TPlan;
88
+ export declare function createCartoonDirectorPlan(input: CartoonDirectorInput): CartoonDirectorPlan;
89
+ export declare function compilePromptEpisodePlan(input: CartoonDirectorInput): CartoonDirectorPlan;
90
+ export declare const cartoonDirector: {
91
+ readonly compile: typeof compilePromptEpisodePlan;
92
+ readonly createPlan: typeof createCartoonDirectorPlan;
93
+ readonly definePlan: typeof defineCartoonDirectorPlan;
94
+ };
95
+ //# sourceMappingURL=CartoonDirector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartoonDirector.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CartoonDirector.ts"],"names":[],"mappings":"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"}