create-aura3d 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/dist/cli.js +10 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +11 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/showcase-spec-artifacts.d.ts +104 -0
  8. package/dist/showcase-spec-artifacts.d.ts.map +1 -0
  9. package/dist/showcase-spec-artifacts.js +142 -0
  10. package/dist/showcase-spec-artifacts.js.map +1 -0
  11. package/dist/showcase-spec-category-plan.d.ts +15 -0
  12. package/dist/showcase-spec-category-plan.d.ts.map +1 -0
  13. package/dist/showcase-spec-category-plan.js +45 -0
  14. package/dist/showcase-spec-category-plan.js.map +1 -0
  15. package/dist/showcase-spec-compiler.d.ts +5 -0
  16. package/dist/showcase-spec-compiler.d.ts.map +1 -0
  17. package/dist/showcase-spec-compiler.js +240 -0
  18. package/dist/showcase-spec-compiler.js.map +1 -0
  19. package/dist/showcase-spec-evidence.d.ts +7 -0
  20. package/dist/showcase-spec-evidence.d.ts.map +1 -0
  21. package/dist/showcase-spec-evidence.js +815 -0
  22. package/dist/showcase-spec-evidence.js.map +1 -0
  23. package/dist/showcase-spec-game-geometry-extractor.d.ts +21 -0
  24. package/dist/showcase-spec-game-geometry-extractor.d.ts.map +1 -0
  25. package/dist/showcase-spec-game-geometry-extractor.js +725 -0
  26. package/dist/showcase-spec-game-geometry-extractor.js.map +1 -0
  27. package/dist/showcase-spec-game-replacement-evidence.d.ts +14 -0
  28. package/dist/showcase-spec-game-replacement-evidence.d.ts.map +1 -0
  29. package/dist/showcase-spec-game-replacement-evidence.js +219 -0
  30. package/dist/showcase-spec-game-replacement-evidence.js.map +1 -0
  31. package/dist/showcase-spec-game-template-evidence.d.ts +72 -0
  32. package/dist/showcase-spec-game-template-evidence.d.ts.map +1 -0
  33. package/dist/showcase-spec-game-template-evidence.js +435 -0
  34. package/dist/showcase-spec-game-template-evidence.js.map +1 -0
  35. package/dist/showcase-spec-gameplay-evidence.d.ts +3 -0
  36. package/dist/showcase-spec-gameplay-evidence.d.ts.map +1 -0
  37. package/dist/showcase-spec-gameplay-evidence.js +108 -0
  38. package/dist/showcase-spec-gameplay-evidence.js.map +1 -0
  39. package/dist/showcase-spec-parser.d.ts +3 -0
  40. package/dist/showcase-spec-parser.d.ts.map +1 -0
  41. package/dist/showcase-spec-parser.js +662 -0
  42. package/dist/showcase-spec-parser.js.map +1 -0
  43. package/dist/showcase-spec-platformer-artifacts.d.ts +3 -0
  44. package/dist/showcase-spec-platformer-artifacts.d.ts.map +1 -0
  45. package/dist/showcase-spec-platformer-artifacts.js +276 -0
  46. package/dist/showcase-spec-platformer-artifacts.js.map +1 -0
  47. package/dist/showcase-spec-racing-artifacts.d.ts +3 -0
  48. package/dist/showcase-spec-racing-artifacts.d.ts.map +1 -0
  49. package/dist/showcase-spec-racing-artifacts.js +273 -0
  50. package/dist/showcase-spec-racing-artifacts.js.map +1 -0
  51. package/dist/showcase-spec-replacement-apply.d.ts +10 -0
  52. package/dist/showcase-spec-replacement-apply.d.ts.map +1 -0
  53. package/dist/showcase-spec-replacement-apply.js +166 -0
  54. package/dist/showcase-spec-replacement-apply.js.map +1 -0
  55. package/dist/showcase-spec-replacement-candidates.d.ts +16 -0
  56. package/dist/showcase-spec-replacement-candidates.d.ts.map +1 -0
  57. package/dist/showcase-spec-replacement-candidates.js +244 -0
  58. package/dist/showcase-spec-replacement-candidates.js.map +1 -0
  59. package/dist/showcase-spec-replacement-game-geometry.d.ts +4 -0
  60. package/dist/showcase-spec-replacement-game-geometry.d.ts.map +1 -0
  61. package/dist/showcase-spec-replacement-game-geometry.js +175 -0
  62. package/dist/showcase-spec-replacement-game-geometry.js.map +1 -0
  63. package/dist/showcase-spec-replacement-manifest.d.ts +41 -0
  64. package/dist/showcase-spec-replacement-manifest.d.ts.map +1 -0
  65. package/dist/showcase-spec-replacement-manifest.js +62 -0
  66. package/dist/showcase-spec-replacement-manifest.js.map +1 -0
  67. package/dist/showcase-spec-replacement-values.d.ts +9 -0
  68. package/dist/showcase-spec-replacement-values.d.ts.map +1 -0
  69. package/dist/showcase-spec-replacement-values.js +41 -0
  70. package/dist/showcase-spec-replacement-values.js.map +1 -0
  71. package/dist/showcase-spec-replacement.d.ts +13 -0
  72. package/dist/showcase-spec-replacement.d.ts.map +1 -0
  73. package/dist/showcase-spec-replacement.js +144 -0
  74. package/dist/showcase-spec-replacement.js.map +1 -0
  75. package/dist/showcase-spec-types.d.ts +304 -0
  76. package/dist/showcase-spec-types.d.ts.map +1 -0
  77. package/dist/showcase-spec-types.js +2 -0
  78. package/dist/showcase-spec-types.js.map +1 -0
  79. package/package.json +21 -2
  80. package/templates/animation-channel/package.json +1 -1
  81. package/templates/animation-channel/tests/screenshot.spec.ts +16 -0
  82. package/templates/animation-studio/index.html +12 -0
  83. package/templates/animation-studio/node_modules.publish-aside/.vite/deps/_metadata.json +8 -0
  84. package/templates/animation-studio/node_modules.publish-aside/.vite/deps/package.json +3 -0
  85. package/templates/animation-studio/package.json +1 -1
  86. package/templates/animation-studio/scripts/animation-scene.ts +1 -1
  87. package/templates/animation-studio/scripts/asset-motion-probe.ts +7 -1
  88. package/templates/animation-studio/scripts/author-office-scene.ts +1 -1
  89. package/templates/animation-studio/scripts/build-characters.ts +1 -1
  90. package/templates/animation-studio/scripts/render-live.ts +24 -0
  91. package/templates/animation-studio/src/director/director-heuristics.ts +2 -2
  92. package/templates/animation-studio/src/director/{prompt-to-scene.ts → prompt-scene.ts} +74 -6
  93. package/templates/animation-studio/studio/src/App.tsx +146 -78
  94. package/templates/animation-studio/studio/src/components/Console.tsx +8 -2
  95. package/templates/animation-studio/studio/src/components/Inspector.tsx +57 -1
  96. package/templates/animation-studio/studio/src/components/Stage.tsx +10 -5
  97. package/templates/animation-studio/studio/src/components/Timeline.tsx +49 -2
  98. package/templates/animation-studio/studio/src/state/mapDocument.ts +13 -2
  99. package/templates/animation-studio/studio/src/state/sceneTool.ts +20 -9
  100. package/templates/animation-studio/studio/src/state/types.ts +8 -0
  101. package/templates/animation-studio/tests/route-health.spec.ts +33 -0
  102. package/templates/animation-studio/tests/screenshot.spec.ts +30 -0
  103. package/templates/character-controller/package.json +1 -1
  104. package/templates/character-controller/src/main.ts +18 -1
  105. package/templates/cinematic-scene/package.json +1 -1
  106. package/templates/cinematic-scene/tests/screenshot.spec.ts +3 -3
  107. package/templates/episode-builder/package.json +1 -1
  108. package/templates/episode-builder/tests/screenshot.spec.ts +15 -0
  109. package/templates/falling-blocks-starter/README.md +18 -0
  110. package/templates/falling-blocks-starter/index.html +23 -0
  111. package/templates/falling-blocks-starter/package.json +21 -0
  112. package/templates/falling-blocks-starter/playwright.config.ts +12 -0
  113. package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.679d52fe.glb +0 -0
  114. package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.thumb.svg +1 -0
  115. package/templates/falling-blocks-starter/src/aura-assets.ts +20 -0
  116. package/templates/falling-blocks-starter/src/main.ts +358 -0
  117. package/templates/falling-blocks-starter/tests/playable.spec.ts +85 -0
  118. package/templates/falling-blocks-starter/tests/route-health.spec.ts +34 -0
  119. package/templates/falling-blocks-starter/tsconfig.json +13 -0
  120. package/templates/fighting-game/package.json +1 -1
  121. package/templates/fighting-game/tests/screenshot.spec.ts +15 -0
  122. package/templates/mini-game/README.md +13 -0
  123. package/templates/mini-game/index.html +1 -1
  124. package/templates/mini-game/package.json +2 -2
  125. package/templates/mini-game/src/main.ts +251 -21
  126. package/templates/mini-game/tests/playable.spec.ts +49 -0
  127. package/templates/mini-game/tests/screenshot.spec.ts +37 -32
  128. package/templates/product-viewer/package.json +1 -1
  129. package/templates/product-viewer/tests/screenshot.spec.ts +4 -4
  130. package/templates/prompt-animation-channel/package.json +1 -1
  131. package/templates/prompt-animation-channel/tests/screenshot.spec.ts +15 -0
  132. package/templates/racing-starter/README.md +27 -0
  133. package/templates/racing-starter/index.html +23 -0
  134. package/templates/racing-starter/package.json +21 -0
  135. package/templates/racing-starter/playwright.config.ts +12 -0
  136. package/templates/racing-starter/public/aura-assets/showcaseCleanSportsCar.1c69283f.glb +0 -0
  137. package/templates/racing-starter/public/aura-assets/showcaseCleanSportsCar.thumb.svg +1 -0
  138. package/templates/racing-starter/public/aura-assets/showcaseReadableKartCircuit.5cbb912e.glb +0 -0
  139. package/templates/racing-starter/public/aura-assets/showcaseReadableKartCircuit.thumb.svg +1 -0
  140. package/templates/racing-starter/src/aura-assets.ts +36 -0
  141. package/templates/racing-starter/src/main.ts +280 -0
  142. package/templates/racing-starter/tests/playable.spec.ts +93 -0
  143. package/templates/racing-starter/tests/route-health.spec.ts +40 -0
  144. package/templates/racing-starter/tsconfig.json +13 -0
  145. package/templates/three-compat-architecture-interior/index.html +16 -0
  146. package/templates/three-compat-architecture-interior/package.json +21 -0
  147. package/templates/three-compat-architecture-interior/playwright.config.ts +14 -0
  148. package/templates/three-compat-architecture-interior/src/main.ts +27 -0
  149. package/templates/three-compat-architecture-interior/tests/route-health.spec.ts +16 -0
  150. package/templates/three-compat-architecture-interior/tests/screenshot.spec.ts +15 -0
  151. package/templates/three-compat-architecture-interior/tsconfig.json +19 -0
  152. package/templates/three-compat-asset-inspector/index.html +16 -0
  153. package/templates/three-compat-asset-inspector/package.json +21 -0
  154. package/templates/three-compat-asset-inspector/playwright.config.ts +14 -0
  155. package/templates/three-compat-asset-inspector/src/main.ts +17 -0
  156. package/templates/three-compat-asset-inspector/tests/route-health.spec.ts +16 -0
  157. package/templates/three-compat-asset-inspector/tests/screenshot.spec.ts +15 -0
  158. package/templates/three-compat-asset-inspector/tsconfig.json +19 -0
  159. package/templates/three-compat-character-viewer/index.html +16 -0
  160. package/templates/three-compat-character-viewer/package.json +21 -0
  161. package/templates/three-compat-character-viewer/playwright.config.ts +14 -0
  162. package/templates/three-compat-character-viewer/src/main.ts +17 -0
  163. package/templates/three-compat-character-viewer/tests/route-health.spec.ts +16 -0
  164. package/templates/three-compat-character-viewer/tests/screenshot.spec.ts +15 -0
  165. package/templates/three-compat-character-viewer/tsconfig.json +19 -0
  166. package/templates/three-compat-custom-threejs-migration/index.html +16 -0
  167. package/templates/three-compat-custom-threejs-migration/package.json +21 -0
  168. package/templates/three-compat-custom-threejs-migration/playwright.config.ts +14 -0
  169. package/templates/three-compat-custom-threejs-migration/src/main.ts +16 -0
  170. package/templates/three-compat-custom-threejs-migration/tests/route-health.spec.ts +16 -0
  171. package/templates/three-compat-custom-threejs-migration/tests/screenshot.spec.ts +15 -0
  172. package/templates/three-compat-custom-threejs-migration/tsconfig.json +19 -0
  173. package/templates/three-compat-large-scene/index.html +16 -0
  174. package/templates/three-compat-large-scene/package.json +21 -0
  175. package/templates/three-compat-large-scene/playwright.config.ts +14 -0
  176. package/templates/three-compat-large-scene/src/main.ts +31 -0
  177. package/templates/three-compat-large-scene/tests/route-health.spec.ts +16 -0
  178. package/templates/three-compat-large-scene/tests/screenshot.spec.ts +15 -0
  179. package/templates/three-compat-large-scene/tsconfig.json +19 -0
  180. package/templates/three-compat-material-authoring/index.html +16 -0
  181. package/templates/three-compat-material-authoring/package.json +21 -0
  182. package/templates/three-compat-material-authoring/playwright.config.ts +14 -0
  183. package/templates/three-compat-material-authoring/src/main.ts +33 -0
  184. package/templates/three-compat-material-authoring/tests/route-health.spec.ts +16 -0
  185. package/templates/three-compat-material-authoring/tests/screenshot.spec.ts +15 -0
  186. package/templates/three-compat-material-authoring/tsconfig.json +19 -0
  187. package/templates/three-compat-postprocess-scene/index.html +16 -0
  188. package/templates/three-compat-postprocess-scene/package.json +21 -0
  189. package/templates/three-compat-postprocess-scene/playwright.config.ts +14 -0
  190. package/templates/three-compat-postprocess-scene/src/main.ts +17 -0
  191. package/templates/three-compat-postprocess-scene/tests/route-health.spec.ts +16 -0
  192. package/templates/three-compat-postprocess-scene/tests/screenshot.spec.ts +15 -0
  193. package/templates/three-compat-postprocess-scene/tsconfig.json +19 -0
  194. package/templates/three-compat-premium-product-viewer/index.html +16 -0
  195. package/templates/three-compat-premium-product-viewer/package.json +21 -0
  196. package/templates/three-compat-premium-product-viewer/playwright.config.ts +14 -0
  197. package/templates/three-compat-premium-product-viewer/src/main.ts +18 -0
  198. package/templates/three-compat-premium-product-viewer/tests/route-health.spec.ts +16 -0
  199. package/templates/three-compat-premium-product-viewer/tests/screenshot.spec.ts +15 -0
  200. package/templates/three-compat-premium-product-viewer/tsconfig.json +19 -0
  201. package/templates/animation-channel/public/aura-assets/moon-garden-feature-frame.png +0 -0
  202. package/templates/animation-channel/tests/reports/prompt-animation/cartoon-sample-episode.png +0 -0
  203. package/templates/animation-studio/dist/episodes/scene/episode-3d.webm +0 -0
  204. package/templates/animation-studio/dist/episodes/scene/frames/action.png +0 -0
  205. package/templates/animation-studio/dist/episodes/scene/frames/dialogue.png +0 -0
  206. package/templates/animation-studio/dist/episodes/scene/frames/final.png +0 -0
  207. package/templates/animation-studio/dist/episodes/scene/frames/first.png +0 -0
  208. package/templates/animation-studio/dist/episodes/scene/frames/mouth-closed.png +0 -0
  209. package/templates/animation-studio/dist/episodes/scene/frames/mouth-open.png +0 -0
  210. package/templates/animation-studio/dist/episodes/scene/render-live-summary.json +0 -5616
  211. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/broken.png +0 -0
  212. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/chefs.png +0 -0
  213. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/customer.png +0 -0
  214. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-1.png +0 -0
  215. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-2.png +0 -0
  216. package/templates/animation-studio/dist/generated/second-scene.document.json +0 -1210
  217. package/templates/animation-studio/dist/generated/studio-edited.document.json +0 -1196
  218. package/templates/animation-studio/dist/scene/inshader-accept.document.json +0 -1
  219. package/templates/animation-studio/dist/scene/inshader-test.document.json +0 -1
  220. package/templates/animation-studio/dist/scene/integ.document.json +0 -1
  221. package/templates/animation-studio/dist/scene/working.document.json +0 -594
  222. package/templates/animation-studio/dist/scene/working.history.json +0 -1
  223. package/templates/animation-studio/studio/dist/assets/index-i8URxOOt.css +0 -1
  224. package/templates/animation-studio/studio/dist/assets/index-pC9hdZ-B.js +0 -11
  225. package/templates/animation-studio/studio/dist/index.html +0 -19
  226. package/templates/animation-studio/tests/reports/animation-studio/hifi-cast-validation.json +0 -938
@@ -0,0 +1,240 @@
1
+ import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { dirname, join, resolve } from "node:path";
3
+ import { createEvidenceChecklist, createReadme, createRouteGatePatch, createRouteHealth, createRouteSource } from "./showcase-spec-artifacts.js";
4
+ import { compileCategoryPlanBlockers } from "./showcase-spec-category-plan.js";
5
+ import { compileEvidenceBlockers } from "./showcase-spec-evidence.js";
6
+ import { applyGeneratedGameTemplateEvidence } from "./showcase-spec-game-template-evidence.js";
7
+ import { parseShowcaseSpec } from "./showcase-spec-parser.js";
8
+ import { resolveShowcaseSpecReplacements } from "./showcase-spec-replacement.js";
9
+ export function compileShowcaseSpecFile(options) {
10
+ const rawSpec = JSON.parse(readFileSync(resolve(options.specPath), "utf8"));
11
+ return compileShowcaseSpec(rawSpec, options);
12
+ }
13
+ export function compileShowcaseSpec(input, options) {
14
+ const parsedSpec = parseShowcaseSpec(input);
15
+ const replacement = resolveShowcaseSpecReplacements(parsedSpec, { projectDir: options.projectDir });
16
+ const outputDir = resolve(options.outputDir);
17
+ mkdirSync(join(outputDir, "src"), { recursive: true });
18
+ const templateEvidence = applyGeneratedGameTemplateEvidence(replacement.spec, { projectDir: options.projectDir });
19
+ const spec = templateEvidence.spec;
20
+ writeArtifacts(outputDir, templateEvidence.artifacts);
21
+ const blockers = [
22
+ ...replacement.blockers,
23
+ ...compileBlockers(spec, { artifactRoot: outputDir, projectDir: options.projectDir })
24
+ ];
25
+ const finalStatus = chooseFinalStatus(spec, blockers);
26
+ const generatedFiles = writeArtifacts(outputDir, {
27
+ ...templateEvidence.artifacts,
28
+ "src/main.ts": createRouteSource(spec),
29
+ "README.md": createReadme(spec, finalStatus, blockers),
30
+ "route-health.json": createRouteHealth(spec, finalStatus, blockers),
31
+ "route-gate.patch.json": createRouteGatePatch(spec, finalStatus),
32
+ "showcase-evidence-checklist.json": createEvidenceChecklist(spec, finalStatus, blockers)
33
+ });
34
+ const report = {
35
+ ok: blockers.length === 0 && finalStatus === "release-ready candidate",
36
+ schema: "aura3d-showcase-spec-compile-report/1.0",
37
+ routeId: spec.routeId,
38
+ finalStatus,
39
+ generatedFiles: [...generatedFiles, "showcase-spec-compile-report.json"].sort(),
40
+ blockers,
41
+ evidenceChecklistPath: join(outputDir, "showcase-evidence-checklist.json"),
42
+ routeGatePatchPath: join(outputDir, "route-gate.patch.json"),
43
+ rejectedAssets: replacement.rejectedAssets,
44
+ replacementCandidates: replacement.replacementCandidates,
45
+ ...(replacement.selectedReplacement ? { selectedReplacement: replacement.selectedReplacement } : {})
46
+ };
47
+ writeArtifact(outputDir, "showcase-spec-compile-report.json", report);
48
+ return report;
49
+ }
50
+ function compileBlockers(spec, evidenceContext) {
51
+ if (spec.publicStatus !== "release-ready candidate")
52
+ return compileCategoryPlanBlockers(spec);
53
+ const blockers = [];
54
+ for (const asset of spec.primaryAssets) {
55
+ if (asset.quality !== "release")
56
+ blockers.push(`asset:${asset.id}:quality-not-release`);
57
+ if (!asset.hasDurableProvenance)
58
+ blockers.push(`asset:${asset.id}:missing-durable-provenance`);
59
+ if (!asset.hasRenderedProbe)
60
+ blockers.push(`asset:${asset.id}:missing-rendered-probe`);
61
+ if (!asset.hasOrientationEvidence)
62
+ blockers.push(`asset:${asset.id}:missing-orientation-evidence`);
63
+ if (!asset.hasForegroundBounds)
64
+ blockers.push(`asset:${asset.id}:missing-foreground-bounds`);
65
+ }
66
+ if (!spec.evidence.deployPassed)
67
+ blockers.push("evidence:deploy-not-passed");
68
+ if (!spec.evidence.routePrimaryPassed)
69
+ blockers.push("evidence:route-primary-not-passed");
70
+ if (spec.category.includes("game") && spec.evidence.gameplayPassed !== true)
71
+ blockers.push("evidence:gameplay-not-passed");
72
+ blockers.push(...compilePlatformerBlockers(spec));
73
+ blockers.push(...compileRacingBlockers(spec));
74
+ blockers.push(...compileCategoryPlanBlockers(spec));
75
+ blockers.push(...compileEvidenceBlockers(spec, evidenceContext));
76
+ blockers.push(...compileClaimBlockers(spec));
77
+ return blockers;
78
+ }
79
+ function compileClaimBlockers(spec) {
80
+ const blockers = [];
81
+ if (spec.claimLabel !== "createAuraApp")
82
+ blockers.push(`claim-label:${spec.claimLabel}:not-release-safe`);
83
+ if (spec.capabilities.length === 0)
84
+ blockers.push("capability:missing-bounded-claim-evidence");
85
+ for (const capability of spec.capabilities) {
86
+ if (capability.status === "unsupported")
87
+ blockers.push(`capability:${capability.name}:unsupported`);
88
+ if (!capability.evidence)
89
+ blockers.push(`capability:${capability.name}:missing-evidence`);
90
+ if (capability.status !== "root-proven")
91
+ blockers.push(`capability:${capability.name}:not-release-safe:${capability.status}`);
92
+ }
93
+ return blockers;
94
+ }
95
+ function compilePlatformerBlockers(spec) {
96
+ if (spec.category !== "game-platformer" || !spec.platformer)
97
+ return [];
98
+ const blockers = [];
99
+ const characterAsset = spec.primaryAssets.find((asset) => asset.id === spec.platformer?.characterAsset);
100
+ if (!characterAsset) {
101
+ blockers.push(`platformer:character-missing:${spec.platformer.characterAsset}`);
102
+ }
103
+ else if (characterAsset.role !== spec.platformer.releaseAssetRequirements.characterRole) {
104
+ blockers.push(`platformer:character-role-mismatch:${characterAsset.id}:${characterAsset.role}`);
105
+ }
106
+ for (const assetId of spec.platformer.worldAssets) {
107
+ const asset = spec.primaryAssets.find((candidate) => candidate.id === assetId);
108
+ if (!asset)
109
+ blockers.push(`platformer:world-asset-missing:${assetId}`);
110
+ else if (!isPlatformerWorldRole(asset.role) || !spec.platformer.releaseAssetRequirements.worldRoles.includes(asset.role)) {
111
+ blockers.push(`platformer:world-role-mismatch:${asset.id}:${asset.role}`);
112
+ }
113
+ }
114
+ if (!spec.platformer.layoutConstraints.keepCharacterReadable)
115
+ blockers.push("platformer:layout:character-readability-not-required");
116
+ if (!spec.platformer.layoutConstraints.uiAvoidsEvidenceArea)
117
+ blockers.push("platformer:layout:ui-can-occlude-evidence");
118
+ if (!spec.platformer.gameplayRequirements.includes("movement"))
119
+ blockers.push("platformer:gameplay:missing-movement-requirement");
120
+ if (!spec.platformer.gameplayRequirements.includes("jump"))
121
+ blockers.push("platformer:gameplay:missing-jump-requirement");
122
+ if (!hasProgressionRequirement(spec.platformer.gameplayRequirements))
123
+ blockers.push("platformer:gameplay:missing-progression-or-checkpoint-requirement");
124
+ if (spec.platformer.levelDesign.minPlayableSeconds < 30) {
125
+ blockers.push(`platformer:design:min-playable-seconds-too-low:${spec.platformer.levelDesign.minPlayableSeconds}`);
126
+ }
127
+ if (spec.platformer.levelDesign.minCheckpoints < 3) {
128
+ blockers.push(`platformer:design:min-checkpoints-too-low:${spec.platformer.levelDesign.minCheckpoints}`);
129
+ }
130
+ if (!spec.platformer.levelDesign.requiresHazardRespawn)
131
+ blockers.push("platformer:design:hazard-respawn-not-required");
132
+ if (!spec.platformer.levelDesign.requiresFinish)
133
+ blockers.push("platformer:design:finish-not-required");
134
+ if (!spec.platformer.levelDesign.authoredLevelFlow)
135
+ blockers.push("platformer:design:authored-level-flow-missing");
136
+ if (!isReleaseSafePlatformerSurfaceSource(spec.platformer.levelDesign.playableSurfaceSource)) {
137
+ blockers.push(`platformer:design:missing-release-safe-playable-surfaces:${spec.platformer.levelDesign.playableSurfaceSource}`);
138
+ }
139
+ if (!spec.platformer.levelDesign.playableSurfaceLayoutValidated)
140
+ blockers.push("platformer:design:playable-surface-layout-not-validated");
141
+ if (!spec.platformer.levelDesign.playableSurfaceEvidence)
142
+ blockers.push("platformer:design:missing-playable-surface-evidence");
143
+ if (!spec.platformer.levelDesign.characterWorldScaleCompatible)
144
+ blockers.push("platformer:asset-fit:character-world-scale-incompatible");
145
+ if (!spec.platformer.levelDesign.styleCompatible)
146
+ blockers.push("platformer:asset-fit:style-incompatible");
147
+ if (!spec.platformer.levelDesign.primitivePrimaryWorldRejected)
148
+ blockers.push("platformer:visual:primitive-primary-world-not-rejected");
149
+ return blockers;
150
+ }
151
+ function hasProgressionRequirement(requirements) {
152
+ return requirements.includes("checkpoint") || requirements.includes("progression");
153
+ }
154
+ function compileRacingBlockers(spec) {
155
+ if (spec.category !== "game-racing" || !spec.racing)
156
+ return [];
157
+ const blockers = [];
158
+ const vehicleAsset = spec.primaryAssets.find((asset) => asset.id === spec.racing?.vehicleAsset);
159
+ const trackAsset = spec.primaryAssets.find((asset) => asset.id === spec.racing?.trackAsset);
160
+ if (!vehicleAsset) {
161
+ blockers.push(`racing:vehicle-missing:${spec.racing.vehicleAsset}`);
162
+ }
163
+ else if (vehicleAsset.role !== spec.racing.releaseAssetRequirements.vehicleRole) {
164
+ blockers.push(`racing:vehicle-role-mismatch:${vehicleAsset.id}:${vehicleAsset.role}`);
165
+ }
166
+ if (!trackAsset) {
167
+ blockers.push(`racing:track-missing:${spec.racing.trackAsset}`);
168
+ }
169
+ else if (trackAsset.role !== spec.racing.releaseAssetRequirements.trackRole) {
170
+ blockers.push(`racing:track-role-mismatch:${trackAsset.id}:${trackAsset.role}`);
171
+ }
172
+ if (!spec.racing.layoutConstraints.keepVehicleReadable)
173
+ blockers.push("racing:layout:vehicle-readability-not-required");
174
+ if (!spec.racing.layoutConstraints.keepTrackReadable)
175
+ blockers.push("racing:layout:track-readability-not-required");
176
+ if (!spec.racing.layoutConstraints.uiAvoidsEvidenceArea)
177
+ blockers.push("racing:layout:ui-can-occlude-evidence");
178
+ if (!spec.racing.gameplayRequirements.includes("throttle"))
179
+ blockers.push("racing:gameplay:missing-throttle-requirement");
180
+ if (!spec.racing.gameplayRequirements.includes("steering"))
181
+ blockers.push("racing:gameplay:missing-steering-requirement");
182
+ if (!spec.racing.gameplayRequirements.includes("reset"))
183
+ blockers.push("racing:gameplay:missing-reset-requirement");
184
+ if (!hasRacingProgressionRequirement(spec.racing.gameplayRequirements))
185
+ blockers.push("racing:gameplay:missing-checkpoint-or-lap-requirement");
186
+ if (!spec.racing.gameplayRequirements.includes("multi-lap"))
187
+ blockers.push("racing:gameplay:missing-multi-lap-requirement");
188
+ if (spec.racing.raceDesign.minCheckpoints < 4)
189
+ blockers.push(`racing:design:min-checkpoints-too-low:${spec.racing.raceDesign.minCheckpoints}`);
190
+ if (spec.racing.raceDesign.minLaps < 2)
191
+ blockers.push(`racing:design:min-laps-too-low:${spec.racing.raceDesign.minLaps}`);
192
+ if (spec.racing.raceDesign.minLapSeconds < 30)
193
+ blockers.push(`racing:design:min-lap-seconds-too-low:${spec.racing.raceDesign.minLapSeconds}`);
194
+ if (!spec.racing.raceDesign.routeAlignedToTrackAsset)
195
+ blockers.push("racing:design:route-not-aligned-to-track-asset");
196
+ if (!isReleaseSafeRacingTopology(spec.racing.raceDesign.visibleTrackTopology)) {
197
+ blockers.push(`racing:design:missing-release-safe-track-topology:${spec.racing.raceDesign.visibleTrackTopology}`);
198
+ }
199
+ if (!spec.racing.raceDesign.trackTopologyEvidence)
200
+ blockers.push("racing:design:missing-track-topology-evidence");
201
+ if (!spec.racing.raceDesign.carTrackScaleCompatible)
202
+ blockers.push("racing:asset-fit:car-track-scale-incompatible");
203
+ if (!spec.racing.raceDesign.noDebugLocatorDisk)
204
+ blockers.push("racing:visual:debug-locator-disk-not-rejected");
205
+ return blockers;
206
+ }
207
+ function hasRacingProgressionRequirement(requirements) {
208
+ return requirements.includes("checkpoint") || requirements.includes("lap");
209
+ }
210
+ function isReleaseSafePlatformerSurfaceSource(source) {
211
+ return source === "asset-bound-playable-surfaces" || source === "asset-derived-playable-surfaces";
212
+ }
213
+ function isReleaseSafeRacingTopology(source) {
214
+ return source === "asset-bound-road-topology" || source === "mesh-road-topology";
215
+ }
216
+ function isPlatformerWorldRole(role) {
217
+ return role === "level" || role === "world" || role === "stage";
218
+ }
219
+ function chooseFinalStatus(spec, blockers) {
220
+ if (blockers.length === 0)
221
+ return spec.publicStatus;
222
+ if (spec.publicStatus === "internal-diagnostic" || spec.publicStatus === "removed-from-public-showcase")
223
+ return spec.publicStatus;
224
+ return "prototype-blocked";
225
+ }
226
+ function writeArtifacts(outputDir, artifacts) {
227
+ const generatedFiles = [];
228
+ for (const [relativePath, artifact] of Object.entries(artifacts)) {
229
+ writeArtifact(outputDir, relativePath, artifact);
230
+ generatedFiles.push(relativePath);
231
+ }
232
+ return generatedFiles;
233
+ }
234
+ function writeArtifact(outputDir, relativePath, artifact) {
235
+ const path = join(outputDir, relativePath);
236
+ mkdirSync(dirname(path), { recursive: true });
237
+ const text = typeof artifact === "string" ? artifact : `${JSON.stringify(artifact, null, 2)}\n`;
238
+ writeFileSync(path, text);
239
+ }
240
+ //# sourceMappingURL=showcase-spec-compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-compiler.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ShowcaseSpec } from "./showcase-spec-types.js";
2
+ export interface EvidenceValidationContext {
3
+ readonly artifactRoot?: string;
4
+ readonly projectDir?: string;
5
+ }
6
+ export declare function compileEvidenceBlockers(spec: ShowcaseSpec, context?: EvidenceValidationContext): readonly string[];
7
+ //# sourceMappingURL=showcase-spec-evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-evidence.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-evidence.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAiC,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE5F,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA2BD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,yBAA8B,GAAG,SAAS,MAAM,EAAE,CAgBtH"}