@aura3d/engine 1.0.3 → 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 (198) hide show
  1. package/README.md +309 -7
  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 +1 -0
  146. package/dist/engine/agent-api/humanoid-walk-runtime.d.ts.map +1 -1
  147. package/dist/engine/agent-api/index.d.ts +487 -1
  148. package/dist/engine/agent-api/index.d.ts.map +1 -1
  149. package/dist/engine/agent-api/index.js +740 -6
  150. package/dist/engine/agent-api/index.js.map +1 -1
  151. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  152. package/dist/index.d.ts +1 -0
  153. package/dist/index.js +1 -0
  154. package/dist/physics/CollisionVolumes.d.ts +57 -0
  155. package/dist/physics/CollisionVolumes.d.ts.map +1 -0
  156. package/dist/physics/CollisionVolumes.js +159 -0
  157. package/dist/physics/CollisionVolumes.js.map +1 -0
  158. package/dist/physics/HitboxWorld.d.ts +229 -0
  159. package/dist/physics/HitboxWorld.d.ts.map +1 -0
  160. package/dist/physics/HitboxWorld.js +640 -0
  161. package/dist/physics/HitboxWorld.js.map +1 -0
  162. package/dist/physics/KinematicBody.d.ts +157 -0
  163. package/dist/physics/KinematicBody.d.ts.map +1 -0
  164. package/dist/physics/KinematicBody.js +405 -0
  165. package/dist/physics/KinematicBody.js.map +1 -0
  166. package/dist/physics/KinematicWorld.d.ts +58 -0
  167. package/dist/physics/KinematicWorld.d.ts.map +1 -0
  168. package/dist/physics/KinematicWorld.js +246 -0
  169. package/dist/physics/KinematicWorld.js.map +1 -0
  170. package/dist/physics/index.d.ts +4 -0
  171. package/dist/physics/index.d.ts.map +1 -1
  172. package/dist/physics/index.js +4 -0
  173. package/dist/physics/index.js.map +1 -1
  174. package/dist/rendering/ForwardPass.js +2 -2
  175. package/dist/rendering/ShaderLibrary.js +2 -2
  176. package/dist/rendering/SkinnedLitMaterial.js +3 -3
  177. package/dist/rendering/SkinnedUnlitMaterial.js +3 -3
  178. package/dist/scene/Renderable.js +2 -2
  179. package/dist/scripting/VisualGraph.d.ts +2 -1
  180. package/dist/scripting/VisualGraph.d.ts.map +1 -1
  181. package/dist/scripting/VisualGraph.js +118 -1
  182. package/dist/scripting/VisualGraph.js.map +1 -1
  183. package/dist/scripting/VisualGraphContext.d.ts +123 -0
  184. package/dist/scripting/VisualGraphContext.d.ts.map +1 -0
  185. package/dist/scripting/VisualGraphContext.js +2 -0
  186. package/dist/scripting/VisualGraphContext.js.map +1 -0
  187. package/dist/scripting/VisualGraphExecutor.d.ts +6 -1
  188. package/dist/scripting/VisualGraphExecutor.d.ts.map +1 -1
  189. package/dist/scripting/VisualGraphExecutor.js +364 -7
  190. package/dist/scripting/VisualGraphExecutor.js.map +1 -1
  191. package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
  192. package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
  193. package/dist/scripting/VisualNodeCatalog.js +61 -1
  194. package/dist/scripting/VisualNodeCatalog.js.map +1 -1
  195. package/dist/scripting/index.d.ts +1 -0
  196. package/dist/scripting/index.d.ts.map +1 -1
  197. package/dist/scripting/index.js.map +1 -1
  198. package/package.json +192 -118
@@ -0,0 +1,385 @@
1
+ import { createPromptAnimationIssue, normalizePromptAnimationTime, promptAnimationContractVersion } from "./PromptAnimationContract.js";
2
+ import { getShotTimelineCaptureTimes } from "./ShotTimeline.js";
3
+ export const defaultCartoonViewport = {
4
+ width: 1920,
5
+ height: 1080,
6
+ deviceScaleFactor: 1
7
+ };
8
+ export const defaultCartoonRenderOutputs = [
9
+ {
10
+ id: "video:mp4",
11
+ kind: "mp4",
12
+ path: "dist/render/episode.mp4",
13
+ label: "H.264 MP4 publish video",
14
+ codec: "h264",
15
+ mimeType: "video/mp4",
16
+ required: true,
17
+ quality: "review"
18
+ },
19
+ {
20
+ id: "video:webm",
21
+ kind: "webm",
22
+ path: "dist/render/episode.webm",
23
+ label: "VP9 WebM web preview",
24
+ codec: "vp9",
25
+ mimeType: "video/webm",
26
+ required: true,
27
+ quality: "review"
28
+ },
29
+ {
30
+ id: "captions:vtt",
31
+ kind: "caption-vtt",
32
+ path: "dist/render/captions.vtt",
33
+ label: "WebVTT captions",
34
+ mimeType: "text/vtt",
35
+ required: true,
36
+ quality: "review"
37
+ },
38
+ {
39
+ id: "captions:srt",
40
+ kind: "caption-srt",
41
+ path: "dist/render/captions.srt",
42
+ label: "SRT captions",
43
+ mimeType: "application/x-subrip",
44
+ required: true,
45
+ quality: "review"
46
+ },
47
+ {
48
+ id: "thumbnail",
49
+ kind: "thumbnail",
50
+ path: "dist/render/thumbnail.webp",
51
+ label: "YouTube thumbnail",
52
+ mimeType: "image/webp",
53
+ required: true,
54
+ quality: "review"
55
+ },
56
+ {
57
+ id: "timeline",
58
+ kind: "timeline-json",
59
+ path: "dist/render/timeline.json",
60
+ label: "Frame-accurate timeline JSON",
61
+ mimeType: "application/json",
62
+ required: true,
63
+ quality: "review"
64
+ },
65
+ {
66
+ id: "evidence",
67
+ kind: "evidence-json",
68
+ path: "dist/render/prompt-animation-evidence.json",
69
+ label: "Publish-readiness evidence JSON",
70
+ mimeType: "application/json",
71
+ required: true,
72
+ quality: "review"
73
+ },
74
+ {
75
+ id: "youtube:draft",
76
+ kind: "youtube-metadata",
77
+ path: "dist/render/youtube-draft.json",
78
+ label: "YouTube draft metadata",
79
+ mimeType: "application/json",
80
+ required: true,
81
+ quality: "draft"
82
+ }
83
+ ];
84
+ export const requiredCartoonRenderPackageOutputKinds = [
85
+ "mp4",
86
+ "webm",
87
+ "thumbnail",
88
+ "timeline-json",
89
+ "evidence-json",
90
+ "youtube-metadata"
91
+ ];
92
+ export const captionCartoonRenderOutputKinds = ["caption-vtt", "caption-srt"];
93
+ export const defaultCartoonEvidenceTargets = [
94
+ { id: "screenshot-hashes", kind: "screenshot-hash", required: true },
95
+ { id: "timing-drift", kind: "timing-drift", required: true },
96
+ { id: "caption-sync", kind: "caption-sync", required: true },
97
+ { id: "viseme-sync", kind: "viseme-sync", required: true },
98
+ { id: "deterministic-capture", kind: "deterministic-capture", required: true },
99
+ { id: "route-health", kind: "route-health", required: true },
100
+ { id: "accessibility", kind: "accessibility", required: true }
101
+ ];
102
+ export function defineCartoonRenderQueue(queue) {
103
+ return queue;
104
+ }
105
+ export function createCartoonRenderQueue(options) {
106
+ const viewport = options.viewport ?? defaultCartoonViewport;
107
+ const outputs = options.outputs ?? defaultCartoonRenderOutputs;
108
+ const evidenceTargets = options.evidenceTargets ?? defaultCartoonEvidenceTargets;
109
+ const captureTimes = normalizeRenderCaptureTimes(options.captureTimes && options.captureTimes.length > 0
110
+ ? options.captureTimes
111
+ : getShotTimelineCaptureTimes(options.shotTimeline));
112
+ const outputIds = outputs.map((output) => output.id);
113
+ const evidenceTargetIds = evidenceTargets.map((target) => target.id);
114
+ const frameRate = options.shotTimeline.frameRate || options.episodePlan.runtime.frameRate;
115
+ const items = captureTimes.map((time) => {
116
+ const shot = options.shotTimeline.shots.find((candidate) => time >= candidate.startTime && time <= candidate.endTime);
117
+ const frame = Math.round(time * frameRate);
118
+ return {
119
+ id: `capture:${frame}`,
120
+ route: options.route,
121
+ language: options.language ?? options.episodePlan.language,
122
+ time,
123
+ frame,
124
+ ...(shot ? { shotId: shot.shotId } : {}),
125
+ viewport,
126
+ outputIds,
127
+ evidenceTargetIds,
128
+ sourceSceneState: createCartoonRenderSceneStateSource({
129
+ episodeId: options.episodePlan.episodeId,
130
+ route: options.route,
131
+ time,
132
+ frame,
133
+ ...(shot ? { shotId: shot.shotId } : {})
134
+ })
135
+ };
136
+ });
137
+ return {
138
+ artifact: "render-queue",
139
+ contractId: promptAnimationContractVersion,
140
+ episodeId: options.episodePlan.episodeId,
141
+ route: options.route,
142
+ language: options.language ?? options.episodePlan.language,
143
+ frameRate,
144
+ viewport,
145
+ captureTimes,
146
+ outputs,
147
+ evidenceTargets,
148
+ items,
149
+ ...(options.generatedAt ? { generatedAt: options.generatedAt } : {})
150
+ };
151
+ }
152
+ export function createCartoonRenderOutputPackageMetadata(options) {
153
+ const firstCaptureTime = options.renderQueue.captureTimes[0] ?? 0;
154
+ const youtubeDraft = options.youtube ??
155
+ options.episodePlan.youtube ?? {
156
+ title: options.episodePlan.title,
157
+ ...(options.episodePlan.production.sourcePrompt
158
+ ? { description: options.episodePlan.production.sourcePrompt }
159
+ : {}),
160
+ tags: ["Aura3D", "cartoon", "prompt-animation"],
161
+ madeForKids: options.episodePlan.safety.childSafe,
162
+ thumbnailCaptureTime: firstCaptureTime,
163
+ defaultLanguage: options.episodePlan.language,
164
+ privacyStatus: "private"
165
+ };
166
+ const packageId = options.packageId ?? `${options.episodePlan.episodeId}:render-package`;
167
+ const outputs = collectCartoonRenderPackageOutputs(options.renderQueue.outputs);
168
+ const thumbnailCapture = createCartoonThumbnailSceneStateCapture(packageId, options.renderQueue, outputs, youtubeDraft);
169
+ return {
170
+ artifact: "render-output-package",
171
+ contractId: promptAnimationContractVersion,
172
+ episodeId: options.episodePlan.episodeId,
173
+ packageId,
174
+ route: options.renderQueue.route,
175
+ language: options.renderQueue.language,
176
+ frameRate: options.renderQueue.frameRate,
177
+ duration: options.shotTimeline.duration || options.episodePlan.runtime.duration,
178
+ viewport: options.renderQueue.viewport,
179
+ outputs,
180
+ requiredOutputKinds: [...requiredCartoonRenderPackageOutputKinds, "caption-vtt"],
181
+ youtubeDraft,
182
+ thumbnailCapture,
183
+ reviewPackagePaths: createCartoonRenderReviewPackagePaths(outputs),
184
+ ...(options.generatedAt ? { generatedAt: options.generatedAt } : {})
185
+ };
186
+ }
187
+ export function normalizeRenderCaptureTimes(times) {
188
+ const unique = new Set();
189
+ for (const time of times)
190
+ unique.add(normalizePromptAnimationTime(time));
191
+ return [...unique].sort((a, b) => a - b);
192
+ }
193
+ export function validateCartoonRenderQueue(queue) {
194
+ const issues = [];
195
+ if (!queue.route) {
196
+ issues.push(createPromptAnimationIssue("error", "render-route-missing", "Render queue route is required."));
197
+ }
198
+ if (queue.frameRate <= 0) {
199
+ issues.push(createPromptAnimationIssue("error", "render-frame-rate", "Render queue frame rate must be positive."));
200
+ }
201
+ if (queue.captureTimes.length === 0) {
202
+ issues.push(createPromptAnimationIssue("error", "render-capture-times-missing", "Render queue needs capture times."));
203
+ }
204
+ if (queue.outputs.length === 0) {
205
+ issues.push(createPromptAnimationIssue("error", "render-outputs-missing", "Render queue needs at least one output."));
206
+ }
207
+ issues.push(...validateCartoonRenderOutputs(queue.outputs));
208
+ for (const item of queue.items) {
209
+ if (!item.outputIds.length) {
210
+ issues.push(createPromptAnimationIssue("error", "render-item-output-missing", `Render item "${item.id}" has no outputs.`, {
211
+ path: `items.${item.id}`,
212
+ time: item.time,
213
+ frame: item.frame
214
+ }));
215
+ }
216
+ if (!item.sourceSceneState) {
217
+ issues.push(createPromptAnimationIssue("error", "render-item-scene-state-missing", `Render item "${item.id}" must bind capture to an Aura3D scene state.`, { path: `items.${item.id}.sourceSceneState`, time: item.time, frame: item.frame }));
218
+ continue;
219
+ }
220
+ if (!item.sourceSceneState.sceneStateId) {
221
+ issues.push(createPromptAnimationIssue("error", "render-item-scene-state-id-missing", `Render item "${item.id}" source scene state is missing a stable id.`, { path: `items.${item.id}.sourceSceneState.sceneStateId`, time: item.time, frame: item.frame }));
222
+ }
223
+ if (item.sourceSceneState.frame !== item.frame) {
224
+ issues.push(createPromptAnimationIssue("error", "render-item-scene-state-frame-mismatch", `Render item "${item.id}" scene state frame must match the render frame.`, { path: `items.${item.id}.sourceSceneState.frame`, time: item.time, frame: item.frame }));
225
+ }
226
+ if (!sameRenderTime(item.sourceSceneState.time, item.time) || !sameRenderTime(item.sourceSceneState.auraVoiceTimestamp, item.time)) {
227
+ issues.push(createPromptAnimationIssue("error", "render-item-auravoice-timestamp-mismatch", `Render item "${item.id}" must capture from the exact AuraVoice timestamp.`, { path: `items.${item.id}.sourceSceneState.auraVoiceTimestamp`, time: item.time, frame: item.frame }));
228
+ }
229
+ if (item.shotId && item.sourceSceneState.shotId !== item.shotId) {
230
+ issues.push(createPromptAnimationIssue("error", "render-item-scene-state-shot-mismatch", `Render item "${item.id}" scene state must preserve shot id "${item.shotId}".`, { path: `items.${item.id}.sourceSceneState.shotId`, time: item.time, frame: item.frame }));
231
+ }
232
+ }
233
+ return issues;
234
+ }
235
+ export function collectCartoonRenderPackageOutputs(outputs) {
236
+ return {
237
+ mp4: outputs.find((output) => output.kind === "mp4"),
238
+ webm: outputs.find((output) => output.kind === "webm"),
239
+ captions: outputs.filter((output) => output.kind === "caption-vtt" || output.kind === "caption-srt"),
240
+ thumbnail: outputs.find((output) => output.kind === "thumbnail"),
241
+ timelineJson: outputs.find((output) => output.kind === "timeline-json"),
242
+ evidenceJson: outputs.find((output) => output.kind === "evidence-json"),
243
+ youtubeMetadata: outputs.find((output) => output.kind === "youtube-metadata")
244
+ };
245
+ }
246
+ export function createCartoonRenderReviewPackagePaths(outputs) {
247
+ return {
248
+ video: [outputs.mp4?.path, outputs.webm?.path].filter(isNonEmptyString),
249
+ captions: outputs.captions.map((output) => output.path).filter(isNonEmptyString),
250
+ thumbnail: outputs.thumbnail?.path ?? "",
251
+ evidence: outputs.evidenceJson?.path ?? "",
252
+ youtubeDraftMetadata: outputs.youtubeMetadata?.path ?? ""
253
+ };
254
+ }
255
+ export function validateCartoonRenderOutputs(outputs, pathPrefix = "outputs") {
256
+ const issues = [];
257
+ const outputIds = new Set();
258
+ const outputKinds = new Set();
259
+ outputs.forEach((output, index) => {
260
+ if (!output.id) {
261
+ issues.push(createPromptAnimationIssue("error", "render-output-id-missing", `Render output at index ${index} is missing an id.`, {
262
+ path: `${pathPrefix}.${index}.id`
263
+ }));
264
+ }
265
+ if (outputIds.has(output.id)) {
266
+ issues.push(createPromptAnimationIssue("error", "render-output-id-duplicate", `Duplicate render output id "${output.id}".`, {
267
+ path: `${pathPrefix}.${index}.id`
268
+ }));
269
+ }
270
+ outputIds.add(output.id);
271
+ outputKinds.add(output.kind);
272
+ if (!output.path) {
273
+ issues.push(createPromptAnimationIssue("error", "render-output-path-missing", `Render output "${output.id}" has no path.`, {
274
+ path: `${pathPrefix}.${index}.path`
275
+ }));
276
+ }
277
+ });
278
+ for (const kind of requiredCartoonRenderPackageOutputKinds) {
279
+ if (!outputKinds.has(kind)) {
280
+ issues.push(createPromptAnimationIssue("error", `render-output-${kind}-missing`, `Render package requires ${kind} output.`));
281
+ }
282
+ }
283
+ if (!captionCartoonRenderOutputKinds.some((kind) => outputKinds.has(kind))) {
284
+ issues.push(createPromptAnimationIssue("error", "render-output-captions-missing", "Render package requires captions output."));
285
+ }
286
+ return issues;
287
+ }
288
+ export function validateCartoonRenderOutputPackageMetadata(metadata) {
289
+ const outputs = [
290
+ metadata.outputs.mp4,
291
+ metadata.outputs.webm,
292
+ ...metadata.outputs.captions,
293
+ metadata.outputs.thumbnail,
294
+ metadata.outputs.timelineJson,
295
+ metadata.outputs.evidenceJson,
296
+ metadata.outputs.youtubeMetadata
297
+ ].filter((output) => Boolean(output));
298
+ const issues = [...validateCartoonRenderOutputs(outputs, "renderOutputPackage.outputs")];
299
+ if (!metadata.packageId) {
300
+ issues.push(createPromptAnimationIssue("error", "render-package-id-missing", "Render output package id is required."));
301
+ }
302
+ if (!metadata.youtubeDraft.title.trim()) {
303
+ issues.push(createPromptAnimationIssue("error", "youtube-draft-title-missing", "YouTube draft metadata requires a title.", {
304
+ path: "renderOutputPackage.youtubeDraft.title"
305
+ }));
306
+ }
307
+ if (metadata.youtubeDraft.thumbnailCaptureTime === undefined) {
308
+ issues.push(createPromptAnimationIssue("error", "youtube-draft-thumbnail-time-missing", "YouTube draft metadata requires a thumbnail capture time.", { path: "renderOutputPackage.youtubeDraft.thumbnailCaptureTime" }));
309
+ }
310
+ if (metadata.youtubeDraft.thumbnailCaptureTime !== undefined) {
311
+ const thumbnailTime = normalizePromptAnimationTime(metadata.youtubeDraft.thumbnailCaptureTime);
312
+ if (!sameRenderTime(metadata.thumbnailCapture.time, thumbnailTime)) {
313
+ issues.push(createPromptAnimationIssue("error", "thumbnail-capture-time-mismatch", "Thumbnail capture must use the YouTube draft thumbnail capture time.", { path: "renderOutputPackage.thumbnailCapture.time", time: metadata.thumbnailCapture.time }));
314
+ }
315
+ }
316
+ if (!metadata.thumbnailCapture.sourceSceneStateId) {
317
+ issues.push(createPromptAnimationIssue("error", "thumbnail-capture-scene-state-missing", "Thumbnail capture must reference the Aura3D scene state used for the rendered frame.", { path: "renderOutputPackage.thumbnailCapture.sourceSceneStateId", time: metadata.thumbnailCapture.time }));
318
+ }
319
+ if (metadata.outputs.thumbnail?.path && metadata.thumbnailCapture.outputPath !== metadata.outputs.thumbnail.path) {
320
+ issues.push(createPromptAnimationIssue("error", "thumbnail-capture-output-path-mismatch", "Thumbnail capture output path must match the review package thumbnail path.", { path: "renderOutputPackage.thumbnailCapture.outputPath", time: metadata.thumbnailCapture.time }));
321
+ }
322
+ if (metadata.reviewPackagePaths.video.length === 0) {
323
+ issues.push(createPromptAnimationIssue("error", "review-package-video-paths-missing", "Review package requires video output paths."));
324
+ }
325
+ if (metadata.reviewPackagePaths.captions.length === 0) {
326
+ issues.push(createPromptAnimationIssue("error", "review-package-caption-paths-missing", "Review package requires caption output paths."));
327
+ }
328
+ if (!metadata.reviewPackagePaths.thumbnail) {
329
+ issues.push(createPromptAnimationIssue("error", "review-package-thumbnail-path-missing", "Review package requires a thumbnail path."));
330
+ }
331
+ if (!metadata.reviewPackagePaths.evidence) {
332
+ issues.push(createPromptAnimationIssue("error", "review-package-evidence-path-missing", "Review package requires an evidence path."));
333
+ }
334
+ if (!metadata.reviewPackagePaths.youtubeDraftMetadata) {
335
+ issues.push(createPromptAnimationIssue("error", "review-package-youtube-metadata-path-missing", "Review package requires a YouTube draft metadata path."));
336
+ }
337
+ return issues;
338
+ }
339
+ function createCartoonRenderSceneStateSource(input) {
340
+ const stableShotId = input.shotId ?? "timeline";
341
+ const normalizedTime = normalizePromptAnimationTime(input.time);
342
+ return {
343
+ source: "aura3d-scene-state",
344
+ sceneStateId: `${input.episodeId}:${stableShotId}:frame-${input.frame}:scene-state`,
345
+ route: input.route,
346
+ time: normalizedTime,
347
+ auraVoiceTimestamp: normalizedTime,
348
+ frame: input.frame,
349
+ ...(input.shotId ? { shotId: input.shotId } : {}),
350
+ deterministicSeed: `${input.episodeId}:${stableShotId}:frame-${input.frame}:time-${normalizedTime.toFixed(6)}`
351
+ };
352
+ }
353
+ function createCartoonThumbnailSceneStateCapture(packageId, renderQueue, outputs, youtubeDraft) {
354
+ const requestedTime = normalizePromptAnimationTime(youtubeDraft.thumbnailCaptureTime ?? renderQueue.captureTimes[0] ?? 0);
355
+ const item = renderQueue.items.find((candidate) => sameRenderTime(candidate.time, requestedTime)) ?? renderQueue.items[0];
356
+ const fallbackFrame = Math.round(requestedTime * renderQueue.frameRate);
357
+ const sourceSceneState = item?.sourceSceneState ??
358
+ createCartoonRenderSceneStateSource({
359
+ episodeId: renderQueue.episodeId,
360
+ route: renderQueue.route,
361
+ time: requestedTime,
362
+ frame: fallbackFrame,
363
+ ...(item?.shotId ? { shotId: item.shotId } : {})
364
+ });
365
+ return {
366
+ id: `${packageId}:thumbnail-capture`,
367
+ source: "same-aura3d-scene-state",
368
+ outputId: outputs.thumbnail?.id ?? "thumbnail",
369
+ outputPath: outputs.thumbnail?.path ?? "",
370
+ route: item?.route ?? renderQueue.route,
371
+ time: item?.time ?? requestedTime,
372
+ auraVoiceTimestamp: sourceSceneState.auraVoiceTimestamp,
373
+ frame: item?.frame ?? fallbackFrame,
374
+ ...(sourceSceneState.shotId ? { shotId: sourceSceneState.shotId } : {}),
375
+ sourceSceneStateId: sourceSceneState.sceneStateId,
376
+ deterministicSeed: sourceSceneState.deterministicSeed
377
+ };
378
+ }
379
+ function sameRenderTime(a, b) {
380
+ return Math.abs(normalizePromptAnimationTime(a) - normalizePromptAnimationTime(b)) <= 0.000001;
381
+ }
382
+ function isNonEmptyString(value) {
383
+ return Boolean(value && value.trim());
384
+ }
385
+ //# sourceMappingURL=CartoonRenderQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartoonRenderQueue.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CartoonRenderQueue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import type { AuraAssetRef, AuraColor, AuraVec3 } from "./index.js";
2
+ import { type GameAssetAxis, type GameAssetBounds, type GameAssetOrientation, type GameAssetReadinessManifest, type GameAssetValidationCheck, type GameAssetValidationIssue, type GameAssetValidationStatus } from "./GameAssetValidation.js";
3
+ export type CharacterAssemblyPartRole = "base-body" | "head" | "hair" | "face" | "top" | "bottom" | "full-outfit" | "shoes" | "gloves" | "cape" | "accessory" | "weapon" | "prop";
4
+ export type CharacterAssemblySocket = "root" | "hips" | "spine" | "chest" | "neck" | "head" | "hairline" | "left-hand" | "right-hand" | "left-foot" | "right-foot" | "back" | "custom";
5
+ export interface CharacterAssemblyTransform {
6
+ readonly position?: AuraVec3 | undefined;
7
+ readonly rotation?: AuraVec3 | undefined;
8
+ readonly scale?: number | AuraVec3 | undefined;
9
+ }
10
+ export interface CharacterAssemblyAttachmentRule {
11
+ readonly socket: CharacterAssemblySocket;
12
+ readonly parentRole?: CharacterAssemblyPartRole | undefined;
13
+ readonly parentPartName?: string | undefined;
14
+ readonly offset?: AuraVec3 | undefined;
15
+ readonly rotation?: AuraVec3 | undefined;
16
+ readonly scale?: number | AuraVec3 | undefined;
17
+ readonly allowFloating?: boolean | undefined;
18
+ readonly maxGap?: number | undefined;
19
+ readonly notes?: readonly string[] | undefined;
20
+ }
21
+ export interface CharacterAssemblyMaterialOverride {
22
+ readonly materialName?: string | undefined;
23
+ readonly color?: AuraColor | undefined;
24
+ readonly opacity?: number | undefined;
25
+ readonly roughness?: number | undefined;
26
+ readonly metallic?: number | undefined;
27
+ }
28
+ export interface CharacterAssemblyPalette {
29
+ readonly skin?: AuraColor | undefined;
30
+ readonly hair?: AuraColor | undefined;
31
+ readonly primary?: AuraColor | undefined;
32
+ readonly secondary?: AuraColor | undefined;
33
+ readonly accent?: AuraColor | undefined;
34
+ readonly emissive?: AuraColor | undefined;
35
+ }
36
+ export interface CharacterAssemblyPart<TAsset extends AuraAssetRef<"model"> = AuraAssetRef<"model">> {
37
+ readonly role: CharacterAssemblyPartRole;
38
+ readonly asset: TAsset;
39
+ readonly name?: string | undefined;
40
+ readonly required?: boolean | undefined;
41
+ readonly transform?: CharacterAssemblyTransform | undefined;
42
+ readonly attachment?: CharacterAssemblyAttachmentRule | undefined;
43
+ readonly readiness?: GameAssetReadinessManifest<TAsset> | undefined;
44
+ readonly bounds?: GameAssetBounds | undefined;
45
+ readonly materials?: readonly CharacterAssemblyMaterialOverride[] | undefined;
46
+ readonly tags?: readonly string[] | undefined;
47
+ }
48
+ export interface CharacterAssemblyGameplayIntent {
49
+ readonly runtimeNodeId?: string | undefined;
50
+ readonly collisionPreset?: "fighter" | "npc" | "cartoon-character" | "none" | undefined;
51
+ readonly animationProfile?: "fighter" | "cartoon" | "ambient" | undefined;
52
+ readonly routeUsage?: readonly string[] | undefined;
53
+ }
54
+ export interface CharacterAssemblyPlan<TBody extends AuraAssetRef<"model"> = AuraAssetRef<"model">> {
55
+ readonly kind: "aura-character-assembly-plan";
56
+ readonly contractId: string;
57
+ readonly exportName: string;
58
+ readonly baseBody: CharacterAssemblyPart<TBody>;
59
+ readonly parts: readonly CharacterAssemblyPart[];
60
+ readonly palette?: CharacterAssemblyPalette | undefined;
61
+ readonly scale: number;
62
+ readonly orientation: GameAssetOrientation;
63
+ readonly attachmentRules: readonly CharacterAssemblyAttachmentRule[];
64
+ readonly gameplay?: CharacterAssemblyGameplayIntent | undefined;
65
+ readonly notes?: readonly string[] | undefined;
66
+ readonly generatedAt?: string | undefined;
67
+ }
68
+ export interface CharacterAssemblyPartInput<TAsset extends AuraAssetRef<"model"> = AuraAssetRef<"model">> extends Omit<CharacterAssemblyPart<TAsset>, "role"> {
69
+ readonly role?: CharacterAssemblyPartRole | undefined;
70
+ }
71
+ export interface CreateCharacterAssemblyPlanInput<TBody extends AuraAssetRef<"model"> = AuraAssetRef<"model">> {
72
+ readonly exportName: string;
73
+ readonly baseBody: TBody | CharacterAssemblyPart<TBody>;
74
+ readonly hair?: readonly CharacterAssemblyPartInput[] | undefined;
75
+ readonly clothing?: readonly CharacterAssemblyPartInput[] | undefined;
76
+ readonly accessories?: readonly CharacterAssemblyPartInput[] | undefined;
77
+ readonly parts?: readonly CharacterAssemblyPartInput[] | undefined;
78
+ readonly palette?: CharacterAssemblyPalette | undefined;
79
+ readonly scale?: number | undefined;
80
+ readonly orientation?: Partial<GameAssetOrientation> | undefined;
81
+ readonly attachmentRules?: readonly CharacterAssemblyAttachmentRule[] | undefined;
82
+ readonly gameplay?: CharacterAssemblyGameplayIntent | undefined;
83
+ readonly notes?: readonly string[] | undefined;
84
+ readonly generatedAt?: string | undefined;
85
+ }
86
+ export interface CharacterAssemblyValidationPolicy {
87
+ readonly minScale?: number | undefined;
88
+ readonly maxScale?: number | undefined;
89
+ readonly expectedUpAxis?: GameAssetAxis | undefined;
90
+ readonly allowedForwardAxes?: readonly GameAssetAxis[] | undefined;
91
+ readonly requireAttachmentForRoles?: readonly CharacterAssemblyPartRole[] | undefined;
92
+ readonly requireBodyBounds?: boolean | undefined;
93
+ readonly maxAccessoryGap?: number | undefined;
94
+ }
95
+ export interface CharacterAssemblyValidationReport<TBody extends AuraAssetRef<"model"> = AuraAssetRef<"model">> {
96
+ readonly kind: "aura-character-assembly-validation-report";
97
+ readonly contractId: string;
98
+ readonly plan: CharacterAssemblyPlan<TBody>;
99
+ readonly ready: boolean;
100
+ readonly summary: {
101
+ readonly status: GameAssetValidationStatus;
102
+ readonly exportName: string;
103
+ readonly typedAssets: number;
104
+ readonly totalParts: number;
105
+ readonly requiredParts: number;
106
+ readonly attachedParts: number;
107
+ readonly paletteColors: number;
108
+ readonly errors: number;
109
+ readonly warnings: number;
110
+ };
111
+ readonly checks: readonly GameAssetValidationCheck[];
112
+ readonly issues: readonly GameAssetValidationIssue[];
113
+ }
114
+ export declare function defineCharacterAssemblyPlan<const TPlan extends CharacterAssemblyPlan>(plan: TPlan): TPlan;
115
+ export declare function characterAssemblyPart<TAsset extends AuraAssetRef<"model">>(asset: TAsset, role: CharacterAssemblyPartRole, options?: Omit<CharacterAssemblyPart<TAsset>, "asset" | "role">): CharacterAssemblyPart<TAsset>;
116
+ export declare function createCharacterAssemblyPlan<TBody extends AuraAssetRef<"model">>(input: CreateCharacterAssemblyPlanInput<TBody>): CharacterAssemblyPlan<TBody>;
117
+ export declare function validateCharacterAssemblyPlan<TBody extends AuraAssetRef<"model">>(plan: CharacterAssemblyPlan<TBody>, policy?: CharacterAssemblyValidationPolicy): CharacterAssemblyValidationReport<TBody>;
118
+ export declare function collectCharacterAssemblyAssets(plan: CharacterAssemblyPlan): readonly AuraAssetRef<"model">[];
119
+ export declare const characterAssembly: {
120
+ readonly definePlan: typeof defineCharacterAssemblyPlan;
121
+ readonly createPlan: typeof createCharacterAssemblyPlan;
122
+ readonly part: typeof characterAssemblyPart;
123
+ readonly validatePlan: typeof validateCharacterAssemblyPlan;
124
+ readonly collectAssets: typeof collectCharacterAssemblyAssets;
125
+ };
126
+ //# sourceMappingURL=CharacterAssembly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CharacterAssembly.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CharacterAssembly.ts"],"names":[],"mappings":"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"}